MAP CC to Sysex using ctrlr?

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

This topic contains 9 replies, has 4 voices, and was last updated by  sparkytupp 1 week, 4 days ago.

Viewing 10 posts - 1 through 10 (of 10 total)
  • Author
    Posts
  • #114748

    sparkytupp
    Participant
    • Topics: 2
    • Replies: 2
    • Total: 4

    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: 3
    • Replies: 8
    • Total: 11

    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 2 weeks, 4 days ago by  JT64.
    #114751

    JT64
    Participant
    • Topics: 3
    • Replies: 8
    • Total: 11

    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: 3
    • Replies: 8
    • Total: 11

    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: 3
    • Replies: 8
    • Total: 11

    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 2 weeks, 3 days ago by  JT64.
    #114813
    dnaldoog
    dnaldoog
    Participant
    • Topics: 1
    • Replies: 163
    • Total: 164
    • ★★

    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
    Possemo
    Participant
    • Topics: 13
    • Replies: 541
    • Total: 554
    • ★★★

    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: 2
    • Replies: 2
    • Total: 4

    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
    dnaldoog
    Participant
    • Topics: 1
    • Replies: 163
    • Total: 164
    • ★★

    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: 2
    • Replies: 2
    • Total: 4

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

Viewing 10 posts - 1 through 10 (of 10 total)

You must be logged in to reply to this topic.

There is currently 0 users and 32 guests online
No users are currently active
Forum Statistics
Threads: 2,213, Posts: 15,610, Members: 55,378
Most users ever online was 12 on January 22, 2019 3:47 pm
Do NOT follow this link or you will be banned from the site!