marimba — Physical model related to the striking of a wooden block.
Audio output is a tone related to the striking of a wooden block as found in a marimba. The method is a physical model developed from Perry Cook but re-coded for Csound.
ares marimba kamp, kfreq, ihrd, ipos, imp, kvibf, kvamp, ivibfn, idec \
[, idoubles] [, itriples]
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 GEN01 table. It is also available at ftp://ftp.cs.bath.ac.uk/pub/dream/documentation/sounds/modelling/.
ivfn -- shape of vibrato, usually a sine table, created by a function
idec -- time before end of note when damping is introduced
idoubles (optional) -- percentage of double strikes. Default is 40%.
itriples (optional) -- percentage of triple strikes. Default is 20%.
kamp -- Amplitude of note.
kfreq -- Frequency of note played.
kvibf -- frequency of vibrato in Hertz. Suggested range is 0 to 12
kvamp -- amplitude of the vibrato
Here is an example of the marimba opcode. It uses the file marimba.csd, and marmstk1.wav.
Example 574. Example of the marimba opcode.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
<CsoundSynthesizer> <CsOptions> ; Select audio/midi flags here according to platform ; Audio out Audio in No messages -odac -iadc -d ;;;RT audio I/O ; For Non-realtime ouput leave only the line below: ; -o marimba.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> ; Initialize the global variables. sr = 44100 ksmps = 128 nchnls = 2 ; Instrument #1. instr 1 ifreq = cpspch(p4) ihrd = 0.1 ipos = 0.561 imp = 1 kvibf = 6.0 kvamp = 0.05 ivibfn = 2 idec = 0.6 a1 marimba 20000, ifreq, ihrd, ipos, imp, kvibf, kvamp, ivibfn, idec, 20, 10 outs a1, a1 endin </CsInstruments> <CsScore> ; Table #1, the "marmstk1.wav" audio file. f 1 0 256 1 "marmstk1.wav" 0 0 0 ; Table #2, a sine wave for the vibrato. f 2 0 128 10 1 ; Play Instrument #1 for one second. i 1 0 1 8.09 i 1 + 0.5 8.00 i 1 + 0.5 7.00 i 1 + 0.25 8.02 i 1 + 0.25 8.01 i 1 + 0.25 7.09 i 1 + 0.25 8.02 i 1 + 0.25 8.01 i 1 + 0.25 7.09 i 1 + 0.3333 8.09 i 1 + 0.3333 8.02 i 1 + 0.3334 8.01 i 1 + 0.25 8.00 i 1 + 0.3333 8.09 i 1 + 0.3333 8.02 i 1 + 0.25 8.01 i 1 + 0.3333 7.00 i 1 + 0.3334 6.00 e </CsScore> </CsoundSynthesizer>