Hi, Faust has been fantastic, but I've recently become completely stuck.
I'd like to make a looper that can overdub. The sample code for making a
looper is very close to what I'd like.

import("stdfaust.lib"); tableSize = 48000; recIndex = (+(1) : %(tableSize))
~ *(record); readIndex = readSpeed/float(ma.SR) : (+ : ma.frac) ~ _ :
*(float(tableSize)) : int; readSpeed = hslider("[0]Read
Speed",1,0.001,10,0.01);
record = button("[1]Record") : int; looper =
rwtable(tableSize,0.0,recIndex,_,readIndex); process = looper;
I'd like to change this so that each iteration, it reads the value in the
rwtable at recIndex, adds the incoming value from process, and writes the
resulting value back to the rwtable. So then I can hold down the Record
button and it will overdub the signal as the record head passes multiple
times over the length of the table. But I can't find a way to do this that
doesn't create a second rwtable. Like this obviously doesn't work because I
assume I can't make the two "table" function calls reference the same
table. (please ignore the fact I'm writing 0 to the table, I also can't
work out how to not write to the table, so I'm just dumping the incoming
signal at index 0 for now)


import("stdfaust.lib");
tableSize = 48000;
recIndex = (+(1) : %(tableSize)) ~ *(record);
readIndex = readSpeed/float(ma.SR) : (+ : ma.frac) ~ _ : *(float(tableSize))
: int;
readSpeed = hslider("[0]Read Speed",1,0.001,10,0.01);
record = button("[1]Record") : int;
table(a,b) = rwtable(tableSize,0.0,a,_,b);
looper = _ <: table(0,recIndex),_ :> table(recIndex,readIndex);
process = looper;

Any ideas how to do this? My gut feeling is that it's impossible, or must
use recursion in a way that I'm not good enough to figure it out. Using @
isn't an option in this case because I need control over the position of
the playhead and record head.

This user had a very similar question 12 years ago but with no replies
https://sourceforge.net/p/faudiostream/mailman/faudiostream-devel/thread/4A26F5CB.8060703%40kymatica.com/#msg22644411

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

Reply via email to