Technical question about bouncing

with industry Pro, Nick Batzdorf

Moderators: admin, mdc, TAXIstaff

jonnybutter
Committed Musician
Committed Musician
Posts: 834
Joined: Fri Jul 01, 2011 12:37 pm
Gender: Male
Contact:

Technical question about bouncing

Post by jonnybutter » Fri Sep 11, 2015 9:08 am

This is getting a little deep in the weeds, but I have long wondered about bouncing and timing - I use Logic X, but this could be a general question about DAWs, assuming they work in similar ways.

To me the weak link in modern DAW production is MIDI latency/unpredictability; it's harder to get good performances on VIs if timing is off. So, I was wondering about how VI bounces work - both individual tracks and at the mix level; I have heard that realtime is better than faster-than-realtime at the mix level, and have also heard that it makes no difference. It doesn't make intuitive sense to me that there should be any difference - the computer should carry out the series of instructions the same either way - but timing is a funny thing, so I wonder.

In Logic, you don't have the option of a real time 'bounce' at the track level (of course you can 'print' to a new audio track the virtual-old fashioned way), but you *do* have that option in a mix bounce, so maybe there's a reason for it? At the track level, I am careful to have the VI track I'm bouncing selected when I bounce, but other than I wonder if there is any way to optimize? I have a fast machine with lots of RAM, and samples coming off of SSDs, but I still get fairly ugly timing errors sometimes. I'm also just curious about how this works. Anybody know about this, from a technical standpoint?

shorttonpro
Impressive
Impressive
Posts: 170
Joined: Thu Jul 01, 2010 6:05 am
Gender: Male
Location: Prague, Czech Republic
Contact:

Re: Technical question about bouncing

Post by shorttonpro » Fri Sep 11, 2015 9:18 am

The main use for real-time bouncing is when any outboard gear is incorporated in the processing. Only real-time bounce will work in this case as the signal has to be converted to analog, run through the processors, and get converted back to digital.

Offline bouncing should indeed be technically the exact same, as real time, even at faster speeds. I always bounce offline at fast speeds as the time it saves is extremely convenient. By the way, you can compare to files for sameness simply by bouncing one offline, one real-time, then pulling them into a new session and flipping the phase on one track. Assuming everything is aligned properly, the track should completely cancel out to silence.

Weird about the timing errors on the VSTi. When exporting these maybe mute the other tracks so any processing is devoted solely to that track.

jonnybutter
Committed Musician
Committed Musician
Posts: 834
Joined: Fri Jul 01, 2011 12:37 pm
Gender: Male
Contact:

Re: Technical question about bouncing

Post by jonnybutter » Fri Sep 11, 2015 9:53 am

Hi Scott,

Of course, you're right - I didn't think of external processing. Of course that's why.

I also didn't think of comparing bounced files - obviously, that would settle it. I always use faster than real time to bounce at the mix level too, because I've never heard a difference, and theoretically, there shouldn't be any.

In Logic, the selected VI track is the only active one, so that should take care of VI latency, if any. But MIDI latency is unsurmontable, and I think it's not always predictable. I have tried to calculate MIDI latency for particular critical tracks, and then move them forward (negative delay in Logic) that amount, but that's very time consuming (and I'm not sure it's consistent for the length of the track), so I end up guesstimating anyway, and then editing the bounced audio. Just tedious.

Was also just wondering how bouncing worked.

thanks

User avatar
andygabrys
Total Pro
Total Pro
Posts: 5567
Joined: Sun Jan 02, 2011 10:09 pm
Gender: Male
Location: Summerland, BC by way of Santa Fe, Chilliwack, Boston, NYC
Contact:

Re: Technical question about bouncing

Post by andygabrys » Fri Sep 11, 2015 12:41 pm

have to agree with Scott here - I think he covered all the bases.

Since you and I are in both in Logic Jon - its curious that you are having timing issues. Even with all the strange things that crop up in Logic from time to time, I can honestly say that whatever happens at real time is what happens when I bounce, either Offline or in realtime.

I often will be working with various MIDI performances and pushing the entire track forward or backward in time so things sound in sync, but as I am listening to this in real time, I really think it has more to do with the particular samples I am using (i.e. some string patches are notoriously late and need to be pushed forward in time depending on the type of song).

Some issues with MIDI performance might be linked to how much processing power you have, and how hard you are pushing you system.

My older system was a Mac Pro 1,1 - 4 x 2.66 ghz, 20 GB RAM and mechanical hard drives for streaming samples. I would quickly hit the CPU limit and have to freeze tracks etc. It seemed to exhibit more issues with timing. Based on the I/O Disk meter, I don't think I ever hit the streaming limit, but the CPU died.

My newer system is Mac Pro 5,1 - 12 x 2.66 ghz, 32 GB RAM SSDs on PCI for streaming samples - and I don't notice any issues. Whatever I have things adjusted to in real time is exactly how they come out in the end, whether bouncing track in place or bouncing a mix in real time or offline.

And there are specific ways to turn off tracks in Logic X actually saving processing power, and other ways that don't help. In Logic X you need to either use the Power On / Off button or mute the REGIONS on the tracks to actually save CPU. Just Muting the track itself doesn't help as it mutes the output but doesn't turn off processing resources that are used on that track. You can check this yourself using the activity monitor app and look at the CPU.

If you select an unused audio track, or the Ouput 1-2 track then there will be no buffering happening on any track and you will use less resources as well.

ON my side - I got out of the habit of bouncing offline for the main mix. I always want to hear that to make sure that there are no issues. Its just a failsafe - especially with production tracks I am moving really fast, and it also gives me a chance to hear the mix from the kitchen with some detachment - and if something sticks out I can stop the bounce and make adjustments and do it again. I do use offline bounce for stems and cuts etc instead of sitting there.

blah blah blah. Still weird that you get issues esp with a fast machine.

jonnybutter
Committed Musician
Committed Musician
Posts: 834
Joined: Fri Jul 01, 2011 12:37 pm
Gender: Male
Contact:

Re: Technical question about bouncing

Post by jonnybutter » Fri Sep 11, 2015 1:19 pm

Hmm. I'll have to keep all this in mind as I work. That is a great tip about regions - didn't know that one; thanks.

I'm only talking about several milliseconds here and there among tracks - I think it's enough to matter when you add them all up and you factor in how you adjust as you play in other tracks. It's not wretched, just...MIDI sounding. I don't get the timing nuance I get with live players in the air (even if they're all me), and adjusting the whole track doesn't seem to fix it. Maybe I'm just spooked by the delay when I play the parts in, and I never get back. Just wanted to make sure I'm not adding anything to MIDI latency.

Thanks Andy and Scott - informative as always.

cheers

Len911
Total Pro
Total Pro
Posts: 5351
Joined: Mon Dec 07, 2009 4:13 pm
Gender: Male
Location: Peculiar, MO
Contact:

Re: Technical question about bouncing

Post by Len911 » Fri Sep 11, 2015 11:09 pm

As far as I know midi and latency have nothing to do with one another. Midi is a simple instruction or command, latency is about audio.

midi timing resolution is based on ppq or ppqn. The cubase default I use is 480ppq. It is further sub-divided into ticks.
https://en.wikipedia.org/wiki/Pulses_per_quarter_note

Latency from Wiki:
Latency refers to a short period of delay (usually measured in milliseconds) between when an audio signal enters and when it emerges from a system. Potential contributors to latency in an audio system include analog-to-digital conversion, buffering, digital signal processing, transmission time, digital-to-analog conversion and the speed of sound in air.
...And it indicates the existence of an ensemble accuracy sweet spot,at 11.5 ms. For delays shorter than this, 74% of the performances sped up. At delays of 14 ms and above, 85% slowed down. No correlation with starting tempo was found.
https://ccrma.stanford.edu/~cc/pub/pdf/ensAcc.pdf

The above is a study by Stanford University on the effects of latency within a band. So if the sweet spot in a band is 11.5 ms latency, what latency are you experiencing in your daw? Probably much less than 11.5 ms, maybe more like 5 ms? Are you using ASIO drivers? Probably so and that helps decrease latency by bypassing the extra processing incurred by going through the computer audio.

VST's have built-in compensation for latency in the programming as far as the rendering to an audio file, depending on what the programmer of the third party instrument or effect programmed in, and supposedly tested,lol! The daw, the same. Shouldn't be of concern for the end user.

So if your midi ppqn resolution is really off, that's one thing, but if there is the resolution between notes only the audio is delayed, that's the latency.

@60bpm a quarter note is 1 second in duration, @120bpm a quarter note is 1/2 second in duration. And an eighth note half as long, a sixteenth note a quarter as much, a half not twice as much, etc.
https://soundcloud.com/huck-sawyer-finn
Not an expert on contemporary music

jonnybutter
Committed Musician
Committed Musician
Posts: 834
Joined: Fri Jul 01, 2011 12:37 pm
Gender: Male
Contact:

Re: Technical question about bouncing

Post by jonnybutter » Sat Sep 12, 2015 7:08 am

Hi Len,

Well, 'latency' in this context just means 'delay', so I don't see any reason why you can't call delay of MIDI events 'latency'. But I guess it's often called 'slop' (maybe because it isn't perfectly repeatable like audio latency?).

My original question was not very focused, and for that I apologize. I was curious about how bouncing works - how accurate it is (and I am given to understand from all three of you that it is pretty accurate) - but also wondering about how to make timing among MIDI tracks better. I think what is spooking me is the various delays associated with MIDI before it's bounced.

The way to make non-quantized-type MIDI music ensembles sound good is to play the parts in 'live', but at the same time it behooves to keep the parts editable as MIDI as long as you can while you are devising your piece. That's where the timing issues come in, since MIDI is a serial protocol. So, on the one hand, to get really tight, natural timing, you should bounce each MIDI track to audio right away, so that when you record subsequent tracks they are more in sync with each other. (I think Studio One's GUI concept of dealing with going back and forth between MIDI and audio faces this issue well). But on the other, the promise of MIDI is really instant composition at a high level, with huge editing power.

I don't know how it is for others, but I tend to have a constant battle between hemispheres of my brain when I'm working alone in the studio - the intuitive musical side and the engineering side; if I have to stop and do something engineering-oriented, it kind of breaks the flow. The truth is, DAWs are so good now that this is much less of a problem than it used to be, but naturally, I want more...

'They' are supposedly finishing up the updated ('HD') MIDI protocol, so we shall see.

Make sense?

User avatar
mojobone
King of the World
King of the World
Posts: 11837
Joined: Sat May 17, 2008 4:20 pm
Gender: Male
Location: Up in Indiana, where the tall corn grows
Contact:

Re: Technical question about bouncing

Post by mojobone » Sat Sep 12, 2015 7:19 am

I prefer the term "render", here, because 'bouncing' was what we did before we had a bazillion tracks available. Bouncing is actually a valuable skill that almost nobody bothers to learn anymore; really it's pre-mixing, and learning to do it will make you a better mixer because it teaches you a lot about frequencies and space in a mix. Not to mention you have to really think ahead and use your musical imagination, because once you've bounced, all those tracks/instruments are gonna be on one fader. (nowadays, when we want that we use groups or stems and we still have the ability to undo or make adjustments after the fact) Typically, you'd bounce your first three tracks to a fourth, then record over the first three, or for stereo, you'd bounce your first six tracks down to seven and eight, perhaps adding a few live instruments on the fly. The method enforced a certain amount of discipline.




Rendering is just math; computers are good at it, and can generally be trusted to do it the same way every time, regardless of whether it's real time. The idea that faster than realtime rendering introduces errors is a myth, a leftover from the early days of CD burning, when some of you weren't born, yet. Of course, there's always an exception; if you have an instrument or an effect that randomizes a variable, a humanize function or random sample-and-hold are just two examples, then you could have some flamming when you do a null test.
The Straight Stuff; Roots, Rock & Soul

http://twangfu.wordpress.com
http://twitter.com/mojo_bone

User avatar
mojobone
King of the World
King of the World
Posts: 11837
Joined: Sat May 17, 2008 4:20 pm
Gender: Male
Location: Up in Indiana, where the tall corn grows
Contact:

Re: Technical question about bouncing

Post by mojobone » Sat Sep 12, 2015 7:49 am

jonnybutter wrote:Hi Len,

Well, 'latency' in this context just means 'delay', so I don't see any reason why you can't call delay of MIDI events 'latency'. But I guess it's often called 'slop' (maybe because it isn't perfectly repeatable like audio latency?).

My original question was not very focused, and for that I apologize. I was curious about how bouncing works - how accurate it is (and I am given to understand from all three of you that it is pretty accurate) - but also wondering about how to make timing among MIDI tracks better. I think what is spooking me is the various delays associated with MIDI before it's bounced.

The way to make non-quantized-type MIDI music ensembles sound good is to play the parts in 'live', but at the same time it behooves to keep the parts editable as MIDI as long as you can while you are devising your piece. That's where the timing issues come in, since MIDI is a serial protocol. So, on the one hand, to get really tight, natural timing, you should bounce each MIDI track to audio right away, so that when you record subsequent tracks they are more in sync with each other. (I think Studio One's GUI concept of dealing with going back and forth between MIDI and audio faces this issue well). But on the other, the promise of MIDI is really instant composition at a high level, with huge editing power.

I don't know how it is for others, but I tend to have a constant battle between hemispheres of my brain when I'm working alone in the studio - the intuitive musical side and the engineering side; if I have to stop and do something engineering-oriented, it kind of breaks the flow. The truth is, DAWs are so good now that this is much less of a problem than it used to be, but naturally, I want more...

'They' are supposedly finishing up the updated ('HD') MIDI protocol, so we shall see.

Make sense?
I feel like I've posted this before, but the only tip for tightening the MIDI timing is to turn off all the channels you're not using, so the DAW doesn't waste time scanning them. A MIDI sequencer scans the channels in order, from lowest to highest, because it's a serial spec, and really, there's no such thing as multitasking; a single processor performs one operation at a time, only it's so fast it appears to be doing many things simultaneously. MIDI timing resolution is measured in PPQN (that's pulses [or clocks/ticks] per quarter note) and not all DAWs have the same resolution; you may even be able to adjust it; check your DAW's manual, it came with at least a PDF, right?

:lol: :lol: :lol:

IIRC, there IS an upper limit to MIDI resolution, so most DAWs are maxed out, nowadays and MIDI latency, while variable to a degree, is generally a good deal lower than human latency, so 'slop' is hardly worth worrying about, unless you're running hundreds of MIDI tracks.
The Straight Stuff; Roots, Rock & Soul

http://twangfu.wordpress.com
http://twitter.com/mojo_bone

User avatar
andygabrys
Total Pro
Total Pro
Posts: 5567
Joined: Sun Jan 02, 2011 10:09 pm
Gender: Male
Location: Summerland, BC by way of Santa Fe, Chilliwack, Boston, NYC
Contact:

Re: Technical question about bouncing

Post by andygabrys » Sat Sep 12, 2015 8:31 am

The above is a study by Stanford University on the effects of latency within a band. So if the sweet spot in a band is 11.5 ms latency, what latency are you experiencing in your daw? Probably much less than 11.5 ms, maybe more like 5 ms? Are you using ASIO drivers? Probably so and that helps decrease latency by bypassing the extra processing incurred by going through the computer audio.

yeah. make you think. apparently its a ms trip from typical monitor speakers to your ears. Some people prefer headphones for that reason.

Post Reply

Who is online

Users browsing this forum: No registered users and 23 guests