HardwareHeaven.com

HardwareHeaven.com

Looking for the skin chooser?
 
 
  • Home

  • Hardware reviews

  • Articles

  • News

  • Tools

  • Gaming at HardwareHeaven

  • Forums

 

Go Back   HardwareHeaven.com > Forums > Hardware and Related Topics > kX Project Audio Driver Support Forum > Effects and the DSP


Reply
 
Thread Tools
Old Nov 28, 2003, 08:25 AM   #1
DriverHeaven Addict
 
Join Date: May 2003
Location: Seattle, USA
Posts: 257
Rep Power: 0
HunterZ is on a distinguished road

Question about LeMury's k2lt in 3536rc2

I noticed that some of LeMury's awesome plugins have been integrated into kX 3536rc2, so I've been playing around with them (specifically, I replaced FXBus with multiple Src plugins and Epilog with k2lt for a savings of 40 instructions). One thing that I noticed that is odd is that k2lt seems to multiply the level of all of the outputs by 4. As a result, I have to lower all of my input levels (Wave, Synth, etc.) to around 10-20% in the mixer. If I were to set them to a high value such as 80-100%, it would almost certainly blow my speakers! In fact, when I tried playing an audio CD today it was incredibly loud and I freaked out because I couldn't find a slider in the kX mixer to control the CD volume (the AC97 analog CD in slider has no effect because WinXP bypasses it and reads the CD audio digitally via the IDE interface and sends it to the Wave line of the sound card; fortunately it turns out that the CD Player slider in the Windows Volume Control utility will control it).

At any rate, I have a few concerns with the k2lt volume multiplication:
- Could be dangerous to speakers if an application or user inadvertently sets the volume to high levels
- Sacrifices precision of volume control (since the volume sliders will always be around 0-20%, you get 5 times the jump in volume change that you would if you had the whole 0-100% range)
- Potentially sacrifices sound quality? I'm not sure how much is lost by running the inputs lower to compensate for the multiplied outputs, but I would guess that it's equivalent to throwing away the two least significant bits of every sound sample (since you're effectively dividing by 4 at the beginning and then multiplying by 4 at the end). But I suppose if the sound card does everythng at 32-bits internally then the effects shouldn't be noticeable

Anyways, I just wanted to bring up that stuff because I was thinking about it. I really like having LeMury's plugins built into kX so that I won't have to worry about getting current-version-compatable builds in the future (hopefully).
__________________
Athlon XP 3200+, Gigabyte GA7N-400Pro2 Rev 2.0 (nVidia nForce2 chipset), 1 GB DDR400 (CAS 2.0, dual-channel), ATI Radeon 9800 Pro 256MB AGP 8x, WinXP Pro SP2, DX9.0c., Logitech Z-5500 5.1 speakers
HunterZ is offline   Reply With Quote


Old Nov 28, 2003, 08:22 PM   #2
DriverHeaven Junior Member
 
Join Date: Nov 2003
Location: Shropshire, England
Posts: 21
Rep Power: 0
Kevin Horden is on a distinguished road

Multiply by 4

Yeah, I had a similar problem.

It took me days to work this one out.

Q: Why does my sinewave oscilator generate squarewaves.
A: Because it's clipping.


Q: Why does the epilog plugin multiply by 4?
Kevin Horden is offline   Reply With Quote
Old Nov 29, 2003, 12:04 PM   #3
DriverHeaven Junior Member
 
Join Date: Nov 2003
Location: Shropshire, England
Posts: 21
Rep Power: 0
Kevin Horden is on a distinguished road

Multiply by 4

Grrrr....

I downloaded the 3536 RC2 to get Lemury's epilog lite and that multiplies by 4 also.

WHY ???
Kevin Horden is offline   Reply With Quote
Old Nov 29, 2003, 11:41 PM   #4
kX Project Lead Programmer and Coordinator
 
Join Date: Dec 2002
Posts: 3,119
Rep Power: 75
Eugene Gavrilov has much to be proud ofEugene Gavrilov has much to be proud ofEugene Gavrilov has much to be proud ofEugene Gavrilov has much to be proud ofEugene Gavrilov has much to be proud ofEugene Gavrilov has much to be proud ofEugene Gavrilov has much to be proud ofEugene Gavrilov has much to be proud ofEugene Gavrilov has much to be proud of

>> that k2lt seems to multiply the level of all of the outputs by 4

this is necessary due to the fact that any 'software' input should be multiplied by 4 before it gets to the 'physical output' (note: 'software' input, the one which originates from FXBus)

visa versa, any 'hardware' input (the one found in the 'prolog') is usually 'divided' by 4 before it is mixed with 'software' streams

that is:
hardware input [prolog]-> div4 -> [any DSP effects]
software input [fxbus] -> [any DSP effects]
[DSP] -> mult4 [epilog] -> physical outputs

note that in the very recent driver versions, the div4/mult4 are 'indirect'
that is, I've used generic amplification/attenuation formulas and the actual '*4' coefficient is calculated by the kX Mixer
(since the output value is now -90dB .. +12dB)

so, for your plugins, you may need to use 'div4' or 'mult4' effects etc...
actually, if you use the 'src' plugin, it changes the volume level automatically (or, at least, should do that)

/Eugene
Eugene Gavrilov is offline   Reply With Quote
Old Nov 30, 2003, 01:13 AM Threadstarter Thread Starter   #5
DriverHeaven Addict
 
Join Date: May 2003
Location: Seattle, USA
Posts: 257
Rep Power: 0
HunterZ is on a distinguished road

About Src: When I view the code it looks like it's doing something weird like inverting the phase of the inputs:

; Registers
output Left, Right

; Code
macs Left, 0x0, KX_FX(0x0), 0x7fffffff;
macs Right, 0x0, KX_FX(0x1), 0x7fffffff;

Why?

Also, the reason I originally questioned the x4 in k2lt was that it doesn't hook into the Master volume slider the way Epilog does, leaving you with an effective Master level of 100% all the time.
__________________
Athlon XP 3200+, Gigabyte GA7N-400Pro2 Rev 2.0 (nVidia nForce2 chipset), 1 GB DDR400 (CAS 2.0, dual-channel), ATI Radeon 9800 Pro 256MB AGP 8x, WinXP Pro SP2, DX9.0c., Logitech Z-5500 5.1 speakers
HunterZ is offline   Reply With Quote
Old Nov 30, 2003, 04:19 AM   #6
h/h member-shmember
 
Join Date: Dec 2002
Location: Evil Empire
Posts: 2,639
Rep Power: 69
Max M. is just super!Max M. is just super!Max M. is just super!Max M. is just super!Max M. is just super!Max M. is just super!

Kevin Horden

Well, Eugene already described that x4 stuff, but in other words it can be said as:
"By convention, 0db level inside of dsp is 0.25 (e.g. signals go through dsp/plugins at -0.25...+0.25)"

HunterZ

In fact, output issues you mentioned is no way related to that "x4" multiplication stuff.
So..

>As a result, I have to lower all of my input levels (Wave, Synth, etc.) to around 10-20% in the mixer

It would be more correct to not reduce the levels in kX but tweak the level using your reciever/amplifier/speakers knobs.
Default kX settings (e.g. faders set to 0dB/100%) give "standard line level" at analog outputs, and any standard amplifier should except these without problems...
Moreover, default kX settings provide you with maximum possible quality at card's analog outputs
(that is, feeding the ADCs with signal at nominal level of those ADCs - giving best possible signal-to-noise ratio and bit resolution)... -
For example if you set kx master level to just 10% (-20dB) you get:
1. ~20dB worse SNR.
2. ~3 bits loss of resolution (e.g. only 13 bit output on Live! models (really bad) and 21 bits on Audigy models)

So finally it's really recommended to keep all the faders of kX as close to 0dB as possible
(of course you will have to reduce the levels by 3..6dB if you use equalizers (or other stuff)
and/or if you have mutilple sounds being played simultaneously (e.g. windowz beeps with mp3s at backround)
- e.g. reduce output level to avoid clipping/saturation/overflow at dsp outputs / adcs inputs - e.g. look at peak-meter)

>About Src: When I view the code it looks like it's doing something weird like inverting the phase of the inputs:

And why did you decide that?
__________________

Last edited by Max M.; Nov 30, 2003 at 11:29 PM.
Max M. is offline   Reply With Quote
Old Nov 30, 2003, 10:30 PM   #7
kX Project Lead Programmer and Coordinator
 
Join Date: Dec 2002
Posts: 3,119
Rep Power: 75
Eugene Gavrilov has much to be proud ofEugene Gavrilov has much to be proud ofEugene Gavrilov has much to be proud ofEugene Gavrilov has much to be proud ofEugene Gavrilov has much to be proud ofEugene Gavrilov has much to be proud ofEugene Gavrilov has much to be proud ofEugene Gavrilov has much to be proud ofEugene Gavrilov has much to be proud of

>> When I view the code it looks like it's doing something weird like inverting the phase of the inputs:

there's no phase inversion there...
(at least in the code snapshot you've provided)

moreover, keep in mind that 'src' plugin automatically updates the code depending on the particular 'source' currently selected
that is, for fxbusses, the signal is not attenuated, while for any physical inputs, the signal -is- attenuated
(simply select the appropriate source and re-load 'src' microcode in the kX Editor)

/Eugene
Eugene Gavrilov is offline   Reply With Quote
Old Dec 1, 2003, 12:05 AM   #8
DH Senior Member
 
Join Date: Jan 2003
Location: The Netherlands
Posts: 1,932
Rep Power: 64
Lex Nahumury is just really niceLex Nahumury is just really niceLex Nahumury is just really niceLex Nahumury is just really nice

Kevin, HunterZ,

All 'Src' input levels, 'K1lt/k2lt' output levels and Phases are correct.
They give no amplification nor attenuation.
That is,..they are fixed at 'standard' kX levels to give best possable SNR
as Max and Eugene already explained in clear detail.

If something clips, you simply do something wrong.

>>About Src: When I view the code it looks like it's doing something weird like inverting
>>the phase of the inputs.

Ehh,..no offence HunterZ, but the code snippet from Src you quoted does not invert anything.
I think you have to do a bit more study.

>>...in k2lt was that it doesn't hook into the Master volume slider the way Epilog does

Yes, that is correct.
There are *no* level sliders whatsoever in Src and k1lt/k2lt.
(And for good reasons). Everything is already discussed in;

http://www.hardwareheaven.com/showthre...threadid=28148

Guys,
These plugins are meant for musicians who know their way in the DSP,
who want a 'purist' approach and save some resources in the procces.
That is why they are in the 'ProFx'menu.
Please use Epilog and Prolog if you don't know (yet) what you are doing
and/or consult the formentioned thread.

/LeMury

P.S.
(Sorry for the delay in reply. I have problems with my health)
Lex Nahumury is offline   Reply With Quote
Reply

Thread Tools