| fileBuffer midifile channel beats seq beatstream i lastsamplewritten wavetablesize | fileBuffer := self getFileBuffer. midifile := 'MacOS001:Music:Kyma:Sounds:Envelopes:testCC.mid'. channel := 1. beats := 8. wavetablesize := 4096. seq := TimedEventCollection timesAndEventsFromMIDIFile: midifile channel: channel. beatstream := seq startingBeats readStream. i := 0. lastsamplewritten := 0. seq events do: [ :note | | p t | p := note pitch nn removeUnits / 127. t := (beatstream next / beats * wavetablesize) truncated. (i > t) ifTrue: [ self debug: 'FATAL ERROR: events are not sorted by starting times.'. ]. i to: t-1 do: [ :j | fileBuffer writeSample: lastsamplewritten. ]. fileBuffer writeSample: p. lastsamplewritten := p. i := t + 1. ]. (i < (wavetablesize - 1)) ifTrue: [ i to: (wavetablesize - 1) do: [ :j | fileBuffer writeSample: lastsamplewritten. ] ].