Articles | Full Index | RSS Feed
Recently I've been trying to resolve an issue with MIDI clock synchronisation that I've not been able to reproduce myself. The user has a somewhat complex setup and although I've tried a number of things to reproduce it I've just not been able to. So I've added a new diagnostic option called "MIDI In Port Recorder". When enabled, Cantabile will generate a recording file for each enabled MIDI-In port.
My initial thought was to write these out as standard MIDI files, however some real-time MIDI events can't be represented in standard MIDI files. Eg: MIDI Clock events. Also I wanted to be able to capture the input from multiple MIDI-in ports and replay them all correctly synced and the time encoding formats in standard MIDI files is not really up to this (although I guess I could put the recording of all ports in the one file).
Anyway, I've invented a new file format (.port) which is a very simple raw copy of exactly what's coming into Cantabile.
Of course these port recording files are useless without a way to play them back so I've also knocked together a very simple command line tool - PortPlay. Typically I'll use this to replay the recordings back into Cantabile using a virtual MIDI cable.
So now whenever someone reports a compatibility issue with another app or external device, I can simply ask them to turn on the port recorder, send me the generate files and I should be able to easily reproduce the problem. Well that's the plan, I'm yet to see how well this works in practice...
Posted on August 3, 2009