Bouncing is an essential part of the Logic experience.
Taking a 50, 60, or 100 track mix and reducing it down to a single stereo file? That’s no small feat!
And while users of other DAWs had to “print” their mixes in real-time, Logic users got to enjoy Offline Bouncing. Which is an incredibly fast way to produce a Stereo file fit for iTunes, CD or Spotify.
But on forums all over the internet a Logic myth lurks…
And it’s the belief that Logic’s Bounce doesn’t sound as good as the Project you bounced it from:
Some folks are convinced that Bounce is bogus. So they try to find alternate ways to “print” their Logic mixes without Bouncing.
Today, I’d like to dispel this terrible Logic Myth.
The Case For Bouncing
Bounce comes in a variety of flavors. But at its core, we use Bounce to reduce a multitrack mix down to a single stereo file.
At the end of the day your fans and listeners will hear your track on:
- CD
- Record
- Tape
- Spotify
- iTunes
- Radio
And many other playback mediums. We Bounce because none of these can manage your 100 track Logic Session.
Before Offline Bouncing existed, engineers of yore had to “print” their mixes. This meant they:
- Routed their whole mix to a Stereo Track
- Record-Enabled that Stereo Track
- Hit Play, and
- Waited for the mix to record to the Stereo Track
This was a terribly inefficient process. Because they had to wait for the track to play from beginning to end.
Imagine you’ve finished a mix. Everything is perfect, and you’re ready to lay this puppy down.
So you route your mix, hit record, and start printing…
Quick question: ever wanted to claw your eyes out because of a System Overload?
Now imagine you hit a system overload each time you tried printing your track!
Because that’s what would happen when the digital processing overloaded their CPU mid-print.
Thankfully, an alternative was developed:
Boo Yah – Offline Bounce
Offline Bounce is the silent, and much faster way of condensing your mix session to a stereo file.
Instead of playing the track through from top to tail, Logic renders it all down using math.
Logic “plays through” the track. But instead of recording the mix to a stereo track, Logic uses math to calculate its way to a final Stereo File.
Offline Bouncing is by far faster and more efficient. Plus, it saves your eyeballs from any System Overload carnage!
Of course, you could set Logic to Realtime Bounce:
And Logic will play through the track audibly as it bounces.
Either why you slice it, Logic has you covered.
The Bounce Conspiracy
But what about the quality of Bounce?
Because the conspiracy is how all that math sounds once it’s been calculated. And some folks believe Bounce isn’t as crisp as the original Project.
I feel for these folks. I really do. Because we all get anxious about our DAWs sometimes. And we all know the devil is in the details when it comes to mixing.
So to figure this out, we’ve got to conduct some tests.
The Null Test
The Null Test is a very easy test. And it earns its name for the simple result it’s after.
If you:
- Bounce your mix
- Import your mix back into the project
- Place the Gain plugin on the Bounce
- Invert the Phase on both Left and Right Channels, and
- Playback the mix and Bounce at the same time
Will the mix and Bounce cancel each other out?
And the answer is – they should!
Our goal is to prove that your Bounce is an identical copy to the mix in your Logic Project. That all the fidelity and magic has been faithfully Bounced down.
So you invert the Left and Right channels on the Bounce. By inverting the Bounce, its phase should be 100% opposite of your original mix.
And when 2 signals are 100% identical, but opposite, you should hear:
Nothing.
Not a single sound should emit from your speakers whatsoever.
Go ahead – try it!
So folks did. And many heard the cancellation. And all was right in the world.
But some did not. And that’s where the rest of our story takes place.
The Radical Behaviors That Trick Us
Logic’s Bounce feature is 100% accurate and true to the mix you’ve slaved over.
The problem lies in plugins and virtual instruments that don’t produce the same exact processing each and every time. And we call these processors:
Nonlinear.
Nonlinear processors are designed to produce ever so slight random behaviors over time.
Huh?
Imagine you’re recording a vocalist. No matter how many times you record that person, you’ll never get exactly the same performance twice.
I mean, there’s pitch. And there’s timing. And the singer moves as she sings. And there’s room acoustics…
There are thousands of variables that can occur from take-to-take.
Non-linear processors aim to mimic or model random behavior.
The Culprits
In fact, you don’t have to go any further than Logic’s Drummer!
Load up an instance of Drummer, and set the genre to Rock:
Now open another instance of Drummer, and set this second Drummer track also to Rock:
Let’s now open the Gain plugin on either Drummer track, and invert both the Left and Right channels:
Ready? Hit Spacebar and listen away…
Hear anything?
There’s a good chance you do, and it’s pretty noticeable too. That’s because Logic’s Drummer is a non-linear processor.
The generous Logic team gave us the gift of a Drummer. And Drummer comes with all the nuance and variation of a human drummer.
So much so, that the same Drummer, playing the same part, can’t null each other out!
Not convinced? Try Bouncing each Drummer Region in place:
And nulling one of the two new Audio Regions:
The result remains the same.
More Non-Linear Shenanigans
Our Drummer test explains why a Bounce might not null with your Logic Project.
Drummer is designed to perform slightly different every time you hit Play.
So almost by design Bounce is destined to “fail” the null test. How can a Bounce null against an always random processor?
Here are some other processors that rig the Null Test:
- Alchemy
- Randomized Reverbs like Chromaverb’s 80s Nonlinear preset
- Analog modeling plugins like Slate Digital’s Virtual Tape Machine
- Randomized Effects like Soundtoys’ Microshift
If you Bounce these nonlinear processors in place, Logic’s final Bounce will null just fine.
But until then, these processors are playing tricks on you.
Conclusion
Logic’s offline Bounce feature is a fast and efficient system for producing Stereo mixes. In fact, it’s top notch!
To make sure we don’t lose any sort of quality with Bouncing, we us the Null Test. By importing a Bounce into our Logic Project and inverting the phase, the mix should cancel out.
However, nonlinear processors like Drummer or analog modeling can dupe a null test.
Developers work hard to make processors like these. But until you Bounce these tracks in Place, your Logic Bounce may come across as broken.
So go forth, Bounce freely, and know that Logic still has your back.
I asked that question thanks for the super professional advice! Best site ever!
You bet Shawn! Thank you for asking and putting it on WLPR’s radar 🙂
Bouncing DOES reduce quality. So much so that I have to use Alchemy as a software instrument in my mix, as opposed to bouncing it offline and importing that file. The difference is extreme. I thought this was an Alchemy problem only, but it’s not? My steps are as follows: bounce the single Alchemy track (quality set to Ultra) solo’d with no effects. Import bounced file. The magic, the dynamics, the range is all highly compromised. I discovered this independently; I hadn’t heard about this problem before. Suggestions?
Hey Sol, sorry to hear about that! Let me ask you – when you say “reduces quality,” what are you hearing? How is the quality reduced?
I quickly loaded an instance of Alchemy to test this out with the default preset. I set the Quality to “Ultra” and then Bounced in Place. The Bounce sounded as good to me as the Software Instrument track.
Then I tried to reverse the phase/polarity of the Bounce with the Gain plugin, the 2 signals did not cancel out. This much I expected, as Alchemy is a complex instrument with some nonlinear processes.
Then I Bounced in Place the Bounced in Place version. Once again, I used the Gain plugin to reverse the phase/polarity of one of the Bounces. The 2 Bounces canceled each other out. This I expected as well, since an Audio file with no effects wouldn’t have any non-linear processors that would prevent a total null.
Let me know!
Being a dsp-audio software engineer myself, I’m not sure your cancellation tests faithfully represent the signal, in particular any phase changes caused by the summing process (even tho it’s only one track). Extremely low frequencies, for example, don’t show up well on the display, yet phase can completely change the sonic character. Please try loading “Raindrops Experiment” patch in Alchemy. The sound has lots of dynamics and full spectrum. The imported bounce is flat and missing the low end, with transients noticeably weakened.
A separate problem: both this patch and Logic’s Autofilter give different results every time I play a track using them, even from the same starting point (this was why I was bouncing to a file multiple times, in hopes of one of the bounced signals, imported back into Logic, would be “the good one”. Is there a way to guarantee the same result each time (such as setting a phase to zero)?
Instead of bouncing track in-place, you can record it via loopback function of your interface(not sure, maybe not all interfaces provide it, read your manual). Like: solo your alchemy(or whatever non-linear plugin) track, play it online, record it via loopback of your interface, replace instrument track with recorded version. This solution guarantee resulting file will be completely identical with all what you hear. Downsides of this solution is you need to play instrument track online at least once, but in big production or in project with many cpu-intensive plugins it can be helpful.
I recently discovered that my perception of quality loss was incorrect. Instead, it was a psychoacoustic effect whereby if I hear the same sound played a second time, it sounds duller than the first play. I don’t know if anyone else experiences this “second play dullness”, which is subtle, but I’m certain that this is what I was hearing. The Zero Sum Test is the ultimate authority, as Chris said above. Sorry if I raised any doubts. Logic has pristine audio quality, but my ears don’t! 😉
It’s interesting you say that, also I don’t own logic but Hans Zimmer uses Cubase and says the exact same thing. He can tell music that was mixed in Logic.
Interesting! I have been looking for some answers on this too even though I use reason software I to hear the subtle definition deference’s especially with the transient and low end. Not much information out there on this or I am not looking in the right place!
Hi Chris –
Would you mind emailing me privately at [email protected]?
Thanks,
Sol
Glad my question came in handy to many. However, null test aside, I noticed that any audio clip has a crisper perceived sound when drag and dropped into
logic pro x rather than when the audio file plays normally on the computer not loaded to logic.
There’s a good chance what you’re hearing is a psychoacoustic effect involving your expectation that it sounds better playing in Logic. However, I’ve also heard from a recording engineer that he can tell when a song was mixed in Logic. To find out, try these two things: play in Logic realtime into Audacity, and do the same with a Bounced file (using a different player). Line up the files and do a null test. 2) do a blind test (ideally double blind), asking a friend to randomly play each (playing realtime in Logic and using a different player). If you get a significant weighting, you may be on to something. If not, you’re in the same category as me (I had been certain Bounce degrades until doing blind tests, which I failed).
I just realized that a null test doesn’t make sense for your particular issue (capturing live playback and other-player playback simultaneously). But a blind test would at least be a first step in confirming that what you’re claiming is true.
If you indeed are able to consistently discern between real time playback and playback using another player, say 80% of the time or greater, the next step would be to use Soundflower to capture the realtime playback and then do a null test (not using Logic) with the original file or with Soundflower capture of the other player playing the file.
you use the term ”non-linear” wrong. non-linear processes (effects, functions, etc) produces the same result everytime. the word you should use are ”stochastic” or ”indeterministic” or ”randomized”. ”non-linear” means that ”the result of the sum is not a sum of the (or any linear combination of) results of the parts”, a ”linear combination”is simply a sum where you scaled the parts. (if A and B are the parts, and k1 and k2 are constants (as volume) the linear combination is sum= k1*A + k2*B, which is what you get when you mix signals to a common bus.)
Hi mats, thanks so much for pointing that out! I’ll keep this language in mind for the future. A quick Google search for a definition of “nonlinear” results in the following of several definitions:
“not linear, sequential, or straightforward; random.”
The above definition was what I had in mind when I created the video. In other words: random results.
But again, I appreciate your feedback and will be sure to keep that in mind for the future!
Thanks for this! My issue is not with the quality but with the mix itself. I’ll have the mix to where I want it, and then when I bounce it, the track volume levels aren’t the same. I have to go back in and adjust the levels in my mix, not to my ear, but to my estimate of what that change will sound like once it’s bounced. I might have to experiment a few times before I get the bounced version to sound the way the mix did in the first place. 🥴
That’s either a glitch or possibly an issue with automation. Sometimes Logic doesn’t reset your automation back to the start point when you go to the beginning of the track. Instead it will play it at the last value it had during playback. Usually this only happens in the project for me (not during the bouncing), but I can’t exactly say it’s impossible for this to crop up while you’re bouncing out. I’ve also found rarer instances where it will change the visual layout to match the break point at the beginning of the project, while still playing back a different value.
If I’m feeling paranoid about automation that’s misbehaving, I drop break points at the starting value I want a bar or a beat ahead of where I want it. This forces Logic to reread the value before it actually comes up.
I just spent an hour trying to figure out why virtual synths didn’t blend together the same as audio when recorded via individual busses to audio tracks.
I could see on the spectrum analyzer that little blips of 70hz on the original were nowhere to be seen on the recorded track’s analyzer and it did sound edgier presuming because of missing low end data.
I used bounce in place instead and everything sounded and looked the same. I used busses that nothing else was assigned to for the bounce. So, there’s something new.
Great write-up! I’ve always had best results real-time printing my mixes to a mastering tape deck, straight from the DAW. Then, record the stereo track back to the DAW and bounce from that. Slow but sounds great!
Hey Chris, I’ve been having quite a hard time with Logic failing a null test. I’m on version 10.6.1 using a 2017 MBP 2.9 GHz i7 16Gb ram running BigSur 11.2.3.
Albeit low in volume, I can still hear the track in the null test. I went so far as to remove all plugins and worked only with recorded audio tracks for the test but still ran into the same issue. Interestingly enough, after flipping the phase on the bounced track I added 1.4dB of gain and there was more noticeable cancellation. Alas, not full cancellation. I’ve tried it as an AIFF and WAV on 16, 24, and 32 bit float and still keep getting the same result. The lowest I got the meter on the master was below -60dB. This is great and all, but it is still showing that there are changes from the session and the bounce.
Am I missing something here?
Thanks in advance for your reply!
I just bounced a project where some of the tracks were built from a midi file imported from Finale and others were added by recording live audio. I had to do a lot of automation work to get the dynamics right for the different instruments, solo passages, etc. After bouncing, all the dynamics settings appear to have been lost (some of the recorded tracks couldn’t even be heard).
So I also think I hear a difference sonically and tonally in the offline bounces too, and this might be a solution–bounce in real time. Im not sure why, but it sounds like the math might be getting complicated, even for Logic. With so many different 3rd party plugins and digital data crunching going on, Im finding if I mix out in real time it sounds like it should.
When I use my Apollo Twin X Plug-ins in the master channel, and then mix to my liking, upon bouncing o sharing, the sound/mix is definitely not the same.
Not sure what I’m doing wrong, but I just want to export the exact sounds I have when playing in Logic.
Any ideas? using wav/pcm/24 – but have tried nearly all combos.
Thanks
Paul
Does your project contain any Freezed tracks (or bounced in place) of Alchemy? There is a known bug that causes Alchemy to change the quality from Ultra to Great. The solution is to Bounce your Alchemy track and verify that it sounds correct, then reimport it as an audio file.