Articles | Full Index | RSS Feed
I'm still working on getting transport and syncing everything together working and in the process I decided I could simplify things if I could always guarantee to have a valid audio driver.
In 1.2, the MIDI player and internal keyboard work even when an audio driver isn't loaded but it required a different code path for some parts to make it work. Also, no plugins work in this mode so it's a little limited.
To resolve this, I've coded up a simple "Null Audio Driver" which causes Cantabile's audio engine to think there's an audio driver even though there's not. Obviously there's no audio input/output in this mode but all plugins continue to work, the level meters work, all the timing information is correct and in sync and I don't need special case code everywhere to handle the case where there's no audio driver.

From a user's point of view, the best thing about this new approach is that MIDI generating plugins can be used without having ASIO drivers loaded.
On other things, I've simplified the internal handling of timing information, setup the various sync modes on the metronome and file player and that's all mostly working now.
Metronome sync modes:

File player sync modes:

I'm now working on the ability to sync the MIDI player with an external time source, such as incoming MIDI clock and/or the metronome.
And finally, I did a little work on the level meters - fixed an annoying bug that caused them to flicker excessively and changed their display mode to be logarithmic (db) rather than linear.
Posted on June 5, 2008