Nearing home plate on my quest to link Cantabile with TotalMix (RME’s control / mixing app for their audio interfaces). This will let me use direct monitoring in TotalMix and reduce latency on my dry signal.
C4’s current limitation on the setting of values is one of the last wrinkles in the scheme. I’ll describe my setup and maybe someone can suggest a workaround (other than having @brad alter C4 to change the limit).
Once the wrinkles are straightened out, I’ll post the full .cantabileControlCurve file needed to align C4 with TotalMix.
The first decision was whether to align the control curves of C4 and TotalMix. I felt that they are so different, that it would be a constant pain trying to keep the two straight and handling end conditions. Here’s a comparison of the two curves:
So I decided to align C4’s Gain curves with TotalMix
First step was to implement a custom control curve. I’ll save the gory details for another post, but basically I’m changing the key functions (from Cantabile (New)):
"positionToScalar(x)": "pow(10, (log(x, 10) * slope - (log(zeroDbPos, 10) * slope)) / 20)",
"scalarToPosition(x)": "pow(10, (log(x, 10) * 20 + (log(zeroDbPos, 10) * slope)) / slope)",
… to functions based on how TotalMix renders control curves:
"positionToScalar(x)": "pow (10, ((x > 0.63440860215) ? ((x*32.8235294145) - 26.8235294118) : ((x * x * -94.8544366899) + (x * 153.176470567) - 65)) / 20)",
"scalarToPosition(x)": "clamp( ((log(x,10)*20 >= -6) ? ((log(x,10)*20 + 26.8235294118) * 31.1666666641) : (826 - Sqrt(-34869 - 220660*log(x,10)))) / 1023, 0, 1)",
With this new control curve installed, all sliders in Cantabile work just like those in TotalMix.
Second step: Create dummy routes in C4 to hold Gain values from the rotary encoders I want to pass to TotalMix, and map my rotary encoders to control the Gain of those dummy routes.
Third step: Bind changes in the dummy Gain values to MIDI CC commands sent to LoopMIDI and on to TotalMix. The binding looks like this:
This is where the issue arises – the lower limit of the binding in C4 is -59.9 dB. TotalMix goes down to -65 dB.
The result is this mismatch of 0.3 db at -3dB (-3.0dB vs -3.3dB) …
… and 4 dB down at -45dB (-49.9dB vs -45.9dB):