You probably want to map CUIA to MIDI events. You first should know what MIDI event is sent by your keyboard when you push the < and > buttons. You should try the “MIDI log” from webconf.
Ok, I can see MIDI events being logged for the < and > buttons, as well as the X/Y pad, and slide actions. How do I go about mapping these? Reading the wiki I guess it’s something to do with MIDI filter rules(?)… Is there any tutorial or step-by-step guide on how to do these things?
By the way, I can’t get in to the MIDI Devices page. Clicking on MIDI Devices I briefly see the Widi Bud Pro on both input and output side of the screen, but the window quickly returns to the MIDI Options screen. I don’t know why.
What MIDI evens and what MIDI channel? Is the MIDI channel the same used by key notes?
A screenshot from the MIDI log would help.
When you say “next preset” or “previous preset” i don’t now what you do mean. In zynthian we manage several concepts that must be understand :
snapshots => it’s a file with the full state of zynthian, including full configuration for all chains and processors, subsnapshots (ZS3s) and stepseq state (patterns and so on). Loading a snapshot is slow and could take several seconds depending of the processors to be loaded.
Snapshot loading can be controlled by CUIA and also using Program Change messages in the Master Channel.
subsnapshots (ZS3s) => It’s a partial state in the context of a given snapshot, specially depends of chains layout and processors. ZS3s are designed to be fast to change. When loading a ZS3, no processors are loaded/unloaded. It uses the chains and processors already loaded (snapshot context). ZS3s store processor state, routing config, MIDI learning, etc.
ZS3s can be loaded with CUIA and also assigned to Program Change numbers (no Master Channel required).
presets => Each processor can load/save engine presets. The loaded preset is part of the processor’s state and it’s saved/restored with ZS3s.
I mean that I want to select the previous/next sound preset of the current engine. When you create a new instrument chain you get to select an engine and a category. Then you are in a state where you can browse and try out different presets in that category simply by rotating encoder 4. That’s what I want to map to the < and > buttons on my controller.
Think a chain could have several processors. For instance, several MIDI processors, a synth processor and several FX processors. Each processor (potentially) have presets.
From your lines, it seem you want to change presets for the synth engine in a chain. It should work, but depending of the other processors in the chain, you could have side-effects.
OK! We have 4 new CUIAs for managing ZS3s subsnapshots:
/CUIA/ZS3_LOAD %i => load zs3 by index (integer)
/CUIA/ZS3_LOAD %s => load zs3 by zs3 ID (string)
/CUIA/ZS3_NEXT
/CUIA/ZS3_PREV
As the reset of CUIAs, they can be assigned to master channel keys from webconf->MIDI options. Also, they can be assigned to zynswitches from webconf->hardware->wiring.
Ahh! Currently this is available in vangelis branch only.
Master channel + note events => You can configure this from webconf’s MIDI Options. You can use MIDI Filter Rules to map other MIDI events to MIDI notes.
Load a device driver for your MIDI controller. If it doesn’t exist, you would need to write one
OP should definitely try disabling zs3 in webconf. I am sure zs3 is an excellent innovation but I found on my keyboard that by disabling it, program change was correctly received by synths (for cycling through presets). My understanding is the < > buttons send midi PC.