// Listing 7.10 Spectral modeling using the ModalBar UGen: a struck glass sound // Synthesize a modal glass sound from spectral model ModalBar glass => dac; [1206.0,2240.0,3919.0,5965.0] @=> float modeFreqs[]; [100.0,93.0,97.0,92.0] @=> float modeGainsdB[]; [0.9999,0.9997,0.9998,0.9996] @=> float modeRadii[]; for (0 => int i; i < 4; i++) { i => glass.mode; // (1) Sets frequency of each mode as ratio with zero-eth mode. modeFreqs[i]/modeFreqs[0] => glass.modeRatio; // (2) Uses dbtorms() to get a gain from a dB magnitude. Std.dbtorms(modeGainsdB[i]) => glass.modeGain; // (3) Radius sets decay time. modeRadii[i] => glass.modeRadius; } // set to first mode frequency, set gain too 1206 => glass.freq; 0.2 => glass.gain; // whack it!!! 1 => glass.noteOn; 3.0 :: second => now;