Mercurial > hg > may
view yetilab/stream/test/audiofile_reference.yeti @ 184:045908c861a4
Implement pulse channel, untested
author | Chris Cannam |
---|---|
date | Fri, 03 May 2013 18:17:00 +0100 |
parents | 1ab130dcf7f3 |
children | b251e1ab953d |
line wrap: on
line source
module yetilab.stream.test.audiofile_reference; syn = load yetilab.stream.syntheticstream; filt = load yetilab.stream.filter; vec = load yetilab.block.fvector; block = load yetilab.block.block; 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.multiplexed (take channels (referenceChannels rate)); { afReference }