Developer Geert Bevin (LinnStrument software, MPE, Moog Model 15 for iPad) has released SendMIDI, a multi-platform command-line tool for MIDI.
SendMIDI is designed to make it easy for terminal-savvy users to send MIDI messages from a computer to MIDI devices.
“This tool is mainly intended for configuration or setup through Continuous Control, RPN and NRPN messages,” notes Bevin, “but many other MIDI messages can be sent.”
SendMIDI is available as a free download for Linux, Mac & Windows from github. It’s released as an open source project (GPL 3.0).
40 thoughts on “SendMIDI Brings MIDI To The Command Line”
“SendMIDI is designed to make it easy for terminal-savvy users to send MIDI messages from a computer to MIDI devices.”
Who wants to be doing that shit in 2017?
I do! 🙂
Nothing like the command line for quick commands!
I do too! Very handy indeed.
I bought a Linnstrument a few months ago, and started coding school this week, so yeah, I’m into this big time. Thanks Geert!
“Who wants to be doing that shit in 2017?”
app and hardware developers, mostly
It’s a myth that somehow command line interfaces are inferior or outdated. If you develop or manage anything in IT a lot of your day is still spent at the terminal because it is so efficient and easy to extend.
Not saying I don’t use a UI for most of my music making of course, but for updating stuff via midi this is nice.
Me raspberry three
Sounded mildly useful, until I realized that it does not support Sysex. So this is a half baked tool to help with programs with even more limited midi implementation. Bome still rules for that, IMO.
This tool has a specific target towards easily and quickly sending out MIDI. How would you want to use sysex to send out midi messages? Do you know the details of the sysex formats that you use and can you write them in bytes?
Sending sysex is one of the annoying things people still need to do with MIDI sometimes. A simple command to transmit a SYX file would have been useful.
Yes. It is no big deal if you have the sysex spec of your gear, I use sysex within my DAW all the time, especially patch dump requests, arp type change commands, those kind of things…
So how would you want to see this work?
sendmidi syx [idcode separated by commas] [length n] [byte1] [byte2] … [byten] ?
Yes, though no need for commas as the other commands don’t use them and you want to be consistent.
Also it is useful to have a means to specify hex and not just decimal. Perhaps syx as the command for hex and syd for decimal.
Alternatively one could require the first byte as well, so if F0 then the subsequent parameters will be interpreted as hex and if 240 they’re decimal.
Well, here you go, v1.0.4 now supports SysEx, as well as a standard way to use hex instead of decimal for all commands: https://github.com/gbevin/SendMIDI
Talk about delivery!
Yes.. that’s Geert for you… The way he has been unbelievably responsive to requests made for the Linnstrument and the creative ways he has come up with to add features… speaks volumes.
Thanks Geert as always!
Yeah this is a great design. I love the idea of the dec/hex inline stream flag and the ability to individually flip it as needed with D and H suffixes. Great stuff, very useful design. Cool beans.
Just sending something simple like
sendmidi -sysex “F0 00 01 05 20 7F 20 3A F7”
would be handy to some testing and debugging.
Released v1.0.4 this morning with support for sysex 🙂
if i was a developer I could see needing that utility, especially if i was working on developing something to control external hardware like an editor or patch librarian.
Thanks, Geert! This looks like a great utility for testing.
Get a Raspberry Pi with this running and a little screen and you’ve got something pretty similar to that monome Eurorack module but for midi.
Sweet. Been hoping someone got this up and going for a long, long time. Thanx@!!
Great and easy way to learn the midi protocol.
Nice idea. Could this be expanded to include midi monitoring capability so that one can keep tabs on all or selected midi message traffic in their midi network?
I guess it could 🙂
Maybe this should be another tool though, called “ReceiveMIDI”. On macOS, there’s a free GUI tool for this, called MIDI Monitor already.
ReceiveMIDI exists now! 🙂
Perhaps we should note it requires a minimum of 10.11 otherwise it segfaults on launch.
Thanks for letting me know, I’ll fix the binary target so that it works on older OSs.
I put out new releases that should work all the way back to macOS 10.6.
Very cool, it now works in 10.6 here. Thanks!
Thanks for trying it out and confirming that it works! I don’t have a 10.6 machine anymore so it’s difficult to verify.
I have no need for this, but if Geert made it, I’m all for it.
It’s 2018 now, and I want to control Rakarrack programmatically, so yeah, I want that!
Article says it will work on Windows but your video speaks otherwise (not compiled yet). Is this still the case?
This article says it will work on Windows (I’m using Windows 10 64bit) but your video says it isn’t compiled for Windows yet. Is this still true?
Works great in Windows I can send to any of the system devices Microsoft GS Wavetable Synth, MIDI Mapper and VirtualMidiSynth but in Mac I have nothing to send it to the sendmidi list is empty. Is there any simple way to create a system Virtual Device in Mac I can send to and get sound ???? The Apple DLS Synth is an AU plugin so it needs to be in a host.