To check out this repository please hg clone the following URL, or open the URL using EasyMercurial or your preferred Mercurial client.

Statistics Download as Zip
| Branch: | Revision:

root / yetilab / stream / test / audiofile_reference.yeti @ 225:8e04d298741b

History | View | Annotate | Download (917 Bytes)

1

    
2
module yetilab.stream.test.audiofile_reference;
3

    
4
syn = load yetilab.stream.syntheticstream;
5
filt = load yetilab.stream.filter;
6
vec = load yetilab.vector.vector;
7

    
8
//!!! docs from turbot
9

    
10
pulseChannel rate =
11
   (pulseFreq = 2;
12
    pulseWidth = 0.01 * rate;
13
    generator i =
14
       (pulseNo = int ((i * pulseFreq) / rate);
15
        index = (i * pulseFreq) - (rate * pulseNo);
16
        if index < pulseWidth then
17
	    s = 1.0 - abs(pulseWidth/2 - index) / (pulseWidth/2);
18
	    if pulseNo % 2 != 0 then (-s) else s fi
19
        else 0
20
        fi);
21
    syn.generated rate generator);
22

    
23
referenceChannels rate =
24
   (leftovers rate n =
25
       (syn.generated rate \(n / 20) :. \(leftovers rate (n+1)));
26
    syn.sinusoid rate 600 :: pulseChannel rate :: leftovers rate 2);
27

    
28
afReference rate channels =
29
    filt.withDuration (2 * rate)
30
       (filt.multiplexed (take channels (referenceChannels rate)));
31
    
32
{
33
    afReference
34
}
35

    
36