Recording MIDI to audio - real time cracks are recorded too

Hi,

When I play a MIDI track in real time, I often get some cracks and pops – it’s OK.

But when recording the MIDI track to an audio track (to audio mixdown it to an MP3 file), it should be done “asynchronously”/non-realtime, so there should not be any cracks and pops.

Somehow right now, the cracks and pops are recorded and match what I hear during the recording… Why?

I don’t think I was having this problem before…

Thanks.

Hello,

Are you using Online (Raltime), or Offline (non-real-time) mixdown? Try to use Offline.

What sound generator exactly do you use? Is it HW or SW?

Thanks for the answer. Here is more detail about what I am doing:

I have some MIDI on a MIDI track, directed to a purely software VST instrument (an orchestral instrument from Vienna Symphonic Library). I create a send from the VSTi’s output to an FX track. Then an audio track gets its input from the FX track. I record enable the audio track, hit * for record, then hit space.

Not sure if it is revelant, but the VST instrument is actually hosted in Vienna Ensemble Pro, which is itself hosted in a Plogue Bidule instance, which is an insert on an audio track. The output of the MIDI track containing the MIDI data to be recorded has this insert as its output (the insert appears in the list of possible outputs for all MIDI tracks).

The playing and recording is working fine, it’s just that the cracks and pops are recorded too. The recording should happen asynchronously, so any ASIO buffer/real time slowdowns should not matter, right?

That is realtime recording! as such your buffer size is important.

Why do you use so complicated recording? Why don’t you use File > Export > Audio Mixdown? It makes one mixed stereo (or mono, or 5.1) file. And if you want to export just few tracks, you can use Batch export in the Mixdown window.

According to the Cubase manual, it is the correct way to mixdown MIDI tracks, since File -> Export -> Audio Mixdown does NOT include MIDI. (By the way, I never check the “Real Time Export” box)

Manual p485:

MIDI tracks are not included in the mixdown> .
To make a complete mixdown containing both MIDI and audio, you first need to record all your MIDI music into audio tracks (by connecting the outputs of your MIDI instruments to your audio inputs and recording, as with any other sound source).

How else am I supposed to record MIDI?

Thats for external midi instruments! If the midi is playing an “internal” instrument eg an VSTi then export will work (usually)

Anyway, if you are using the bussing way and using real time record, that is arming a track and pressing the record button, your ASIO buffer size will be important and if you hear crackles you will record crackles.

Exactly.

With the VEPro, ti works. :wink:

Hmmm… why “usually”? I am not sure at all, the manual does say explicitely “MIDI tracks are not included in the mixdown.”, the quote above cannot be clearer…

And I just tried audio mixdown (selecting either the audio track where the insert is, or another track where the sound is directed and actually comes out, or the ASIO card’s output), and in each case I get either silence, or strange static sound, or the correct sound with some moments of silence and some BRRR sounds/static added to it. It doesn’t seem to be the correct way to do it, this is consistent with what the manual says.

It does not get more explicit than “To make a complete mixdown containing both MIDI and audio, you first need to record all your MIDI music into audio tracks”…

Anyway, if you are using the bussing way and using real time record, that is arming a track and pressing the record button, your ASIO buffer size will be important and if you hear crackles you will record crackles.

Who says that just because you hit record, it must be real time?

If nothing is coming from some hardware outside Cubase, everything is internal to Cubase, there is no external time constraint, so no real time is necessary, Cubase can just take its time asking the VSTi for the sound and record the exact sound generated, without any ASIO buffer/slowdown issues.

EDIT:
googled it and found this http://www.steinberg.net/forum/viewtopic.php?p=102640&sid=41e7cc87f86f80e346a51e7c2c8aa420
the second poster says to record the midi into an audio track like above, and adds “forgot to mention this method happens completely within Cubase and is thus independant of your sound device”, which makes sense to me…

By the way, thanks for the answers.

I THINK you understand now?

What you were doing was playing the project in real time and recording the output - glitches and all -back to a track in Cubase.

But this wasn’t necessary. Export Audio will make a mix of anything that is on an audio track. And a VST Instrument can be thought of as a plugin effect in an audio track! If your project contains onlt audio tracks, and MIDI tracks ROUTED TO VST INSTRUMENTS, Export Audio will do the job.

Remember that although a low latency figure is needed while playing a keyboard controlling a virtual instrument, and a few glitches may be tolerated while tracking, a higher buffer size may be selected for the mixing stage. It won’t affect playback timing, and will minimise the chance of glitches. (But this is irrelevent when actually running the final mixdown with Export Audio, as already mentioned.)

Well, sorry for being stubborn but I am not convinced…

First because the officially recommended way to mix any number of tracks (Cubase manual page 94) is to

  1. redirect all of their outputs (or a send) to a Group or FX track

  2. create an audio track and set its input to that Group or FX track

  3. RECORD on this audio track.

This has nothing to do with the ASIO card or anything real time, it’s just mixing static audio on the tracks: the ASIO card isn’t used at all. If for some strange reason Cubase did this “RECORDING” in real time, then the normal way to mix static tracks would be done in real time and introduce cracks and pops for no reason at all. Doesn’t this make sense?

How else are we supposed to mix two things internally to Cubase? It makes no sense that the only way to mix things is to export it to an external file, surely there should be a way to mix things and save the result inside Cubase.

And second because:

That is exactly my situation, Plogue Bidule is hosted as an insert on an audio track. Bidule itself hosts Vienna Ensemble Pro, which itself hosts the orchestral instrument I am recording.

So in File > Export > Audio Mixdown, should I select that audio track? I have tried that several times and just tried again: the MP3 file is garbage, with loud BRRRRR sounds and heavy static, the music barely recognizable in the distant background.

I don’t know why I hear this static instead of silence, but it seems to confirm what the manual says (page 485), that MIDI data is NOT included in Audio Mixdown at all, it is not played so cannot be transformed into audio saved by the mixdown: only AUDIO information on the chosen audio track is mixed down. If you want to include MIDI, then the manual says (just repeating the quote here):

I think this recording thing I am doing is the correct way of mixing down but in my case, for a reason I don’t know, Cubase somehow passes through the ASIO card and does it in real time (it shouldn’t). Maybe because Cubase seems to consider the instrument is external, which it is not, it’s just a purely software instrument. Or because of some delay compensation issue (I haven’t disabled it). Or because of something else.

Thanks

I think your getting confused!

Recording via the bus arrangement you describe will indeed be a direct path, that is, it’s not being routed VIA the audio card. BUT…

The ASIO buffer size is still important because the whole project is being streamed to the card and is subject to the processing overheads that you project demands. As you are doing a direct (real time) recording, not a non realtime export.

You should raise your soundcard buffer size to give the ASIO bus more time.



What?

When mixing static audio data on 2 audio tracks onto a third one, “The ASIO buffer size is still important”… why is that? It has nothing to do with the ASIO card, nothing to do with real time. What I don’t get is, if the static audio is 10 minutes long, how do you even do that in Cubase without waiting 10 minutes?

It should be possible to tell Cubase:

play, between the left and right locators, these 2 audio tracks which are routed to that third one, and record the result on that third one”,

without waiting 10 minutes that the thing actually plays. Right?

You are definitely misreading the manual

If you have an external midi instrument (like a synthesizer), the audio is rendered outside of your computer (so to speak). So when you would hit file -> export -> mixdown, the sound generated by the midi events would not be included in the mixdown file, because -obviously- the audio is being played outside of your computer and audio interface.

That’s why the manual states that you have to record or route the audio from your external device into Cubase first, so when you then do a mixdown, the audio will be included.

However, if you don’t have any external midi instruments, but are using (software) VST instruments, the audio is being rendered on your computer through your audio interface, so there’s no need to route anything in coming from ‘outside’.

Thus, if you have a midi track with a VST instrument and you do file -> export -> mixdown, the audio is being rendered on your computer and will be exported to the audio file.

And then what you need to do, as mentioned earlier, is select Offline (non-realtime) mixdown, instead of realtime mixdown. That should eliminate any crackles caused by bufferoverflow which you do get when recording realtime.

The problem with the export not working is probably because you’re not actually hosting the Vienna plugin in Cubase. I have no experience with Plogue Bidule and all the other stuff you have running to trigger your vienna instrument, but I can assure you that:

If you are exporting a midi track that is triggering a VSTi that is hosted inside Cubase, this will work just fine. I do that all the time.
Like others said, recording midi to audio is only necessary if the sound is not generated inside Cubase, but either hardware, or what I think you are doing by hosting your instrument outside of Cubase.

The record button on the transport bar only does realtime recording, just like the play button only does realtime playback. If you want to keep using your instrument the way you are using it now, you will have to find a way to record it into cubase without your PC choking on it. In other words, you will have to increase your ASIO latency, or reduce the PC load by disabling other tracks/plugins while recording.

That’s exactly right, I have been doing tests on this.

Everything works in real time, but:

If I host VE Pro directly in Cubase, audio mixdown works, but if I use “VE Pro Event Input”, which redirects MIDI input to a VE Pro instance elsewhere, audio mixdown gives no sound at all (again, no problem in real time).

VSL says VE Pro Event Input does not work when bouncing in Digital Performer, so it’s possible it also has problems in Cubase.

If I host VE Pro inside Bidule, then audio mixdown gives the the delayed/BRRR/static sound with the original sound variously recognizable (if I don’t use VE Pro Event Input) and almost not recognizable at all (if I use it).

But ignoring that Event Input plugin, Bidule apparently does not synchronize at all during mixdown and actually works like in real time, which would explain the BRRR sounds: the sound generated by the VSTi is late and somehow Bidule does not wait for it and gives truncated sounds to Cubase.

I’ll ask on the Bidule and VSL forums and post the answers here if I find anything useful.

Thanks.

Why not just increase you ASIO buffer size when you do you recording and see what happens?

Como

Whoops, missed the bit where you mentioned Bidule. So yeah, what Strophoid said :slight_smile:

There are no cracks if I increase the ASIO buffer size, but that was not really my problem.

Just to be clear, I was wrong: apparently arm and record always works in real time even if everything happens in software inside Cubase and the ASIO card isn’t used. And File>Export>Audio Mixdown DOES play MIDI tracks, so it is the proper way of rendering MIDI into audio.

Also, to render MIDI into audio internally in Cubase instead of to an external file only, it is possible to check “Audio Track” in the “Import into Project” section of the File>Export>Audio Mixdown dialog.

I was (and still am) having a problem only because my instruments are hosted inside Bidule and Vienna Ensemble Pro, and there is some faster-than-realtime synchronization problem going on during mixdown. When hosting the instruments directly in Cubase, audio mixdown does play MIDI tracks and works fine.

Yes when everything is internal in cubase, it’s called EXPORT.

If you have external stuff to cubase and/or you use the record button then as I have repeatedly said the ASIO buffer size is important.

Edit, from your lats post that I missed. Told you so :sunglasses: