Useful observations, Oleg. I had suspected optimization might be involved. It 
looks like this bug involving constant indices might be easy to fix and also 
easy to work around. I guess one workaround is to use hidden nentry objects 
that the optimizer will not see as constant.

Nevertheless, I also encounter difficulties when using variable indices. 
Consider the case of using gate signals to control recording and playback. This 
example alternately records and then plays back repeatedly.



import ("stdfaust.lib");

ramp = * ~ + (1);

sampler(tableSize, play, record) =
    rwtable(tableSize, 0, play : ramp, _, record : ramp);

process = x : sampler(tableSize, play, record)
    with {
        tableSize = 1024;
        gate = ba.pulsen(512, 2048);
        record = gate;
        play = gate @ 1024;
        x = os.osc(55);
    };



The output is mostly zero with some very short, sparse pulses.


_______________________________________________
Faudiostream-users mailing list
Faudiostream-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/faudiostream-users

Reply via email to