So; CC 71, [127], holds the sound on channel 1 and simultaneously, routes future input to Channel 2, Resulting in the sound assigned to channel 2 being played over the held sound of channel 1.
ON Pedal up, cc 71[=1], the process, and returns to “normal”; in A, ch 1, routes to out vA channel 1
Virtual port 1-Ch filter Ch1-Sustain (mapped to CC71)-Output Port
Virtual port 1-Ch filter Ch2-Sustain (mapped to CC71)-Output Port (Map bypass to CC71)
Edit: I forgot about the delay needed for the bypass on the CH2 pipeline. That’s all that needs to be figured out really. Actually might need to rethink the dispatcher because that’s only going to separate notes. Maybe that’s desirable but what if you want chords on different channels?
Thank you, both of you for responding!
Trying out your patch, G:
Pressing cc71 [confirmed by monitor], ch 1 does not sustain, and ch 2 is not enabled on pedal down.
I tried removing the physical loopback currently on port D [from our last patch], and that made no change.
hmm…
The preset I posted expects MIDI input coming in at MIDI IN A, and send output to MIDI OUT A. CC71 is expected at MIDI IN A, Ch. 1. Please make sure these expectations are met.
There’s too many moving parts - your preset looks quite different from what I posted.
Let’s take this one step at a time.
Please open my preset as-is, and hook up your MIDI controller’s output to MIDI IN A, and it will produce notes on MIDI OUT A, on Channel 1 when CC71 Ch.1 value sent to MIDI IN A is below 63, and on Channel 2 when CC71 Ch.1 value is above or equal to 64. Whatever notes that were still held at the time CC71 Ch.1 went above or equal to 64 will be held, until the CC falls below the threshold again.
Please keep the center Sustain pipe selected so its events are monitored, and if it does not work the way I described, please do “Settings → Export as CSV…” in the MIDI Monitor pane and attach the .csv file here for me to take a look.
If it does work, we’ll see how to integrate it into something bigger, according to your requirements.
Midi Monitor confirms what you have said. However, my sounds are in the computer, not Out A…
I tried switching the two outputs to virtual A, and although I could still see the events in midi monitor, Nothing appears at my host, Digital Performer. So there is no sound.
So my current question before we proceed is : how do I make the output go to channels one and two, virtual A, so I can confirm things work, and we can proceed.
In case you haven’t rectified this already, you don’t have any ports going out the MIDHUB. All I see in your screenshot is virtual pipes, meaning that no data will ever leave MidiHub. The ports that were originally DIN A needs to be a USB or Din Output that you will reference in your DAW.
Thanks for checking in Joey! Attn:R-
I replaced to Midi at the end of the second and third line,with to USB and it works!!
…BUT…ONLY cc71 should enable sostenuto- currently ANY cc seems to do the same thing. I use breath control ,cc2, so this is havoc. How do we make this patch specific to cc71 Ch1 Sostenuto Ch2 switchFOR MAC.mhp (445 Bytes)
i’ll take a closer look at it and see. More than likely you just need to be sure the transform pipe isn’t transforming ALL CCs to CC71.
Edit: I see where the discrepancy is. Go to the transform pipe and set the work with CC number, high and low, to whatever CC you want to control your sustain with.
YES!!-that did it. Thanks much Joey!!
Next to combine with my 1st patch[attached]
which includes:: cc 69 inverts the notes, CC 66 switches to out B of midi hub, cc70 is straight sustain 11:30sus worx.mhp (1.4 KB)
How to get these to not interfere with each other…
If you a have plenty of room, it is better just to have separate pipelines for your other desired functions.
This isn’t exactly how you would accomplish what you want to do but this is how you would add functionality. You have to take care of how you are filtering or allowing messages to pass. To test, go through pipe by pipe. Send your messages by pressing a key or twisting a knob, then move on to the next one and do the same.
Follow your messages all the way down the chain. Then you can figure out if you need to filter out messages or if they are fine going through. Don’t forget that the transform pipe can also drop specific messages so if you need something to vanish out of the chain you have that option.
Basically for your added functionality use virtual pipes to a new pipeline and do your remaining transformations there. The LFOS in the pic are just placeholders.
It goes left to right then to the final port on the line.
If the final pipe on the line is a virtual pipe then it will go to a corresponding virtual pipe at the start of another line then go left to right towards the final port in the line. Example is Virtual A at the end of the line MUST go to Virtual A at the start of another line.
Just to clarify on your question how not to have things interfere. One of the first things you do is make sure any pipes that CAN target specific CC or channel DOES affect specifically that channel, CC, Note or Value. When you are setting up your transform pipes always specify which message and channel to “work with”. You can even fine tune it with the “work with value” range.
When doing rescales, be sure to set the message “ID”. Doing these makes it harder to get in a bind when you get to the end of your patch and you have a bunch of unwanted messages.
Ha, ha -no need to save pipes:
Here are the patches I want to integrate.[some explanation under description}.
I really don’t know where to start. Despite the best of your advice. Perhaps when you get a chance…