I disabled the need to be registered and logged in to be able to comment. You will have to fill out name and e-mail though and your first comment will require approval. Don’t fear from spam from my end, because I hate it as much as you do, so I won’t share your e-mail address with anyone.
The last few weeks/months I’ve been grinding my teeth on a proper MIDI slave implementation for Anaphobia. Getting the synchronisation right so the internal step sequencer runs in tight sync with an external sequencer over MIDI proved kind of tricky (for me anyway ;)). But in the end I arrived at a nice little setup that slaves very nicely and follows tempo changes quite accurate and fast (took me a while to find the right balance here).
Since there is very little documentation available on how to create a setup like this, and the fact that I used some open source software to kickstart my development, like Pete Goodliffe‘s excellent PGMidi, has made me come to the conclusion that I will open source my MIDI implementation as well.
My codebase is written 100% in C++ and currently handles incoming MIDI Start, Stop, Clock, Note On, Note Off and Controller Change messages. It also calculates (and smoothes) the tempo based on the incoming MIDI Clock messages. Furthermore, it provides hooks to integrate a synth (to handle note and controller messages) and a sequencer (to handle tempo changes, start/stop and beat synchronisation). It also allows to select/filter to a specific MIDI channel (e.g. if you have device attached that is sending out large amounts of messages on multiple channels, it will simply drop any incoming commands that do not match the filter).
I am not quite sure when I will release it to the general public, since I have Anaphobia to release first, then clean up the code a bit, provide an example client, etc. In the mean time, if anyone has questions, just let me know through the support section right here on this site.
It’s been a while since my latest post, but I am still very much alive and kicking. Been occupied with a lot of things, and Anaphobia certainly was one of them!
After noticing some performance issues I decided to refactor the whole synth engine from Objective-C to C++. The performance gains are insane, so I ended up doing the same with the sequencer engine. And, while I was at it, I also refactored the whole MIDI interfacing and command handling component as well. I am now in the process of re-assembling everything and doing some thorough testing. UI will need some work as well as persistence. After that it’s time to polish the product. I expect a new version of Anaphobia Mini (2.0) to be submitted to the App Store in a week or two. Anaphobia will follow shortly after.