Re: [PD] delay lines

2011-04-15 Thread Mathieu Bouchard

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

2011-04-13 Thread Mathieu Bouchard

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

2011-04-13 Thread samuel rowe

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

2011-04-13 Thread Miller Puckette
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

2011-04-13 Thread samuel rowe

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

2011-04-13 Thread Mathieu Bouchard

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

2011-04-13 Thread samuel rowe

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

2011-04-13 Thread Mathieu Bouchard

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

2011-04-13 Thread Andrew Faraday

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

2011-04-13 Thread Mathieu Bouchard

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

2011-04-11 Thread Mathieu Bouchard

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

2011-04-11 Thread Miller Puckette
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

2011-04-11 Thread Mathieu Bouchard

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

2011-04-11 Thread Miller Puckette
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

2011-04-11 Thread samuel rowe

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

2011-04-11 Thread samuel rowe

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