The Extended Loris Opcodes

Home | Download | Opcodes | Examples/Sounds | Contact Me


lorisnoiseenvelope

lorisnoiseenvelope — Create a variable length breakpoint-style frequency envelope which scales noise coefficients.

Syntax

lorisnoiseenvelope  isrcidx, istoreidx, kcurve, kfrq1, kdb1 ... kfrqN, kdbN

Description

If a partial frequency from a Loris analysis is equal to breakpoint kfrqN, it's noise coefficient will be scaled by kdbN dB. If a frequency falls between two breakpoints, kfrqN and kfrqN+1 then it's noise coefficient will be scaled by a value between kdbN and kdbN+1 dB interpolated according to kcurve. Breakpoint frequencies (kfrq1, kfrq2, ...) must be ordered from lowest to highest.

Initialization

isrcidx is an integer label that identifies the stored set of SDIF partials that are used. Use lorisread to import partials from an SDIF file, store them in memory and assign a label.

itgtidx is an integer label where the partial data created by this opcode will be stored. This label may be subsequently used with any other loris opcode for further transformation or resynthesis with lorisplay. if itgtidx and isrcidx are identical then isrcidx is overwritten.

Performance

kfrqN is the frequency value which defines the location of the Nth breakpoint scalar.

kdbN is a value in decibles which is applied to the noise coefficients at frequency kfrqN. A value of 0 yields no change; 6 doubles the amplitude, -6 halves it.

kcurve is the slope of the interpolation between neighboring breakpoints. 1 yields a linear interpolation; 2 is an exponential interpolation and 0.5 is a logarithmic. In general kcurve gets steeper above 1 and more rounded below 1. kcurve must be great than 0.

Warning! Only an SDIF file that uses the RBEP frame type will contain bandwidth-enhanced partials (noise coefficients). If you are using another frame type (such as Audiosculpt's or SPEAR's 1TRC), resynthesis will work properly but all noise coefficients will be 0. You can alter them, but only at your own peril!

Credits

The Loris unit generators were written by Kelly Fitz (loris@cerlsoundgroup.org). It is patterned after a prototype implementation of the lorisplay unit generator written by Corbin Champion, and based on the method of Bandwidth-Enhanced Additive Synthesis and on the sound morphing algorithms implemented in the Loris library for sound modeling and manipulation. The opcodes were further adapted as a plugin for Csound 5 by Michael Gogins. Ben Hackbarth (hackbarth@ucsd.edu) wrote the Extended Loris Opcodes.