My Journey Printing Stems from Dorico to Pro Tools

The Challenge:

In my final semester of grad school, our Scoring class re-scored a feature-length film that our instructor had been the original composer for. Me being me, a man who loves Dorico and hates piano rolls, I decided to battle-test Dorico to meet the following demands:

  • ~4-6 minutes of composed and fully mocked-up lightly hybrid orchestral music delivered weekly before midnight
  • Delivery involved 14 BWF Stems (i.e. High Winds, Low Winds, Perc, Synths) all with the correct timecode embedded and named according to specific filename guidelines
  • Among the stems must be a printed click track that follows the tempo map

The Problem:

While Dorico can export individual instruments, it does so in serial (i.e. flute 1 beginning to end, then flute 2 beginning to end etc.) This becomes a problem when, like me, you’re using a VEPro server on another machine it has to do so in real-time. A three-minute cue with 60 individual instruments/sections would take 3 hours to bounce and then would still have to be combined into stems in Pro Tools. With multiple classes during the week, all with their own writing assignments, this was time I did not have especially with a midnight delivery deadline.

Options I considered were:

  • Soloing and bouncing returns from VEPro that had been organized to follow my stemming scheme and then renaming after every bounce (too time-consuming, a lot of margin for error in losing track of which stem was which)
  • Creating custom layouts in Dorico corresponding to stems and exporting (still too time-consuming, custom layouts could not be selected from audio export menu and would still require bouncing and renaming)

Ultimately, what I really needed was to find a way to print audio directly from Dorico into a DAW (in this case Pro Tools). More on that later.

Existing Setup:

By this point, I had a pretty solid Dorico and VEPro setup going using CSSeries as my core orchestral library with expression maps I had made and refined over time to best suit my needs with per articulation delays and everything. My VEPro template did all the heavy lifting of processing, routing reverb, doing buss effects etc and my returns in Dorico were just my standard stems. I use a Wacom graphic design tablet for drawing in my CC information and make full use of a lot of Dorico’s awesome tools for batch inputting CC values for multiple instruments and nudging things around. My classmates were frequently impressed with my mock-ups especially considering they were done in a notation program and I tend to write in a way that strains what samples can convincingly pull off.

By futzing with the “number of audio outputs in the mixer” function in the endpoint setup in Dorico my returns in the mixer menu look like this:

This is what my destination Pro Tools session looked like:

Extra Tools:

In order to accomplish my goal of printing directly to Pro Tools I needed a few extra tools. First, I needed Dorico to generate SMPTE that Pro Tools could follow using MTC. I used a tool that’s been brought up in this forum quite often which is TXL Timecode.

Next, I needed something that could pull audio from each return in Dorico and send it to a corresponding track in Pro Tools. Since Dorico does not have multi-out capabilities as of time of writing, I needed to route at the insert level. Unfortunately, at the time at least, I could not find any free software that could do what I needed it to do so I used the following tools from Audiomovers.

Inject $50 USD- A plugin insert that allows you to route to i/o in a variety of different playback engines

Omnibus $200 USD- I probably could’ve gotten away with just using Pro Tools Audio Bridge, but I wanted to use this for other stuff as well. Basically this allows you a lot of flexibility in how signals are routed from various playback engines.

How did it go?

I’m not going to get into detail about the nitty-gritty of all the trial and error to get this to do basically what I wanted it to except to shout out Serge at Audiomovers. I had an inital issue that Inject was not remembering the output assignments when I would close and re-open Dorico. Serge got back to me really quickly with a previous version of Inject that did remember the output assignments and basically saved this whole thing.

The results were mixed but ultimately saved me A LOT of time and got me through the project.

One of the things that ended up being a “time suck” was that the inject plugin basically needs to be “woken up” by having audio pass through it while the plugin window is open. Before I printed I had to open each plugin and play some audio otherwise nothing would end up in Pro Tools. Something that made this harder is the fact that Dorico does not augment the plugin header name based on track name:

Another problem is that very quickly, the sync between Dorico, TXL and Pro Tools became unusable. I had structured all of my Dorico and Pro Tools sessions to correspond to each reel of the film, using Flows to be each cue in the reel. Things started to get wonky with multiple flows at different timecode offsets, TXL would no longer match the timecode that was synced between Dorico and the embedded timecode of the video file. In addition, aligning the tempo track MIDI export that was imported into Pro Tools became dicey because the lag time between when I would start playback in Dorico and Pro Tools would “catch on” to start recording meant that it was hart to align the tempo track which always contained a 2 empty measures. Ultimately, I ended up having to abandon printing and syncing at the same time. I placed a transient snare in beat 1 of measure 1, gave Pro Tools a running start and hit play on Dorico. I could go back to Pro Tools, tab to transient, splice, and then using Spot move the transient to the exact timecode position, delete it, and then reconsolidate the clip region. Ultimately, that process didn’t take that much time but it would’ve been nice to have it just print in place and not have to worry about it.

What could have helped? (the low-hanging fruit)

CAVEAT I say low-hanging fruit from my perspective as a user and not a developer of this software. Ultimately, I don’t really know how relatively easy or hard these things are to implement but this is just from my best educated guess as a user with some tech savvy.

  • Native MTC i/o support: I feel like Dorico should DEFINITELY have a way to send and receive MTC directly tied to its own clock not relying on any 3rd party software, I think this would open a lot of doors for DAW integration, especially when working with recorded audio, sound design, phrase libraries etc in the DAW (things that don’t make sense to notate). I’m currently working on a project right now where I’m only using Dorico to work out horn section parts and the rest is just guitar, bass, drums etc. that I’m recording into Pro Tools and this is hard to deal with using buffer sizes and whatnot and the stop/start of the play-head tends to be very frustrating to deal with
  • More Bouncing Options: It would definitely go a long way to be able to create custom bounce groups that could correspond to your stems. Even just allowing custom score layouts to be selected in the audio export window that could be uniquely named and exported all at once. A three-minute cue exporting real-time 14 stems would take 40 min as opposed to 3 hours.
  • Multi-Out: This would be the holy grail and would cut down on stacking buffer sizes. If the user could just output their returns directly into a DAW this would open up a lot of doors for use of Dorico in the film music world. In addition, more routing options in the mixer would be incredibly beneficial

What could have helped? (Pie in the sky)

  • Articulation Override: In the Key-Editor, it would be really helpful to be able to override the playing technique/articulation triggered without affecting the score. Often I am using a different articulation in my samples than I would write on the score for a player, for example, if the fast legato isn’t cutting it, I may use the Marcato patch. This would save a lot of time when working on a project that needs to be fully mocked up for client approval and will eventually be engraved for a recording session.
  • MIDI “clones”: This is two-fold
    • An aX system similar to NPPE whereby the if/then statement is something like “if 4 French Horns are playing a unison line this will route to the a4 patch of your sample library”
    • Something that allows you to blend in different libraries for the same instrument without cluttering up the score. Basically using a master MIDI reference that will output the same notes and maybe CC information using independent routing and exp maps. In my mind it looks something like this, but perhaps this could be best offloaded to Cubase with some sort of synchronization or “MIDI stream”:

I understand this may create some tension between the people who want more playback features and the purely engraver crowd who are frustrated with what they perceive as software bloat. But perhaps having two modes, sort of like how Logic Pro X had a kind of “Garage Band Mode” with simplified vs. complex play sections could be a solution?

I look forward to hearing everyone’s thoughts and if anyone thought there might have been a better way to do this for future projects! I really believe Dorico can be a fully capable notation and mock-up software that can meet the high demands of the media music world!

6 Likes

Hi @Johnstakovich,
This is a very interesting post. I’m trying to sync a single flow in Dorico with ProTools. I wonder if you can post a quick screenshot of your TXL Timecode window - I have previously managed to sync Dorico with Cubase using the IAC Bus, but you mentioned using SMPTE, so I’m not sure if I am using the TXL correctly. Secondly, what are the settings in ProTools? I have set the MTC reader in the ProTools Synchronization tab inside Peripherals to read from the IAC Bus, but nothing seems to connect between the two apps. ProTools just says: ‘waiting for sync’. Thank you for any pointers!

EDIT: Well, a little more playing about, and I’ve got it working. It seems it needed to be on 25 FPS and not 24 FPS. There is a start offset that I can deal with - I found the same thing with Cubase. In Dorico, measure 10 seems to start Cubase/ProTools at measure 1. I think I was able to set a bar offset in Cubase, but so far I haven’t figured that out in ProTools. In any case, I can work with this - It seems quite robust even if I put tempo changes in. I can use Loopback to route the audio. It really would be nice if Dorico generated MTC natively, or even was able to receive MTC and run as a slave. I’m sure this will happen at some point.