Global Midi Channel for a panel

Home Forums General General MIDI discussion Global Midi Channel for a panel

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #71754
    blinkyt
    Participant
      • Topics: 1
      • Replies: 3
      • Total: 4

      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

      #71762
      Puppeteer
      Participant
        • Topics: 16
        • Replies: 185
        • Total: 201
        • ★★

        It 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.au

        #71764
        blinkyt
        Participant
          • Topics: 1
          • Replies: 3
          • Total: 4

          Hi 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.
          #71776
          human fly
          Participant
            • Topics: 124
            • Replies: 1070
            • Total: 1194
            • ★★★★

            am 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?

            #71779
            Puppeteer
            Participant
              • Topics: 16
              • Replies: 185
              • Total: 201
              • ★★

              You 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.au

              #71782
              human fly
              Participant
                • Topics: 124
                • Replies: 1070
                • Total: 1194
                • ★★★★

                ” 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?

              Viewing 6 posts - 1 through 6 (of 6 total)
              • The forum ‘General MIDI discussion’ is closed to new topics and replies.
              There is currently 0 users and 55 guests online
              No users are currently active
              Forum Statistics
              Threads: 2,495, Posts: 17,374, Members: 77,605
              Most users ever online was 12 on January 22, 2019 3:47 pm
              Ctrlr