MIDI reset? Exactly what does Dorico do when beginning and ending playback

I’ve been tripping over something for the last couple of days. It’s become clear that Dorico is doing something along the lines of issuing a MIDI reset when beginning/ending playback. I can’t find anything in the user guide that describes what it’s doing, but something somewhere isn’t right. I’d been placing some CC7 values in the Init portion of my expression maps (all of which represent instruments out on VEPro. The idea of this was to get a basic balance in the expression map and only tweak the fader when absolutely necessary. On the VEPro mixer, I’d see those values have the desired effect but then immediately snap back to a “neutral” position at start and stop. This is not good and it’s a violation of the General MIDI recommendation that CC7, CC10 and a few other effects CCs not be changed by MIDI reset.

So the question for me is: is Dorico or VEPro-8 at fault here? Some things–like all notes off–are very good ideas and fully in compliance with MIDI recommendations. But the other stuff is a nuisance and breaks any ideas we might have of some basic rough mixing being taken care of in expression maps. So does Dorico have its own lists of CCs to send out at reset? If so, does it send those out to external instruments as well? Or is it simply sending the reset command out to VEPro, meaning my beef is with VSL?

Dorico sends the CC7 values that are set on the MIDI faders, which defeats what is set in Init. I’ve given up on that, leave CC7 at 100 in Dorico, and make the adjustments in VEPro.

2 Likes

Aha, as I suspected. That’s too bad and it really should get fixed. For the time being I have decided to set the values in the VEPro Faders (as long as I don’t have them attached to CC7). It’s a little less elegant, but I’ve got to get on with it.

Thanks!

Hi,

What I do (and suggest) is use the free Kilohearts Gain plugin as an insert on my VSL tracks in VE Pro and I make the adjustment there.

You can refer to this diagram on the VSL forums for how the Synchron Player CC7 volumes map to actual decibel levels and use that to allow you to calculate the matching adjustments:

As an example for how to do it, imagine the instrument sets the CC7 to 90 when you load the same preset manually in Synchron player. You know Dorico is going to increase that. So look at the chart, CC7 90 is -6.0dB and CC7 100 is -4.1 dB. So you know Dorico will give it a 1.9 dB boost (the difference). So you need to set kHs gain for -1.9dB to offset this.

1 Like

Thanks for making me aware of the plugin. I’ll give it a look. I actually only have a couple of VSL instruments, but would like to have some more of their percussion. Most of my pitched instruments are modeled instruments. That’s a whole other bag of hurt, but with some care I’m getting very nice integration with Dorico.

Hey Barry,

I don’t want to duplicate your steps since you’ve clearly been down this path. But let me ask you this. Do you know of any CCs that Dorico doesn’t set for MIDI reset? Perhaps I could use a substitute to set those levels.

Dorico should only reset CC7 as well as the balance/pan CC’s and CC64 the sustain pedal. The rest of the CC’s should be left alone.

1 Like

Hmm. Path forward. Thank you again!

To clarify, my current (experimental) solution is that I have set all the CC7 values to 100 in VEPro, and compensated by adjusting the audio level in VEPro, using the table mducharme referenced. My thinking is that this setup allows me to use the same VEPro project in Dorico, Cubase, REAPER or any DAW with the settings only being done once in the VEPro project.

1 Like

My thinking is somewhat similar, but with a few differences. I want to get everything done that I can inside of Dorico and then export either audio or MIDI files to blow into Pro Tools for last bit of mixing. I’m not really on any sort of deadline (retired from the biz), so I’m just doing chamber music. I tend to do a little tweak on old pieces now and then, so it’s important to keep stuff inside Dorico (formerly Sibelius) so that I can just re-export to the same mix session. Otherwise, I have to do revisions in two different programs.

In my case I’ve made a habit for many many years now of setting CC7 for all my tracks to 100 as a starting point even in Cubase. I’ve only been using VSL for the past 4 years or so, but I certainly dislike how VSL adjusts balance by using CC7 - I still would get into trouble where I would go and be like “oh I forgot to set CC7 to 100 on this track” but then it would be VSL and I would mess up the balance by accident.

For me, it would be less immediate work to switch the volume control in Synchron Player to something unrelated so that Dorico wouldn’t try to change it, but then it would make the VSL libraries less consistent with the rest of the libraries I have. If I need to give a library a boost for a short time because it is too quiet, I can normally use CC7 automation there to give it a boost and bring it back down to 100 when no longer needed. If I used a different CC for VSL only I’d have to think more carefully when I was doing that. If the default wasn’t 100 across the board but different for each instrument, I’d also have to look up what the original value was so I could bring it back to the correct value when it no longer needed a boost.

For me those are serious disadvantages that make compensating for CC7 in VE Pro with a gain plugin preferable to changing from CC7 to something else to avoid the issue.

1 Like

I agree. 100 or 101 is what is considered to “normal” midi volume. If I need to fine-tune mixing, I’ll do it audio-wise in Cubase or WaveLab.

The problem is in how applications chase, or not chase, the midi data stream. Many (most?) apps don’t match move the CC7 faders when encountering a CC7 command in the midi stream- they just echo the data out to the the sound device. Cubase doesn’t either, but then it doesn’t send the fader value out at the start or end of anything. It only sends a CC7 whe you actually move the fader yourself.

Another gripe might be is that expression. i.e. CC11 is “supposed” or originally was intended to be the “proper” way to set a dynamic volume since it actually sets a percentage of the what ever the main CC7 volume is. Unfortunately, you can pick any handful of libraries and you will find that every one of them does it it differently.

I keep an old YAMAHA MU-100 on hand just to remind myself of how proper midi was once done. It’s sort of a Rosetta Stone of midi.

2 Likes

Yeah, they do it differently because back in the day there was no need for a dynamic crossfade controller since most sampled instrument patches didn’t really have any layers to speak of. So the two competing standards of using CC1 or CC11 for that came about. Using CC11 for dynamic crossfades obviously means that that is not available as a secondary volume control.

But even in cases where CC11 is available as a secondary volume control, the default is for it to be at 100% (127), so you can really only use it to make things quieter instead of louder unless you set a different value manually at the track start. Back in the day working with MIDI sound modules I would have done that, but these days when there are audio faders on every track anyway because they are virtual instruments with individual audio returns, it is easier to just give CC7 a boost if I need to go up in level and use CC11 to go down, since I still have the audio fader as a master gain for mixing purposes.

Yeah I used to do MIDI sequences on a Roland MGS-64 (a dual rack mount SC-88), supplemented with a Proteus/2 Orchestral. The MGS-64 was GS instead of XG but same idea otherwise.

2 Likes

Good old CC1 - It was supposed to be tremolo modulation, but hey, it worked better as a dynamics wheel - because it was right there and available on any midi keyboard. Funny how things came about. :grinning_face:

2 Likes

I’m playing around with a Roland JV-2080 in Dorico, just for fun.

2 Likes

Ah, chasing. I go back to the early days of MIDI and was responsible for MIDI implementations on a lot of devices. Actually did a couple of timecode automation systems too. Those were the days gone by and I’m purely on the client side of all that nowadays.

I haven’t been using Dorico long enough to have a good sense of how well its implemented chase (if at all). I was down in those weeds with Sibelius and managed to insert a MIDI monitor into the data stream between Sibelius and VEPro while trying to understand all the ways it was failing to do a number of things. Their solution was to send out all relevant controllers every measure. No way to run a railroad. But as notation programs like Dorico become more powerful in their playback capabilities, they have to wrestle with all of this.

Virtually all of my MIDI work was done back in the days that we used MIDI cables. Sending a controller value required about a millisecond to get through the cable (a little faster with something called running status). So any sequencer needed to chase, keeping an up-to-date record of where each controller should be. This meant that you could start, stop, rewind and only send out the up-to-date control values. Since MIDI now mainly lives on internal high speed busses, it’s easy to get a little sloppy in terms of chase.

I had a Roland JD-990 many years ago. Nice box for its day, but it couldn’t quite keep up with a very busy session. If I didn’t thin the data stream I’d get in a situation where I’d play the sequence and stop. The Roland would keep on playing for a while, because it had buffered up all of the MIDI.

I really do sound like an old guy shouting at clouds, don’t I?

3 Likes

That’s it in a nutshell. It appears that some libraries will let you set one controller for volume/expression so you don’t have the ability for the momentary stuff (once cc11) to work on a trimmed value (once cc7). In some cases you might have the ability to use cc7 and cc1 (or any pair you wish) but they operate the same coefficient. Last controller wins the prize.

What I was hoping to do was to use CC11 as the momentary stuff and let it get to the instruments as is fairly common. CC7 would go to the VEPro mixer, simply as a one-time trim. But that led me down a rathole, so I think the wiser course is to use a gain plugin on each instrument as a set-and-forget value. I should get a decent basic balance within Dorico (or any other DAW) and then pop the whole mess into a sequencer if I really have to.

Until I started this thread I didn’t realize that this was a more common problem. A lot of you have already been where I am now, so I appreciate the commentary.

Thanks!

Michael

1 Like

“Music Chef” has some good Youtube videos exploring how Dorico does things internally, why the results are not always as expected, and solutions or workarounds.

1 Like