HOWTO: Cubase as a backend audio server/ MIDI recorder

I posted earlier about an experiment using Logic as a backend on Mac over IAC for MIDI and audio. It was clumsy to set up but worked, only for playback not MIDI recording. The Logic sequencer has a fundamental limitation that all MIDI ports are merged into 16 channels, and you need many more than that. So given my love affair with Dorico I figured Cubase was in the works (and wanting PC flexibility), so this was the trigger to switch. Took about a day.

Setup

  • Dorico BBCSO Template - Play output to “MIDI Instruments”
  • IAC Woodwinds (16 channels, Picc1=1, Picc2=2, etc)
    • IAC Brass
    • IAC Percussion A & Percussion B
    • IAC Strings
    • IAC Other
  • Cubase BBCSO Pro Template 2 - Multiple Instances Full Routing
  • For each instrument duplicate the first track
    • add in all the articulations in the Spitfire interface
    • set the MIDI Port to appropriate (e.g. Woodwinds)
    • Add a Local MIDI transformer to filter only the appropriate channel
    • Enable the transformer Module (click the tab header)
    • Enable the Monitor icon for each folder (the little speaker) - done

Results:

Performance with the DAW handling the VI’s is much better than in Dorico. You can write your music, flipping around the tracks with little lag. One issue is that sometimes you get stuck notes if you don’t go slow enough. Like if you hit a note on the Clarinet track, then arrow key down to Bassoon and hit a note, the Clarinet will start playing again. Just go back to clarinet and hit a note to get it to shut off. To avoid it go a little slower (this seems like a Dorico issue that could be fixed).

For recording I did a little experiment to make sure it works, hit Record enable on all the tracks, start global record and do the same in Dorico - blam! MIDI printing for final mixing and CC tweaking. A further advantage is that your “VI Server” is always running in the background, making working with Dorico so much faster, start up, shut down and project switch doesn’t take much time, whereas if the VI’s are in Dorico for BBCSO Pro at least it’s too slow for daily work.

More work needs to be done for recording, especially with time alignment. Dorico doesn’t support MMC AFAIK, or MIDI clock and such. I’m going to try a MIDI control mapping that is the same in both apps. The idea is that I can hit a button and they’ll both start recording, but I wouldn’t be surprised if I still get some mS offset. OTOH there’s a flag in Cubase “Snap MIDI to bar lines” that might do something.

Possible solution to the record enable:

First is a clumsy solution which is to detect the tempo after recording. But it looks like there’s a better way (I’ll test this when I get some time - taking notes here)

I already send the tempo out a MIDI port to a MIDI Solutions Beat Indicator. I can loop that back to an input MIDI port. Otherwise you can do the same with a loop cable, Dorico → MIDI Output for the click, and just connect that cable back to MIDI IN. Configure your Metronome to send out notes. Then read this topic to see a solution. “Recording Computer” = Cubase and “Playing Computer” = Dorico.

You have a MIDI cable connecting the two computers, yes? > (n.b. in my case one computer, but it could also be two)
So… on the “Playback” computer, add a MIDI track that has a “trigger” MIDI note (of your choice) placed at the start of every individual song. > (n.b. this is already set up in Dorico)

On your “Recording” computer, create a Generic Remote Device, with the MIDI output from the Playback machine as its input. (I think that, when you create a new Generic Remote, it defaults to several lines of data. Delete all but the first line.)

Let’s assume you have chosen MIDI note #127.
Change the remaining line in the upper section as follows…
Control name = (how about, “Record Trigger”, > :wink: > )
MIDI Status = Note On
MIDI Channel = 1 (presuming, of course, that the Playback computer will be transmitting the trigger MIDI note on channel #1 > :wink: > )
Address = 127 (the MIDI Note number)
Max. Value = 127 (in fact, this is the note’s velocity, not that it matters here > :wink: > )
Flags = “R” (“receive”)

Set the corresponding line in the lower section as follows…
Control Name = (it will default to the “Record Trigger” name that you entered in the upper section)
Device = “Command”
Channel/Category = “Transport”
Value/Action = “Record”
Flags = “P” (in fact, cannot be changed, when Device = “Command”… don’t worry about it > :wink: > )

Don’t forget to hit “Apply”.
Now, whenever the Playback machine goes into Play (at the start of each song), it will also send the “Record” command.
In practice, you may find that the Trigger note needs to be sent a little earlier.

Some users have reported success getting a solid transport sync by loading video into Dorico with SMPTE time code on one of the audio channels.

From there one can use LTC to MMC/MTC/MIDI Clock/etc software or a black box to sync up other transports.

I gave it a try with an old Annatek SMP-7 MIDI patch pay (includes analog SMPTE to MIDI time code conversion features), on a quite dated Windows 10 rig, and that did a decent job of allowing Dorico’s transport to serve as the master clock driver. I believe there are some software solutions for Mac and PC out there as well that wouldn’t require an external ‘black box’ (though a patch cable or some back-end audio re-routing might be needed).

You might find this thread interesting. It it has some links for analog channel LTC to serial MTC/MMC options.

Thanks Brian, great resource I’ll check that out. From the thread (2+ years ago) Daniel indicated it was on the roadmap, so hopefully we’ll have something in the not too distant future.

So using the Time track out a MIDI port works except that the recording keeps turning on/off due to the metronome beat. So instead putting it on a “Control” IAC port, adding a new instrument “Control” (just a generic keyboard), making that staff manually invisible, and then putting a single note at start of score to start recording on Cubase seems to mostly work. Some glitchies, Dorico is getting weird and the audio engine keeps playing even though I hit stop. Also Cubase acts odd too before it settles down.

Anyhow I think I can drop it for now, having proved that there are a variety of possible workarounds until Dorico has it built in. Worst case I can just start recording by hand since I just need output stems and can trim out any starting gaps.

I’m looking forward to a native sync solution as well.

For the time being, a time stripe in Dorico’s video player with your other DAW software set up to slave to this time code seems to be the most solid option. Your slave transports should lock up with that video time code rather tightly, and really expand your abilities to blend audio tracks (that start and end anywhere in your score) with your Dorico sessions.

OK, I’ll try that! My MIDI beat solution seems to be a glorious hack anyhow. I don’t work in video so know little about that, can you help me with a short quickstart?

I guess I need a blank video with embedded timecode, where do I find such a beast? Looks like there’s some choices here. Eh no, that’s just video timecode it seems

How does Cubase sync to that?

Thanks!

P.S.

I’m on Windows, and I really like to route Dorico into jack2 audio drivers. Jack2 provides an ASIO compliant routing matrix, networking abilities over the LAN, and more, and gives me the ability to push Dorico’s main audio output directly into my Cubase mixing matrix as well.

I haven’t used a Mac in ages, but I’m guessing Mac’s OS has a very robust core audio system that natively allows the sorts of routing options that jack2 can add to a Windows setup.

You might find some videos out there you can download that already have a time code. Try your favorite search engine?

If you can’t find one, it’s not hard to make your own. There are a number of web sites that’ll generate a SMPTE stripe of your specifications in WAV or AIF format. Your DAW might even have an option built in to ‘generate a SMPTE stripe’ for you.

SMPTE stripes are just digital beeps and whistles sent out in an analogue format, over analog audio outputs. We used these back in the day before our tape and video recorders were digital media. It gave us the ability to stripe the media itself, and thusly sync all sorts of outboard gear with the tape itself.

From there, use your favorite video editing/muxing software and drag the stripe to the audio channel you’d like it to live on. Pack that as an mp4 with aac audio. You can have whatever you like for the video…black, a graphic, a loop of Snoopy dancing, whatever you like.

Next, you’ll need an option to convert the LTC time code from the audio output into MTC/MMC. You can use software on a PC/Mac (same machine, or a different one, your choice), or, if you’re like me and have a closet full of junk left over from nineteen ninety weird, you can use one of those SMPTE to MTC/MMC boxes to get it done.

How you get the SMPTE channel’s signal into your LTC to MTC softare or box can depend on your system, and how advanced your drivers and routing options are. The ‘simplest’ configuration is simply to use a real patch cord between whatever audio channel your SMPTE time code is played through, back into an audio input that your LTC to MTC software or black box is listening. If you have fancy audio drivers and routing options avilable, it ‘might’ be possible to skip using a physical patch cable, and route the signal where you need it internally in the audio interface itself.

Once you have some manner of generating the MTC/MMC, you’ll set your DAW as ‘slave’, and have it lock up to that MTC/MMC time code.

Add the video with a time stripe to your Dorico Project and match the video settings to your time stripe type, let Dorico know where the time code starts, etc.

If everything is properly set, you should find that whatever you do in Dorico, the slave DAW’s transport locks up and plays along, and stops/starts in sync.

Have a look at the link I put in my first reply to this thread.

I believe some of the later posts include methods various users have applied to get it working.

RedTide,

Do you use Mac, Windows, or both?

Full Software Options…

It’s been a while since I did a search, but it seems like I once found some free, or really inexpensive LTC to MTC software for Mac.

For Windows, there didn’t seem to be as many options, and I didn’t find a free one, though you might have better luck with a search of your own.

It’s possible to host your MTC generating software on the same machine as your Dorico and DAW, or you can run it off on some other machine if that helps…and send the MTC via MIDI cable, or over the LAN, etc.

Old School external Hardware Options…with these you run an audio cable from your computer that plays the audio SMPTE signal into the box, and a MIDI cable that plays the MTC/MMC signals back into your computer.

You might also have luck finding a box on Ebay or something for dirt cheap. Keywords that might help find such hardware would be SMPTE, LTC to MTC, MIDI Sync, etc. Over the years quite a few interesting options developed…some included integration into nice MIDI Patch Bays. Some of the stand alone multi-tracking work stations (Such as the Boss series) included a lot of rather powerful and portable syncing options as well. Old Atari ST systems with the proper dongles (C-labs Unitor, Steinberg’s Midex or SMP24) used to go for a song and a dance on various auctions and trading sites.

In their day they were rather expensive, but these days, it’s not uncommon to find really nice stuff out there for less than $50 that can take that SMPTE stripe and turn it into MTC that a DAW can sync with. It’s worth looking just in case someone has a treasure up for grabs on the cheap.

I found this TXL Timecode plugin and it seems to work in Dorico.

  1. Set up a virtual MIDI port.
  2. Load it in Dorico’s Instrument Rack in the play tab and set it to send the time code over your virtual port.
  3. Launch the MTC DAW or other software you want synced with Dorico and have it slave to the MTC coming over your virtual port.
2 Likes

Thank you so much for sharing this!

I will try it later when I have the time to do so. I purchased Cubase during the cyber sale, so this could be a very useful tool for me.

Tinkered with it a bit today and from what I can tell it does a decent job.

I used ASIOLinkPro to route Dorico’s audio into Cubase.

Loaded TXL into Dorico and set Midi Output to my virtual port.

Set up Cubase to slave to MTC/MMC from said virtual port.

Set up an audio track to record Dorico and hit play in Dorico. I let a few seconds record so I could get an idea ‘exactly’ where on the time-line Dorico begins playing. After recording a bit I stopped Dorico, selected the audio part in Cubase and tapped l, which snaps the cursor to the beginning of the part. The cursor info now lets me know the Project Start Time and Display Time offsets I need in the Cubase Project.

Now I seem to have an instance of Cubase with its transport synced up with Dorico.