MAP CC to Sysex using ctrlr?

Home Forums General Using Ctrlr MAP CC to Sysex using ctrlr?

Viewing 10 posts - 1 through 10 (of 10 total)
  • Author
    Posts
  • #114748
    sparkytupp
    Participant
      • Topics: 4
      • Replies: 9
      • Total: 13

      Hi

      I was wondering if the following was possible?

      1/ Use a cheap Midi controller with CC control only and connect to ctrlr as a controller device
      2/ Use ctrlr to translate the Midi CC to the appropriate Sysex message for my Alpha Juno
      3/ Send the Sysex to the alpha Juno whilst using the Alpha Juno as the Midi in device

      That way I could use the midi controller to control ctrlr, which would control the Alpha Juno

      Thanks

      Mark

      #114750
      JT64
      Participant
        • Topics: 11
        • Replies: 23
        • Total: 34

        Have no idea, but it seem like a great idea having CTRLR as a translator between a ctrlr keyboard and any type of midi device.

        The whole thing is probably much easier to implement in javascript though, a list of ctrlr inputs and a list of device functionality select both in list and a ctrlr surface is made on canvas with in and output connected and the necessary message translation done in javascript.

        That way you could create your own choice of control an editing parameter, from you input to output device and just need to save it as a preset.
        Basicly you create a list of functionality, listing the required button pushes on input device to reach functionality on output device

        A,A -> REVERB (Range 0-127)

        But someone would still have to “list all messages” to reach functions “and their range” for both input and output device to make connetion.
        It is just you build the ctrlr interface modular as a selection of inputs hooked upto to outputs and have them reach a parameter on your device with a range.

        I will do this for my equipment. Do not have that much to control though just a input Umx-490 controller keyboard, and output Korg N364 keyboard “but you can steer both sequenser and synth editing”. And also a Korg digital mixer 168RC both have so shitty interfaces worse then an 80’s VCR impossilbe to use but with a CTRL surface from javascript it will be after my design choice.

        But of course you could also do it for software.

        • This reply was modified 4 years, 10 months ago by JT64.
        #114751
        JT64
        Participant
          • Topics: 11
          • Replies: 23
          • Total: 34

          Of course there is nothing preventing that people could make software UI in CSS “to make it look nice, and use mouse keyboard on PC instead of hardware controller” on top of the modular approach. But doing interfaces using CSS not for me. Possibly pictures of synths and hotspot to connect input and output, but there is so much functionality hidden behind a myriad of button pushes on old midi gear. So i doubt it is useful for the output device but maybe as a visual for the input controller to see how it is hooked up to functionality names on the output device.

          #114752
          JT64
          Participant
            • Topics: 11
            • Replies: 23
            • Total: 34

            It would be easy to construct the input messages, already using 4 buttons and four pushes on a controller keyboard you have 256 “input messages” that can be mapped/linked to any functionality on the output device using combinations of button A,B,C,D.

            My UMX controller keyboard have 8 input buttons and eight parameter knobs.
            I get those will be handy editing control points for a wave like envelope, VCR, VCO and VCA.

            I have no idea how much editing functionality actually can be reached on my Korg N364 and what parameters that can be set over midi, but it will be fun to find out.

            #114754
            JT64
            Participant
              • Topics: 11
              • Replies: 23
              • Total: 34

              https://midisequenser.000webhostapp.com/
              I will use my attempt at midisequenser as start, right now it is just volume slides for notes “you can use mouse “PC keyboard 0-F”, but it could be knobs and other functionality reached by UI or controller keyboard.

              The big part is just to list all messages and their “range” to reach functionality “for a device” and select/ them hook them to each slider “or knob”.

              Most functionality will have “a range” for parameter others are just syex dumps, or functionality like start stop seequenser.

              But of course all the messages must be listed and connected to function to send them, and if you want a controller keyboard that setup will also need at least a “message list for its configuration of midimessages and knobs” but maybe a creator “input field” to create new list inputs also combinations of buttons pushes to reach functionality on the out device. So that basicly it, what is needed is two message lists sliders there could be functions using multiple UI sliders, knobs and controller knobs like envelope.

              “MIDI Controller” list MESSAGES for buttons knobs
              “MIDIE device” list MESSAGE->FUNCTIONALITY OUT “Could be editing message, dump message, steering message sequenser”
              SLIDERS,KNOBS “FOR PARAMETER ADJUSTMENT”
              HTML Input “MESSAGE CREATOR” for list combinations of button pushes “to reach functionality on device” Type A+B+C =Oscillator 1
              And a select list also for the connections made.

              So maybe my idea to use the canvas unnecessary, it will be sufficient with just a textarea where the connections you make are listed. I think that is how i will implement it.

              • This reply was modified 4 years, 10 months ago by JT64.
              #114813
              dnaldoog
              Participant
                • Topics: 4
                • Replies: 480
                • Total: 484
                • ★★

                I think it is possible – see attached panel. In Ctrlr MIDI Input will be your keyboard device.

                In lua you would have to write a series of if/else statements:
                if byte2ofccmessage==n then sysexmessage = f0 … f7 elseif … end
                for example.

                Let me know if you need any more help doing this.

                Attachments:
                You must be logged in to view attached files.
                #114818
                Possemo
                Participant
                  • Topics: 14
                  • Replies: 638
                  • Total: 652
                  • ★★★

                  Ctrlr should check incoming midi automatically. For this there is a checkbox “modulator does not react to value changes”. If it is unchecked the modulator should react to incoming midi messages that match the one of the modulator. Unfortunately this feature does not work on CC’s. I believe it somewhat works on sysex messages.

                  So – the only way is to make a Lua script as dnaldoog suggested. I would have done the script slightly different but dnaldoog’s one should work fine.

                  #114822
                  sparkytupp
                  Participant
                    • Topics: 4
                    • Replies: 9
                    • Total: 13

                    Thanks for all your replies, very helpful! Ultimately I’m hoping to run this in a raspberry pi, so could do the translation using ALSA tools and shell scripts.

                    Then it should be a case of making the modulators react to the incoming sysex. I will have a think and report back when I have a plan.

                    #114825
                    dnaldoog
                    Participant
                      • Topics: 4
                      • Replies: 480
                      • Total: 484
                      • ★★

                      Hi sparkytupp and Possemo,

                      Slight correction on my previous post. Actually It is byte 2 that is the CC number – Byte 3 is the value 0-127, but start from 0 when accessing byte values. Byte 0 is the status byte.

                      So in pseudo code it is:
                      if byte1ofccmessage==keyboard_cc_assignment then sysex_message = f0 … f7 elseif … end
                      not ‘byte2ofccmessage’.

                      byte1ofccmessage=midi:getLuaData():getByte(1)
                      val=midi:getLuaData():getByte(2)

                      See adjusted panel showing both incoming CC bytes picked up and displayed:

                      Regards,

                      Attachments:
                      You must be logged in to view attached files.
                      #114876
                      sparkytupp
                      Participant
                        • Topics: 4
                        • Replies: 9
                        • Total: 13

                        Brilliant, thanks. I will let you know when I’ve given it a try

                      Viewing 10 posts - 1 through 10 (of 10 total)
                      • The forum ‘Using Ctrlr’ is closed to new topics and replies.
                      There is currently 0 users and 67 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