9      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./012345678 Safe-Inferred)Csound f-tables. You can make a value of  with the function gen. The Csound rates. 0The inner representation of csound expressions. 9:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 9:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ )9 YXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:Z[ fedcba`_^]\ghijkmlnopqrstuv|{zyxw}~   Safe-Inferred %Describes tuples of Csound values. It'&s used for functions that can return  several results (such as soundin or diskin2). Tuples can be nested. DDescribes all Csound values that can be used in the score section. A Instruments are triggered with the values from this type class. Q Actual methods are hidden, but you can easily make instances for your own types  with function !3. You need to describe the new instance in terms $ of some existing one. For example:   data Note = Note  { noteAmplitude :: D  , notePitch :: D  , noteVibrato :: D  , noteSample :: S  }   instance Arg Note where ) argMethods = makeArgMethods to from F where to (amp, pch, vibr, sample) = Note amp pch vibr sample J from (Note amp pch vibr sample) = (amp, pch, vibr, sample) 8Then you can use this type in an instrument definition.  instr :: Note -> Out  instr x = ... +The abstract type of methods for the class  . *Values that can be converted to signals. Csound's synonym for -monad.  means Side Effect.  You will bump into * trying to read and write to delay lines, > making random signals or trying to save your audio to file. - Instrument is expected to return a value of SE [Sig].  So it'4s okay to do some side effects when playing a note. Spectrum of the signal (see FFT and Spectral Processing in the Csound.Opcode.Advanced). /Boolean signals. Use functions from the module  Data.Boolean to make boolean signals  out of simple signals.  Strings.  Doubles.  Integers.  Audio or control rate signals. Output of the instrument. Converts Haskell's integers to Csound' s integers Converts Haskell's doubles to Csound' s doubles Converts Haskell's strings to Csound' s strings Converts signal to double. !Defines instance of type class  ( for a new type in terms of an old one. o  Forces signal to audio rate.  Forces signal to control rate.  !     2   !U    !       Safe-Inferred$0Converts a value to the private representation. 4Constructs a value from the private representation. %$Appends initialisation arguments. It'Cs up to you to supply arguments with the right types. For example: . oscil 0.5 440 sinWave `withInits` (0.5 :: D) /"#$% !"#$%&'()*+,-./012&'3456789:;("#$%&'()*+,-./0123456789:;/"#$% !"#$%&'()*+,-./012&'3456789:;(  Safe-Inferred#)*+,-./0123456789:;<=>?@ABCDEFGHIJK)*+,-./0123456789:;<=>?@ABCDEFGHIJK  Safe-Inferred LMNOPQRSTUVW LMNOPQRSTUVW None+XYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~gXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  Safe-InferredNone$%$None<&The abstract type of musical tracks. =Midi messages. >uApplies a global effect function to the signal. With this function we can add reverb or panning to the mixed signal. n The argument function takes a list of signals. Each cell of the list contains a signal on the given channel. (<=>?@A<=>?@A<=>?@ANone BCDEFGHIJ- "#$&'()*+,-./0123456789:;BCDEFGHIJ- BCDEFGHIJ#&'()*+,-./012"3456789:;$ BCDEFGHIJNoneWKReads p3&-argument for the current instrument. LReads 0dbfs value. MReads sr value. NReads ksmps value. OSimple, fast sine oscillator, that uses only one multiply, and two add operations to generate one sample of output, and does not require a function table.  ' ares oscils iamp, icps, iphs [, iflg] doc:  .http://www.csounds.com/manual/html/oscils.html Pioscil reads table ifn sequentially and repeatedly at a frequency xcps. The amplitude is scaled by xamp.  % ares oscil xamp, xcps, ifn [, iphs] % kres oscil kamp, kcps, ifn [, iphs] doc:  -http://www.csounds.com/manual/html/oscil.html Qoscili reads table ifn sequentially and repeatedly at a frequency xcps. The amplitude is scaled by xamp. Linear interpolation is applied for table look up from internal phase values.  & ares oscili xamp, xcps, ifn [, iphs] & kres oscili kamp, kcps, ifn [, iphs] doc:  .http://www.csounds.com/manual/html/oscili.html Roscil3 reads table ifn sequentially and repeatedly at a frequency xcps. The amplitude is scaled by xamp. Cubic interpolation is applied for table look up from internal phase values.  & ares oscil3 xamp, xcps, ifn [, iphs] & kres oscil3 kamp, kcps, ifn [, iphs] doc:  .http://www.csounds.com/manual/html/oscil3.html SHigh precision oscillator.  & ares poscil xamp, xcps, ifn [, iphs] & kres poscil kamp, kcps, ifn [, iphs] doc:  .http://www.csounds.com/manual/html/poscil.html T5High precision oscillator with cubic interpolation.  ' ares poscil3 xamp, xcps, ifn [, iphs] ' kres poscil3 kamp, kcps, ifn [, iphs] doc:  /http://www.csounds.com/manual/html/poscil3.html U8Output is a set of harmonically related sine partials.  ) ares buzz xamp, xcps, knh, ifn [, iphs] doc:  ,http://www.csounds.com/manual/html/buzz.html V:Output is a set of harmonically related cosine partials.  5 ares gbuzz xamp, xcps, knh, klh, kmul, ifn [, iphs] doc:  -http://www.csounds.com/manual/html/gbuzz.html WGenerates a set of impulses of amplitude kamp separated by kintvl seconds (or samples if kintvl is negative). The first impulse is generated after a delay of ioffset seconds.  & ares mpulse kamp, kintvl [, ioffset] doc:  .http://www.csounds.com/manual/html/mpulse.html XImplementation of a band limited, analog modeled oscillator, based on integration of band limited impulses. vco can be used to simulate a variety of analog wave forms.  H ares vco xamp, xcps, iwave, kpw [, ifn] [, imaxd] [, ileak] [, inyx] \  [, iphs] [, iskip] doc:  +http://www.csounds.com/manual/html/vco.html Yvvco2 is similar to vco. But the implementation uses pre-calculated tables of band-limited waveforms (see also GEN30) { rather than integrating impulses. This opcode can be faster than vco (especially if a low control-rate is used) and also w allows better sound quality. Additionally, there are more waveforms and oscillator phase can be modulated at k-rate. o The disadvantage is increased memory usage. For more details about vco2 tables, see also vco2init and vco2ft.  : ares vco2 kamp, kcps [, imode] [, kpw] [, kphs] [, inyx] doc:  ,http://www.csounds.com/manual/html/vco2.html Z*Produce a normalized moving phase value.   ares phasor xcps [, iphs]  kres phasor kcps [, iphs] doc:  .http://www.csounds.com/manual/html/phasor.html [PProduces a moving phase value between zero and one and an extra impulse output (sync out) whenever its phase value V crosses or is reset to zero. The phase can be reset at any time by an impulse on the sync in parameter.  5 aphase, asyncout syncphasor xcps, asyncin, [, iphs] doc:  2http://www.csounds.com/manual/html/syncphasor.html \COutput is a controlled random number series between -amp and +amp  / ares rand xamp [, iseed] [, isel] [, ioffset] / kres rand xamp [, iseed] [, isel] [, ioffset] doc:  ,http://www.csounds.com/manual/html/rand.html ]YGenerates a controlled random number series with interpolation between each new number.  7 ares randi xamp, xcps [, iseed] [, isize] [, ioffset] 7 kres randi kamp, kcps [, iseed] [, isize] [, ioffset] doc:  -http://www.csounds.com/manual/html/randi.html ^?Generates random numbers and holds them for a period of time.  7 ares randh xamp, xcps [, iseed] [, isize] [, ioffset] 7 kres randh kamp, kcps [, iseed] [, isize] [, ioffset] doc:  -http://www.csounds.com/manual/html/randh.html _r31-bit bipolar random opcodes with controllable distribution. These units are portable, i.e. using the same seed  value will generate the same random sequence on all systems. The distribution of --generated random numbers can be varied at k-rate.   ax rnd31 kscl, krpow [, iseed]  ix rnd31 iscl, irpow [, iseed]  kx rnd31 kscl, krpow [, iseed] doc:  -http://www.csounds.com/manual/html/rnd31.html `SGenerates is a controlled pseudo-random number series between min and max values.   ax random kscl, krpow  ix random iscl, irpow  kx random kscl, krpow doc:  .http://www.csounds.com/manual/html/random.html a^Generates a user-controlled random number series with interpolation between each new number.  5 ares randomi kmin, kmax, xcps [,imode] [,ifirstval] 5 kres randomi kmin, kmax, kcps [,imode] [,ifirstval] doc:  /http://www.csounds.com/manual/html/randomi.html bXGenerates random numbers with a user-defined limit and holds them for a period of time.  5 ares randomh kmin, kmax, xcps [,imode] [,ifirstval] 5 kres randomh kmin, kmax, kcps [,imode] [,ifirstval] doc:  /http://www.csounds.com/manual/html/randomh.html c&Generates approximate pink noise (-3dB//oct response) by one of two different methods: B a multirate noise generator after Moore, coded by Martin Gardner ' a filter bank designed by Paul Kellet  @ ares pinkish xin [, imethod] [, inumbands] [, iseed] [, iskip] doc:  /http://www.csounds.com/manual/html/pinkish.html Unsafe version of the c7 opcode. Unsafe means that there can be possible alias V on the expression level. Two expressions with the same arguments can be unexpectedly 9 rendered as the same expression within one instrument. d5A white noise generator with an IIR lowpass filter.   ares noise xamp, kbeta doc:  -http://www.csounds.com/manual/html/noise.html Unsafe version of the d7 opcode. Unsafe means that there can be possible alias V on the expression level. Two expressions with the same arguments can be unexpectedly 9 rendered as the same expression within one instrument. e;Trace a series of line segments between specified points.  2 ares linseg ia, idur1, ib [, idur2] [, ic] [...] 2 kres linseg ia, idur1, ib [, idur2] [, ic] [...] doc:  .http://www.csounds.com/manual/html/linseg.html fWTrace a series of line segments between specified points including a release segment.  = ares linsegr ia, idur1, ib [, idur2] [, ic] [...], irel, iz = kres linsegr ia, idur1, ib [, idur2] [, ic] [...], irel, iz doc:  /http://www.csounds.com/manual/html/linsegr.html gATrace a series of exponential segments between specified points.  2 ares expseg ia, idur1, ib [, idur2] [, ic] [...] 2 kres expseg ia, idur1, ib [, idur2] [, ic] [...] doc:  .http://www.csounds.com/manual/html/expseg.html h^Trace a series of exponential segments between specified points including a release segment.  = ares expsegr ia, idur1, ib [, idur2] [, ic] [...], irel, iz = kres expsegr ia, idur1, ib [, idur2] [, ic] [...], irel, iz doc:  /http://www.csounds.com/manual/html/expsegr.html iGenerate control signal consisting of held segments delimited by two or more specified points. The entire envelope is looped at kfreq rate. Each parameter can be varied at k-rate.  F ksig lpshold kfreq, ktrig, ktime0, kvalue0 [, ktime1] [, kvalue1] \ $ [, ktime2] [, kvalue2] [...] doc:  /http://www.csounds.com/manual/html/lpshold.html jGenerate control signal consisting of linear segments delimited by two or more specified points. The entire envelope is looped at kfreq rate. Each parameter can be varied at k-rate.  M ksig loopseg kfreq, ktrig, iphase, ktime0, kvalue0 [, ktime1] [, kvalue1] \ $ [, ktime2] [, kvalue2] [...] doc:  /http://www.csounds.com/manual/html/loopseg.html kGenerate control signal consisting of controllable exponential segments or linear segments delimited by two or more specified points. W The entire envelope is looped at kfreq rate. Each parameter can be varied at k-rate.  Y ksig looptseg kfreq, ktrig, ktime0, kvalue0, ktype0, [, ktime1] [, kvalue1] [,ktype1] \ D [, ktime2] [, kvalue2] [,ktype2] [...][, ktimeN] [, kvalueN] doc:  0http://www.csounds.com/manual/html/looptseg.html lThis is an interpolating variable time delay, it is not very different from the existing implementation (deltapi), it is only easier to use.  + ares vdelay asig, adel, imaxdel [, iskip] doc:  .http://www.csounds.com/manual/html/vdelay.html m:A variable delay opcode with high quality interpolation.  ) aout vdelayx ain, adl, imd, iws [, ist] doc:  /http://www.csounds.com/manual/html/vdelayx.html n9Variable delay opcodes with high quality interpolation. 'aout vdelayxw ain, adl, imd, iws [, ist] doc:  0http://www.csounds.com/manual/html/vdelayxw.html o=Reads from an automatically established digital delay line.   ares delayr idlt [, iskip] doc:  .http://www.csounds.com/manual/html/delayr.html p2Writes the audio signal to a digital delay line.   delayw asig doc:  .http://www.csounds.com/manual/html/delayw.html q,Tap a delay line at variable offset times.   ares deltap kdlt doc:  .http://www.csounds.com/manual/html/deltap.html rATaps a delay line at variable offset times, uses interpolation.   ares deltapi xdlt doc:  /http://www.csounds.com/manual/html/deltapi.html sGTaps a delay line at variable offset times, uses cubic interpolation.   ares deltap3 xdlt doc:  /http://www.csounds.com/manual/html/deltap3.html tdeltapx is similar to deltapi or deltap3. However, it allows higher quality interpolation. This opcode can read from and write to a delayr/'delayw delay line with interpolation.   aout deltapx adel, iwsize doc:  /http://www.csounds.com/manual/html/deltapx.html u^deltapxw mixes the input signal to a delay line. This opcode can be mixed with reading units k (deltap, deltapn, deltapi, deltap3, and deltapx) in any order; the actual delay time is the difference of I the read and write time. This opcode can read from and write to a delayr/'delayw delay line with interpolation.   deltapxw ain, adel, iwsize doc:  0http://www.csounds.com/manual/html/deltapxw.html vJA first-order recursive low-pass filter with variable frequency response. -tone is a 1 term IIR filter. Its formula is:   yn = c1 * xn + c2 * yn-1 where  b = 2 - cos(2  hp/sr);  c2 = b - sqrt(b2 - 1.0)  c1 = 1 - c2   ares tone asig, khp [, iskip] doc:  ,http://www.csounds.com/manual/html/tone.html wSA hi-pass filter whose transfer functions are the complements of the tone opcode.   ares atone asig, khp [, iskip] doc:  -http://www.csounds.com/manual/html/atone.html x?Implementation of a second-order low-pass Butterworth filter.  " ares butlp asig, kfreq [, iskip] doc:  0http://www.csounds.com/manual/html/butterlp.html y=Implementation of second-order high-pass Butterworth filter.  " ares buthp asig, kfreq [, iskip] doc:  0http://www.csounds.com/manual/html/butterhp.html z A second-order resonant filter.  . ares reson asig, kcf, kbw [, iscl] [, iskip] doc:  -http://www.csounds.com/manual/html/reson.html {RA notch filter whose transfer functions are the complements of the reson opcode.  / ares areson asig, kcf, kbw [, iscl] [, iskip] doc:  .http://www.csounds.com/manual/html/areson.html |@Implementation of a second-order band-pass Butterworth filter.  ) ares butbp asig, kfreq, kband [, iskip] doc:  0http://www.csounds.com/manual/html/butterbp.html }BImplementation of a second-order band-reject Butterworth filter.  ) ares butbr asig, kfreq, kband [, iskip] doc:  0http://www.csounds.com/manual/html/butterbr.html ~\Moogladder is an new digital implementation of the Moog ladder filter based on the work of + Antti Huovilainen, described in the paper ;Non-Linear Digital Implementation of the Moog Ladder Filter+ (Proceedings of DaFX04, Univ of Napoli). i This implementation is probably a more accurate digital representation of the original analogue filter.  ) asig moogladder ain, kcf, kres[, istor] doc:  2http://www.csounds.com/manual/html/moogladder.html LVariably reverberates an input signal with a colored  frequency response.  ; ares vcomb asig, krvt, xlpt, imaxlpt [, iskip] [, insmps] doc:  -http://www.csounds.com/manual/html/vcomb.html #A second-order multi-mode filter.  1 ares bqrez asig, xfco, xres [, imode] [, iskip] doc:  -http://www.csounds.com/manual/html/bqrez.html CReverberates an input signal with a colored  frequency response.  1 ares comb asig, krvt, ilpt [, iskip] [, insmps] doc:  ,http://www.csounds.com/manual/html/comb.html 5Applies portamento to a step-valued control signal.   kres port ksig, ihtim [, isig] doc:  ,http://www.csounds.com/manual/html/port.html 5Applies portamento to a step-valued control signal.  ! kres portk ksig, khtim [, isig] doc:  -http://www.csounds.com/manual/html/portk.html /freeverb is a stereo reverb unit based on Jezar'9s public domain C++ sources, composed of eight parallel l comb filters on both channels, followed by four allpass units in series. The filters on the right channel W are slightly detuned compared to the left channel in order to create a stereo effect.  J aoutL, aoutR freeverb ainL, ainR, kRoomSize, kHFDamp[, iSRate[, iSkip]] doc:  0http://www.csounds.com/manual/html/freeverb.html l8 delay line stereo FDN reverb, with feedback matrix based upon physical modeling scattering junction of 8 m lossless waveguides of equal characteristic impedance. Based on Csound orchestra version by Sean Costello.  O aoutL, aoutR reverbsc ainL, ainR, kfblvl, kfco[, israte[, ipitchm[, iskip]]] doc:  0http://www.csounds.com/manual/html/reverbsc.html HReverberates an input signal with a natural room  frequency response.  " ares reverb asig, krvt [, iskip] doc:  .http://www.csounds.com/manual/html/reverb.html ^This is a reverberator consisting of 6 parallel comb-lowpass filters being fed into a series c of 5 allpass filters. nreverb replaces reverb2 (version 3.48) and so both opcodes are identical.  G ares nreverb asig, ktime, khdif [, iskip] [,inumCombs] [, ifnCombs] \ " [, inumAlpas] [, ifnAlpas] doc:  /http://www.csounds.com/manual/html/nreverb.html \babo stands for ball-within-the-box. It is a physical model reverberator based on the paper  by Davide Rocchesso 4The Ball within the Box: a sound-processing metaphor>, Computer Music Journal, Vol 19, N.4, pp.45-47, Winter 1995. The resonator geometry can be defined, along with some response characteristics, the position of the listener within the resonator, and the position of the sound source.  I a1, a2 babo asig, ksrcx, ksrcy, ksrcz, irx, iry, irz [, idiff] [, ifno] doc:  ,http://www.csounds.com/manual/html/babo.html Determines the root-mean-square amplitude of an audio signal. It low-pass filters the actual value, to average in the manner of a VU meter.  ! kres rms asig [, ihp] [, iskip] doc:  +http://www.csounds.com/manual/html/rms.html cThe rms power of asig can be interrogated, set, or adjusted to match that of a comparator signal.  , ares balance asig, acomp [, ihp] [, iskip] doc:  /http://www.csounds.com/manual/html/balance.html #Envelope follower unit generator.   ares follow asig, idt doc:  .http://www.csounds.com/manual/html/follow.html TA controllable envelope extractor using the algorithm attributed to Jean-Marc Jot.   ares follow2 asig, katt, krel doc:  /http://www.csounds.com/manual/html/follow2.html _These opcodes maintain the output k-rate variable as the peak absolute level so far received.   kres peak asig  kres peak ksig doc:  ,http://www.csounds.com/manual/html/peak.html max_k outputs the local maximum (or minimum) value of the incoming asig signal, checked in the time interval between ktrig has become true twice.  # knumkout max_k asig, ktrig, itype doc:  -http://www.csounds.com/manual/html/max_k.html mptrack takes an input signal, splits it into ihopsize blocks and using a STFT method, extracts an estimated p pitch for its fundamental frequency as well as estimating the total amplitude of the signal in dB, relative to d full-scale (0dB). The method implies an analysis window size of 2*ihopsize samples (overlaping by 1/2 window), which v has to be a power-of-two, between 128 and 8192 (hopsizes between 64 and 4096). Smaller windows will give better time  precision, but worse frequency accuracy (esp. in low fundamentals).This opcode is based on an original algorithm by M. Puckette.  + kcps, kamp ptrack asig, ihopsize[,ipeaks] doc:  .http://www.csounds.com/manual/html/ptrack.html Using the same techniques as spectrum and specptrk, pitch tracks the pitch of the signal in octave point decimal form, and amplitude in dB.  J koct, kamp pitch asig, iupdte, ilo, ihi, idbthresh [, ifrqs] [, iconf] \ D [, istrt] [, iocts] [, iq] [, inptls] [, irolloff] [, iskip] doc:  -http://www.csounds.com/manual/html/pitch.html }Follows the pitch of a signal based on the AMDF method (Average Magnitude Difference Function). Outputs pitch and amplitude  tracking signals. The method is quite fast and should run in realtime. This technique usually works best for monophonic signals.  B kcps, krms pitchamdf asig, imincps, imaxcps [, icps] [, imedi] \ * [, idowns] [, iexcps] [, irmsmedi] doc:  1http://www.csounds.com/manual/html/pitchamdf.html :Estimate the tempo of beat patterns in a control signal.  L ktemp tempest kin, iprd, imindur, imemdur, ihp, ithresh, ihtim, ixfdbak, \ . istartempo, ifn [, idisprd] [, itweek] doc:  /http://www.csounds.com/manual/html/tempest.html sThis unit functions as an audio compressor, limiter, expander, or noise gate, using either soft-knee or hard-knee x mapping, and with dynamically variable performance characteristics. It takes two audio input signals, aasig and acsig, x the first of which is modified by a running analysis of the second. Both signals can be the same, or the first can be - modified by a different controlling signal. pcompress first examines the controlling acsig by performing envelope detection. This is directed by two control r values katt and krel, defining the attack and release time constants (in seconds) of the detector. The detector v rides the peaks (not the RMS) of the control signal. Typical values are .01 and .1, the latter usually being similar  to ilook. xThe running envelope is next converted to decibels, then passed through a mapping function to determine what compresser v action (if any) should be taken. The mapping function is defined by four decibel control values. These are given as p positive values, where 0 db corresponds to an amplitude of 1, and 90 db corresponds to an amplitude of 32768.  P ar compress aasig, acsig, kthresh, kloknee, khiknee, kratio, katt, krel, ilook doc:  0http://www.csounds.com/manual/html/compress.html vThis opcode dynamically modifies a gain value applied to the input sound ain by comparing its power level to a given / threshold level. The signal will be compressed/Sexpanded with different factors regarding that it is over or under the threshold.  ; ares dam asig, kthreshold, icomp1, icomp2, irtime, iftime doc:  +http://www.csounds.com/manual/html/dam.html _Clips an a-rate signal to a predefined limit, in a soft  manner, using one of three methods.  ( ares clip asig, imeth, ilimit [, iarg] doc:  ,http://www.csounds.com/manual/html/clip.html <Sets the lower and upper limits of the value it processes.   ares limit asig, klow, khigh  ires limit isig, ilow, ihigh  kres limit ksig, klow, khigh doc:  -http://www.csounds.com/manual/html/limit.html 4Performs a sample-and-hold operation on its input.  / ares samphold asig, agate [, ival] [, ivstor] / kres samphold ksig, kgate [, ival] [, ivstor] doc:  0http://www.csounds.com/manual/html/samphold.html Access values of the current buffer of an a-rate variable by indexing. Useful for doing sample-by-sample manipulation at k-rate without using setksmps 1.   kval vaget kndx, avar doc:  -http://www.csounds.com/manual/html/vaget.html Write values into the current buffer of an a-rate variable at the given index. Useful for doing sample-by-sample manipulation at k-rate without using setksmps 1.   vaset kval, kndx, avar doc:  -http://www.csounds.com/manual/html/vaset.html PDistribute an audio signal amongst four channels with localization control.  < a1, a2, a3, a4 pan asig, kx, ky, ifn [, imode] [, ioffset] doc:  +http://www.csounds.com/manual/html/pan.html JDistribute an audio signal across two channels with a choice of methods.   a1, a2 pan2 asig, xp [, imode] doc:  ,http://www.csounds.com/manual/html/pan2.html vThis opcode takes a source signal and spatialises it in the 3 dimensional space around a listener using head related u transfer function (HRTF) based filters. It produces a static output (azimuth and elevation parameters are i-rate), ^ because a static source allows much more efficient processing than hrtfmove and hrtfmove2,.  I aleft, aright hrtfstat asrc, iAz, iElev, ifilel, ifiler [,iradius, isr] doc:  0http://www.csounds.com/manual/html/hrtfstat.html This opcode takes a source signal and spatialises it in the 3 dimensional space around a listener by convolving the source with stored head related transfer function (HRTF) based filters.  O aleft, aright hrtfmove asrc, kAz, kElev, ifilel, ifiler [, imode, ifade, isr] doc:  0http://www.csounds.com/manual/html/hrtfmove.html This opcode takes a source signal and spatialises it in the 3 dimensional space around a listener using head related transfer function (HRTF) based filters.  T aleft, aright hrtfmove2 asrc, kAz, kElev, ifilel, ifiler [,ioverlap, iradius, isr] doc:  1http://www.csounds.com/manual/html/hrtfmove2.html Extend the duration of real-time generated events and handle their extra life (Usually for usage along with release instead of linenr, linsegr, etc).   xtratim iextradur doc:  /http://www.csounds.com/manual/html/xtratim.html ^KLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~UKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~UKLMNOSTPQRUVWXYZ[\]^_`abcdegfhijklmnopqrstuvxwyz|{}~^KLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~NoneQ)A basic frequency modulated oscillator.  8 ares foscil xamp, kcps, xcar, xmod, kndx, ifn [, iphs] doc:  .http://www.csounds.com/manual/html/foscil.html ABasic frequency modulated oscillator with linear interpolation.  9 ares foscili xamp, kcps, xcar, xmod, kndx, ifn [, iphs] doc:  /http://www.csounds.com/manual/html/foscili.html 'Two oscillators, mutually frequency and/#or phase modulated by each other.  Q a1, a2 crossfm xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2] R a1, a2 crossfmi xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2] Q a1, a2 crosspm xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2] R a1, a2 crosspmi xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2] S a1, a2 crossfmpm xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2] T a1, a2 crossfmpmi xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2] doc:  /http://www.csounds.com/manual/html/crossfm.html @Distort an audio signal via waveshaping and optional clipping.  + ar distort asig, kdist, ifn[, ihp, istor] doc:  /http://www.csounds.com/manual/html/distort.html Implementation of modified hyperbolic tangent distortion. distort1 can be used to generate wave shaping distortion based on a modification of the tanh function.  J exp(asig * (shape1 + pregain)) - exp(asig * (shape2 - pregain)) J aout = --------------------------------------------------------------- @ exp(asig * pregain) + exp(-asig * pregain)  D ares distort1 asig, kpregain, kpostgain, kshape1, kshape2[, imode] doc:  0http://www.csounds.com/manual/html/distort1.html jThe powershape opcode raises an input signal to a power with pre- and post-scaling of the signal so that  the output will be in a predictable range. It also processes negative inputs in a symmetrical way to positive inputs, calculating a dynamic transfer function that is useful for waveshaping.  2 aout powershape ain, kShapeAmount [, ifullscale] doc:  2http://www.csounds.com/manual/html/powershape.html lThe polynomial opcode calculates a polynomial with a single a-rate input variable. The polynomial is a sum  of any number of terms in the form kn*x^n where kn is the nth coefficient of the expression. These coefficients are k-rate values.  - aout polynomial ain, k0 [, k1 [, k2 [...]]] doc:  2http://www.csounds.com/manual/html/polynomial.html vThe chebyshevpoly opcode calculates the value of a polynomial expression with a single a-rate input variable that is | made up of a linear combination of the first N Chebyshev polynomials of the first kind. Each Chebyshev polynomial, Tn(x),  is weighted by a k-rate coefficient, kn, so that the opcode is calculating a sum of any number of terms in the form kn*Tn(x). { Thus, the chebyshevpoly opcode allows for the waveshaping of an audio signal with a dynamic transfer function that gives ; precise control over the harmonic content of the output.  0 aout chebyshevpoly ain, k0 [, k1 [, k2 [...]]] doc:  5http://www.csounds.com/manual/html/chebyshevpoly.html A user controlled flanger.  . ares flanger asig, adel, kfeedback [, imaxd] doc:  /http://www.csounds.com/manual/html/flanger.html FAnalyze an audio input and generate harmonizing voices in synchrony.  D ares harmon asig, kestfrq, kmaxvar, kgenfreq1, kgenfreq2, imode, \  iminfrq, iprd doc:  .http://www.csounds.com/manual/html/harmon.html LAn implementation of iord number of first-order allpass filters in series.  5 ares phaser1 asig, kfreq, kord, kfeedback [, iskip] doc:  /http://www.csounds.com/manual/html/phaser1.html MAn implementation of iord number of second-order allpass filters in series.  < ares phaser2 asig, kfreq, kq, kord, kmode, ksep, kfeedback doc:  /http://www.csounds.com/manual/html/phaser2.html bThe pdclip opcode allows a percentage of the input range of a signal to be clipped to fullscale. b It is similar to simply multiplying the signal and limiting the range of the result, but pdclip b allows you to think about how much of the signal range is being distorted instead of the scalar f factor and has a offset parameter for assymetric clipping of the signal range. pdclip is also useful 8 for remapping phasors for phase distortion synthesis.  > aout pdclip ain, kWidth, kCenter [, ibipolar [, ifullscale]] doc:  .http://www.csounds.com/manual/html/pdclip.html -The pdhalf opcode is designed to emulate the classic+ phase distortion synthesis method of the 2 Casio CZ-series of synthesizers from the mid-1980'5s. This technique reads the first and second halves i of a function table at different rates in order to warp the waveform. For example, pdhalf can smoothly N transform a sine wave into something approximating the shape of a saw wave.  ; aout pdhalf ain, kShapeAmount [, ibipolar [, ifullscale]] doc:  .http://www.csounds.com/manual/html/pdhalf.html bThe pdhalfy opcode is a variation on the phase distortion synthesis method of the pdhalf opcode. w It is useful for distorting a phasor in order to read two unequal portions of a table in the same number of samples.  < aout pdhalfy ain, kShapeAmount [, ibipolar [, ifullscale]] doc:  /http://www.csounds.com/manual/html/pdhalfy.html TA fast and robust method for approximating sound propagation, achieving convincing Y Doppler shifts without having to solve equations. The method computes frequency shifts Z based on reading an input delay line at a delay time computed from the distance between Y source and mic and the speed of sound. One instance of the opcode is required for each X dimension of space through which the sound source moves. If the source sound moves at V a constant speed from in front of the microphone, through the microphone, to behind W the microphone, then the output will be frequency shifted above the source frequency T at a constant frequency while the source approaches, then discontinuously will be X shifted below the source frequency at a constant frequency as the source recedes from W the microphone. If the source sound moves at a constant speed through a point to one X side of the microphone, then the rate of change of position will not be constant, and T the familiar Doppler frequency shift typical of a siren or engine approaching and 9 receding along a road beside a listener will be heard.  X ashifted doppler asource, ksourceposition, kmicposition [, isoundspeed, ifiltercutoff] doc:  /http://www.csounds.com/manual/html/doppler.html Convolution based on a uniformly partitioned overlap-save algorithm. Compared to the convolve opcode, pconvolve has these benefits:  small delay 8 possible to run in real-time for shorter impulse files  no pre-process analysis pass ' can often render faster than convolve  Q ar1 [, ar2] [, ar3] [, ar4] pconvolve ain, ifilcod [, ipartitionsize, ichannel] doc:  1http://www.csounds.com/manual/html/pconvolve.html iOutput is the convolution of signal ain and the impulse response contained in ifilcod. If more than one d output signal is supplied, each will be convolved with the same impulse response. Note that it is  considerably more efficient to use one instance of the operator when processing a mono input to create stereo, or quad, outputs.  @ ar1 [, ar2] [, ar3] [, ar4] convolve ain, ifilcod [, ichannel] doc:  0http://www.csounds.com/manual/html/convolve.html xLow latency multichannel convolution, using a function table as impulse response source. The algorithm is to split the  impulse response to partitions of length determined by the iplen parameter, and delay and mix partitions so that the original,  full length impulse response is reconstructed without gaps. The output delay (latency) is iplen samples, and does not depend E on the control rate, unlike in the case of other convolve opcodes.  B a1[, a2[, a3[, ... a8]]] ftconv ain, ift, iplen[, iskipsamples \  [, iirlen[, iskipinit]]] doc:  .http://www.csounds.com/manual/html/ftconv.html A direct convolution opcode.   ares dconv asig, isize, ifn doc:  -http://www.csounds.com/manual/html/dconv.html ZGenerate an fsig from a mono audio source ain, using phase vocoder overlap-add analysis.  P fsig pvsanal ain, ifftsize, ioverlap, iwinsize, iwintype [, iformat] [, iinit] doc:  /http://www.csounds.com/manual/html/pvsanal.html pvstanal implements phase vocoder analysis by reading function tables containing sampled-sound sources, with GEN01, and pvstanal will accept deferred allocation tables. This opcode allows for time and frequency-independent scaling. Time is advanced internally, but controlled by a tempo scaling parameter; when an onset is detected,  timescaling is momentarily stopped to avoid smearing of attacks. The quality of the effect is generally improved with phase locking switched on. dpvstanal will also scale pitch, independently of frequency, using a transposition factor (k-rate).  b fsig pvstanal ktimescal, kamp, kpitch, ktab, [kdetect, kwrap, ioffset,ifftsize, ihop, idbthresh] doc:  0http://www.csounds.com/manual/html/pvstanal.html EResynthesise phase vocoder data (f-signal) using a FFT overlap-add.   ares pvsynth fsrc, [iinit] doc:  /http://www.csounds.com/manual/html/pvsynth.html ,Resynthesize using a fast oscillator-bank.  I ares pvsadsyn fsrc, inoscs, kfmod [, ibinoffset] [, ibinincr] [, iinit] doc:  0http://www.csounds.com/manual/html/pvsadsyn.html This opcode writes a fsig to a PVOCEX file (which in turn can be read by pvsfread or other programs that support PVOCEX file input).   pvsfwrite fsig, ifile doc:  1http://www.csounds.com/manual/html/pvsfwrite.html qCreate an fsig stream by reading a selected channel from a PVOC-EX analysis file loaded into memory, with frame q interpolation. Only format 0 files (amplitude+frequency) are currently supported. The operation of this opcode O mirrors that of pvoc, but outputs an fsig instead of a resynthesized signal.  % fsig pvsfread ktimpt, ifn [, ichan] doc:  0http://www.csounds.com/manual/html/pvsfread.html mCreate an fsig stream by reading a selected channel from a PVOC-EX analysis file, with frame interpolation.  5 fsig pvsdiskin SFname,ktscal,kgain[,ioffset, ichan] doc:  1http://www.csounds.com/manual/html/pvsdiskin.html cGet format information about fsrc, whether created by an opcode such as pvsanal, or obtained from k a PVOCEX file by pvsfread. This information is available at init time, and can be used to set parameters f for other pvs opcodes, and in particular for creating function tables (e.g. for pvsftw), or setting * the number of oscillators for pvsadsyn.  4 ioverlap, inumbins, iwinsize, iformat pvsinfo fsrc doc:  /http://www.csounds.com/manual/html/pvsinfo.html JObtain the amp and freq values off a PVS signal bin as k-rate variables.   kamp, kfr pvsbin fsig, kbin doc:  .http://www.csounds.com/manual/html/pvsbin.html RCalculate the spectral centroid of a signal from its discrete Fourier transform.   kcent pvscent fsig doc:  /http://www.csounds.com/manual/html/pvscent.html Scale the frequency components of a pv stream, resulting in pitch shift. Output amplitudes can be optionally modified in order to attempt formant preservation.  8 fsig pvscale fsigin, kscal[, kkeepform, kgain, kcoefs] doc:  /http://www.csounds.com/manual/html/pvscale.html 9Shift the frequency components of a pv stream, stretching/compressing its spectrum.  B fsig pvshift fsigin, kshift, klowest[, kkeepform, igain, kcoefs] doc:  /http://www.csounds.com/manual/html/pvshift.html ~Filter the pvoc frames, passing bins whose frequency is within a band, and with linear interpolation for transitional bands.  , fsig pvsbandp fsigin, xlowcut, xlowfull, \ $ xhighfull, xhighcut[, ktype] doc:  0http://www.csounds.com/manual/html/pvsbandp.html Filter the pvoc frames, rejecting bins whose frequency is within a band, and with linear interpolation for transitional bands.  , fsig pvsbandr fsigin, xlowcut, xlowfull, \ $ xhighfull, xhighcut[, ktype] doc:  0http://www.csounds.com/manual/html/pvsbandr.html Mix  seamlesslyu two pv signals. This opcode combines the most prominent components of two pvoc streams into a single mixed stream.   fsig pvsmix fsigin1, fsigin2 doc:  .http://www.csounds.com/manual/html/pvsmix.html 4Performs cross-synthesis between two source fsigs.  ) fsig pvscross fsrc, fdest, kamp1, kamp2 doc:  0http://www.csounds.com/manual/html/pvscross.html ^Multiply amplitudes of a pvoc stream by those of a second pvoc stream, with dynamic scaling.  1 fsig pvsfilter fsigin, fsigfil, kdepth[, igain] doc:  1http://www.csounds.com/manual/html/pvsfilter.html iThis opcode provides support for cross-synthesis of amplitudes and frequencies. It takes the amplitudes | of one input fsig and combines with frequencies from another. It is a spectral version of the well-known channel vocoder.  1 fsig pvsvoc famp, fexc, kdepth, kgain [,kcoefs] doc:  .http://www.csounds.com/manual/html/pvsvoc.html @Performs morphing (or interpolation) between two source fsigs.  ) fsig pvsmorph fsrc, fdest, kamp1, kamp2 doc:  0http://www.csounds.com/manual/html/pvsmotph.html  This opcodes freezesA the evolution of pvs stream by locking into steady amplitude and/or frequency f values for each bin. The freezing is controlled, independently for amplitudes and frequencies, by a 3 control-rate trigger, which switches the freezing on if equal to or above 1 and off if below 1.  ) fsig pvsfreeze fsigin, kfreeza, kfreezf doc:  1http://www.csounds.com/manual/html/pvsfreeze.html GModify amplitudes of fsrc using function table, with dynamic scaling.  ! fsig pvsmaska fsrc, ifn, kdepth doc:  0http://www.csounds.com/manual/html/pvsmaska.html Average the amp/freq time functions of each analysis channel for a specified time (truncated to number of frames). As a side-effect the input pvoc stream will be delayed by that amount.  ) fsig pvsblur fsigin, kblurtime, imaxdel doc:  /http://www.csounds.com/manual/html/pvsblur.html ^Transforms a pvoc stream according to a masking function table; if the pvoc stream amplitude g falls below the value of the function for a specific pvoc channel, it applies a gain to that channel. eThe pvoc stream amplitudes are compared to a masking table, if the fall below the table values, they } are scaled by kgain. Prior to the operation, table values are scaled by klevel, which can be used as masking depth control. "Tables have to be at least fftsize/C2 in size; for most GENS it is important to use an extended-guard O point (size power-of-two plus one), however this is not necessary with GEN43. fOne of the typical uses of pvstencil would be in noise reduction. A noise print can be analysed with i pvanal into a PVOC-EX file and loaded in a table with GEN43. This then can be used as the masking table k for pvstencil and the amount of reduction would be controlled by kgain. Skipping post-normalisation will n keep the original noise print average amplitudes. This would provide a good starting point for a successful F noise reduction (so that klevel can be generally set to close to 1). JOther possible transformation effects are possible, such as filtering and `inverse-masking'.  / fsig pvstencil fsigin, kgain, klevel, iftable doc:  1http://www.csounds.com/manual/html/pvstencil.html jThis opcode arpeggiates spectral components, by amplifying one bin and attenuating all the others around V it. Used with an LFO it will provide a spectral arpeggiator similar to Trevor Wishart's CDP program specarp.  ) fsig pvsarp fsigin, kbin, kdepth, kgain doc:  .http://www.csounds.com/manual/html/pvsarp.html rSmooth the amplitude and frequency time functions of a pv stream using a 1st order lowpass IIR with time-varying y cutoff frequency. This opcode uses the same filter as the tone opcode, but this time acting separately on the amplitude } and frequency time functions that make up a pv stream. The cutoff frequency parameter runs at the control-rate, but unlike A tone and tonek, it is not specified in Hz, but as fractions of 1/52 frame-rate (actually the pv stream sampling rate), s which is easier to understand. This means that the highest cutoff frequency is 1 and the lowest 0; the lower the N frequency the smoother the functions and more pronounced the effect will be. vThese are filters applied to control signals so the effect is basically blurring the spectral evolution. The effects r produced are more or less similar to pvsblur, but with two important differences: 1.smoothing of amplitudes and r frequencies use separate sets of filters; and 2. there is no increase in computational cost when higher amounts  of blurring (smoothing) are desired.  " fsig pvsmooth fsigin, kacf, kfcf doc:  0http://www.csounds.com/manual/html/pvsmooth.html XAn audio signal is modified by a string resonator with variable fundamental frequency.  " ares streson asig, kfr, ifdbgain doc:  /http://www.csounds.com/manual/html/streson.html kAudio output is a naturally decaying plucked string or drum sound based on the Karplus-Strong algorithms.  D ares pluck kamp, kcps, icps, ifn, imeth [, iparm1] [, iparm2] doc:  -http://www.csounds.com/manual/html/pluck.html orepluck is an implementation of the physical model of the plucked string. A user can control the pluck point, d the pickup point, the filter, and an additional audio signal, axcite. axcite is used to excite the string*. Based on the Karplus-Strong algorithm.  5 ares repluck iplk, kamp, icps, kpick, krefl, axcite doc:  /http://www.csounds.com/manual/html/repluck.html ~Audio output is a tone similar to a bowed string, using a physical model developed from Perry Cook, but re-coded for Csound.  E ares wgbow kamp, kfreq, kpres, krat, kvibf, kvamp, ifn [, iminfreq] doc:  -http://www.csounds.com/manual/html/wgbow.html _A physical model of a bowed bar, belonging to the Perry Cook family of waveguide instruments.  K ares wgbowedbar kamp, kfreq, kpos, kbowpres, kgain [, iconst] [, itvel] \  [, ibowpos] [, ilow] doc:  2http://www.csounds.com/manual/html/wgbowedbar.html Audio output is a tone related to a brass instrument, using a physical model developed from Perry Cook, but re-coded for Csound.  J ares wgbrass kamp, kfreq, ktens, iatt, kvibf, kvamp, ifn [, iminfreq] doc:  /http://www.csounds.com/manual/html/wgbrass.html zAudio output is a tone similar to a clarinet, using a physical model developed from Perry Cook, but re-coded for Csound.  K ares wgclar kamp, kfreq, kstiff, iatt, idetk, kngain, kvibf, kvamp, ifn \  [, iminfreq] doc:  .http://www.csounds.com/manual/html/wgclar.html wAudio output is a tone similar to a flute, using a physical model developed from Perry Cook, but re-coded for Csound.  J ares wgflute kamp, kfreq, kjet, iatt, idetk, kngain, kvibf, kvamp, ifn \ ) [, iminfreq] [, ijetrf] [, iendrf] doc:  /http://www.csounds.com/manual/html/wgflute.html RA high fidelity simulation of a plucked string, using interpolating delay-lines.  < ares wgpluck icps, iamp, kpick, iplk, idamp, ifilt, axcite doc:  /http://www.csounds.com/manual/html/wgpluck.html wgpluck2 is an implementation of the physical model of the plucked string, with control over the pluck point, the pickup point and the filter. Based on the Karplus-Strong algorithm.  . ares wgpluck2 iplk, kamp, icps, kpick, krefl doc:  0http://www.csounds.com/manual/html/wgpluck2.html [A simple waveguide model consisting of one delay-line and one first-order lowpass filter.  . ares wguide1 asig, xfreq, kcutoff, kfeedback doc:  /http://www.csounds.com/manual/html/wguide1.html eA model of beaten plate consisting of two parallel delay-lines and two first-order lowpass filters.  : ares wguide2 asig, xfreq1, xfreq2, kcutoff1, kcutoff2, \  kfeedback1, kfeedback2 doc:  /http://www.csounds.com/manual/html/wguide2.html Uses FM synthesis to create a Hammond B3 organ sound. It comes from a family of FM sounds, all using 4 basic oscillators and various architectures, as used in the TX81Z synthesizer.  G ares fmb3 kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, \  ifn4, ivfn doc:  ,http://www.csounds.com/manual/html/fmb3.html Uses FM synthesis to create a tublar bell sound. It comes from a family of FM sounds, all using 4 basic oscillators and various architectures, as used in the TX81Z synthesizer.  I ares fmbell kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, \  ifn4, ivfn[, isus] doc:  .http://www.csounds.com/manual/html/fmbell.html Uses FM synthesis to create a Heavy Metal  sound. It comes from a family of FM sounds, all using 4 basic oscillators and various architectures, as used in the TX81Z synthesizer.  J ares fmmetal kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, \  ifn4, ivfn doc:  /http://www.csounds.com/manual/html/fmmetal.html Uses FM synthesis to create a percussive flute sound. It comes from a family of FM sounds, all using 4 basic oscillators and various architectures, as used in the TX81Z synthesizer.  E ares fmpercfl kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, \  ifn3, ifn4, ivfn doc:  0http://www.csounds.com/manual/html/fmpercfl.html Uses FM synthesis to create a Fender Rhodes electric piano sound. It comes from a family of FM sounds, all using 4 basic oscillators and various architectures, as used in the TX81Z synthesizer.  D ares fmrhode kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, \  ifn3, ifn4, ivfn doc:  /http://www.csounds.com/manual/html/fmrhode.html FM Singing Voice Synthesis  E ares fmvoice kamp, kfreq, kvowel, ktilt, kvibamt, kvibrate, ifn1, \  ifn2, ifn3, ifn4, ivibfn doc:  /http://www.csounds.com/manual/html/fmvoice.html 3bamboo is a semi-physical model of a bamboo sound.  I ares bamboo kamp, idettack [, inum] [, idamp] [, imaxshake] [, ifreq] \  [, ifreq1] [, ifreq2] doc:  .http://www.csounds.com/manual/html/bamboo.html 3cabasa is a semi-physical model of a cabasa sound.  = ares cabasa iamp, idettack [, inum] [, idamp] [, imaxshake] doc:  .http://www.csounds.com/manual/html/cabasa.html 3crunch is a semi-physical model of a crunch sound.  = ares crunch iamp, idettack [, inum] [, idamp] [, imaxshake] doc:  .http://www.csounds.com/manual/html/crunch.html 4dripwater is a semi-physical model of a water drop.  L ares dripwater kamp, idettack [, inum] [, idamp] [, imaxshake] [, ifreq] \  [, ifreq1] [, ifreq2] doc:  1http://www.csounds.com/manual/html/dripwater.html 1guiro is a semi-physical model of a guiro sound.  Q ares guiro kamp, idettack [, inum] [, idamp] [, imaxshake] [, ifreq] [, ifreq1] doc:  -http://www.csounds.com/manual/html/guiro.html 9sandpaper is a semi-physical model of a sandpaper sound.  @ ares sandpaper iamp, idettack [, inum] [, idamp] [, imaxshake] doc:  1http://www.csounds.com/manual/html/sandpaper.html 3sekere is a semi-physical model of a sekere sound.  = ares sekere iamp, idettack [, inum] [, idamp] [, imaxshake] doc:  .http://www.csounds.com/manual/html/sekere.html <sleighbells is a semi-physical model of a sleighbell sound.  N ares sleighbells kamp, idettack [, inum] [, idamp] [, imaxshake] [, ifreq] \  [, ifreq1] [, ifreq2] doc:  3http://www.csounds.com/manual/html/sleighbells.html 0stix is a semi-physical model of a stick sound.  ; ares stix iamp, idettack [, inum] [, idamp] [, imaxshake] doc:  ,http://www.csounds.com/manual/html/stix.html ;tambourine is a semi-physical model of a tambourine sound.  M ares tambourine kamp, idettack [, inum] [, idamp] [, imaxshake] [, ifreq] \  [, ifreq1] [, ifreq2] doc:  2http://www.csounds.com/manual/html/tambourine.html JAudio output is a tone related to the striking of a cow bell or similar.  ? ares gogobel kamp, kfreq, ihrd, ipos, imp, kvibf, kvamp, ivfn doc:  /http://www.csounds.com/manual/html/gogobel.html XAudio output is a tone related to the striking of a wooden block as found in a marimba.  I ares marimba kamp, kfreq, ihrd, ipos, imp, kvibf, kvamp, ivibfn, idec \  [, idoubles] [, itriples] doc:  /http://www.csounds.com/manual/html/marimba.html WAudio output is a tone related to the shaking of a maraca or similar gourd instrument.  ; ares shaker kamp, kfreq, kbeans, kdamp, ktimes [, idecay] doc:  .http://www.csounds.com/manual/html/shaker.html ZAudio output is a tone related to the striking of a metal block as found in a vibraphone.  E ares vibes kamp, kfreq, ihrd, ipos, imp, kvibf, kvamp, ivibfn, idec doc:  -http://www.csounds.com/manual/html/vibes.html pAudio output is a tone similar to a struck metal bar, using a physical model developed from solving the partial m differential equation. There are controls over the boundary conditions as well as the bar characteristics.  A ares barmodel kbcL, kbcR, iK, ib, kscan, iT30, ipos, ivel, iwid doc:  0http://www.csounds.com/manual/html/barmodel.html An emulation of a mandolin.  J ares mandol kamp, kfreq, kpluck, kdetune, kgain, ksize, ifn [, iminfreq] doc:  .http://www.csounds.com/manual/html/mandol.html *An emulation of a mini-Moog synthesizer.  J ares moog kamp, kfreq, kfiltq, kfiltrate, kvibf, kvamp, iafn, iwfn, ivfn doc:  ,http://www.csounds.com/manual/html/moog.html  An emulation of a human voice.  B ares voice kamp, kfreq, kphoneme, kform, kvibf, kvamp, ifn, ivfn doc:  -http://www.csounds.com/manual/html/voice.html YWWYNone#Floating number types:  or . Creates a table of doubles (It's f-table in Csound).  Arguments are:  table size " identificator of the GEN routine  GEN routine arguments :All tables are created at 0 and memory is never released. 8Skips normalization (sets table size to negative value) +Accesses table values by direct indexing.  5 ares table andx, ifn [, ixmode] [, ixoff] [, iwrap] 5 ires table indx, ifn [, ixmode] [, ixoff] [, iwrap] 5 kres table kndx, ifn [, ixmode] [, ixoff] [, iwrap] doc:  -http://www.csounds.com/manual/html/table.html EAccesses table values by direct indexing with linear interpolation.  6 ares tablei andx, ifn [, ixmode] [, ixoff] [, iwrap] 6 ires tablei indx, ifn [, ixmode] [, ixoff] [, iwrap] 6 kres tablei kndx, ifn [, ixmode] [, ixoff] [, iwrap] doc:  .http://www.csounds.com/manual/html/tablei.html DAccesses table values by direct indexing with cubic interpolation.  6 ares table3 andx, ifn [, ixmode] [, ixoff] [, iwrap] 6 ires table3 indx, ifn [, ixmode] [, ixoff] [, iwrap] 6 kres table3 kndx, ifn [, ixmode] [, ixoff] [, iwrap] doc:  .http://www.csounds.com/manual/html/table3.html <Fast table opcodes. Faster than table and tablew because don't allow wrap-around  and limit and don'Ct check index validity. Have been implemented in order to provide  fast access to arrays. Support non-power of two tables (can be generated by any GEN function by giving a negative length value).   kr tab kndx, ifn[, ixmode]  ar tab xndx, ifn[, ixmode] doc:  +http://www.csounds.com/manual/html/tab.html <Fast table opcodes. Faster than table and tablew because don't allow wrap-around  and limit and don'Ct check index validity. Have been implemented in order to provide  fast access to arrays. Support non-power of two tables (can be generated by any GEN function by giving a negative length value).   ir tab_i indx, ifn[, ixmode] doc:  +http://www.csounds.com/manual/html/tab.html EReads from numbered channels in an external audio signal or stream.   ain1[, ...] inch kchan1[,...] doc:  ,http://www.csounds.com/manual/html/inch.html dWrites multi-channel audio data, with user-controllable channels, to an external device or stream.  0 outch kchan1, asig1 [, kchan2] [, asig2] [...] doc:  -http://www.csounds.com/manual/html/outch.html  UThis opcode implements a crossfading looper with variable loop parameters and three f looping modes, optionally using a table for its crossfade shape. It accepts non-power-of-two tables B for its source sounds, such as deferred-allocation GEN01 tables.  E asig flooper2 kamp, kpitch, kloopstart, kloopend, kcrossfade, ifn \ ' [, istart, imode, ifenv, iskip] doc:  0http://www.csounds.com/manual/html/flooper2.html  \This opcode records input audio and plays it back in a loop with user-defined duration and f crossfade time. It also allows the pitch of the loop to be controlled, including reversed playback.  3 asig, krec sndloop ain, kpitch, ktrig, idur, ifad doc:  /http://www.csounds.com/manual/html/sndloop.html  Reads audio data from an external device or stream. Up to 24 channels may be read before v5.14, extended to 40 in later versions.  H ar1[, ar2[, ar3[, ... a24]]] soundin ifilcod [, iskptim] [, iformat] \ ! [, iskipinit] [, ibufsize] doc:  /http://www.csounds.com/manual/html/soundin.html  dReads audio data from a file, and can alter its pitch using one of several available interpolation e types, as well as convert the sample rate to match the orchestra sr setting. diskin2 can also read c multichannel files with any number of channels in the range 1 to 24 in versions before 5.14, and  40 after. . diskin2 allows more control and higher sound quality than diskin, but there is also the disadvantage of higher CPU usage.  9 a1[, a2[, ... aN]] diskin2 ifilcod, kpitch[, iskiptim \ A [, iwrap[, iformat [, iwsize[, ibufsize[, iskipinit]]]]]] doc:  /http://www.csounds.com/manual/html/diskin2.html  4Reads stereo audio data from an external MP3 file.  A ar1, ar2 mp3in ifilcod[, iskptim, iformat, iskipinit, ibufsize] doc:  -http://www.csounds.com/manual/html/mp3in.html %Returns the length of a sound file.  ! ir filelen ifilcod, [iallowraw] doc:  /http://www.csounds.com/manual/html/filelen.html *Returns the sample rate of a sound file.  ! ir filesr ifilcod [, iallowraw] doc:  .http://www.csounds.com/manual/html/filesr.html 0Returns the number of channels in a sound file.  % ir filenchnls ifilcod [, iallowraw] doc:  1http://www.csounds.com/manual/html/filechnls.html 2Returns the peak absolute value of a sound file.   ir filepeak ifilcod [, ichnl] doc:  0http://www.csounds.com/manual/html/filepeak.html ;Returns the number of bits in each sample in a sound file.  " ir filebit ifilcod [, iallowraw] doc:  /http://www.csounds.com/manual/html/filebit.html Bfout outputs N a-rate signals to a specified file of N channels.  ; fout ifilename, iformat, aout1 [, aout2, aout3,...,aoutN] doc:  ,http://www.csounds.com/manual/html/fout.html #Modify a signal by down-sampling.   kres downsamp asig [, iwlen] doc:  0http://www.csounds.com/manual/html/downsamp.html !Modify a signal by up-sampling.   ares upsamp ksig doc:  .http://www.csounds.com/manual/html/upsamp.html JConverts a control signal to an audio signal using linear interpolation.  & ares interp ksig [, iskip] [, imode] doc:  .http://www.csounds.com/manual/html/interp.html ?Returns the amplitude equivalent of the decibel value x. Thus:  60 dB = 1000  66 dB = 1995.262  72 dB = 3891.07  78 dB = 7943.279  84 dB = 15848.926  90 dB = 31622.764  ! ampdb(x) (no rate restriction) doc:  -http://www.csounds.com/manual/html/ampdb.html MReturns the amplitude equivalent of the full scale decibel (dB FS) value x. ~ The logarithmic full scale decibel values will be converted to linear 16-bit signed integer values from "32,768 to +32,767.  # ampdbfs(x) (no rate restriction) doc:  /http://www.csounds.com/manual/html/ampdbfs.html 8Returns the decibel equivalent of the raw amplitude x.  1 dbamp(x) (init-rate or control-rate args only) doc:  -http://www.csounds.com/manual/html/dbamp.html Returns the decibel equivalent of the raw amplitude x, relative to full scale amplitude. Full scale is assumed to be 16 bit. New is Csound version 4.10.  3 dbfsamp(x) (init-rate or control-rate args only) doc:  /http://www.csounds.com/manual/html/dbfsamp.html 4Converts a pitch-class value to cycles-per-second.  1 cpspch (pch) (init- or control-rate args only) doc:  .http://www.csounds.com/manual/html/cpspch.html /These units will print orchestra init-values.  & print iarg [, iarg1] [, iarg2] [...] doc:  -http://www.csounds.com/manual/html/print.html 1Prints one k-rate value at specified intervals.   printk itime, kval [, ispace] doc:  .http://www.csounds.com/manual/html/printk.html sprintf write printf-style formatted output to a string variable, similarly to the C function sprintf(). sprintf runs at i-time only.  + Sdst sprintf Sfmt, xarg1[, xarg2[, ... ]] doc:  /http://www.csounds.com/manual/html/sprintf.html sprintfk writes printf-style formatted output to a string variable, similarly to the C function sprintf(). sprintfk runs both at initialization and performance time.  , Sdst sprintfk Sfmt, xarg1[, xarg2[, ... ]] doc:  0http://www.csounds.com/manual/html/sprintfk.html  Concatenate two strings and store the result in a variable. strcat runs at i-time only. It is allowed for any of the input arguments to be the same as the output variable.   Sdst strcat Ssrc1, Ssrc2 doc:  .http://www.csounds.com/manual/html/strcat.html !NConcatenate two strings and store the result in a variable. strcatk does the  concatenation both at initialization and performance time. It is allowed for any of the input arguments to be the same as the output variable.   Sdst strcatk Ssrc1, Ssrc2 doc:  /http://www.csounds.com/manual/html/strcatk.html 3      !+      !+      !3      !None"PGet the note number of the current MIDI event, expressed in cycles-per-second.   icps cpsmidi doc:  /http://www.csounds.com/manual/html/cpsmidi.html #-Get the velocity of the current MIDI event.   iamp ampmidi iscal [, ifn] doc:  /http://www.csounds.com/manual/html/ampmidi.html $4Get the current pitch-bend value for this channel.   kbend pchbend [imin] [, imax] doc:  /http://www.csounds.com/manual/html/pchbend.html %5Get the current after-touch value for this channel.   kaft aftouch [imin] [, imax] doc:  (http://www.csounds.com/manual/html/.html &VAllows a floating-point 7-bit MIDI signal scaled with a minimum and a maximum range.  / idest ctrl7 ichan, ictlno, imin, imax [, ifn] / kdest ctrl7 ichan, ictlno, kmin, kmax [, ifn] ; adest ctrl7 ichan, ictlno, kmin, kmax [, ifn] [, icutoff] doc:  -http://www.csounds.com/manual/html/ctrl7.html 'ZReturns the ASCII code of a key that has been pressed, or -1 if no key has been pressed.   kres[, kkeydown] sensekey doc:  0http://www.csounds.com/manual/html/sensekey.html (eSense the cursor position in an output window. When xyin is called the position of the mouse within h the output window is used to reply to the request. This simple mechanism does mean that only one xyin ^ can be used accurately at once. The position of the mouse is reported in the output window.  D kx, ky xyin iprd, ixmin, ixmax, iymin, iymax [, ixinit] [, iyinit] doc:  ,http://www.csounds.com/manual/html/xyin.html "#$%&'("#$%&'("#$%&'( "#$%&'(None)%Csound options. The default value is # instance Default CsdOptions where  def = CsdOptions  { csdFlags = ""  , csdRate = 44100 ! , csdBlockSize = 64 ! , csdSeed = Nothing  , csdInitc7 = [] " , csdEffect = mixing H , csdKrate = ["linseg", "expseg", "linsegr", "expsegr"] } 3 Sums signals for every channel. 4USums signals for every channel and the processes the output with the given function. )*+,-./01234)*+,-./01234 )*+,-./01234NoneNoneKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'(None5 Synonym for return . return. 6 Synonym for return. 7Renders Csound file. 8"Renders Csound file with options. 5678    5678 5678    None+  !"#$%&'()*+  !%<=>?@AKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./012345678.%  <>56? !=@A782)*+,-./0134, !"#$%&'()*+,-./012345 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N OPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<==>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{||}}~!&'()*+,              ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ] ^ _ _ ` a b b c d e e f g h i j j k l m n o p q r s t u v w x y z { | } ~        0/PQ      !"#$%#$&'csound-expression-1.0.1 Csound.BaseCsound.LowLevelCsound.Opcode.BasicCsound.Opcode.AdvancedCsound.Opcode.DataCsound.Opcode.Interaction Csound.ExpCsound.Exp.WrapperCsound.Exp.ConsCsound.Exp.NumericCsound.Exp.LogicCsound.Tfm.RateGraphCsound.Tfm.TfmTreeCsound.Render.PrettyCsound.Render.ScoCsound.Render.OptionsCsound.Render.Instr Csound.Opcode Csound.RenderTabRateFrSrIrKrArXrNameECsdTupleArg argMethods ArgMethodsValToSigarkrSESpecBoolSigStrDISigOutChannelintdoublestrsese_irmakeArgMethodsSpecsSpec1toE withInitsopcsopc0opc1opc2opc3opc4opc5opc6opc7opc8opc9opc10opc11mopcsmopc0mopc1mopc2mopc3mopc4mopc5mopc6mopc7SigOutMsgeffectscoremassign pgmassignikaxsfisksasidurzeroDbfs sampleRate blockSizeoscilsosciloscilioscil3poscilposcil3buzzgbuzzmpulsevcovco2phasor syncphasorrandrandirandhrnd31randomrandomirandomhpinkishnoiselinseglinsegrexpsegexpsegrlpsholdloopseglooptsegvdelayvdelayxvdelayxwdelayrdelaywdeltapdeltapideltap3deltapxdeltapxwtoneatonebutlpbuthpresonaresonbutbpbutbr moogladdervcombbqrezcombportportkfreeverbreverbscreverbnreverbbabormsbalancefollowfollow2peakmax_kptrackpitch pitchamdftempestcompressdamcliplimitsampholdvagetvasetpanpan2hrtfstathrtfmove hrtfmove2xtratimfoscilfoscilicrossfmcrossfmicrosspmcrosspmi crossfmpm crossfmpmidistortdistort1 powershape polynomial chebyshevpolyflangerharmonphaser1phaser2pdclippdhalfpdhalfydoppler pconvolveconvolveftconvdconvpvsanalpvstanalpvsynthpvsadsynpvswritepvsfread pvsdiskinpvsinfopvsbinpvscentpvscalepvshiftpvsbandppvsbandrpvsmixpvscross pvsfilterpvsvocpvsmorph pvsfreezepvsmaskapvsblur pvstencilpvsarppvsmoothstresonpluckrepluckwgbow wgbowedbarwgbrasswgclarwgflutewgpluckwgpluck2wguide1wguide2fmb3fmbellfmmetalfmpercflfmrhodefmvoicefmwurliebamboocabasacrunch dripwaterguiro sandpapersekere sleighbellsstix tambourinegogobelmarimbashakervibesbarmodelmandolmoogvoiceNumsgengenLowgenMidgenHigh genHighergenLow1genMid1genHigh1 genHigher1skipNormtabletableitable3tabtab_iinchoutchflooper2sndloopsoundindiskin2mp3infilelenfilesr filenchnlsfilepeakfilebitfoutdownsampupsampinterpampdbampdbfsdbampdbfsampcpspchprintiprintksprintfsprintfkstrcatstrcatkcpsmidiampmidipchbendaftouchctrl7sensekeyxyin CsdOptionscsdFlagscsdRate csdBlockSizecsdSeed csdInitc7 csdEffectcsdKrateCtrlIdmixingmixingByoutouts renderCsd renderCsdByNumOpCpspchDbfsampDbampAmpdbfsAmpdbSqrtRoundLogbtwoLog10LogIntOpFracFloorExpOpCeilAbsTaninvCosinvSininvTanhTanCoshSinhCosSinModPowDivMulNegSubAddNumExpCondOp GreaterEquals LessEqualsGreaterLess NotEqualsEqualsOrAndNotFalseOpTrueOpCondInfoBoolExp PreInline InlineExp InlinePrimInline inlineExp inlineEnvtabSizetabGentabArgsPrim PrimStringPrimTab PrimDoublePrimIntPStringP Signature MultiRate outMultiRate inMultiRate SingleRateOpcType ProcedureInfixPrefixInfoinfoName infoSignature infoOpcType infoNextSEVar VarVerbatimvarTypevarRatevarNameExpWriteVarReadVarExpNumExpBoolIfSelect ConvertRateTfmExpPrimVarType GlobalVarLocalVarRatedVar ratedVarRate ratedVarIdRatedExp ratedExpRateratedExpDepends ratedExpExponExpisPrefixisInfix isProcedureisTrueisFalseisCondOp getCondInfoOp$fTraversablePreInline$fFoldablePreInline$fFunctorPreInline$fTraversableInline$fFoldableInline$fFunctorInline$fTraversableExp $fFoldableExp $fFunctorExp$fTraversableRatedExp$fFoldableRatedExp$fFunctorRatedExpghc-prim GHC.TypesIO fromCsdTuple toCsdTuple arityCsdTupleargtoNotearitywrapunwrapunSEunSpec unBoolSigunStrunDunIunSigrunSEexecSEnoRatewithRateratedExpprimprefinftfmvargvarmkVarpwriteVarreadVargOutVar getPrimUnsafesetRatetoArg multiOutsmultiOutsSectiongetRatesisMultiOutSignature$fCsdTuple(,,,,,,,)$fCsdTuple(,,,,,,)$fCsdTuple(,,,,,)$fCsdTuple(,,,,)$fCsdTuple(,,,)$fCsdTuple(,,) $fCsdTuple(,)$fCsdTupleSpec $fCsdTupleStr $fCsdTupleD $fCsdTupleI $fCsdTupleSig$fArg(,,,,,,,) $fArg(,,,,,,) $fArg(,,,,,) $fArg(,,,,) $fArg(,,,) $fArg(,,)$fArg(,)$fArgTab$fArgStr$fArgD$fArgI$fArg() $fValSpec $fValBoolSig$fValTab$fValStr$fValD$fValI$fValSig$fValFix $fValRatedExp $fToSigDouble $fToSigInt $fToSigSig$fToSigD$fToSigI $fMonadSE$fApplicativeSE $fFunctorSEfromEbi biSignature idSignaturetfmstfm0tfm1tfm2tfm3tfm4tfm5tfm6tfm7tfm8tfm9tfm10tfm11spec1specsmo $fIsStringStrNumOptmaybeInt maybeDoublefromInt fromDoublefromNumonE1onE2onConstisZero getDoubleunOptbiOpt biOptOnDoublefunOptnoOpt1noOpt2 doubleToIntmod'ceil'floor'round'frac'int' $fFloatingD $fFloatingSig $fFractionalD$fFractionalSig$fNumD$fNumI$fNumSig $fFloatingFix$fFractionalFix$fNumFix $fNumOptFixboolExpcond'condInfoboolOpsboolOp0boolOp1boolOp2notE $fOrdBSig$fEqBSig$fIfBSig$fBooleanBoolSigMsgBoxunMsgBoxResponse responseAddrresponseRatedVarQuery queryAddr queryRateAddraddrLineaddrArgKrateSet ConversionAgentagentResponses agentQueries agentRateagentConversionsAgentIdecho modifyArraymsgBox sendQuery sendResponse loadAgent saveAgent discussLine deduceRatenotifyChildren notifyParents notifyParentconversionTablegetConversions processLinerateExpfindRategrate$fDefaultAgentTabMap substTabstabMap getFtables$$binariesunariesfuncsbinaryunaryfunc ppMapTableppRate ppRatedVarppOuts$=ppOpcppProcppVar ppVarTypeppPrimppTabppIfppStrget ppConvertRateppTabDefppStrsetnewline ppCsdFiletagppInstrppInstr0ppOrcppScoppScoreppNote ppTotalDurppInlineppCondOpppNumOp wl-pprint-1.1Text.PrettyPrint.LeijentextemptyDocMidiType PgmassignMassign PlainSigOutMidimidiTypemidiChn orcSigOut scoSigOut ExpReader sigOutEffect sigOutContentEvent eventStarteventDur eventContentNote StringMapInstrIdeventEnd runExpReaderouts' expReader instrPortsnchnls midiAssign renderScores renderNote stringMap$fFunctorEventpinkish'noise'oscGenrandiGenmkLpsfilterSignature1 mkFilter1filterSignature2 mkFilter2 crossfmGenfmGenlowmidhighhighermkTableconv$fNumsD $fNumsSigconstOpc constDiap MidiAssignmidiAssignTypemidiAssignChannelmidiAssignInstrNchnls renderFlags renderInstr0renderMidiAssign$fDefaultCsdOptions MultiOutPortidMultiOutPortorderMultiOutPort RenderStatemultiOutsLinksmultiOutsRatesDag renderInstrrenderInstrBodygetRenderStatefilterMultiOutHelpersisSelecttoDagclearEmptyResults collectRates tfmMultiRatesgetMultiOutVarsgetRate renderExpmidiAssignTable renderTabsrenderStringTablemixingInstrExptotalDur Boolean-0.1.2 Data.Booleansort2BmaxBminBcropcondboolean||*&&*notBfalsetrueBoolean BooleanOfifBIfB/=*==*EqB<=*>*>=*<*OrdBatan2isIEEEisNegativeZero isInfiniteisNaN RealFloatBdata-default-0.5.0 Data.DefaultdefDefault