Em qua., 3 de mar. de 2021 às 21:38, José de Abreu abreubacelar@gmail.com escreveu:
very nice videos! but i think i used the wrong name then, what i did was what max asked, when you switch off the delay, it just works as an array and the write pointer keeps frozen and only resumes writing when you switch it on again
I confess I was just kind of obsessed with the idea of providing a 'freeze' function a la MAX, cause since I started working on cyclone I was jealous they had it. Apart from jealousness and envyness I actually never needed or thought about.
Now that I keep thinking about this, I realize there's also the alternative of doing the other way around. That is, write into an array and use that as a delay line. Maybe not easily doable with vanilla, cause I guess [tabwrite~] won't easily loop when writing into the array, but there are externals for this.
In cyclone we have [record~] and [poke~] to write to arrays, plus [play~] to play them. Just keep writing into arrays in a loop and read also in a loop (but delayed). One can also use [tabread4~], why not? This is not all that straightforward, I know, but I don't think this hack with the delay line is pretty :)
By the way, I learned that in SuperCollider you have a Tap object that just plays from a regular buffer (i.e. an array) like that.
I have to confess I haven't fully figured it out yet how the code of [delread~]/[delwrite~] worksl, but it seems it's just like that, it keeps writing into a buffer in a loop...
Anyway, I'm now toying with the idea of implementing a delay without delread/write objects for fun.
I can also suggest objects from the ELSE library, like [tabwriter~] to record and [taplayer~] to play, or also [table~] driven by [ramp~]
And the idea is that you can easily stop writing into the arrays with these objects and continue from where you left off.
what do you think?
cheers