Module to connect/disconnect rack cables over midi

Im working on a project using Midi… The problem is: i want to send the same midi cc from different devices to control the same parameter. As i know, until know with vcv midi map, every midi controller must have its one midi map module. What i want is lets say send to channel 1, to midi control 100, the value 127 from device 1… but can i make the same for device 2?

So, from every device i send this midi message, it will control the same lets say potentiometer of vcv rack?

thank you

A parameter can only be mapped by one source (e.g. MIDI-Map device). Otherwise the devices would be fighting to change the same parameter.

You can’t do this directly. Use multiple MIDI-CC modules with different MIDI devices, set the same CC and combine the signals to you liking, like sum, max, min etc. Then apply the signal to the parameter of the target module with my µMAP module.

first of all im happy that you exact two answered my question because i know ill have the best answer.

To Andrew: i control the devices midi messages, so its 100% that the “group” of midi devices will not send the same message at the same time.

So, stoermelder, we have spoken before… I requested the feature in Intermix to midi control every input and output. Now after countless hours, im REALLY close to make midi controlled cables using also your module.

The only (and i hope last) problem im facing is this: the “receiver” of the cable is the one that sends the midi message… So if an output of midi controller A is go to input of midi controller B, the B is the one that will send the midi message for the connection. BUT, if i have a midi controller C, and the output of midi controller A is going to input of midi controller C the midi controller C has to send the midi message for the connection. Using INTERMIX, i send the input and the output midi message, and make the connection. I have one midi message for every output in my setup, so every “receiver” module can enable this.

I hope the whole concept is clear. Is any way to do the trick? Any modification to your midi modules?

edit: I guess, i get the idea with the multiple midi-cc but it is making the whole thing extremely complicated. Just think i have to take every module, and record every output

I find it very hard to follow what you are describing… maybe make a screenshot, video or provide a patch?

ok, i created a sample video… what you see is an output connecting to the inputs, so the controller, sends that this signal came to my input. But every output will have its own midi message. So, a) if the output signal come from another midi controller’s ouput, i want to send another midi message. or b) if i connect the output you see on the video to another midi controller, i want to enable the same thing in INTERMIX (to enable it with the same message). All controllers will share the same midi messages, for the all the outputs in the rack, thats the idea.

One possible solution to this is: you use only one midi channel, dedicated to this rack of midi controllers (lets say channel 16). If module A send “enable channel 16, control number 5” and “enable channel 16, control number 6”, make the intermix connection between the corresponding 5 input and 6 output.

If i the same output, to a module B it will be “enable channel 16, control number 20” (its another input) and “enable channel 16, control number 6” (its the same output…coming from the same module output.

The solution to all these, is to dedicate a channel common to all the available midi devices. Lets say shared channel 16. I know its a complicated thing, but i hope its more clear now.

here is my video

PS: the plan is that i developed it so it can handle more than 100 outputs… just image i have to midi map 100 outputs to every module…

I need to read what you’ve written several times before I fully understand it. What I understand right now is that you are trying to build a hardware interface for the modules in Rack… my first suggestion would be to use a MIDI merger before sending the messages to Rack but I’m not convinced that using MIDI CCs are a good idea how you want to use them…

Yes…i understand i’ve written it very strange…

Is this image make it more clear?

i also made this

can this be implemented?

It could really solve all my problems… If one channel’s midi mappings was shared between all arduino leonardo (the midi controllers), it could work perfectly. So, whichever arduino ill use, and send "enable Bleak’s output with midi control 100 for example, i would had to do the mapping only one time.

Sorry for insist, i’ve spent days for this, and i think im closer than ever now:P

Sure, it could be implemented but I’m afraid it won’t be useful for anybody else. You can try something I described in the first place but this would be a very dirty and ugly solution…

Wouldn’t it be easier to implement some sort of “merge bus” between the Arduinos and hook up only one to your computer as a single MIDI device which sends all the messages?

First of all thank you for your time…you really put a lot of effort to understand my project, and i think you really do know. Yes, its is not so useful to anybody i guess…but either was the intermix thing i asked :stuck_out_tongue: But if you make it, its a matter of hours for me to complete a project that enables full vcv rack controllers with knobs and wires…

From the photo you sent i believe this can theoretically work…BUT imagine if you have 50 modules, with lets say 2 outputs each…its like 50 more midi-cc modules and 100 gators… (not to mention the INTERMIX cablings)…

The arduino merger COULD be a good idea, but no, it is not i guess… every arduino connect straight to pc as a midi device. if you connect a middle arduino you will have to use again more midi-cc modules, have more latency, use more devices, wiring etc…

I guess the solution to “hack” midi-map or midi-cat would be much easier. For example a button to make a cc learn universal to all midi controllers for this channel…

I agree, all these suggestions should be considered as workarounds at most, far from elegant. I also think you won’t get happy connecting 50 USB MIDI devices to your computer even if you find a working solution within Rack.

You might know that creating cables by a module is possible using unstable API. How could a module work that does what are you trying to accomplish with INTERMIX right now?

I guess, connecting some big usb hubs could make the trick…i hope vcv rack doesnt have restriction to how many midi devices you have.

Sorry i dont understand the second sentence. If i have 2-3 midi controllers i can make the whole think work with INTERMIX with a solution as you suggested… the whole problem is a cannot add two midi maps to the same thing(lets say knob)…right?

What I’m suggesting is, how would a module work that creates connections between modules in Rack? I don’t think using INTERMIX for your scenario will end up at anything usable considering the number of modules you are talking about.

I dont understand… you ask me how different modules (midi controllers) can create connections in VCV rack?

Intermix could work fine (you can see that in my video) but a bit ugly…ultimately you wouldnt care for ugliness because you would connect only the controllers without looking the screen…

No. Consider I’m willing to implement a module (not saying I do right now) which can create or remove cables between modules in Rack, even if it needs to use some unstable API. How would such a module look like? How would it work?

I’m trying to solve your initial problem without using a bunch of workarounds like MIDI mapping or INTERMIX. I suspect your current approach might work at some time for a few modules but not that many like 50.

Ok, i get it. First of all i want to note that i played around and i find your Gate, midi-cc workaround to be a real solution, although, very complex. I calculate that i need 1 midi-cc per midi controller and 1 gate and 1 μMap per output. I guess i can make this work for 10-15 modules… (i guess i can edit the presets to make the mapping more “automated”)…

The thing is that when i was developing the arduino -lets say communication protocol- to make them understand from where the cable is coming i spend a lot of time to overcome some limitations and expand it. Now it can successfully recognize ~120 different outputs.

Ok, about the module: can you midi map straight to a input/output?

if yes, the best solution for my implementation is to bind a midi control to a specif input or output. AND all these binding to be shared across the midi devices of a specific channel. Then: when midi device A send: "channel 16, cc 100, value 127,

channel 16, cc 101, value 127,

channel 16, cc 101, value 0,

channel 16, cc 100, value 0" (like intermix)

it will connect the output which is mapped to cc 100, with the input which is mapped to cc 101.

When midi device B send: "channel 16, cc 100, value 127,

channel 16, cc 103, value 127,

channel 16, cc 103, value 0,

channel 16, cc 100, value 0"

it will connect the output which is mapped to cc 100 (the same output as before), with the input which is mapped to cc 103.Preformatted text

How did you do it? My first idea would be to encode every port of every Arduino with a number and then constantly outputting this number in some sort of binary code a few bits long. If a connection is made the receiving Arduino needs to listen for a short period of time and then decode the number of the sending port and Arduino…