a technical question: what internal bit resolution is Cantabile working with? 24 bit integer of 32 bit float?
For me it is relevant for my gain staging: if all connections and gain sliders work at 32 bit float, there shouldn’t be problems with either clipping or leaving headroom before the final output. This means that I can
- on on side leave ample headroom in my individual racks without losing bit resolution and simply adjust the overall output level before D/A conversion
- on the other hand increase an audio input’s gain to a very hot level in order to drive a guitar amp plugin really hard without risking digital clipping (unless the amp itself is working at 24 bits fixed internal resolution)
if, OTOH, somewhere in Cantabile’s routing, the signal path or processing were 24 bit fixed, I’d have to watch gain staging at every step in my setup (of course, I still need to do look at levels so that my plugins perform within reasonable parameters - that’s clear!)
So: is there a 24 bit fixed risk somewhere in Cantabile’s signal path?
Cantabile’s signal path is either 32-bit float or 64-bit audio if you enable it in Options → Audio Engine.
Besides gain controls and mixing, the follow sample manipulations take place:
- Conversion to sound card format - the very last thing and converts to the (often integer) format as required by the sound driver.
- Conversion from sound card input - opposite of the above.
- Using a 32-bit only plugin when 64-bit audio is enabled - the inputs to the plugin are narrowed to 32-bit and the outputs are widened to 64-bit.
- Sample rate conversion (audio file or metronome sound at different sample rate to engine setting)
- Audio file playback - format conversion from on-disk format to audio engine format.
- Audio recording - format conversion from engine format to format selected for recordings (Options → Recorder)
- Output limiter - a tanh based limiter that affects signals above the limit selected in Options (as per above screen shot) - applied as the next last operation before output format conversion.
TL;DR - no, Cantabile doesn’t convert to integer/fixed within it’s own audio pipeline.
thanx for the detailed answer - I did read it all
So essentially I can proceed as intended - boosting signal levels to drive plugins as hot as I need, lower the level at the output stage of a rack to be sure I have enough headroom to mix everything together and then raise the output level at the end of the chain to maximize S/N ratio of my sound card.
One Q: can you say a bit more about the output limiter (found nothing in the Guides section)? if I select a threshold of 80%, does that mean that anything above 80% is flattened - or does it mean (my assumption) that the volume curve is linear up to 80% and then a gentle tanh(x) slope levels everything out up to 100%?
This would mean in musician’s term that the volume increment from 80% to 85% is still significant, whilst the increment from 95% to 100% (full scale) has a lot less impact (and any peak overshoot beyond 100% is simply flattened to 100%) - correct? So no harsh digital clipping should occur (within limits - driving a limiter too hard still sounds ugly ) even with the level meters hitting full scale…
With the limiter set to 80% it means that signal values from -0.8 to +0.8 will be passed through unaffected. (Assuming signal range of -1.0 to +1.0)
Anything in the range 0.8 to ∞ will be mapped to 0.8 to 1.0 along a tanh curve. (and opposite for -ve values).
via Wolfram Alpha
Great stuff - needs to be in the documentation!!
Now I can immediately eliminate my master limiter in the master rack of my setup.
BTW: love the formula and Wolfram Alpha reference - serious nerd territory - takes me back to my computer science degree some 20+ years ago…
@brad: thinking about this for a couple of minutes - to be honest, I wouldn’t call this a LIMITER - it’s actually more a SOFT CLIPPER or a saturator.
True limiting would mean that the overall volume of the total waveform is lowered as long as the threshold is exceeded, not just the peaks shaved off (albeit in a civilized way with the tanh mechanism).
But I guess that for most intents and purposes, this mechanism is enough to avoid any real nastiness from peaks in output; sometimes even a bit more useful than a true limiter - you can drive it hotter if you accept signal coloring.
You’re absolutely right… in fact the functions I wrote to do this are called “Float32SoftSat” and “Float64SoftSat”. Definitely a soft saturation.
To be honest I can’t remember why I called the option “output limiter” - probably because I wanted something a bit more obvious in meaning.
And yes, the Wolfram stuff is very cool - first time I’ve used it. Usually I just use Google’s equation plotting, but couldn’t figure out how to do the piece-wise function. I like the Wolfram one better now.
Hi @Torsten ,
I know this an old thread but I had a question. Do you still use the built in "limiter’ or set up your own in a master rack? I ask because after I got ‘TrackLimit’ from DMG and tried it on the master rack output for my setup and I feel that I get better fidelity. Also, if you do it this way what limiter do you like?
the built-in “limiter” is more a “soft clipper”, so its use is limited . It introduces distortion even when driven only mildly - which isn’t surprising in a soft-clipper…
I use compressors on both my main outputs rather than limiters. Most brick-wall VST limiters have quite significant latency as part of their forward-looking paradigm (e.g. Voxengo Elephant introduces 28ms of latency). While this doesn’t hurt in a mixing or mastering setup, it does hurt in a live playing scenario.
I use the fantastic FabFilter Pro-C - great-sounding, easy-to operate compressor. And whatever peaks slip through it will then be clipped by Cantabile’s “limiter” - I can live with that…
I’m interested in your DMG TrackLimit, though - they claim that it is low-latency; how much latency does it truly introduce in your setup?
Thanks for the feed back on your output setup. I ran a check using Studio One resource utility and here are the numbers for Tracklimit. 128 sample buffer for audio.
There are six styles each with a different latency :
Aggressive - .2 mS
with ISP ON 1.2 mS
Punchy - .5 mS
with ISP ON 1.2 mS
Warm - 1 mS
with ISP ON 1.2 mS
Smooth - 2 mS
with ISP ON 2.2 mS
Tight - 3 mS
with ISP ON 3.2 mS
Transparent - 5 mS.
with ISP ON 5.1 mS
It employs a 2 stage internal arrangement which is supposed to protect transients. Real life I have been using it for 4 gigs and notice no lag running the punchy setting.