Mercurial > hg > may
view yetilab/stream/test/audiofile_reference.yeti @ 252:efdb1aee9d21
Another minor improvement
author | Chris Cannam |
---|---|
date | Tue, 21 May 2013 14:29:22 +0100 |
parents | 8e04d298741b |
children | 2ebda6646c40 |
line wrap: on
line source
module yetilab.stream.test.audiofile_reference; syn = load yetilab.stream.syntheticstream; filt = load yetilab.stream.filter; vec = load yetilab.vector.vector; //!!! docs from turbot pulseChannel rate = (pulseFreq = 2; pulseWidth = 0.01 * rate; generator i = (pulseNo = int ((i * pulseFreq) / rate); index = (i * pulseFreq) - (rate * pulseNo); if index < pulseWidth then s = 1.0 - abs(pulseWidth/2 - index) / (pulseWidth/2); if pulseNo % 2 != 0 then (-s) else s fi else 0 fi); syn.generated rate generator); referenceChannels rate = (leftovers rate n = (syn.generated rate \(n / 20) :. \(leftovers rate (n+1))); syn.sinusoid rate 600 :: pulseChannel rate :: leftovers rate 2); afReference rate channels = filt.withDuration (2 * rate) (filt.multiplexed (take channels (referenceChannels rate))); { afReference }