chimeTest: nNotes delay: avgDelay duration: dur pitchBase: pitchBase
pitches: chromaticNumbers loudness: avgLoudness
"D F A C D E"
"FMSound chimeTest: 30 delay: 300.0 duration: 4.0
pitchBase: #d6 pitches: #(1 4 8 11 13 15) loudness: 0.2"
"FMSound chimeTest: 20 delay: 700.0 duration: 6.0
pitchBase: #d3 pitches: #(1 4 8 11 13 15) loudness: 0.3"
"G A B D G G"
"FMSound chimeTest: 30 delay: 500.0 duration: 6.0
pitchBase: #g5 pitches: #(1 3 5 8 13 13) loudness: 0.2"
| snd rnd pitches decay |
pitches _ (AbstractSound chromaticPitchesFrom: pitchBase) atAll:
chromaticNumbers.
decay _ VolumeEnvelope exponentialDecay: 1.0 - (0.08/dur).
rnd _ Random new.
1 to: nNotes do:
[:i |
snd _ FMSound new.
snd addEnvelope: decay copy.
snd setPitch: pitches atRandom dur: dur loudness: rnd next*avgLoudness*2.0.
"snd modulation: 1.4 ratio: 0.45."
snd play.
(Delay forMilliseconds: (rnd next*avgDelay*2.0) rounded+1) wait]