Mercurial > hg > may
annotate yetilab/stream/test/audiofile_reference.yeti @ 254:5eb57c649de0 sparse
Using hashes is simpler, but turns out to be mostly no faster and sometimes much slower. Not one to merge back.
author | Chris Cannam |
---|---|
date | Tue, 21 May 2013 17:40:33 +0100 |
parents | 8e04d298741b |
children | 2ebda6646c40 |
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@225 | 8 //!!! docs from turbot |
Chris@225 | 9 |
Chris@184 | 10 pulseChannel rate = |
Chris@184 | 11 (pulseFreq = 2; |
Chris@184 | 12 pulseWidth = 0.01 * rate; |
Chris@184 | 13 generator i = |
Chris@184 | 14 (pulseNo = int ((i * pulseFreq) / rate); |
Chris@184 | 15 index = (i * pulseFreq) - (rate * pulseNo); |
Chris@184 | 16 if index < pulseWidth then |
Chris@184 | 17 s = 1.0 - abs(pulseWidth/2 - index) / (pulseWidth/2); |
Chris@184 | 18 if pulseNo % 2 != 0 then (-s) else s fi |
Chris@184 | 19 else 0 |
Chris@184 | 20 fi); |
Chris@184 | 21 syn.generated rate generator); |
Chris@182 | 22 |
Chris@182 | 23 referenceChannels rate = |
Chris@182 | 24 (leftovers rate n = |
Chris@182 | 25 (syn.generated rate \(n / 20) :. \(leftovers rate (n+1))); |
Chris@182 | 26 syn.sinusoid rate 600 :: pulseChannel rate :: leftovers rate 2); |
Chris@182 | 27 |
Chris@182 | 28 afReference rate channels = |
Chris@225 | 29 filt.withDuration (2 * rate) |
Chris@225 | 30 (filt.multiplexed (take channels (referenceChannels rate))); |
Chris@157 | 31 |
Chris@182 | 32 { |
Chris@182 | 33 afReference |
Chris@182 | 34 } |
Chris@182 | 35 |
Chris@182 | 36 |