So I feel like I have to document the changes so that other developers
will know what's what and can possibly also contribute at some point
towards the 2.0 effort.

Currently, tempo track has been implemented. The way it works is, that
tempo track inherits automation track, and tempo pattern inherits
automation pattern, and most of the meat of the code is actually in
automation track & automation pattern.

The way it works is, there's two "cache" maps: they cache both the BPM
and FPT (frames per tick) values at each position (tick) of the project.
This is done with a QMap that maps tick values to BPM/FPT values.

Whenever a tempo pattern is edited, moved or deleted, these cache maps
are updated to reflect the changes.

The tempo track is never processed (or played) the same way other
automation tracks are. Instead, the song playback function just looks up
the tempo for the current position from the cached maps.

There's still some things to do here - currently, the tempo widget
doesn't work properly, as it doesn't show the actual current tempo while
playing the song.

Next, I'm going to focus on dBV-scale controls, then probably the
instrument API changes. Oh and sample tracks. Those will also get done soon.

------------------------------------------------------------------------------
Dive into the World of Parallel Programming! The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net
_______________________________________________
LMMS-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/lmms-devel

Reply via email to