Greetings / Question about custom MIDI/Sysex mappings


my PI and PIFI Digi DAC+HIFI DAC are on their way! I will start building a headless setup soon. Happy to be part of the community.

I currently have a jamming setup that has a Roland JDXi as sequencer and synth, a key lab midi controller for the full-size keys, and a teenage engineering PO-133 (sampler) for drums and textures.

So to sync the PO-133 with the JDXi sequencer I have midi clock going into a old Mac and I have a vcv patch that output CV gate to the Mac audio out into the PO-133. I want to get rid of that MacBook, the key lab have cv outs that can be mapped to midi cc messages. So, I already have a python script using MIDO library (Mido - MIDI Objects for Python — Mido 1.2.9 documentation) that will listen to the clock MIDI messages from the JDXi and output CC 0-127 values that will go into the key lab cv out and sync the PO-133.

Also, The JDXi is a real monster in terms of sysex implementation but it doesn’t have 1% of physical controls. I use a Korg nano kontrol also connected to the MacBook and the same python library to read messages from buttons/knobs/faders and I have mapped it to Sysex messages to control the JDXi 4 channel mixer and ADSRs.

I read through the wiki and there are mentions to MIDI effects and custom modules. My goal here would be have a sort of custom midi processing effect where I could integrate what I just described. The dream scenario I visualize would be adding a midi effect to a track and have it process the midi input signals, do its conversions based on the python script (which could be configurable in the future) and output the midi cc/sysex messages to also configured midi outs.

Finally, here comes the question: Have anyone done something similar? How would I integrate my python script so it displays as I midi effect in Zynthian?

welcome aboard.
I can’t really help you regarding your problematic :woozy_face:, but consider my answer as a way to bump you thread because there are here for sure some users that could give some more constructive guidance.

LV2 is the way to go with things. It seems to becoming the default engine wrapper and then it’s just which category you fall into.

Another question this raises is whether the Zynthian should respond to Sysex messages as a alternative means of switching configurations.
I suspect along with adding complexity, there’s a price to be officially registered, like full membership with MIDI association. Some related and vaguely related links I encountered:
Manufacturer SysEx ID Numbers Database
List of MIDI Manufacturer IDs (unofficial source)
Some librarian utilities, commonly used to manage Sysex:
Sysexy a Perl/Tk-based MIDI librarian program for Linux
amidi is a command-line utility which allows one to receive and send SysEx (system exclusive) data from/to external MIDI devices
A MIDI 2.0 oriented utility for future use?:
cmidi2: tiny MIDI 2.0 UMP processor library

OK, thanks for the inputs. I am looking into how to create a LV2 plugin, there some nice examples here:

My pi4 arrived and I have Zynthian running in headless mode, I will now try to access the UI via VNC on iPad. Will update as progress is made. Thanks,

@wyleu started a thread about his adventures into LV2 plugin writing based on the book. I too have used or and the examples to inform my development of plugins. Maybe an exchange in a thread here may allow questions and answers to be exchanged to allow sharing of experience.

Apologies this died a death during the house move