Adjust one audio signal according to the values of another.
The rms power of asig can be interrogated, set, or adjusted to match that of a comparator signal.
Syntax
ares=balance2(asig,acomp[,ihp][,iskip])
aresbalance2asig,acomp[,ihp][,iskip]
Initialization
ihp (optional) -- half-power point (in Hz) of a special internal low-pass filter. The default value is 10.
iskip (optional, default=0) -- initial disposition of internal data space (see reson). The default value is 0.
Performance
asig -- input audio signal
acomp -- the comparator signal
balance2 outputs a version of asig, amplitude-modified so that its rms power is equal to that of a comparator signal acomp. Thus a signal that has suffered loss of power (eg., in passing through a filter bank) can be restored by matching it with, for instance, its own source. It should be noted that gain and balance2 provide amplitude modification only - output signals are not altered in any other respect.
Note that balance2 is just like balance except the gain is recalculated for every sample rather than interpolating k-rate values.
Examples
Here is an example of the balance2 opcode. It uses the file balance2-modern.csd.
<CsoundSynthesizer><CsOptions>; Select audio/midi flags here according to platform-odac -d ;;;RT audio out;-iadc ;;;uncomment -iadc if RT audio input is needed too; For Non-realtime ouput leave only the line below:; -o balance.wav -W ;;; for file output any platform</CsOptions><CsInstruments>sr=44100ksmps=32nchnls=20dbfs=1instr1; Generate a band-limited pulse train.src:a=buzz(0.9,440,sr/440,1); Send the source signal through 2 filters.a1=reson(src,1000,100)a2=reson(a1,3000,500); Balance the filtered signal with the source.afin=balance(a2,src)outs(afin,afin)endin</CsInstruments><CsScore>;sine wave.f1016384101i102e</CsScore></CsoundSynthesizer>
Here is an example of the balance opcode. It uses the file balance2.csd.
<CsoundSynthesizer><CsOptions>; Select audio/midi flags here according to platform-odac ;;;RT audio out;-iadc ;;;uncomment -iadc if RT audio input is needed too; For Non-realtime ouput leave only the line below:; -o balance.wav -W ;;; for file output any platform</CsOptions><CsInstruments>sr=44100ksmps=32nchnls=20dbfs=1instr1; Generate a band-limited pulse train.asrcbuzz0.9,440,sr/440,1; Send the source signal through 2 filters.a1resonasrc,1000,100a2resona1,3000,500; Balance the filtered signal with the source.afinbalance2a2,asrcoutsafin,afinendin</CsInstruments><CsScore>;sine wave.f1016384101i102e</CsScore></CsoundSynthesizer>