Re: [PD] delay lines
On Tue, 12 Apr 2011, samuel rowe wrote: I have to restart my computer to get sound back. I believe that this is a problem you better figure out before doing anything else, because it's going to be annoying. IF YOU DECIDE TO OPEN THE PATCH, BE CAREFUL, YOU MIGHT HAVE TO RESTART LIKE I MENTIONED. I don't think that it can happen to many of us. I've never seen this happen. You could try going in a process-manager and see whether pd is still running even though it may appear to be closed. If that's the case, you could try reporting the problem. I get the following errors every time I turn dsp on : error: delread~: $R1: no such delwrite~ error: delread~: $R1: no such delwrite~ error: delread~: $L1: no such delwrite~ ___ | Mathieu Bouchard tél: +1.514.383.3801 Villeray, Montréal, QC___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] delay lines
On Tue, 12 Apr 2011, samuel rowe wrote: Mathieu, just out of interest, what are the [phasor~] s used for? [phasor~] can be thought of as a cycling counter. It counts up to 1 and then instead of giving a 1 it drops to 0 and starts again. This can be used to loop through a recorded sound in a table. In the case of a table-based delay line, you have to be continually writing in the table. In the case of a constant delay, this means that each sample will be read only (and exactly) once before it is replaced by something newer, and this means that the frequencies of the two phasors will be the same, but their phases will be different. You can also replace two phasors with just one if you add a [+~] and a [wrap~]. That's especially useful in your case. ___ | Mathieu Bouchard tél: +1.514.383.3801 Villeray, Montréal, QC ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] delay lines
I have been searching extensively on the internet for how to do this, but I can't find anything. I'm just struggling to visualize how I would do this, especially as one would need to read and write right-left. I had a read about wrap, and how it outputs the difference between the input and nearest integer, like the output of 1.75 would be 0.25. How would this replace two phasors? So one phasor would be used to read, then another one would trail slightly behind writing? Do you know of any examples or tutorials on continually reading and writing into an array, whilst incrementing the index? oh, and after much reading I have discovered that although you can read out of a delay line at any point, you can not drop in at a place and write (ie.you cannot write at the 50msec point in a 200msec delay line) so it looks like tables really are the way forward. Thanks Samuel On Tue, 12 Apr 2011, samuel rowe wrote: Mathieu, just out of interest, what are the [phasor~] s used for? [phasor~] can be thought of as a cycling counter. It counts up to 1 and then instead of giving a 1 it drops to 0 and starts again. This can be used to loop through a recorded sound in a table. In the case of a table-based delay line, you have to be continually writing in the table. In the case of a constant delay, this means that each sample will be read only (and exactly) once before it is replaced by something newer, and this means that the frequencies of the two phasors will be the same, but their phases will be different. You can also replace two phasors with just one if you add a [+~] and a [wrap~]. That's especially useful in your case. ___ | Mathieu Bouchard tél: +1.514.383.3801 Villeray, Montréal, QC ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] delay lines
No idea... power of 2 buffer so masking is easy? add a variable number of wraparound points and adjust it depending on what delread style objects pop up? There are plenty of things it could end up as :) Miller On Tue, Apr 12, 2011 at 10:58:51AM -0400, Mathieu Bouchard wrote: On Mon, 11 Apr 2011, Miller Puckette wrote: Nothing specific, but the current implemtnation has 4 wraparound points (which assumes that interpolation goes up to 4 points) -- seems unnecessarily arbitrary to me. Then what would you change it to, instead ? ___ | Mathieu Bouchard tél: +1.514.383.3801 Villeray, Montréal, QC ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] delay lines
Mathieu, just out of interest, what are the [phasor~] s used for? Would I set up an array for both left and right traveling wave, or one each? and I don't understand how the data inside would be changing over time, if I use the excitation abstraction I have to put an impulse into , for example, the middle of an array, I don't understand how it would move along the array. Sorry, I'm not a brilliant programmer, I have done digital waveguides in matlab, but I really don't like matlab and wanted to use a graphical real-time program, but Pd isn't as straight forward for delay lines. Date: Tue, 12 Apr 2011 11:04:15 -0400 From: ma...@artengine.ca To: samueldavidr...@hotmail.co.uk CC: pd-list@iem.at Subject: Re: [PD] delay lines On Mon, 11 Apr 2011, samuel rowe wrote: I'm not quite sure what you mean, simply using [tabread~] and [tabwrite~] where I've used [delread~] and [delwrite~]? I wasn't aware you could specify a location in an array, I thought you just read it all? Well, just read about [tabread~] and [tabwrite~] and then try to use two [phasor~] slightly out of phase, together with a [*~], to make your own delay line without [delread~] nor [delwrite~]. After that, you will have a lot more possibilities of customisation. Perhaps look at [wrap~] too. ___ | Mathieu Bouchard tél: +1.514.383.3801 Villeray, Montréal, QC ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] delay lines
On Mon, 11 Apr 2011, samuel rowe wrote: I'm not quite sure what you mean, simply using [tabread~] and [tabwrite~] where I've used [delread~] and [delwrite~]? I wasn't aware you could specify a location in an array, I thought you just read it all? Well, just read about [tabread~] and [tabwrite~] and then try to use two [phasor~] slightly out of phase, together with a [*~], to make your own delay line without [delread~] nor [delwrite~]. After that, you will have a lot more possibilities of customisation. Perhaps look at [wrap~] too. ___ | Mathieu Bouchard tél: +1.514.383.3801 Villeray, Montréal, QC ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] delay lines
I'm going to have a go changing the [dline~] abstractions, as inside them the signal is written to a delay line then read at a delay specified by the output position and delay line frequency/length. I'm just confused a bit with how the delay lines are designed, but I must be able to copy the section that connects output position to [dline~] on the right hand delay line over to the input delay line, then use that to read from the delay line. Surely.. I will have a go in a bit cheers From: jbtur...@hotmail.com To: samueldavidr...@hotmail.co.uk; pd-list@iem.at Subject: RE: [PD] delay lines Date: Tue, 12 Apr 2011 09:38:37 +0100 Ahh, The strength of arrays is that you can specify a specific location. So, to play audio that's stored in an array you usually have to feed it either changing position data from [line~] or [phasor~] which, as it reads each point at your sample rate (usually 44100 points a second) and feeds this data to your speakers you hear the stored audio, of course changed by the speed of the position line you're putting into it. You could build your own delay unit using tabread~ and tabwrite~ but if you're just starting out, I'd stick to [delread~] and [delwrite~]. Have you managed to do this? From: samueldavidr...@hotmail.co.uk To: pd-list@iem.at Date: Mon, 11 Apr 2011 17:08:23 + Subject: Re: [PD] delay lines I'm not quite sure what you mean, simply using [tabread~] and [tabwrite~] where I've used [delread~] and [delwrite~]? I wasn't aware you could specify a location in an array, I thought you just read it all? Sorry, I'm pretty new to using delay lines and arrays in Pd Thanks ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] delay lines
On Mon, 11 Apr 2011, Miller Puckette wrote: Nothing specific, but the current implemtnation has 4 wraparound points (which assumes that interpolation goes up to 4 points) -- seems unnecessarily arbitrary to me. Then what would you change it to, instead ? ___ | Mathieu Bouchard tél: +1.514.383.3801 Villeray, Montréal, QC___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] delay lines
Ahh, The strength of arrays is that you can specify a specific location. So, to play audio that's stored in an array you usually have to feed it either changing position data from [line~] or [phasor~] which, as it reads each point at your sample rate (usually 44100 points a second) and feeds this data to your speakers you hear the stored audio, of course changed by the speed of the position line you're putting into it. You could build your own delay unit using tabread~ and tabwrite~ but if you're just starting out, I'd stick to [delread~] and [delwrite~]. Have you managed to do this? From: samueldavidr...@hotmail.co.uk To: pd-list@iem.at Date: Mon, 11 Apr 2011 17:08:23 + Subject: Re: [PD] delay lines I'm not quite sure what you mean, simply using [tabread~] and [tabwrite~] where I've used [delread~] and [delwrite~]? I wasn't aware you could specify a location in an array, I thought you just read it all? Sorry, I'm pretty new to using delay lines and arrays in Pd Thanks ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] delay lines
On Wed, 13 Apr 2011, samuel rowe wrote: I had a read about wrap, and how it outputs the difference between the input and nearest integer, like the output of 1.75 would be 0.25. No, 1.75 becomes 0.75, while -1.75 becomes 0.25. The output of [wrap~] is the difference between input and the integer below or equal (the nearest of those that are not above). How would this replace two phasors? the phasor used for writing the delay is to be reused by every reader to synchronise with the position that is currently considered to be the present. So one phasor would be used to read, then another one would trail slightly behind writing? Yes, or even a lot. If you're trying to use the whole table for that job, you will put the read-phase a bit _ahead_ of the write-phase, because if e.g. the read-phase is 97 % behind, it is also 3 % ahead, because it's a loop. oh, and after much reading I have discovered that although you can read out of a delay line at any point, you can not drop in at a place and write (ie.you cannot write at the 50msec point in a 200msec delay line) so it looks like tables really are the way forward. However, controlling the write-head is harder than controlling the read-head. There's a reason for which delwrite~/delread~ is done the way it is now. If you just move the write-head the way you move the read-head, it will skip samples during writing, which will cause your data to blend in weird ways with whatever was the older data. It's complicated to stretch the data upon writing, especially in Pd, in which the normal way to stretch a live signal is to put it in a short delay line and read it with [vd~]. You can't write at variable rate with [delwrite~]. ___ | Mathieu Bouchard tél: +1.514.383.3801 Villeray, Montréal, QC ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] delay lines
On Sun, 10 Apr 2011, samuel rowe wrote: I've been trying to modify some bi-directional delay lines I found in the archives At the moment I can only select the input position in the delay line, then connect it up to another one via a scattering junction and select the output position for the second one Ideally I want to only use one delay line and control the input and output positions in it, What if you invented your own delay line using [tabread~] and [tabwrite~] instead of [delread~] and [delwrite~] ? (I've wondered why delread~ and delwrite~ aren't just implemented using tables. Anyone knows ?) ___ | Mathieu Bouchard tél: +1.514.383.3801 Villeray, Montréal, QC___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] delay lines
I thought about this for quite some time, but couldn't see that unifying the two would bring enough benefit to be worth it. In particular, the particular way wraparound is handled in delay lines might change with the iplementation, but making the actual storage visible as a table would lock us into one implementation. cheers Miller On Mon, Apr 11, 2011 at 09:27:30AM -0400, Mathieu Bouchard wrote: On Sun, 10 Apr 2011, samuel rowe wrote: I've been trying to modify some bi-directional delay lines I found in the archives At the moment I can only select the input position in the delay line, then connect it up to another one via a scattering junction and select the output position for the second one Ideally I want to only use one delay line and control the input and output positions in it, What if you invented your own delay line using [tabread~] and [tabwrite~] instead of [delread~] and [delwrite~] ? (I've wondered why delread~ and delwrite~ aren't just implemented using tables. Anyone knows ?) ___ | Mathieu Bouchard tél: +1.514.383.3801 Villeray, Montréal, QC ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] delay lines
On Mon, 11 Apr 2011, Miller Puckette wrote: I thought about this for quite some time, but couldn't see that unifying the two would bring enough benefit to be worth it. In particular, the particular way wraparound is handled in delay lines might change with the iplementation, but making the actual storage visible as a table would lock us into one implementation. Which other implementation(s) did you have in mind ? ___ | Mathieu Bouchard tél: +1.514.383.3801 Villeray, Montréal, QC ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] delay lines
Nothing specific, but the current implemtnation has 4 wraparound points (which assumes that interpolation goes up to 4 points) -- seems unnecessarily arbitrary to me. cheers M On Mon, Apr 11, 2011 at 12:34:34PM -0400, Mathieu Bouchard wrote: On Mon, 11 Apr 2011, Miller Puckette wrote: I thought about this for quite some time, but couldn't see that unifying the two would bring enough benefit to be worth it. In particular, the particular way wraparound is handled in delay lines might change with the iplementation, but making the actual storage visible as a table would lock us into one implementation. Which other implementation(s) did you have in mind ? ___ | Mathieu Bouchard tél: +1.514.383.3801 Villeray, Montréal, QC ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] delay lines
I'm not quite sure what you mean, simply using [tabread~] and [tabwrite~] where I've used [delread~] and [delwrite~]? I wasn't aware you could specify a location in an array, I thought you just read it all? Sorry, I'm pretty new to using delay lines and arrays in Pd Thanks ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] delay lines
I'm not quite sure what you mean, simply using [tabread~] and [tabwrite~] where I've used [delread~] and [delwrite~]? I wasn't aware you could specify a location in an array, I thought you just read it all? Sorry, I'm pretty new to using delay lines and arrays in Pd Thanks ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list