Updating the firmware on a MIDI enabled synthesizer should be rather easy. And in some cases it is. Some companies make it hard and use proprietary updaters that make it hard, if not impossible to update a synths firmware. Some companies hide sysex files in their updaters that can be extracted and used. Moog on the other hand, as we will see below, provide the files you need to update their synths with the simple commands in bash.
There are essentially three ways that a synth can be updated from Linux, assuming the hardware vendor lets you.
- A sysex file that is uploaded via amidi. In the below example, thats what I’ll be using
- a standard MIDI file, or .mid file that can be played to the synth with aplaymidi
- An audio file that can be played with aplay, and with a cable from the audio out on your computer to the audio in on the synth. The Volca’s are updated in this way.
In this example, I’ll be updating the firmware on a Moog Grandmother Synth. It’s Semi-Modular and has a fully analogue path. However, it’s keyboard, arpeggiator, sequencer, and MIDI interface are all computer controlled.
NOTE: This procedure is NOT officially supported by Moog, or any other vendor. I’m providing it in hopes that it will be helpful to some people. Having said that, standard disclaimer applies. I’m NOT responsible for any damage to your synths, computers, or even you from trying this.
First, download the latest firmware for Windoze and unzip it. Sometimes the Mac software might be preferable, but in this case, the Windows zip file did the trick. CD into the directory with the newly unziped update:
$ ls -l total 412 -rw-rw-r-- 1 dwalker dwalker 6 Jun 6 2018 Grandmother_FIRMWARE_ERASE.syx -rw-rw-r-- 1 dwalker dwalker 6 Jun 6 2018 Grandmother_FIRMWARE_INVALIDATE.syx -rw-r--r-- 1 dwalker dwalker 50828 Nov 4 14:46 Grandmother_Firmware_Update_v1_0_6.pdf -rw-r--r-- 1 dwalker dwalker 359740 Oct 9 18:13 Grandmother_Firmware_v1_0_6.syx
The PDF file will provide some instructions, for PC’s and maybe Macs. You should be able to follow along with these, just replacing the relevant parts with the given Linux instructions.
Next step, as mentioned in the PDF, is to connect the Synth to your PC with a USB cable and turn it on.
Now Identify your synth with amidi -l:
$ amidi -l Dir Device Name IO hw:3,0,0 Moog Grandmother MIDI 1
Notice the ID is hw:3,0,0.
Following the instructions, send Grandmother_FIRMWARE_INVALIDATE.syx to the Grandmother using amidi. Using a -p to indicate the port or device to talk to, and a -s to tell it the file to send.
NOTE: If there are no errors, the command amidi will return silently on all these commands.
$ amidi -p hw:3,0,0 -s Grandmother_FIRMWARE_INVALIDATE.syx
This will make the arp rate LED blink red/green.
Then send it the Grandmother_FIRMWARE_ERASE.syx File.
amidi -p hw:3,0,0 -s Grandmother_FIRMWARE_ERASE.syx
This will make the arp Rate LED will blink red three times then blink green continuously.
Now send it the firmware file itself, in this case Grandmother_Firmware_v1_0_6.syx
amidi -p hw:3,0,0 -s Grandmother_Firmware_v1_0_6.syx
The arp Rate LED will blink yellow-orange while receiving the file. Once completed it will reboot and that’s it. The Synth is now updated to the latest firmware.
In the future, if the need arises for me to update other synths, I will do followups on how I did so, if I can, using Linux. Unfortunatly, I’ve not figured out a way of updating my Minilogue yet, which is too bad, because version 2.0 of the software looks like it has some pretty cool stuff in it.