Home › Forums › General › General MIDI discussion › Global Midi Channel for a panel
- This topic has 5 replies, 3 voices, and was last updated 6 years, 12 months ago by human fly.
-
AuthorPosts
-
March 25, 2017 at 11:05 pm #71754
Hi, first post here. I started using Ctrlr only recently when I came across a couple of panels for some synths I want to control.
The panel I am trying to use at the moment is Kiwi-3P-Editor-2.5.bpanelz (Roland JX-3P with Kiwi Technics Upgrade) and I have set this panel’s MIDI Output to the correct Port and channel number, in my case midi channel 3, since all other midi channels are in use by other hardware.
At first I was unable to get any of the panel controls to operate the parameters on the Kiwi-3P synth, but after checking the midi output using Tools > Midi Monitor and then looking in panel mode I noticed that the controls are sending a sysex formula
So I looked through the Kiwi-3P manual and checked the sysex data layout. For example, the sysex structure for the Kiwi-3P Filter Cutoff is f0 7f 7f 7f 60 01 00 b0 29 xx f7 where b0 means Continuous Controller set to midi channel 1. If I change this to b2 (midi channel 3) and close panel mode, then the cutoff control on the panel works correctly and changes the filter cutoff on the Kiwi-3P as expected.
I could change the b0 part of the sysex formula for every control on the panel to b2 which would work, but that would take some time, and if I need to change the Kiwi-3P to another midi channel I would have to update the panel yet again.
So I would like to find out if there is a way to just change that midi number to a global midi code so no matter what channel the synth is set to, the panel will respond. I tried bx, by, bn, xx but nothing made a difference.
And I thought that is what the Midi Tab settings were for and they would override the midi output for the panels, but that doesnt seem to affect some panels. But as a comparison I just found and tried the Matrix 6 panel today and that seems to work correctly even when my Matrix 6r is set to Midi channel 8 & 9, so I guess there must be a way to do the same for the Kiwi-3p panel.
So any advice or help would be greatly appreciated. Also great to see all those fantastic panels and all the hard work that has gone into them. So thanks for that
Cheers
blinkyt
March 28, 2017 at 3:41 am #71762It depends on how it’s programmed. If the sysex numbers are hard coded in LUA, then you’ll need to go and edit each string and replace the b0 with a variable such as midiCh, that you can set with another modulator.
There might be a way that this is handled in the GUI editing interface for the modulators, but from memory most of the Kiwi3P panel is programmed in LUA.
The Puppeteer
http://godlike.com.auMarch 28, 2017 at 2:55 pm #71764Hi Puppeteer, thanks for the reply. Yes I had a feeling it might be a bit more complicated than I hoped 🙂 I’ll have to read up a bit on LUA coding and how to best to do this. I did see that excellent Step By Step Guide written by Goodweather so will give that a proper read when I can. So yes replacing the b0 with a midi channel variable and then adding a modulator for that will take longer to do but once done it is there for whenever the Kiwi-3P channel needs to be changed 🙂
Thanks again and I will come back to this thread if I get any further on with that.
- This reply was modified 7 years ago by blinkyt.
March 30, 2017 at 10:12 pm #71776am also interested in this. it’s a shame there can’t be
another variable there. if you were using MIDI CC, it can
be done, you just link a combo to panel property midi channel out,
and to modulator value, and it works. probably also ok for
NRPN etc.that would mean midi message type: none, and ‘Called when modulator
value changes’: sysex message lua -?with a lua for every parameter?
with this variable..or would you have a single sysex implementation list, that the lua
fetches from by number/address, to constitute the message after the
header, substituting the midi channel byte?March 31, 2017 at 5:15 am #71779You may be able to do this using the global variables available from the front panel. I tried this early on, but could never get it to work for what I wanted to do.
So essentially set a global variable to the MIDI channel, and then include that in the SYSEX string from the GUI editor interface, rather than using LUA for each modulator.
The Puppeteer
http://godlike.com.auMarch 31, 2017 at 6:36 am #71782” set a global variable to the MIDI channel, and then include that in the SYSEX string from the GUI editor interface’
could you elaborate? 😉
do you mean that the sysex message box could still be used, and include a
custom signifier instead of the MIDIch byte in the header part of the message?ie: put in ‘ch’ (similar to ‘xx’ for the value variable, or ‘zn’ for checksum)
and have a method for interpreting that each time a sysex-carrying modulator
is called?must say, i do like the idea of a sysex look-up table, which would contain
all the parameter list, with the address and value part (in case MSB used
for some cases and not others?) – could be a neat way of doing it.anyway: so: using something like the lua method you showed on the other
MIDI chan topic, but added as ‘called when modulator value changes’ on
every modulator sending sysex? would Ctrlr interpret this before it sends
out any MIDI? -
AuthorPosts
- The forum ‘General MIDI discussion’ is closed to new topics and replies.