Thursday, December 26, 2019

Sequential Circuits Multi-Trak firmware modifications


I started to work on a series of software modifications for the Sequential Circuits MultiTrak, mainly intended to improve usability in "live" or "jam" use.

As for the P600, I wrote an emulator of the digital part, which I used as a tool to code the modifications.



I had a setback: the MC68701 keyer from my Multi-Trak stopped working at some point, but I finally managed to read the contents of the chip and I was thus able to rescue it by reprogramming a new one :)
For those might have the same issue, here is the binary: mtrak_keyer_dump_MC68701S.bin
It can be programmed in an MC68701S or MC68701L but, beware, NOT in an MC68701U4L or an MC68701U4S.

Then, I finished the modifications of the main firmware, and managed to cram in the 3 that I wanted to do and everything seems to work well. I started from official version 2.2, which is the most recent and the most compatible. A version 3.0 exists but it is incompatible because the hardware is different, and therefore this modification will not work on it.
  • Synth voices can now be freely toggled ON/OFF, in sequencer mode (even when it is running, which brings a lot of options for "jam" use), in unison mode (to make 1-5 voices unisons instead of 6), or even in poly mode (alhough not very useful because the voices are still assigned).
    • "To Tape + track 1-6": Disable the corresponding voice, it really is a forced "note off" because the release stage is still played if the voice was sounding.
    • "From Tape + track 1-6": Re-enable the corresponding voice, the next assigned note can play again.
  • Pitch bender routing can now be changed from VCO to VCF:
    • "To Tape + Auto-Correct": Switch to Bender -> VCF.
    • "From Tape + Auto-Correct": Return to Bender -> VCO (boot default).
  • Disabled sending the sequencer notes to the MIDI output in "local off" mode ("MIDI channel + 9" to toggle it), allowing clean control of an external synth with the keyboard at the same time as the sequencer runs.
For technical reasons, these settings are not saved: there was about 50 bytes of free space in ROM, I already had to use many coder tricks to get everything in there!

I named the version "G.3", and it can be displayed as usual with: "MIDI Channel + MIDI Mode".

Here are the binaries:
And finally the project page on GitHub: https://github.com/gligli/mtrakemu

Edit:
Version "G.4" up, fixing two bugs with "local off" feature, same links a before!
Version "G.5" up, fixing one bug with "Ext Clk" feature, same links a before!