zynthian-ui icon indicating copy to clipboard operation
zynthian-ui copied to clipboard

ZynSeq: Add configuration for feedback tallies

Open riban-bw opened this issue 4 years ago • 4 comments

Is your feature request related to a problem? Please describe. ZynSeq can send tallies of the play state for each sequence as a note on with state encoded as velocity. The codes are currently hardcoded for Akai APC. It would be advantageous to allow these to be configurable for different hardware controllers.

Describe the solution you'd like Ability to define the velocity values for each state. Ability to define note on / note off for states. (Only if a controller uses this.)

Describe alternatives you've considered Transformation using a LV2 plugin.

Additional context Need to find out what codes different controllers use. If they all use the same or are configurable then this feature may not be required.

riban-bw avatar Feb 20 '21 21:02 riban-bw

+1! (Yes Please!)

My MPD32 is programmable, but not all controls are mapable to notes. I am using MIDI filter rules to map CC to NON, which means I can now use my controller to trigger ZynStep pads, but I lose visual feedback as I have to use momentary actions as the toggling off sends a CC (and mapped to NON) at 0 velocity which has so far remained impossible to map to something that ZynStep will respond to.

Just being able to set the NON trigger on/off velocities of a pad (so that zero velocity notes are/can be registered) would significantly improve my workflow.

I know that doing this would upset exclusive pad groups, but more often than wanting exclusive pad groups I find myself mapping MIDI channels so I can layer the notes on a channel.

Exclusive pad groups means duplicating the entire padding and adding / subtracting notes rather than simply toggling patterns, which in some ways means a more complete and archivable song (as your patterns are complete, as they were when recorded/played live) but I find the flexibility of being able to bring in different layers on instruments like drum machines a great way to add subtle variations, and have never actually used exclusive pad groups.

Edit: aaaah, I have misunderstood this ticket. I now see your suggestion in this ticket will keep visual feedback on controllers like the MPD232 in sync (including pad exclusion groups) but will not help with the MPD32 or other controllers that don't accept feedback. Apologies.

gr0k-net avatar Feb 22 '21 07:02 gr0k-net

I'm working on device filtering and thinking about the general problem of having "device maps":

  • Device-maps should be bi-directional and include input and output mapping.

  • Auto-detection is not too difficult. It could be done by simply including an ID string on the mapping file, that would be matched with the "device alias" from Jack, so the right map could be loaded.

I'm still thinking about the format and methodology for generating the mapping files. I hope to have "something" to test in the next days.

Regards

jofemodo avatar Feb 22 '21 10:02 jofemodo

That would be incredible @jofemodo!

Being able to manually select device maps would make "dumb" controllers like my MPK Mini MK2 that can't be mapped on the fly (and only have four program modes) far more useful, as I could make a make a few different maps and quickly route midi channels via the Zynth, allowing me to control all of my instruments without having to carefully plan, pre-program, or manually swap instrument channels - which turns out to be quite time consuming when there's instrument control mappings, sequence triggers, and in my workflow, often MIDI routing layers so I can send different patterns to single instruments instances.

Having typed this out now, I could probably already do (at least some of) this with the existing MIDI mapping and MIDI profiles on the Zynth?

Thankfully, since a friend offered me their MPD32 to use, I haven't faced this limitation, but having more precise control over mapping specific things like velocity would fix the lack of visual feedback on my controller (providing I don't use exclusion groups) and being able to quickly select profiles per device on the fly would have me using my MPK far more often.

Thank you again to both of you, not only am I loving my Zynthian, but also the community behind it. I had fun with Zynthian before even buying the hardware, and exponentially more so after I did. But since then, despite only been a few weeks (!!) it has gotten even better again, almost on a daily basis. Thank you both for all of your hard work!

gr0k-net avatar Feb 22 '21 11:02 gr0k-net

Thinking about this some more and this seemed like the best place to air thoughts on the subject, apologies if this is best left for the forum.

It was silly of me to ignore stage mode, it does make what I called "dumb controllers" like my MPK Mini much more useful than I first thought, turns out it was I that was dumb haha! (No surprises!) Having per-controller profiles would still be very useful tho, as right now at least the MPD32 is my primary input. Even having the ability to assign stage / multitimbre mode per controller would allow for an incredible amount of flexibility.

On a related note, I have just got a brand new (and allegedly much faster) SD card and installed the stable image from 2020-09-05, then updated. Starting with a fresh Zynthian image I was hoping to re-map my controller to using the free notes on channel 16 instead of channel 15 as I was using previously, thereby freeing up an entire MIDI channel. Turns out there was a reason I was using 15 instead of 16, as mappings (in WebConf / Interface / MIDI Options -> Advanced View / midi filter rules) on channel 16 appear to be ignored.

I know that in the mapping codes terms CH#0 = MIDI Channel 1 so MIDI Channel 16 = CH#15, but the Zynthian seems to ignore mapping requests on channel 16 (or at a guess, whatever the master channel is). I have tried specifying CC and note properties, and doing global mappings, for instance:

MAP CH#15 CC => CH#15 NON

This is a verbose way of saying that per-controller assignments for multi-timbre/stage mode, being able to map by velocity, and being able to map other controllers to the master channel might be an easy way of adding a great deal of flexibility.

Edit: Apologies, I know there is no easy way when it comes to this stuff. I can imagine there being a million little details I have no idea about that need addressing to make this work.

gr0k-net avatar Feb 22 '21 13:02 gr0k-net