view may/stream/test/audiofile_reference.yeti @ 338:0a856c4d5338

Rename YetiLab -> May throughout
author Chris Cannam
date Tue, 11 Jun 2013 22:22:25 +0100
parents yetilab/stream/test/audiofile_reference.yeti@2ebda6646c40
children
line wrap: on
line source

module may.stream.test.audiofile_reference;

syn = load may.stream.syntheticstream;
filt = load may.stream.filter;

//!!! docs from turbot

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.withDuration (2 * rate)
       (filt.multiplexed (take channels (referenceChannels rate)));
    
{
    afReference
}