VOGONS


First post, by MusicallyInspired

User metadata
Rank Oldbie
Rank
Oldbie

I wrote a Python script to translate MIDI CC controller messages in real time to the FB-01's sysex messages that control Voice, Inst, Config, and System parameters. I wrote this for my Raspberry Pi Zero 2 so I could modify instrument sounds/settings on the FB-01 live with a MIDI controller without a computer. After many many weeks of fine-tuning and debugging it finally works quite well (so far). It's not finished. Currently there's no way on startup for the script to know what voice you're modifying, it just assumes you're starting from scratch. I plan to implement an optional initial voice sysex dump on launch to start from square one so the script and the synth are both in sync when parameters are configured. I'd also like to be able to have it request a sysex dump from the FB-01 on startup so you can modify a pre-existing voice more easily. But you'd need a second MIDI input port for that.

Currently the CC controller numbers are all hardcoded to specific sysex messages but I also plan to make this more easily customizable somehow. There's a chart on Github that shows the current map I've implemented and what value ranges are required. Two of them (for Voice: LFO Speed and Voice: User Code) require a value range of 0 ~ 255 which is obviously impossible for a normal MIDI CC since they can only send values from 0 ~ 127 so I've scripted those two to assume they're being sent by a controller that can set its encoders' mode to RBOff (Relative Binary Offset). My M-Audio Axiom Air 49 does this which is what I'm using it for until I buy a separate controller with more encoders and features. In RBOff mode 64 = 0 (or no change) and any value greater or less than that is interpreted as a value increment/decrement respectively by that much (ie- CC value: 64 + x = Param current value + x).

There's more info and description of planned features on the Github page. If there are any bugs let me know! I think I've got it ironed out, though.
Required dependencies are the Mido and Colorama Python libraries (Colorama is used to colourize the command prompt output for easier readability for me when debugging, it'll probably go away later).

https://github.com/MusicallyInspired/FB01-CC2Sysex

Yamaha FB-01/IMFC SCI tools thread
My Github
Roland SC-55 Music Packs - Duke Nukem 3D, Doom, and more.