The awesome programmer behind the Moog Model 15 app and the software for LinnStrument, Geert Bevin has just announced his latest tool,the free ReceiveMIDI. It's a follow-up app to the super useful SendMIDI and as Geert says, "it felt only normal to create a similar tool for reciveing MIDI messages".
ReceiveMIDI, uses the JUCE library and is a multi-platform (MacOS, Windows and Linux) command-line tool that makes it easy to monitor MIDI messages sent from a MIDI device. "There are a series of handy filter commands if you just want to focus on some of the messages, and you can optionally add timestamps."
Here's an in-depth tutorial/walkthrough by Geert Bevin on using ReceiveMIDI and SendMIDI:
Geert has also updated SendMIDI so it now understands the timestamps, "allowing you to play back anything you saved and edited from ReceiveMIDI, with the appropriate timing". On the command line you can also use this to re-route MIDI easily by piping them together
Download it here: https://github.com/gbevin/ReceiveMIDI
And here's something pretty exicting. ReceiveMIDI & SendMIDI can be used as a text-based sequencer! "The output of the ReceiveMIDI tool is compatible with the SendMIDI tool, allowing you to store MIDI message sequences and play them back later." You can edit the text step sequencer in any way you wish.
Here's a list of the commands:
dev name Set the name of the MIDI input port (REQUIRED) list Lists the MIDI input ports file path Loads commands from the specified program file dec Interpret the next numbers as decimals by default hex Interpret the next numbers as hexadecimals by default ch number Set MIDI channel for the commands (0-16), defaults to 0 ts Output a timestamp for each receive MIDI message voice Show all Channel Voice messages note Show all Note messages on (note) Show Note On, optionally for note (0-127) off (note) Show Note Off, optionally for note (0-127) pp (note) Show Poly Pressure, optionally for note (0-127) cc (number) Show Control Change, optionally for controller (0-127) pc (number) Show Program Change, optionally for program (0-127) cp Show Channel Pressure pb Show Pitch Bend sr Show all System Real-Time messages clock Show Timing Clock start Show Start stop Show Stop cont Show Continue as Show Active Sensing rst Show Reset sc Show all System Common messages syx Show System Exclusive tc Show MIDI Time Code Quarter Frame spp Show Song Position Pointer ss Show Song Select tun Show Tune Request -- Read commands from standard input until it's closed
Geert has included a few examples on the Github page to get your started. Here's a couple to whet your appetite.
List all the available MIDI output ports on your system:
- receivemidi list
Receive only notes coming from LinnStrument:
- receivemidi dev "LinnStrument MIDI" note
Receive all messages from LinnStrument and pipe them to the SendMIDI tool in order to forward them to Bidule:
- receivemidi dev linnstrument | sendmidi dev "Bidule 1" --