Articulation Maps: route CC data to MIDI channel

Discussion of Digital Performer use, optimization, tips and techniques on MacOS.

Moderator: James Steele

Forum rules
This forum is for most discussion related to the use and optimization of Digital Performer [MacOS] and plug-ins as well as tips and techniques. It is NOT for troubleshooting technical issues, complaints, feature requests, or "Comparative DAW 101."
dewdman42
Posts: 1217
Joined: Thu Jul 21, 2005 10:01 pm
Primary DAW OS: MacOS
Contact:

Re: Articulation Maps: route CC data to MIDI channel

Post by dewdman42 »

well its just a matter of coding, of course MOTU can do it. If I am able to do it with a MIDI script, they can do it even easier inside DP.

It can get a little more complicated then some may realize. You can have the possibility of different notes of different articulations being played or sustained at the same time....and if re-channelizing is done, then that means you could have a source track where the notes are being sent to different MIDI channels...sometimes more than one MIDI channel at a time and sometimes not, etc.. But in all cases the MIDI expression events need to also be sent to those channels where notes are being played and sustained. In addition, expression events need to CHASE every time a note comes. So for example, if MIDI channel 2 hasn't had a note for a while, because notes have been going to MIDI channel 4...then suddenly there is a note on MIDI channel 2, then expression events need to chase to MIDI channel 2 before playing that new note...and any additional expression that happens while its sustained need to continue going there, etc.. Its a fairly intelligent process that does require some thought and process...but but it can certainly be accomplished if MOTU clues in to the need.
5,1 MacPro 3.46ghz x 12 cores,96gb, Monterey (OpenCore), Lynx AES16e-50+X32
dewdman42
Posts: 1217
Joined: Thu Jul 21, 2005 10:01 pm
Primary DAW OS: MacOS
Contact:

Re: Articulation Maps: route CC data to MIDI channel

Post by dewdman42 »

Here's a heads up, I have implemented a PlugNScript script for handling this scenario in DP. You can find the script here:

https://gitlab.com/dewdman42/Channelize ... Chaser-PNS

Unfortunately at this time it will require you to buy PlugNScript in order to use this script, it is possible to download a demo version of PlugNScript in order to test it out: Find it here: https://www.bluecataudio.com/Products/P ... ugNScript/

In the future I may be able to export this script in a VST format that would not require you to buy PlugNScript, not to mention it would just be cleaner to use and setup. But there are licensing complications I am still figuring out unfortunately. Otherwise I would just implement it with JUCE and be done with it, but definitely a license problem there.

In any case, the above PNS script will definitely handle this particular challenge for those needing to channelize their articulations using DP's articulation map, even though it doesn't currently support channelizing the expression data.
5,1 MacPro 3.46ghz x 12 cores,96gb, Monterey (OpenCore), Lynx AES16e-50+X32
andrewfez
Posts: 10
Joined: Tue Jan 31, 2017 8:58 pm
Primary DAW OS: MacOS

Re: Articulation Maps: route CC data to MIDI channel

Post by andrewfez »

Was this oversight ever fixed in any of the latest versions of DP11?
dewdman42
Posts: 1217
Joined: Thu Jul 21, 2005 10:01 pm
Primary DAW OS: MacOS
Contact:

Re: Articulation Maps: route CC data to MIDI channel

Post by dewdman42 »

I totally forgot that I made that PNS script! I need to test it out again to verify that it actually works...but I guess it must have worked or I wouldn't have shared it.

Anyway, MOTU did add some partial support for this into DP11 at some point...it was in a follow up update to DP, not in the initial release of Articulation Maps...

However, the last time I tried it, it was still slightly problematic in two ways..which my PNS script handles slightly better. I have added a so called "DP Mode" to the EventChaser script so that it can make up for deficiencies in DP's articulation manager in how it handles channelized articulations:
  1. Chasing - DP is not chasing expression data. What I mean by that is whenever a note of a particular articulation comes along, let's say it happens to be MIDI channel 7. the current running value of each CC, PB and AT that has happened for a while needs to also be inserted in front of the NoteOn on Channel7...to chase the current running expression value of each of those. DP is not doing that, which means you will find some odd behavior where the curves are not quite on to the destination MIDI channels.
  2. Note Release. In MIDI there is a NoteOn and a NoteOff, with the note sustaining in between. usually when the NoteOff comes through, there is still a short period of time or sometimes long period of time, where the sound goes through a "release". it doesn't cutoff the sound suddenly, it releases it with an envelope. The problem is that when you're using ArticulationMap to channelize MIDI events to different channels based on articulation, it does a good job of also channelizing all CC events to the new channel, but as soon as the NoteOff comes through, it instantly stops channelizing the CC's and so if you have any CC expression, PitchBend, etc that needs to continue affecting the release of the note.it will not be channelized by DP's articulation map...and could be a problem. the CC channelizing needs to continue for a bit of time beyond the NoteOff.
  3. Poly-Articulation chords - If you have a chord that has different articulations on each note of the chord (each note on a different MIDI channel), then DP doesn't properly channelize CC's to them all, only to the last note of the chord. This is an unusual situation which most people will probably not encounter, but still it should be handled.
Last edited by dewdman42 on Wed Dec 27, 2023 8:17 am, edited 2 times in total.
5,1 MacPro 3.46ghz x 12 cores,96gb, Monterey (OpenCore), Lynx AES16e-50+X32
andrewfez
Posts: 10
Joined: Tue Jan 31, 2017 8:58 pm
Primary DAW OS: MacOS

Re: Articulation Maps: route CC data to MIDI channel

Post by andrewfez »

Okay thanks!

I just now realized the OP was trying to work with Vienna Ensemble Pro. I didn't catch that the first time I read the thread.

I'm just in research mode as to which DAW to install on a new computer, for which I just ordered parts to build, the other day. I've been using DP5 for quite some many years, and was thinking to just buy the upgrade to 11.

I write classical so anytime I can just have 1 MIDI stem per instrument, that helps me make the mid file for the notation program after the DAW work is done. And it helps make the in-house DAW score clearer to reference.

I don't know if it makes a difference, having the VEP as part of the chain, but I was mostly concerned about being able to control dynamics, expression, and vibrato for multiple Kontact instances of say, violin 1 (for example Spitfire Symphonic Strings, and Spitfire Chamber Strings for divisi's, etc.) on the same instrument track.

Sounds like this is mostly working now, but switching from one Kontact instance to another may require super precise CC data to be drawn right at the switch. Or if it's not doing what I want, I'll just do things old school and use multiple tracks.

Off topic but I found this thread when looking to see if anyone was using the Korg nanoKontrol2 with DP11. Apparently DP has trouble taking in MIDI CC data for some external controllers, and a translation program has to be used, like Bome's MIDI Translator Pro, which lets you write in a few small lines of code to translate your controller's info into something DP will like.

Once all these road blocks start happening, that gets me thinking about just switching to Cubase which I'm guessing will have good communication with Steinberg's Dorico notation program in the future.
dewdman42
Posts: 1217
Joined: Thu Jul 21, 2005 10:01 pm
Primary DAW OS: MacOS
Contact:

Re: Articulation Maps: route CC data to MIDI channel

Post by dewdman42 »

I am in the process of updating the EventChaser script mentioned above, to handle the continuation issue missing from DP's articulation manager. So basically this means, DP does MOST of the work of forwarding CC, PitchBend and AT messages from the source track to any different MIDI channels when articulations are channelized...but the script does the simple job of continuing to send this expression data to these destination channels for some amount of time, called "continuation" in order to handle releases, etc as mentioned above. This DP Mode should make up for DP's deficiency in this area.

later on I will add support to also handle the poly articulation scenarios overlooked by MOTU. I also plan to verify if DP is currently chasing properly in this mode..and might have to add stuff to make up for that too.

I also realized during this that DP is also not chasing expression data either, which is actually a major problem, so I will attempt to script around that as well
5,1 MacPro 3.46ghz x 12 cores,96gb, Monterey (OpenCore), Lynx AES16e-50+X32
Post Reply