I’m using a hardware sequencer with a Roland TR8s and unfortunately the TR8s lacks midi control of its mute/solo buttons. My hands are going to be busy doing other stuff so I need to control the TR8s remotely. The 11 channel volumes are controlled by different CC values on channel 10, not CC7 on different channels. I made a pipe that takes CC13 values 0 and 1 and transforms it to CC24 0-127 so this acts as a mute for the bass drum, I then did it for the rest of the channel CC values and the result is that I can mute the entire TR8s with one toggle of CC13 0/1.
Obviously what I’m going to do now is remove the bass drum only from this setup and I have a bass drum solo function. 10 pipes to solo the bass drum. If I replicate this setup another 10 times, making sure I remove a different instrument from each repetition and increment CC13 correctly, I should end up with an entire channel solo solution that can be triggered by a single track of CC13 at different values in my sequencer.
80 pipes seems like a lot, am I missing a solution of sublime elegance?
If you need to remap CC13 val 0 to CC24 val 0 and CC13 val 1 to CC24 val 127 you should only need one pipe with one cc remap object for this, right? and then for each drum, you should just have to add another cc remap object in the same pipe, but with different CC mappings for the outputs in each cc remap object.
I may have missed out on something here, but if I had to do what you describes, map cc13 0 and 1 to cc24 0 and 127, I’d do like this (check file).
Giedrius, have I understood the “Map” button correct in this remap object? I know I’ve mentioned this before, and I still think it’d be great to have a field for this in addition to the button, so one doesn’t have to connect any hardware to program this.
It’s based on Transform pipe’s Replace and Insert After/Before parameters to produce the multiple messages. First the CC we’re interested in (CC #13 on Ch. 10) is filtered, then it’s rescaled to 0 - 127, then the first transform pipe converts using Replace to Note On with same data bytes. This is necessary in order to avoid an explosion of CC messages that could happen if Transform pipes are multiplying CC messages, and the ones further down the line do the same. Then the next 10 pipes produce CC messages based on that temporary Note On message, setting CC# to the constant Argument 1, CC value to Note On velocity, using Insert After. The final Transform pipe produces the last CC message, using Replace mode, to get rid of the temporary Note On message.
Edit: A Type Filter pipe is missing to the right of From A - it should filter out everything but MIDI CC messages, otherwise, note on messages would interfere with this.
Though, question, in my template, I could basically do the same by copying the cc remap object and just change the values of the outgoing cc for each copy of the object, all in the same pipeline, right?
Which then leads me to, why, if I want to copy an object, can’t I do that in the pipeline? I can “copy entire pipeline” and then move the object to the initial pipeline BUT when copying an object with mappings, WHY are the mappings not there anymore?
I find this system with the “MAP” button a big mystery and it’s making things quite unclear. It would be a blessing if we could access the mapping parameters, without having to do an actual mapping, and set them manually.
I often work “in theory” when creating pipelines, midi implementation chart in one hand, and my needed workflow in the other, without any hardware connected, same as I do with my midi controllers (two Novation SL MkII), and then upload the templates when it’s ready. This way I don’t need to sit in my keyboardlab connected to the hardware, but can do my pipelines, templates, whatnot, over a coffee at the balcony…
The CC remap would modify the message as it passes through, but it wouldn’t produce multiple copies of the message as Transform can do.
The pipes within a pipeline can be copied by holding down ctrl/cmd and dragging it. The mappings won’t get copied there though either, as we assumed users will want to map a different control to a different copy of the pipe. So it’s easier to just map the new (or same) control rather than each time to clear all the mappings from the pipe.