Jump to content

MIDI Output Enabled limit


Recommended Posts

I am working on a large orchestral template with quite a lot of instruments (Kontakt 7) in the synth rack. Most of the Kontakt instances have multiple patches in them and each of those patches is set up with a different MIDI channel. I've got articulation maps set up to change MIDI notes into the appropriate channel and use keyswitches to change articulations withing each patch. The problem is that I need to be able to easily change my keyboard's MIDI channel and the MIDI channel of my MIDI controller (for expression and dynamics faders) to address the patch in Kontakt because Cakewalk doesn't seem to make the translation of incoming MIDI data on the track - only notes that are already in the track get translated through the selected articulation. I found a simple MIDI virtual "instrument", midiChs, which will change the incoming MIDI channel numbers and I set it up with MIDI Output Enabled. For each input on a MIDI track, I can then (in theory) select the output from the midiChs plugin and have the external MIDI inputs routed through that plugin. Unfortunately, this didn't work for me. The problem is that there seems to be a limit on the number of VIs that can have MIDI output enabled. If I deleted instrument channels, eventually it would start working and I could assign inputs to the output of the midiChs. I had left the checkbox set when creating the instrument channels to enable the instruments to enable MIDI output although it isn't necessary. I am going through and unchecking the enable (on the plugin's VST dropdown menu) and this solves the issue, but this might be a bug that needs to be addressed. If it's a "feature" then it should be in the documentation that there is a limit on the number of MIDI outputs that can be enabled on a project. Coincidentally, it starts working correctly when the number of MIDI inputs plus the number of VIs with the output enabled is equal to the size of the input pop-up menu. That is, the pop-up menu exactly contains all of the MIDI inputs without having to be scrolled, so this could very well be a UI issue.

Sorry for the novel.

Link to comment
Share on other sites

1 hour ago, Michael Robertson said:

The problem is that I need to be able to easily change my keyboard's MIDI channel and the MIDI channel of my MIDI controller (for expression and dynamics faders) to address the patch in Kontakt because Cakewalk doesn't seem to make the translation of incoming MIDI data on the track - only notes that are already in the track get translated through the selected articulation.

I'm not completely understanding what you're saying here. When you have multiple MIDI tracks driving a muti-timbral synth, you set a forced output Channel of each MIDI/Instrument track to match the channel associated with each instrument/patch in Kontakt, and that channel assignment will dynamically re-write all MIDI to that channel whether it's live input being echoed/recorded from your controller or playback of existing MIDI. There is no need to change transmit channel on your controller; it can always be channel 1, and all your track Input port/channel assignments can be channel 1 of the port your controller is on. Whether you're playing back keyswitches in existing MIDI or sending them from your controller in real time, those will also be re-channelized to affect the appropriate instrument/patch in Kontakt. If you're playing/rehearsing without the the transport running, whatever articulation/keyswitch was last sent to the Kontakt instrument will persist until a new one is sent, either from your controller or by starting playback of an existing track with articulations on it.

Link to comment
Share on other sites

I do not use articulations and I have only used multitimbral synth modules with Cakewalk (i.e., hardware).  Some of what I see in the initial post sounds like things I might find useful if I ever found a multi-timbral software synth that was as easy to use as hardware.  I am chiming in with questions and comments about this discussion and what I know in hopes that it will help me do some new things down the road.   

Quote

. . . Cakewalk doesn't seem to make the translation of incoming MIDI data on the track . . . .

 Is this part of Cakewalk's non-destructive recording of MIDI data? 

9 hours ago, David Baay said:

When you have multiple MIDI tracks driving a multi-timbral synth, you set a forced output Channel of each MIDI/Instrument track to match the channel associated with each instrument/patch in Kontakt, and that channel assignment will dynamically re-write all MIDI to that channel whether it's live input being echoed/recorded from your controller or playback of existing MIDI. 

 Several years ago (on a previous computer), I created an orchestration template where I set up tracks for midi channels for a whole bunch of hardware synth modules (at least 4, maybe more) each capable of receiving midi data on up to 32 channels.  So, I know it can be done; just not sure about using articulations.

10 hours ago, Michael Robertson said:

I've got articulation maps set up to change MIDI notes into the appropriate channel . . . .

Is there a tutorial or set of instructions somewhere that shows how to channelize MIDI notes using articulations?

Edited by User 905133
grammatical correction
Link to comment
Share on other sites

6 minutes ago, User 905133 said:
11 hours ago, Michael Robertson said:

I've got articulation maps set up to change MIDI notes into the appropriate channel . . . .

Is there a tutorial or set of instructions somewhere that shows how to channelize MIDI notes using articulations?

You can see in the Transform Existing MIDI Events section of the screenshot from the Ref. Guide that you can change the channel of existing MIDI events. I guess this is what the OP was referring to. Assigning a forced output Channel to the track should eliminate the need to do this transformation, and will operate on live input as well as existing MIDI.

https://legacy.cakewalk.com/Documentation?product=Cakewalk&language=4&help=EditingMIDI.54.html

  • Thanks 1
Link to comment
Share on other sites

21 hours ago, David Baay said:

I'm not completely understanding what you're saying here. When you have multiple MIDI tracks driving a muti-timbral synth, you set a forced output Channel of each MIDI/Instrument track to match the channel associated with each instrument/patch in Kontakt, and that channel assignment will dynamically re-write all MIDI to that channel whether it's live input being echoed/recorded from your controller or playback of existing MIDI. There is no need to change transmit channel on your controller; it can always be channel 1, and all your track Input port/channel assignments can be channel 1 of the port your controller is on. Whether you're playing back keyswitches in existing MIDI or sending them from your controller in real time, those will also be re-channelized to affect the appropriate instrument/patch in Kontakt. If you're playing/rehearsing without the the transport running, whatever articulation/keyswitch was last sent to the Kontakt instrument will persist until a new one is sent, either from your controller or by starting playback of an existing track with articulations on it.

Thanks for your response!!

Correct, but I am using one MIDI track to drive one multi-timbral synth for each instrument. The articulation maps allow you to not only insert a keyswitch, but also convert the MIDI channel on all events under the articulation to a target MIDI channel. I am doing all this due to the screwy way that Spitfire Audio has their patches set up for the Studio Orchestra libraries. For instance, for strings I want to separate longs, shorts, pizz/col legno and tremelos/harmonics to 4 separate audio outputs for each instance of Kontakt. I've set Kontakt up to have 4 stereo audio outputs: Longs, Shorts, PizCol and FX. Unfortunately, there is no single patch that has all articulations, so I have to use 1, 2 or 3 different patches for each type of sound to get all of the articulations. For instance for Violins 1 (8 players) I have a legato patch (longs - 2 articulations), a core techniques patch (longs - 8 articulations), a decorative techniques patch (longs - 2 articulations), a core techniques patch (shorts - 4 articulations), a core techniques patch (pizz/col - 3 articulations), a core techniques patch (trem/harm - 2 articulations), a decorative techniques patch (trem/harm - 13 articulations) and an FX patch (trem/harm - 11 articulations). Each of these patches is assigned to its own MIDI channel, in this case channels 1-8. When the articulation is encountered as it is playing, it sends the keyswitch on the appropriate MIDI channel, then sends all events to that same MIDI channel. As you can see, it's insanely complicated, but what I am trying to do is boil it all down to one MIDI track for the 1st violins feeding one instance of Kontakt using several dozen articulations which I have set up in an articulation map to try to simplify the situation when I am attempting to be creative and not think about all of the routing. When using my AKAI MPK88 keyboard, I can either select the articulation directly in the patch or use a keyswitch then set my output channel on the keyboard to use the correct MIDI channel (which is kind of awkward to do). The real problem is the new MIDI expression controller (3 faders) that I bought that only transmits on channel one. My solution is to use this midiChs plugin that I found to translate the MIDI channel. Attempting to use it is where I ran into the problem with the input assignments to MIDI outputs on the virtual synths. I hope this explains it.

Link to comment
Share on other sites

Ouch. I might have to re-read that few times, but it seems to me it would ultimately be simpler to have a separate track per patch with forced output channels and leave both your keyboard and your expression controller on channel 1. When editing in the PRV you can show all the tracks together, and it might even be helpful that the different patches have different track colors. But if you use the staff view, separate tracks would obviously not be ideal. And it's going to drive up the total number of tracks in a template that's probably pretty huge already.

I'm thinking a workable variation of your current setup would be to have one "Master MIDI IN" track with its Input set to Omni on which you set whichever forced output channel is needed at the moment. And that track outputs to a plugin that echos the MIDI for all the individual instrument tracks to receive with their respective Input channel restrictions. Possibly your existing "midiChs" could be that plugin but I like using CodeFN42's free MIDIChFilter for this purpose. Some plugins of this type introduce a slight MIDI delay, but MIDIChFilter does not.  In this case, it wouldn't be changing the channel, just acting as one-to many MIDI "patch point" for the instrument tracks. 

Edited by David Baay
  • Like 1
Link to comment
Share on other sites

Ditto on the OUCH!

I may have tried that way about 15 years ago, but for the last 10 at least, I've just put in an instance of the VSTi for each articulation, and lately (5 years) I've wrapped each one (using the Kontakt engine) in Komplete Kontrol. Ditto if it's Spitfire Opus, Chamber Strings, Albion, EW Hollywood Strings, etc. Even LABS can have an instance for each articulation if needed. They don't take any more RAM if running DFD, and I have a tendency to score a section and then freeze it to free up resources.

To each their own, I guess.

Link to comment
Share on other sites

7 hours ago, OutrageProductions said:

Even LABS can have an instance for each articulation if needed. They don't take any more RAM if running DFD,

I'm very much a midi newbie, so this whole thread is somewhat beyond me, but I do use LABS so ..... What's DFD ?

Link to comment
Share on other sites

At the moment, Articulations aren't applied to real-time MIDI input. 

This is something we can look at for the new Sonar, but even if we did, it would only apply to Transforms (i.e.  the "Transform Existing MIDI Events" section), and not Triggers (the "Generate New MIDI Events" section).  It would apply to any "active" articulations at the Now Time.

This shouldn't be a huge issue, as clicking the articulation will fire off any triggers in any case.

It's likely this would have to be an "opt-in" for each track via Track Properties.
 

  • Thanks 1
Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...