Cantabile Development Blog

Follow the development of music software Cantabile

Articles | Full Index | RSS Feed


MIDI-In Port Recorder

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

Share This

Leave A Comment

All comments will be reviewed for spam before being displayed.