I’ve been messing around with some libraries that require a delay as they analyze the phrase and calculate the samples to use based on the actual music. Here’s one such instrument:
Obviously in a DAW it’s easy to just shift them, but it’s trickier in Dorico if you want the score to look correct. Applying the MonoDelay plug-in with the following settings to all the other instruments that aren’t delayed seems to work:
The 1500ms above is for quarter = 160, so 60000ms (1 minute) ÷ BPM (160 in this example) = 375ms for each quarter. This library offsets by 4 beats so 1500ms here. This works fine although it could be nice if this was automated somehow.
The 2 major issues though I’m having with this are: 1) The green playback bar now isn’t synced with the music, which is awfully distracting when following along with the playback, so it would be great if an offset could be applied to it too. There isn’t a setting for this somewhere now, is there? 2) The playback always starts 4 beats late, then stops 4 beats early, cutting off the playback as soon as the green playback bar reaches the end. Obviously when I go to export, it’s easy to add a bar, export, then delete it, but it would be nice if there was a way to avoid that when writing.
I wouldn’t be surprised if we start to see even more libraries scanning ahead to determine output, and of course Dorico already automatically compensates for NP. It would be useful for me anyway if there could be additional delay settings to facilitate use of these libraries. Thanks for considering!
2 Likes
There’s no way for Dorico to “know” that you have instantiated a delay plug-in, or how long the delay is, unfortunately. NotePerformer uses a special mechanism (the details of which I’m not personally completely clear on) so perhaps these other instrument developers could take a similar approach.
1 Like
What about a completely manual offset? Like a manual option to offset the green playbar by x amount to compensate so it’s aligned with playback? And/or to continue so the final bar isn’t cut off? I don’t know anyone personally at that particular VST developer, but I’ll shoot them an email so at least they are aware of it. Other than the start/end and playback alignment, manually setting the MonoDelay plugin where needed seems to work pretty well.
1 Like
Take a look at the following project, which demonstrates one way to obtain delayed playback while keeping the playhead in synch with the notated music:
Delayed Playback.dorico (1.0 MB)
Before starting playback, go to Library > Playback Options > Timing and set the Pre-roll before flow to 2.0 seconds. Then start playback by pressing Shift-Alt/Opt-Space.
1 Like
Thanks John. The playback audio of the lower staff syncs visually with the upper staff in your file. So you’re saying to have two staves for each delayed instrument? One visually for the score and one for playback only? Suppress playback of the visual staff, and manually hide the playback staff?
Just realizing anything in the first 4 beats you manually configured with grace note offsets, LOL! Crazy! I definitely didn’t consider that option! I still think some sort of setting to offset the visual display of the green playback bar in order to sync with the audio could be useful though, even ignoring the start/end audio issues.
I concede that having a hidden staff for playback and a displayed staff with suppressed playback for each delayed instrument is an inelegant workaround, in addition to the effort needed to calculate the playback start and end offsets for the grace notes in the hidden staff.
1 Like
I’m still amazed you came up with that workaround! That solution didn’t cross my mind at all.
My work with the EastWest Symphonic Choirs has given me a lot of practice with modifying the playback start and end offsets of the notes in vocal staves.
1 Like
If the techniques I demonstrated in the project in post #4 were applied to My Favorite Soprano with its four-beat Smart Delay, then other instruments providing accompaniment would not need to use MonoDelay or have hidden staves for playback. The following project uses a double-reed quartet to provide four-part harmony, but only the melody uses a four-beat delay and a hidden stave for playback:
Delayed Playback Revised.dorico (1.3 MB)
As before, set the Pre-roll before flow to two seconds and start playback by pressing Shift-Alt/Opt-Space.
How do these work differently from the Steinberg MonoDelay plug in? I can already sync the playback with it, it’s just the green playback bar isn’t synced, and there’s the issue of the delay at the beginning and the cut off at the end of playback. These can’t address any of those issues, can they?
Yes, they might be able to. I haven’t tried them in Dorico, but I’ve used similar plugins in DAWs. In DAWs these types of plugins are used when a misbehaving plugin doesn’t report its latency back to the host, so its audio always comes too late, after everything else, and out of sync with the playhead. They are used to delay the audio from this misbehaving plugin backwards in time, not forwards like a normal delay effect. The delay effect you are using is more of a sound effect and is designed to make cool sounds, not to compensate for plugin latency like this.
You’re using a regular delay effect to delay all audio from all of the other “good” tracks so they are late to match the “bad” track, while these let you shift the audio from the “bad” track backwards in time to line up with the “good” tracks (and, theoretically, the play head).
Where I used these types of programs before was around 2005 or 2006, I used Cubase with most of my samples on a second “slave” computer which ran sampler software called GigaStudio. I used a third party VSTi “wrapper” for Gigastudio (called Giga Teleport) which acted something like Vienna Ensemble Pro does these days by sending MIDI to the slave system and receiving audio back to the host. Unfortunately the delays caused by the processing time meant that all my Giga instruments played about 100ms too late, out of sync with the instruments I was running directly inside Cubase on my main computer and out of sync with the playhead.
Normally this would be handled by something called Plugin Delay Compensation (PDC) built into every DAW, which is a basic feature of all DAWs that automatically brings everything in sync when plugins with different delays are used together at the same time. If it weren’t for PDC, tracks that have a lot of effects plugins on them (EQ’s, compressors, etc.) would be delayed compared to tracks that have no effects plugins and they would lose musical synchronization. However, Giga Teleport did not report any latency to begin with, so the DAW’s PDC did not kick in to bring it back in sync with everything else because the Giga Teleport did not report it was out of sync. So I used these plugins to tell Cubase that Giga Teleport was 100ms too late and Cubase’s PDC kicked in and automatically started playing that track 100ms earlier than the others to compensate for the delay.
1 Like
I just tried that DMG plugin, but it didn’t let me specify a negative value. I suppose this makes sense as the baseline for Dorico is simply 0. If Dorico could have a main plug-in delay compensation like Cubase, then there could be a specified value to have a negative offset from, but I’m guessing in Dorico a negative delay isn’t really a possible thing, as there can’t be a negative delay before 0.
It’s obviously possible to use DMG to have a positive delay from the “good” tracks though, like MonoDelay.
I think that you should be able to use the negative delay in Dorico. Dorico probably does support PDC (especially since it shares an audio engine with Cubase), otherwise NotePerformer probably wouldn’t have a way to read ahead and NotePerformer would be out of sync with the playhead. This is the facility that I have always believed NotePerformer to use to “read ahead” because there is no other way I know of.
I haven’t used this type of plugin in a long time. I think your issue with the DMG one is likely a user interface issue where something is confusing about how to enter things. Try the Voxengo one. I believe it treats the delay entered as a negative delay.
I also seem to recall that people on this forum previously reported using these types of plugins successfully to create negative delay in Dorico.
EDIT: What is the current method for handling negative track delay in Dorico?
Someone in that thread on vi-control reported using the Voxengo plugin to get the negative delay in Dorico last year.