Mercurial > hg > may
annotate yetilab/stream/test/audiofile_reference.yeti @ 222:77c6a81c577f matrix_opaque_immutable
Move block directory -> vector
author | Chris Cannam |
---|---|
date | Sat, 11 May 2013 15:58:36 +0100 |
parents | 26111c11d8e4 |
children | 8e04d298741b |
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@222 | 6 vec = load yetilab.vector.vector; |
Chris@157 | 7 |
Chris@184 | 8 pulseChannel rate = |
Chris@184 | 9 (pulseFreq = 2; |
Chris@184 | 10 pulseWidth = 0.01 * rate; |
Chris@184 | 11 generator i = |
Chris@184 | 12 (pulseNo = int ((i * pulseFreq) / rate); |
Chris@184 | 13 index = (i * pulseFreq) - (rate * pulseNo); |
Chris@184 | 14 if index < pulseWidth then |
Chris@184 | 15 s = 1.0 - abs(pulseWidth/2 - index) / (pulseWidth/2); |
Chris@184 | 16 if pulseNo % 2 != 0 then (-s) else s fi |
Chris@184 | 17 else 0 |
Chris@184 | 18 fi); |
Chris@184 | 19 syn.generated rate generator); |
Chris@182 | 20 |
Chris@182 | 21 referenceChannels rate = |
Chris@182 | 22 (leftovers rate n = |
Chris@182 | 23 (syn.generated rate \(n / 20) :. \(leftovers rate (n+1))); |
Chris@182 | 24 syn.sinusoid rate 600 :: pulseChannel rate :: leftovers rate 2); |
Chris@182 | 25 |
Chris@182 | 26 afReference rate channels = |
Chris@182 | 27 filt.multiplexed (take channels (referenceChannels rate)); |
Chris@157 | 28 |
Chris@182 | 29 { |
Chris@182 | 30 afReference |
Chris@182 | 31 } |
Chris@182 | 32 |
Chris@182 | 33 |