Mercurial > hg > may
annotate yetilab/stream/test/audiofile_reference.yeti @ 210:3a2be6eb8bd3 matrix_opaque_immutable
Finish matrix api conversion compile fixes
author | Chris Cannam |
---|---|
date | Wed, 08 May 2013 21:10:29 +0100 |
parents | 045908c861a4 |
children | b251e1ab953d |
rev | line source |
---|---|
Chris@157 | 1 |
Chris@157 | 2 module yetilab.stream.test.audiofile_reference; |
Chris@157 | 3 |
Chris@157 | 4 syn = load yetilab.stream.syntheticstream; |
Chris@182 | 5 filt = load yetilab.stream.filter; |
Chris@157 | 6 vec = load yetilab.block.fvector; |
Chris@157 | 7 block = load yetilab.block.block; |
Chris@157 | 8 |
Chris@184 | 9 pulseChannel rate = |
Chris@184 | 10 (pulseFreq = 2; |
Chris@184 | 11 pulseWidth = 0.01 * rate; |
Chris@184 | 12 generator i = |
Chris@184 | 13 (pulseNo = int ((i * pulseFreq) / rate); |
Chris@184 | 14 index = (i * pulseFreq) - (rate * pulseNo); |
Chris@184 | 15 if index < pulseWidth then |
Chris@184 | 16 s = 1.0 - abs(pulseWidth/2 - index) / (pulseWidth/2); |
Chris@184 | 17 if pulseNo % 2 != 0 then (-s) else s fi |
Chris@184 | 18 else 0 |
Chris@184 | 19 fi); |
Chris@184 | 20 syn.generated rate generator); |
Chris@182 | 21 |
Chris@182 | 22 referenceChannels rate = |
Chris@182 | 23 (leftovers rate n = |
Chris@182 | 24 (syn.generated rate \(n / 20) :. \(leftovers rate (n+1))); |
Chris@182 | 25 syn.sinusoid rate 600 :: pulseChannel rate :: leftovers rate 2); |
Chris@182 | 26 |
Chris@182 | 27 afReference rate channels = |
Chris@182 | 28 filt.multiplexed (take channels (referenceChannels rate)); |
Chris@157 | 29 |
Chris@182 | 30 { |
Chris@182 | 31 afReference |
Chris@182 | 32 } |
Chris@182 | 33 |
Chris@182 | 34 |