| The oscilixx opcodes are really oscili with different arguments, and
there is an internal mapping, so they are documented.
The physical model opcodes are 'documented' in Version3_47.Notes on
the server. Actually today's task is to revise these as there are
some errors/inaccuracies etc. Anyway, the documentation says
------------------------------------------------------------------------
ar wgclar kamp, kfreq, kstiff, iatt, idetk, kngain, kvibf, kvamp, ifn[, iminfreq]
Audio output is a tone similar to a clarinet, using a physical model
developed from Perry Cook, but re-coded for Csound.
Initialisation
iatt - time in seconds to reach full blowing pressure. 0.1 seems to
correspond to reasonable playing. A longer time gives a definite
initial wind sound.
idetk - time in seconds taken to stop blowing. 0.1 is a smooth ending
ifn - table of shape of vibrato, usually a sine table, created by a
function
iminfreq - lowest frequency at which the instrument will play. If
it is omitted it is taken to be the same as the initial kfreq.
Performance
A note is played on a clarinet-like instrument, with the arguments as
below.
kamp - Amplitude of note.
kfreq - Frequency of note played. While it can be varied in
performance, I have not tried it
kstiff - a stiffness parameter for the reed. Values should be
negative, and about -0.3. The useful range is approximately -0.44
to -0.18.
kngain - amplitude of the noise component, about 0 to 0.5
kvibf - frequency of vibrato in Hertz. Suggested range is 0 to 12
kvamp - amplitude of the vibrato
Example:
a1 wgclar 31129.60, 440, -0.3, 0.1, 0.1, 0.2, 5.735, 0.1, 1
out a1
------------------------------------------------------------------------
ar wgflute kamp, kfreq, kjet, iatt, idetk, kngain, kvibf, kvamp, ifn[, iminfreq]
Audio output is a tone similar to a flute, using a physical model
developed from Perry Cook, but re-coded for Csound.
Initialisation
iatt - time in seconds to reach full blowing pressure. 0.1 seems to
correspond to reasonable playing.
idetk - time in seconds taken to stop blowing. 0.1 is a smooth ending
ifn - table of shape of vibrato, usually a sine table, created by a
function
iminfreq - lowest frequency at which the instrument will play. If
it is omitted it is taken to be the same as the initial kfreq.
Performance
A note is played on a flute-like instrument, with the arguments as
below.
kamp - Amplitude of note.
kfreq - Frequency of note played. While it can be varied in
performance, I have not tried it
kjet - a parameter controlling the air jet. Values should be
positive, and about 0.3. The useful range is approximately 0.08
to 0.56.
kngain - amplitude of the noise component, about 0 to 0.5
kvibf - frequency of vibrato in Hertz. Suggested range is 0 to 12
kvamp - amplitude of the vibrato
Example:
a1 wgflute 31129.60, 440, 0.32, 0.1, 0.1, 0.15, 5.925, 0.05, 1
out a1
------------------------------------------------------------------------
ar wgbow kamp, kfreq, kpres, krat, kvibf, kvamp, ifn[, iminfreq]
Audio output is a tone similar to a bowed string, using a physical model
developed from Perry Cook, but re-coded for Csound.
Initialisation
ifn - table of shape of vibrato, usually a sine table, created by a
function
iminfreq - lowest frequency at which the instrument will play. If
it is omitted it is taken to be the same as the initial kfreq.
Performance
A note is played on a bowed string-like instrument, with the arguments as
below.
kamp - Amplitude of note.
kfreq - Frequency of note played. While it can be varied in
performance, I have not tried it
kpres - a parameter controlling the pressure of the bow on the string.
Values should be about 3. The useful range is approximately 1
to 5.
kratio - the position of the bow along the string. Usual playing is
about 0.127236. The suggested range is 0.025 to 0.23.
kvibf - frequency of vibrato in Hertz. Suggested range is 0 to 12
kvamp - amplitude of the vibrato
Example:
A bowing with vibrato setting in after a short time.
kv linseg 0, 0.5, 0, 1, 1, p3-0.5, 1
a1 wgbowed 31129.60, 440, 3.0, 0.127236, 6.12723, kv*0.01, 1
out a1
------------------------------------------------------------------------
ar wgbrass kamp, kfreq, iatt, kvibf, kvamp, ifn[, iminfreq]
Audio output is a tone related to a brass instrument, using a physical model
developed from Perry Cook, but re-coded for Csound.
Initialisation
iatt -- time taken to reach full pressure
ifn - table of shape of vibrato, usually a sine table, created by a
function
iminfreq - lowest frequency at which the instrument will play. If
it is omitted it is taken to be the same as the initial kfreq.
Performance
A note is played on a bowed string-like instrument, with the arguments as
below.
kamp - Amplitude of note.
kfreq - Frequency of note played. While it can be varied in
performance, I have not tried it
kvibf - frequency of vibrato in Hertz. Suggested range is 0 to 12
kvamp - amplitude of the vibrato
Example:
a1 wgbrass 31129.60, 440, 0.1, 6.137, 0.05, 1
------------------------------------------------------------------------
ar marimba kamp, kfreq, ihrd, ipos, imp, kvibf, kvamp, ivibfn, idec
ar vibes kamp, kfreq, ihrd, ipos, imp, kvibf, kvamp, ivibfn, idec
Audio output is a tone related to the striking of a wooden or metal
block as found in a marimba or vibraphone. The method is a physical
model developed from Perry Cook, but re-coded for Csound.
Initialisation
ihrd -- the hardness of the stick used in the strike. A range of 0 to
1 is used. 0.5 is a suitable value.
ipos -- where the block is hit, in the range 0 to 1.
imp - a table of the strike impulses. The file "marmstk1.wav" is a
suitable function from measurements, and can be loaded with a GEN1
table.
ivfn - shape of vibrato, usually a sine table, created by a
function
idec - time before end of note when damping is introduced
Performance
A note is played on a marimba-like instrument, with the arguments as
below.
kamp - Amplitude of note.
kfreq - Frequency of note played. While it can be varied in
performance, I have not tried it
kvibf - frequency of vibrato in Hertz. Suggested range is 0 to 12
kvamp - amplitude of the vibrato
Example:
a1 marimba 31129.60, 440, 0.5, 0.561, 2, 6.0, 0.05, 1, 0.1
a2 vibes 31129.60, 440, 0.5, 0.561, 2, 4.0, 0.2, 1, 0.1
------------------------------------------------------------------------
ar agogobel kamp, kfreq, ihrd, ipos, imp, kvibf, kvamp, ivibfn
Audio output is a tone related to the striking of a cow bell or
similar. The method is a physical model developed from Perry Cook,
but re-coded for Csound.
Initialisation
ihrd -- the hardness of the stick used in the strike. A range of 0 to
1 is used. 0.5 is a suitable value.
ipos -- where the block is hit, in the range 0 to 1.
imp - a table of the strike impulses. The file "britestk.wav" is a
suitable function from measurements, and can be loaded with a GEN1
table.
ivfn - shape of vibrato, usually a sine table, created by a
function
Performance
A note is played on a cowbell or agogobell-like instrument, with the
arguments as below.
kamp - Amplitude of note.
kfreq - Frequency of note played. While it can be varied in
performance, I have not tried it
kvibf - frequency of vibrato in Hertz. Suggested range is 0 to 12
kvamp - amplitude of the vibrato
Example:
a1 agogobel 31129.60, 440, p4, 0.561, 3, 6.0, 0.3, 1
------------------------------------------------------------------------
ar shaker kamp, kfreq, kbeans, kdamp, knum, ktimes[, idecay]
Audio output is a tone related to the shaking of a maraca or
similar gourd instrument. The method is a physically inspired model
developed from Perry Cook, but re-coded for Csound.
Initialisation
idecay - If present indicates for how long at the end of the note the
shaker is to be damped. The default value is zero.
Performance
A note is played on a cowbell or agogobell-like instrument, with the
arguments as below.
kamp - Amplitude of note.
kfreq - Frequency of note played, that is the frequency of the
gourd. It can be varied in performance, I have not tried it
kbeans - The number of beans in the gourd. A value of 8 seems suitable,
kdamp -- The damping vsalue of the shaker. Values of 0.98 to 1 seems
suitable, with 0.99 a reasonable default.
knum -- The number of shakes of the gourd. Values over 64 are
considered infinite.
ktimes -- Number of times shaken.
[RICK: Not sure all these are useful -- not clear in code]
Example:
a1 shaker 31129.60, 440, 8, 0.999, 0, 100, 0
------------------------------------------------------------------------
a1 fmtbell kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, ifn4, ivfn
a1 fmrhode kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, ifn4, ivfn
a1 fmwurlie kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, ifn4, ivfn
a1 fmmetal kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, ifn4, ivfn
a1 fmb3 kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, ifn4, ivfn
a1 fmpercfl kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3, ifn4, ivfn
A family of FM sounds, all using 4 basic oscilators and various
architectures, as used in the TX81Z synthesiser.
Initialisation
All these opcodes take 5 tables for initialisation. The first 4 are
the basic inputs and the last is the low frequency oscillator (LFO)
used for vibrato. The last table should usually be a sine wave.
For the other opcodes the initial waves should be as in the table
ifn1 ifn2 ifn3 ifn4
fmtbell sinewave sinewave sinewave sinewave
fmrhode sinewave sinewave sinewave fwavblnk
fmwurlie sinewave sinewave sinewave fwavblnk
fmmetal sinewave twopeaks twopeaks sinewave
fmb3 sinewave sinewave sinewave sinewave
fmpercfl sinewave sinewave sinewave sinewave
The sounds produced are then
fmtbell Tubular Bell
fmrhode Fender Rhodes Electric Piano
fmwurlie Wurlitzer Electric Piano
fmmetal "Heavy Metal"
fmb3 Hammond B3 organ
fmpercfl Percussive Flute
Performance
kamp -- Amplitude
kfreq -- frequency
kc1, kc2 -- Controls for the syntheser, as in the table
kc1 kc2 Algorithm
fmtbell Mod index 1 Crossfase of two outputs 5
fmrhode Mod index 1 Crossfase of two outputs 5
fmwurlie Mod index 1 Crossfase of two outputs 5
fmmetal Total mod index Crossfade of two modulators 3
fmb3 Total mod index Crossfade of two modulators 4
fmpercfl Total mod index Crossfade of two modulators 4
kvdepth -- Vibrator depth
kvrate -- Vibrator rate
Examples:
a1 fmtbell 31129.60, 440, 1, 1.2, 0.2, 6, 1,1,1,1, 1
a1 fmrhode 31129.60, 440, 1, 1.2, 0.2, 12, 1,1,1,4, 1
a1 fmwurlie 31129.60, 440, 1, 1.2, 0.2, 8, 1,1,1,4, 1
a1 fmmetal 31129.60, 110, 1, 1.2, 0.2, 5.5, 1,5,5,1, 1
a1 fmb3 31129.60, 440, 1, 1.2, 0.2, 8, 1,1,1,1, 1
a1 fmpercfl 31129.60, 440, 0.1, 0.1, 0.5, 12, 1,1,1,1, 1
------------------------------------------------------------------------
a1 fmvoice kamp, kfreq, kvowel, ktilt, kvibamt, kvibrate, ifn1, ifn2, ifn3, ifn4, ivibfn
FM Singing Voice Synthesis,
Initialisation:
ifn1, ifn2, ifn3,ifn3 -- Tables, usually of sinewaves.
Performance
kamp -- Amplitude control
kfreq -- Base frequency of sound
kvowel -- the vowel being sung, in the range 0-64; it is rounded to
the nearest integer.
ktilt -- the spectral tilt of the sound in the range 0 to 99
kvibamt -- Depth of vibrato
kvibrate -- Rate of vibrato
Example
k1 line 0, p3, 64
a1 fmvoice 31129.60, 110, k1, 0, 0.005, 6, 1,1,1,1,1
------------------------------------------------------------------------
a1 moog kamp, kfreq, kfiltq, kfiltrate, kvibf, kvamp, iafn, iwfn, ivfn
An emulation of a mini-Moog syntheser.
Initialisation.
iafn, iwfn, ivfn -- three table numbers containing the attack wave
form (unlooped), the main looping wave form, and the vibrato waveform.
The files mandpluk.aiff and impuls20.aiff are suitable for the first two,
and a sine wave for the last.
Performance.
kamp - Amplitude of note.
kfreq - Frequency of note played. It can be varied in performance.
kfiltq - Q of the filter, in the range 0.8 to 0.9
kfiltrate - rate control for the filter in the range 0 to 0.0002
kvibf - frequency of vibrato in Hertz. Suggested range is 0 to 12
kvamp - amplitude of the vibrato
------------------------------------------------------------------------
a1 mandol kamp, kfreq, kpluck, kdetune, kgain, ksize, ifn[, iminfreq]
An emulation of a mandolin.
Initialisation.
ifn -- table number containing the pluck wave form.
The file mandpluk.aiff is suitable for this.
iminfreq -- Lowest frequency to be played on the note. If
it is omitted it is taken to be the same as the initial kfreq.
Performance.
kamp - Amplitude of note.
kfreq - Frequency of note played. It can be varied in performance.
kpluck - The pluck position, in range 0 to 1. Suggested value is 0.4
kgain - the loopgain of the model, in the range 0.97 to 1
kdetune - The proportional detuning between the two strings.
Suggested range 1 and 0.9
ksize - The size of the body of the mandolin. Range 0 to 2
------------------------------------------------------------------------
a1 voice kamp, kfreq, kphoneme, kform, kvibf, kvamp, ifn, ivfn
An emulation of a human voice.
Initialisation.
ifn, ivfn -- two table numbers containing the carrier wave form and
the vibrato waveform.
The files impuls20.aiff, ahh.aiff eee.aiff or ooo.aiff are suitable for
the first of these, and a sine wave for the second.
Performance.
kamp - Amplitude of note.
kfreq - Frequency of note played. It can be varied in performance.
kphoneme - an integer in the range 0 to 16, which select the formants for
the sounds "eee","ihh","ehh","aaa",
"ahh","aww","ohh","uhh",
"uuu","ooo","rrr","lll",
"mmm","nnn","nng","ngg".
At present the phonemes
"fff","sss","thh","shh",
"xxx","hee","hoo","hah",
"bbb","ddd","jjj","ggg",
"vvv","zzz","thz","zhh"
are not available
kform - Gain on the phoneme. values 0.0 to 1.2 recommended.
kvibf - frequency of vibrato in Hertz. Suggested range is 0 to 12
kvamp - amplitude of the vibrato
------------------------------------------------------------------------
Hope that is approximately what you wanted! i do have a test orc/sco
as well
|