Basic MIDI Recorder
Posted: Sun Nov 25, 2012 3:29 pm
Hi All,
Here's something you might find handy when testing out your new synths - a very basic MIDI recorder, with single shot or looped playback... To use...
1) Hit record, and play in some MIDI data - the number display will show you a count of incoming messages. All messages are recorded 'verbatim', so it will work just as well to test controllers, aftertouch etc. as well as note phrases.
2) Hit stop to end recording (or play to go straight into playback)
3) Choose one-shot or loop playback.
4) Hit play!
The data in the buffer is remembered until you press Record again. So you can stop and start playback as many times as you like - though note that playback will not actually stop until the end of the buffer, as the events are queued in advance using the Ruby timer.
Before playback the data is also scanned to check for missing note-off messages, and new ones are added to the end of the buffer where needed to prevent 'hanging' notes.
Note - I have made no attempt in this design to have proper tempo sync' and all that stuff (but I'm working on it!) - so don't expect 'jazz virtuoso' loop timing! It's just intended as a 'test signal generator' to save having to keep bashing at my controller keyboard when editing MIDI schematics.
Here's something you might find handy when testing out your new synths - a very basic MIDI recorder, with single shot or looped playback... To use...
1) Hit record, and play in some MIDI data - the number display will show you a count of incoming messages. All messages are recorded 'verbatim', so it will work just as well to test controllers, aftertouch etc. as well as note phrases.
2) Hit stop to end recording (or play to go straight into playback)
3) Choose one-shot or loop playback.
4) Hit play!
The data in the buffer is remembered until you press Record again. So you can stop and start playback as many times as you like - though note that playback will not actually stop until the end of the buffer, as the events are queued in advance using the Ruby timer.
Before playback the data is also scanned to check for missing note-off messages, and new ones are added to the end of the buffer where needed to prevent 'hanging' notes.
Note - I have made no attempt in this design to have proper tempo sync' and all that stuff (but I'm working on it!) - so don't expect 'jazz virtuoso' loop timing! It's just intended as a 'test signal generator' to save having to keep bashing at my controller keyboard when editing MIDI schematics.