Csound Csound-dev Csound-tekno Search About

[Cs-dev] Delay lines?

Date2009-02-10 16:58
FromJuhana Sadeharju
Subject[Cs-dev] Delay lines?
Hello. I would like to implement a reverberator, my GVerb
and a couple of others I have implemented in my Lexiclone
(unpublished).

delayr/deltapi/delayw are exactly what I need, but
how to manage multiple delay lines?

I need to implement following:
d1 = delay_read(dl1,dt1_0);
d2 = delay_read(dl2,dt2_0);
fb1 =  // FDN matrix here
fb2 =  // FDN matrix here
out1 = delay_read(dl1,dt1_1) + delay_read(dl1,dt1_2) + delay_read(dl1,dt1_3);
out2 = delay_read(dl2,dt2_1) + delay_read(dl2,dt2_2) + delay_read(dl2,dt2_3);
delay_write(dl1,fb1); // write and advance
delay_write(dl2,fb2);

If I got that correctly, it is basic FDN section with tapped delays.
If I place
  delayr
  delayr
  deltapi deltapi ***
  delayw
  delayw
how Csound knows what delaylines are tapped?

Could you (we) add delay opcodes which use name ids?

Note: I'm not sure if separate delayr and deltapi are
really needed. In C, I have delay_read(delayline,delaytime)
which can be used to tap the delayline. Then I have
delay_write(delayline,sample) which writes and advances
the delayline. I have also tested _read(), _write(), _advance()
triple where write() may add to the delayline, instead of
replacing.

I will implement all building blocks and the complete reverb
as UDOs. It is interesting to see if this project halts to
some Csound limitation.

Juhana

------------------------------------------------------------------------------
Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM)
software. With Adobe AIR, Ajax developers can use existing skills and code to
build responsive, highly engaging applications that combine the power of local
resources and data with the reach of the web. Download the Adobe AIR SDK and
Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net

Date2009-02-10 20:00
FromOeyvind Brandtsegg
SubjectRe: [Cs-dev] Delay lines?
I'm not sure I understand all details,
but for separate delay lines, you would do:

delayr
deltapi
delayw

delayr
deltapi
delayw

and for multiple taps from one delay line, you would do:

delayr
deltapi
deltapi
deltapi
delayw

For an example of an FDN reverb, try looking at the "Sean Costello" reverb.
That is a Csound omplementation of a reverb design from Julius O Smith.
I've forgotten where to find a link to the original code, it's used in
a lot of Csound projects,
probably someone else has a link.

Oeyvind



2009/2/10 Juhana Sadeharju :
> Hello. I would like to implement a reverberator, my GVerb
> and a couple of others I have implemented in my Lexiclone
> (unpublished).
>
> delayr/deltapi/delayw are exactly what I need, but
> how to manage multiple delay lines?
>
> I need to implement following:
> d1 = delay_read(dl1,dt1_0);
> d2 = delay_read(dl2,dt2_0);
> fb1 =  // FDN matrix here
> fb2 =  // FDN matrix here
> out1 = delay_read(dl1,dt1_1) + delay_read(dl1,dt1_2) + delay_read(dl1,dt1_3);
> out2 = delay_read(dl2,dt2_1) + delay_read(dl2,dt2_2) + delay_read(dl2,dt2_3);
> delay_write(dl1,fb1); // write and advance
> delay_write(dl2,fb2);
>
> If I got that correctly, it is basic FDN section with tapped delays.
> If I place
>  delayr
>  delayr
>  deltapi deltapi ***
>  delayw
>  delayw
> how Csound knows what delaylines are tapped?
>
> Could you (we) add delay opcodes which use name ids?
>
> Note: I'm not sure if separate delayr and deltapi are
> really needed. In C, I have delay_read(delayline,delaytime)
> which can be used to tap the delayline. Then I have
> delay_write(delayline,sample) which writes and advances
> the delayline. I have also tested _read(), _write(), _advance()
> triple where write() may add to the delayline, instead of
> replacing.
>
> I will implement all building blocks and the complete reverb
> as UDOs. It is interesting to see if this project halts to
> some Csound limitation.
>
> Juhana
>
> ------------------------------------------------------------------------------
> Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM)
> software. With Adobe AIR, Ajax developers can use existing skills and code to
> build responsive, highly engaging applications that combine the power of local
> resources and data with the reach of the web. Download the Adobe AIR SDK and
> Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com
> _______________________________________________
> Csound-devel mailing list
> Csound-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/csound-devel
>

------------------------------------------------------------------------------
Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM)
software. With Adobe AIR, Ajax developers can use existing skills and code to
build responsive, highly engaging applications that combine the power of local
resources and data with the reach of the web. Download the Adobe AIR SDK and
Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net

Date2009-02-10 20:37
FromOlivier Bélanger
SubjectRe: [Cs-dev] Delay lines?
AttachmentsNone  None  
http://www.csounds.com/udo/displayOpcode.php?opcode_id=70

Olivier


2009/2/10 Oeyvind Brandtsegg <obrandts@gmail.com>
I'm not sure I understand all details,
but for separate delay lines, you would do:

delayr
deltapi
delayw

delayr
deltapi
delayw

and for multiple taps from one delay line, you would do:

delayr
deltapi
deltapi
deltapi
delayw

For an example of an FDN reverb, try looking at the "Sean Costello" reverb.
That is a Csound omplementation of a reverb design from Julius O Smith.
I've forgotten where to find a link to the original code, it's used in
a lot of Csound projects,
probably someone else has a link.

Oeyvind



2009/2/10 Juhana Sadeharju <kouhia@nic.funet.fi>:
> Hello. I would like to implement a reverberator, my GVerb
> and a couple of others I have implemented in my Lexiclone
> (unpublished).
>
> delayr/deltapi/delayw are exactly what I need, but
> how to manage multiple delay lines?
>
> I need to implement following:
> d1 = delay_read(dl1,dt1_0);
> d2 = delay_read(dl2,dt2_0);
> fb1 =  // FDN matrix here
> fb2 =  // FDN matrix here
> out1 = delay_read(dl1,dt1_1) + delay_read(dl1,dt1_2) + delay_read(dl1,dt1_3);
> out2 = delay_read(dl2,dt2_1) + delay_read(dl2,dt2_2) + delay_read(dl2,dt2_3);
> delay_write(dl1,fb1); // write and advance
> delay_write(dl2,fb2);
>
> If I got that correctly, it is basic FDN section with tapped delays.
> If I place
>  delayr
>  delayr
>  deltapi deltapi ***
>  delayw
>  delayw
> how Csound knows what delaylines are tapped?
>
> Could you (we) add delay opcodes which use name ids?
>
> Note: I'm not sure if separate delayr and deltapi are
> really needed. In C, I have delay_read(delayline,delaytime)
> which can be used to tap the delayline. Then I have
> delay_write(delayline,sample) which writes and advances
> the delayline. I have also tested _read(), _write(), _advance()
> triple where write() may add to the delayline, instead of
> replacing.
>
> I will implement all building blocks and the complete reverb
> as UDOs. It is interesting to see if this project halts to
> some Csound limitation.
>
> Juhana
>
> ------------------------------------------------------------------------------
> Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM)
> software. With Adobe AIR, Ajax developers can use existing skills and code to
> build responsive, highly engaging applications that combine the power of local
> resources and data with the reach of the web. Download the Adobe AIR SDK and
> Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com
> _______________________________________________
> Csound-devel mailing list
> Csound-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/csound-devel
>

------------------------------------------------------------------------------
Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM)
software. With Adobe AIR, Ajax developers can use existing skills and code to
build responsive, highly engaging applications that combine the power of local
resources and data with the reach of the web. Download the Adobe AIR SDK and
Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/csound-devel


Date2009-02-10 22:00
FromJohn Lato
SubjectRe: [Cs-dev] Delay lines?
On Tue, Feb 10, 2009 at 4:58 PM, Juhana Sadeharju  wrote:

> If I got that correctly, it is basic FDN section with tapped delays.
> If I place
>  delayr
>  delayr
>  deltapi deltapi ***
>  delayw
>  delayw
> how Csound knows what delaylines are tapped?

If you have nested delay lines, taps always refer to the innermost
delay line.  You can access both lines like this:

delayr
asig_outer deltapi ...  ;read from outer delay line
delayr
asig_innter deltapi ... ; read from inner delay line
delayw
delayw

John Lato

------------------------------------------------------------------------------
Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM)
software. With Adobe AIR, Ajax developers can use existing skills and code to
build responsive, highly engaging applications that combine the power of local
resources and data with the reach of the web. Download the Adobe AIR SDK and
Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net

Date2009-02-11 01:42
FromGraham Breed
SubjectRe: [Cs-dev] Delay lines?
Olivier Bélanger wrote:
> http://www.csounds.com/udo/displayOpcode.php?opcode_id=70

And what do I see at the top?

opcode SCReverb, aa, aakkjpo

	setksmps 1

Of course feedback will work if sr=kr.  I worked with 
exactly this example before it was a standard opcode.  I did 
have it working reasonably well for an arbitrary control 
rate.  But I was never happy that I was getting the same 
sound as when sr=kr.

If nesting delay lines is supposed to work, fine.  I had 
examples before that seemed to show that it wasn't.  I lost 
them when moving computers, though, so if people are happy 
with it now, and it's documented, no problem.


                    Graham

------------------------------------------------------------------------------
Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM)
software. With Adobe AIR, Ajax developers can use existing skills and code to
build responsive, highly engaging applications that combine the power of local
resources and data with the reach of the web. Download the Adobe AIR SDK and
Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net