Kilohearts Plug-ins (My Misunderstanding)

VST, AU, AAX, CLAP, etc. Plugin Virtual Instruments Discussion
Post Reply New Topic
RELATED
PRODUCTS

Post

EDIT: I changed the title of this thread, because I now understand the bit-transparent issue was caused by rounding error between positive and negative values and not an inherent problem with Kilohearts plug-ins themselves, and therefore it would be unfair to Kilohearts (arguably the greatest audio developers) to leave such a title on.

So please keep that in mind when you read this thread. Thank you.

I ❤️ Kilohearts.
TL;DR request: Dear Kilohearts, please update all your plug-ins (including all 33 snapins) to operate at 64-Bit Floating Point internally and also send/receive their data at 64-Bit Floating Point so there would be no need for a 64-Bit to 32-Bit and 32-Bit to 64-Bit conversion either. So a Full End-to-End 64-Bit Floating Point signal path update please? So that there's no need for dither either.

You can recreate my test here:

• Open a new project in REAPER.

• Go to Project Settings > Advanced and make sure that mixing bit depth is at 64-Bit Float.

• Go to Project Settings > Media and make sure everything there is also at 64-Bit FP.

• On the master bus insert Schwa's Bitter or REAPER's own Bit Meter plus REAPER's own Frequency Spectrum Analyzer Meter.

• Change the Frequency Spectrum Analyzer Meter's floor to -450dB.

• Load a test audio track (preferably sine sweep without added noise).

• Duplicate this track.

• Switch the polarity on the duplicated track.

• Press play and you should see that both tracks null perfectly (they are bit-perfect (identical)).

• Now insert Kilohearts' simplest plug-in called GAIN on the duplicated track and leave its gain at zero.

• Press play again, you'll see that the tracks won't perfectly null anymore. In fact, if you render the result and boost it by +150dB, you'll hear the (truncation noise?).

• Now let's add a second Kilohearts' Gain plug-in after the first one (both on the same track). Change the gain on the first one to exactly -3dB, and change the gain on the second one to exactly +3dB.

• Press play again, and this time, not only will you see the truncation noise, but you'll see the signal coming through as well (especially if it's a sine sweep). All you need to do to hear it as well, is to render the result and boost it by +129dB.

• Let's go even further and copy/paste the Gain plug-in *pair* a few hundred times. Remember, for each kHs Gain plug-in that is at -3dB, you MUST have a kHs Gain plug-in that is at +3dB. Here are my result:

• 4 kHs Gain plug-ins only null down to -124dB.
• 8 kHs Gain plug-ins only null down to -119dB.
• 16 kHs Gain plug-ins only null down to -113dB.
• 32 kHs Gain plug-ins only null down to -107dB.
• 64 kHs Gain plug-ins only null down to -101dB.
• 128 kHs Gain plug-ins only null down to -95.8dB.
• 256 kHs Gain plug-ins only null down to -89.8dB.
• 512 kHs Gain plug-ins only null down to -83.8dB.
• 1024 kHs Gain plug-ins only null down to -77.8dB.
• ...

A few notes:

• I understand some may say that these are not audible and therefore there's nothing to fix.

• It makes me wonder whether this is because Kilohearts' plug-ins aren't internally working at 64-Bit Floating Point precision that causes this?

• I did the same test with REAPER's own faders. Only when I set the gain at exactly 1-Bit increments, did the two track null perfectly. -/+ 6.02059991327dB to be precise.

• Airwindows BitShiftGain nulls perfectly (obviously).

• I tested this in other DAWs with the same result: Studio One, Ardour...

• My test signal peaks at 0dBFS.

So again, please update all your plug-ins (including all 33 snapins) to operate at 64-Bit Floating Point internally and also send/receive their data at 64-Bit Floating Point so there would be no need for a 64-Bit to 32-Bit and 32-Bit to 64-Bit conversion either. So an End-to-End 64-Bit Floating Point signal path update please?



Only one kHs Gain plug-in with gain at 0dB:
Image



2 kHs Gain plug-ins on the same track, the first one at -3dB and the second one at +3dB:
Image



8 kHs Gain plug-ins on the same track four of which are at -3dB, the other four at +3dB:
Image
Last edited by limitlesssss on Sun Jul 21, 2024 4:56 am, edited 5 times in total.

Post

64 bit double float makes no audible difference, but requires more ram and cpu, for nothing. So instead, all the vendors, please remove 64 bit double float immediately and return to 32 bit. :hihi:

You measured differences can't be caused by 32 vs. 64bit float. Maybe there is some weird resampling involved? Actually I have no idea what you are doing there... Seems to be negligible for real life, too.

If kilohearts stays 32 bit, very good! Keep fighting the marketing dummies.

Post

In another forum I added audio examples for anyone interested. I'm not sure if it's okay to share the link here.

Post

ffx wrote: Tue Jul 16, 2024 3:54 am 64 bit double float makes no audible difference, but requires more ram and cpu, for nothing. So instead, all the vendors, please remove 64 bit double float immediately and return to 32 bit. :hihi:

You measured differences can't be caused by 32 vs. 64bit float. Maybe there is some weird resampling involved? Actually I have no idea what you are doing there... Seems to be negligible for real life, too.

If kilohearts stays 32 bit, very good! Keep fighting the marketing dummies.
I believe I explained what I did step-by-step. If you still don't know what I did, then please ask and let me clarify it for you. If you're genuinely interested that is. Though I have a feeling you're not.

Post

Musicians versus Plugin Doctor debate.
I stay on the Musician side...

-> Kilohearts, please don't waste ressources on this request.

Post

FL-Studio is 32bit FP. If KH updates their plugins to 64bit FP, then, as you say, there will be a destructive conversation?

Post

Igro wrote: Tue Jul 16, 2024 8:19 am FL-Studio is 32bit FP. If KH updates their plugins to 64bit FP, then, as you say, there will be a destructive conversation?
Cubase, Nuendo, WaveLab, Studio One, Logic Pro, Pro Tools, Cakewalk all support 64-Bit Floating Point operation.

If your DAW doesn't suppport 64-Bit FP, and a plug-in is internally operating at 64-Bit FP, then said plug-in will convert the signal to 32-Bit FP before sending it to your DAW. If your DAW supports 64-Bit FP, and a plug-in operates at 32-Bit FP, then the plug-in either converts the signal to 64-Bit FP before sending it to the DAW, or the DAW itself does the job.

Converting from 32-Bit FP to 64-Bit FP is lossless according to my past experience and it also makes sense that that's the case. Converting from 64-Bit FP to 32-Bit FP on the other hand is destructive and cannot be undone.

So if your DAW is only capable of handling 32-Bit FP signals, then don't worry about the plug-ins, because your DAW is the “bottleneck”. If on the other hand, your DAW is 64-Bit FP capable, then ideally you want everything to be at 64-Bit FP without conversion from 32-Bit FP to 64-Bit FP and then back to 32-Bit FP hundreds of times.

Unfortunately when it comes to 64-Bit Floating Point, many people are defensive for some strange reason. As if modern computers are not capable of handling it. The only understandable reason I can think of, is the fact that they don't want the developer to “waste” their time on updating their plug-ins to 64-Bit FP.

I even tried to convince myself that if inserting 64 snapins in a session doesn't increase the noise above 24-Bit (-144.5dB dynamic range), I'll just be okay with it. But then, as I showed above EVEN ONE kHs Gain plug-in at 0dB (without cutting or boosting), increases the noise level from -infinity to -150dBFS. Two kHs Gain plug-ins with cutting and boosting increase the noise to -129dB. 64 kHs Gain plug-ins increase the noise to -101dBFS. So yeah, something's going on even if many people don't want to admit it or are okay with it.

Post

nevermind

Post

"Seems to be negligible for real life, too." - Yep. The quality of the music cannot be hanging from this :)
Soft Knees - Live 12, Diva, Omnisphere, Slate Digital VSX, TDR, Kush Audio, U-He, PA, Valhalla, Fuse, Pulsar AUDIO, NI, OekSound etc. on Win11Pro R7950X & RME AiO Pro
https://www.youtube.com/@softknees/videos Music & Demoscene

Post

Forget it
The life you have, the life you need, is not the same as the one in your dreams

Post

I love this discussion.
It's far away from real music production and real life.
It's enriching and interesting to look into nerdy thinking.
Will it be worthy for my artistic output?
No, but it's kind of entertaining.
Please go on!
Last edited by martinjuenke on Tue Jul 16, 2024 4:56 pm, edited 1 time in total.

Post

Why is this posted in Instruments? Instruments don't process audio from in to out.

Post

please go to 16 bit to save cpu and ram, thanks kilohearts
aliasing plugin owner
:?

Post

Have you tried +/-6 dB instead of +/-3 dB as well? Have you tried fine-tuning the gain setting to rule out controller offsets? That's what my first thought was after reading that you can perfectly null in other ways - which shouldn't be possible if there was really something wrong with the plugin.

Post

It's worth mentioning that if Schwa's Bitter works anything like Reaper's Bit Meter (which is a reasonable assumption since they were probably both made by the same guy) then it's actually trying to represent a 64 bit floating-point value as a 64 bit fixed-point value which I'm not sure is 100% accurate for the lowest few bits. Also it takes the absolute value so that's at least one bit in the bin.
Image

Post Reply

Return to “Instruments”