Csound Csound-dev Csound-tekno Search About

[Csnd] programmatically changing signal routing

Date2011-10-24 10:58
FromSi Mills
Subject[Csnd] programmatically changing signal routing
Hi,

I've been looking at the various opcodes for signal routing (Zak, Mixer, Signal Flow Graph) but I'm a bit confused about which is best suited to changing the output of an instrument at runtime, or whether either of them is necessary and just use global signal variables.

Basically I want to have a bunch of different effect instruments running and in a source instrument, using timeout or metro loop evaluate a condition and based on the result route its signal to any combination of effects..

Whats the most straightforward way to achieve this?

thanks

Date2011-10-24 11:29
FromRory Walsh
SubjectRe: [Csnd] programmatically changing signal routing
I think the channel opcodes are best for this, i.e., chnget and chnset.

On 24 October 2011 10:58, Si Mills  wrote:
> Hi,
> I've been looking at the various opcodes for signal routing (Zak, Mixer,
> Signal Flow Graph) but I'm a bit confused about which is best suited to
> changing the output of an instrument at runtime, or whether either of them
> is necessary and just use global signal variables.
> Basically I want to have a bunch of different effect instruments running and
> in a source instrument, using timeout or metro loop evaluate a condition and
> based on the result route its signal to any combination of effects..
> Whats the most straightforward way to achieve this?
> thanks


Send bugs reports to the Sourceforge bug tracker
            https://sourceforge.net/tracker/?group_id=81968&atid=564599
Discussions of bugs and features can be posted here
To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe csound"

Date2011-10-24 14:07
FromSi Mills
SubjectRe: [Csnd] programmatically changing signal routing
cool, thanks for clarify that
S

On 24 October 2011 11:29, Rory Walsh <rorywalsh@ear.ie> wrote:
I think the channel opcodes are best for this, i.e., chnget and chnset.

On 24 October 2011 10:58, Si Mills <smills@rootsix.net> wrote:
> Hi,
> I've been looking at the various opcodes for signal routing (Zak, Mixer,
> Signal Flow Graph) but I'm a bit confused about which is best suited to
> changing the output of an instrument at runtime, or whether either of them
> is necessary and just use global signal variables.
> Basically I want to have a bunch of different effect instruments running and
> in a source instrument, using timeout or metro loop evaluate a condition and
> based on the result route its signal to any combination of effects..
> Whats the most straightforward way to achieve this?
> thanks


Send bugs reports to the Sourceforge bug tracker
           https://sourceforge.net/tracker/?group_id=81968&atid=564599
Discussions of bugs and features can be posted here
To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe csound"



Date2011-10-24 16:09
FromAnton Kholomiov
SubjectRe: [Csnd] programmatically changing signal routing
Just to make it clear, why chnset/chnget are better than globals or 
other alternatives?  And beside chnset/chnget there are chnsend/chnrecieve?  
What is the difference between them?

2011/10/24 Rory Walsh <rorywalsh@ear.ie>
I think the channel opcodes are best for this, i.e., chnget and chnset.

On 24 October 2011 10:58, Si Mills <smills@rootsix.net> wrote:
> Hi,
> I've been looking at the various opcodes for signal routing (Zak, Mixer,
> Signal Flow Graph) but I'm a bit confused about which is best suited to
> changing the output of an instrument at runtime, or whether either of them
> is necessary and just use global signal variables.
> Basically I want to have a bunch of different effect instruments running and
> in a source instrument, using timeout or metro loop evaluate a condition and
> based on the result route its signal to any combination of effects..
> Whats the most straightforward way to achieve this?
> thanks


Send bugs reports to the Sourceforge bug tracker
           https://sourceforge.net/tracker/?group_id=81968&atid=564599
Discussions of bugs and features can be posted here
To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe csound"



Date2011-10-24 16:19
FromRory Walsh
SubjectRe: [Csnd] programmatically changing signal routing
I don't know chnsend but chnget/chnset let you deal with audio
signals. I use the signal flow opcodes but I think for maximum
flexibility the software channel bus opcodes are best. Joachim
illustrated very well the flexibility of these opcodes here:

http://csound.1045644.n5.nabble.com/Signal-Flow-Graph-vs-chn-opcodes-td4336016.html

I don't like using global variables but I guess they could also be used.

Rory.



On 24 October 2011 16:09, Anton Kholomiov  wrote:
> Just to make it clear, why chnset/chnget are better than globals or
> other alternatives?  And beside chnset/chnget there are chnsend/chnrecieve?
>
> What is the difference between them?
> 2011/10/24 Rory Walsh 
>>
>> I think the channel opcodes are best for this, i.e., chnget and chnset.
>>
>> On 24 October 2011 10:58, Si Mills  wrote:
>> > Hi,
>> > I've been looking at the various opcodes for signal routing (Zak, Mixer,
>> > Signal Flow Graph) but I'm a bit confused about which is best suited to
>> > changing the output of an instrument at runtime, or whether either of
>> > them
>> > is necessary and just use global signal variables.
>> > Basically I want to have a bunch of different effect instruments running
>> > and
>> > in a source instrument, using timeout or metro loop evaluate a condition
>> > and
>> > based on the result route its signal to any combination of effects..
>> > Whats the most straightforward way to achieve this?
>> > thanks
>>
>>
>> Send bugs reports to the Sourceforge bug tracker
>>            https://sourceforge.net/tracker/?group_id=81968&atid=564599
>> Discussions of bugs and features can be posted here
>> To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe
>> csound"
>>
>
>


Send bugs reports to the Sourceforge bug tracker
            https://sourceforge.net/tracker/?group_id=81968&atid=564599
Discussions of bugs and features can be posted here
To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe csound"


Date2011-10-24 16:49
FromSi Mills
SubjectRe: [Csnd] programmatically changing signal routing
chnset/chnget and chnsend/chnreceive - the docs seem exactly the same except that one send/receives and one write/reads from the name software bus!

could one clarify that too pls?

cheers


On 24 October 2011 16:19, Rory Walsh <rorywalsh@ear.ie> wrote:
I don't know chnsend but chnget/chnset let you deal with audio=0A=
signals. I use the signal flow opcodes but I think for maximum=0A=
flexibility the software channel bus opcodes are best. Joachim=0A=
illustrated very well the flexibility of these opcodes here:=0A=
=0A=
http://csound.1045644.n5.nabble.com/Signal-Flow-Graph-vs-chn-opcodes-td4336=
016.html=0A=

=0A=
I don't like using global variables but I guess they could also be used.=0A=
=0A=
Rory.=0A=
=0A=
=0A=
=0A=
On 24 October 2011 16:09, Anton Kholomiov <anton.kholomiov@gmail.com> wrote:=
=0A=
> Just to make it clear, why chnset/chnget are better than globals or=0A=
> other alternatives? =A0And beside chnset/chnget there are chnsend/chnreci=
eve?=0A=
>=0A=
> What is the difference between them?=0A=
> 2011/10/24 Rory Walsh <rorywalsh@ear.ie>=0A=
>>=0A=
>> I think the channel opcodes are best for this, i.e., chnget and chnset.=
=0A=
>>=0A=
>> On 24 October 2011 10:58, Si Mills <smills@rootsix.net> wrote:=0A=
>> > Hi,=0A=
>> > I've been looking at the various opcodes for signal routing (Zak, Mixe=
r,=0A=
>> > Signal Flow Graph) but I'm a bit confused about which is best suited to=
=0A=
>> > changing the output of an instrument at runtime, or whether either of=
=0A=
>> > them=0A=
>> > is necessary and just use global signal variables.=0A=
>> > Basically I want to have a bunch of different effect instruments runni=
ng=0A=
>> > and=0A=
>> > in a source instrument, using timeout or metro loop evaluate a conditi=
on=0A=
>> > and=0A=
>> > based on the result route its signal to any combination of effects..=
=0A=
>> > Whats the most straightforward way to achieve this?=0A=
>> > thanks=0A=
>>=0A=
>>=0A=
>> Send bugs reports to the Sourceforge bug tracker=0A=
>> =A0 =A0 =A0 =A0 =A0 =A0https://sourceforge.net/tracker/?group_id=3D81968=
&atid=3D564599=0A=

>> Discussions of bugs and features can be posted here=0A=
>> To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe=
=0A=
>> csound"=0A=
>>=0A=
>=0A=
>=0A=
=0A=
=0A=
Send bugs reports to the Sourceforge bug tracker=0A=
           https://sourceforge.net/tracker/?group_id=3D81968&atid=3D564599=
=0A=

Discussions of bugs and features can be posted here=0A=
To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe cs=
ound"=0A=
=0A=


Date2011-10-24 17:03
FromRory Walsh
SubjectRe: [Csnd] programmatically changing signal routing
Good point. I'm not sure what the differences are myself!

On 24 October 2011 16:49, Si Mills  wrote:
> chnset/chnget and chnsend/chnreceive - the docs seem exactly the same except
> that one send/receives and one write/reads from the name software bus!
> could one clarify that too pls?
> cheers
>
>
> On 24 October 2011 16:19, Rory Walsh  wrote:
>>
>> I don't know chnsend but chnget/chnset let you deal with audio=0A=
>> signals. I use the signal flow opcodes but I think for maximum=0A=
>> flexibility the software channel bus opcodes are best. Joachim=0A=
>> illustrated very well the flexibility of these opcodes here:=0A=
>> =0A=
>>
>> http://csound.1045644.n5.nabble.com/Signal-Flow-Graph-vs-chn-opcodes-td4336=
>> 016.html=0A=
>> =0A=
>> I don't like using global variables but I guess they could also be
>> used.=0A=
>> =0A=
>> Rory.=0A=
>> =0A=
>> =0A=
>> =0A=
>> On 24 October 2011 16:09, Anton Kholomiov 
>> wrote:=
>> =0A=
>> > Just to make it clear, why chnset/chnget are better than globals or=0A=
>> > other alternatives? =A0And beside chnset/chnget there are
>> > chnsend/chnreci=
>> eve?=0A=
>> >=0A=
>> > What is the difference between them?=0A=
>> > 2011/10/24 Rory Walsh =0A=
>> >>=0A=
>> >> I think the channel opcodes are best for this, i.e., chnget and
>> >> chnset.=
>> =0A=
>> >>=0A=
>> >> On 24 October 2011 10:58, Si Mills  wrote:=0A=
>> >> > Hi,=0A=
>> >> > I've been looking at the various opcodes for signal routing (Zak,
>> >> > Mixe=
>> r,=0A=
>> >> > Signal Flow Graph) but I'm a bit confused about which is best suited
>> >> > to=
>> =0A=
>> >> > changing the output of an instrument at runtime, or whether either
>> >> > of=
>> =0A=
>> >> > them=0A=
>> >> > is necessary and just use global signal variables.=0A=
>> >> > Basically I want to have a bunch of different effect instruments
>> >> > runni=
>> ng=0A=
>> >> > and=0A=
>> >> > in a source instrument, using timeout or metro loop evaluate a
>> >> > conditi=
>> on=0A=
>> >> > and=0A=
>> >> > based on the result route its signal to any combination of effects..=
>> =0A=
>> >> > Whats the most straightforward way to achieve this?=0A=
>> >> > thanks=0A=
>> >>=0A=
>> >>=0A=
>> >> Send bugs reports to the Sourceforge bug tracker=0A=
>> >> =A0 =A0 =A0 =A0 =A0
>> >> =A0https://sourceforge.net/tracker/?group_id=3D81968=
>> &atid=3D564599=0A=
>> >> Discussions of bugs and features can be posted here=0A=
>> >> To unsubscribe, send email sympa@lists.bath.ac.uk with body
>> >> "unsubscribe=
>> =0A=
>> >> csound"=0A=
>> >>=0A=
>> >=0A=
>> >=0A=
>> =0A=
>> =0A=
>> Send bugs reports to the Sourceforge bug tracker=0A=
>>
>>  https://sourceforge.net/tracker/?group_id=3D81968&atid=3D564599=
>> =0A=
>> Discussions of bugs and features can be posted here=0A=
>> To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe
>> cs=
>> ound"=0A=
>> =0A=
>
>


Send bugs reports to the Sourceforge bug tracker
            https://sourceforge.net/tracker/?group_id=81968&atid=564599
Discussions of bugs and features can be posted here
To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe csound"


Date2011-10-24 17:20
FromVictor Lazzarini
SubjectRe: [Csnd] programmatically changing signal routing
chnsend and chnreceive only work with external hosts that have a  
callback setup.

What you want is chnset/get, which work with or without a host using/ 
setting up channels (e.g. Qutecsound).

Maybe this should be clarified in the manual.

Victor

On 24 Oct 2011, at 17:03, Rory Walsh wrote:

> Good point. I'm not sure what the differences are myself!
>
> On 24 October 2011 16:49, Si Mills  wrote:
>> chnset/chnget and chnsend/chnreceive - the docs seem exactly the  
>> same except
>> that one send/receives and one write/reads from the name software  
>> bus!
>> could one clarify that too pls?
>> cheers
>>
>>
>> On 24 October 2011 16:19, Rory Walsh  wrote:
>>>
>>> I don't know chnsend but chnget/chnset let you deal with audio=0A=
>>> signals. I use the signal flow opcodes but I think for maximum=0A=
>>> flexibility the software channel bus opcodes are best. Joachim=0A=
>>> illustrated very well the flexibility of these opcodes here:=0A=
>>> =0A=
>>>
>>> http://csound.1045644.n5.nabble.com/Signal-Flow-Graph-vs-chn-opcodes-td4336=
>>> 016.html=0A=
>>> =0A=
>>> I don't like using global variables but I guess they could also be
>>> used.=0A=
>>> =0A=
>>> Rory.=0A=
>>> =0A=
>>> =0A=
>>> =0A=
>>> On 24 October 2011 16:09, Anton Kholomiov  
>>> 
>>> wrote:=
>>> =0A=
>>>> Just to make it clear, why chnset/chnget are better than globals  
>>>> or=0A=
>>>> other alternatives? =A0And beside chnset/chnget there are
>>>> chnsend/chnreci=
>>> eve?=0A=
>>>> =0A=
>>>> What is the difference between them?=0A=
>>>> 2011/10/24 Rory Walsh =0A=
>>>>> =0A=
>>>>> I think the channel opcodes are best for this, i.e., chnget and
>>>>> chnset.=
>>> =0A=
>>>>> =0A=
>>>>> On 24 October 2011 10:58, Si Mills  wrote:=0A=
>>>>>> Hi,=0A=
>>>>>> I've been looking at the various opcodes for signal routing (Zak,
>>>>>> Mixe=
>>> r,=0A=
>>>>>> Signal Flow Graph) but I'm a bit confused about which is best  
>>>>>> suited
>>>>>> to=
>>> =0A=
>>>>>> changing the output of an instrument at runtime, or whether  
>>>>>> either
>>>>>> of=
>>> =0A=
>>>>>> them=0A=
>>>>>> is necessary and just use global signal variables.=0A=
>>>>>> Basically I want to have a bunch of different effect instruments
>>>>>> runni=
>>> ng=0A=
>>>>>> and=0A=
>>>>>> in a source instrument, using timeout or metro loop evaluate a
>>>>>> conditi=
>>> on=0A=
>>>>>> and=0A=
>>>>>> based on the result route its signal to any combination of  
>>>>>> effects..=
>>> =0A=
>>>>>> Whats the most straightforward way to achieve this?=0A=
>>>>>> thanks=0A=
>>>>> =0A=
>>>>> =0A=
>>>>> Send bugs reports to the Sourceforge bug tracker=0A=
>>>>> =A0 =A0 =A0 =A0 =A0
>>>>> =A0https://sourceforge.net/tracker/?group_id=3D81968=
>>> &atid=3D564599=0A=
>>>>> Discussions of bugs and features can be posted here=0A=
>>>>> To unsubscribe, send email sympa@lists.bath.ac.uk with body
>>>>> "unsubscribe=
>>> =0A=
>>>>> csound"=0A=
>>>>> =0A=
>>>> =0A=
>>>> =0A=
>>> =0A=
>>> =0A=
>>> Send bugs reports to the Sourceforge bug tracker=0A=
>>>
>>>  https://sourceforge.net/tracker/?group_id=3D81968&atid=3D564599=
>>> =0A=
>>> Discussions of bugs and features can be posted here=0A=
>>> To unsubscribe, send email sympa@lists.bath.ac.uk with body  
>>> "unsubscribe
>>> cs=
>>> ound"=0A=
>>> =0A=
>>
>>
>
>
> Send bugs reports to the Sourceforge bug tracker
>            https://sourceforge.net/tracker/?group_id=81968&atid=564599
> Discussions of bugs and features can be posted here
> To unsubscribe, send email sympa@lists.bath.ac.uk with body  
> "unsubscribe csound"
>

Dr Victor Lazzarini
Senior Lecturer
Dept. of Music
NUI Maynooth Ireland
tel.: +353 1 708 3545
Victor dot Lazzarini AT nuim dot ie





Send bugs reports to the Sourceforge bug tracker
            https://sourceforge.net/tracker/?group_id=81968&atid=564599
Discussions of bugs and features can be posted here
To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe csound"

Date2011-10-24 17:27
FromAndres Cabrera
SubjectRe: [Csnd] programmatically changing signal routing
Hi,

I'm not even sure chnreceive/chnsend are finished... I remember Istvan
left while he was working on this so I suspect they are not entirely
functional. chnsend/chnreceive work more like invalue/outvalue, in the
sense that they have no internal store and are callback based, so they
are not useful for inter-instrument communication, but they are useful
when values can be modified from both the csd and the host, because
the callback mechanism guarantees the host will know whenever a value
has been set, not only when it has changed.

There is also a difference in performance. chnset/chnget are accessed
whenever the host polls them, so the host can choose to poll them
frequently or unfrequently. Invalue/outvalue don't need to be polled
because they will trigger their callbacks whenever they change. If you
need to tweak performance, you might need to see which one is better
in your case.

Cheers,
Andrés

On Mon, Oct 24, 2011 at 5:20 PM, Victor Lazzarini
 wrote:
> chnsend and chnreceive only work with external hosts that have a callback
> setup.
>
> What you want is chnset/get, which work with or without a host using/setting
> up channels (e.g. Qutecsound).
>
> Maybe this should be clarified in the manual.
>
> Victor
>
> On 24 Oct 2011, at 17:03, Rory Walsh wrote:
>
>> Good point. I'm not sure what the differences are myself!
>>
>> On 24 October 2011 16:49, Si Mills  wrote:
>>>
>>> chnset/chnget and chnsend/chnreceive - the docs seem exactly the same
>>> except
>>> that one send/receives and one write/reads from the name software bus!
>>> could one clarify that too pls?
>>> cheers
>>>
>>>
>>> On 24 October 2011 16:19, Rory Walsh  wrote:
>>>>
>>>> I don't know chnsend but chnget/chnset let you deal with audio=0A=
>>>> signals. I use the signal flow opcodes but I think for maximum=0A=
>>>> flexibility the software channel bus opcodes are best. Joachim=0A=
>>>> illustrated very well the flexibility of these opcodes here:=0A=
>>>> =0A=
>>>>
>>>>
>>>> http://csound.1045644.n5.nabble.com/Signal-Flow-Graph-vs-chn-opcodes-td4336=
>>>> 016.html=0A=
>>>> =0A=
>>>> I don't like using global variables but I guess they could also be
>>>> used.=0A=
>>>> =0A=
>>>> Rory.=0A=
>>>> =0A=
>>>> =0A=
>>>> =0A=
>>>> On 24 October 2011 16:09, Anton Kholomiov 
>>>> wrote:=
>>>> =0A=
>>>>>
>>>>> Just to make it clear, why chnset/chnget are better than globals or=0A=
>>>>> other alternatives? =A0And beside chnset/chnget there are
>>>>> chnsend/chnreci=
>>>>
>>>> eve?=0A=
>>>>>
>>>>> =0A=
>>>>> What is the difference between them?=0A=
>>>>> 2011/10/24 Rory Walsh =0A=
>>>>>>
>>>>>> =0A=
>>>>>> I think the channel opcodes are best for this, i.e., chnget and
>>>>>> chnset.=
>>>>
>>>> =0A=
>>>>>>
>>>>>> =0A=
>>>>>> On 24 October 2011 10:58, Si Mills  wrote:=0A=
>>>>>>>
>>>>>>> Hi,=0A=
>>>>>>> I've been looking at the various opcodes for signal routing (Zak,
>>>>>>> Mixe=
>>>>
>>>> r,=0A=
>>>>>>>
>>>>>>> Signal Flow Graph) but I'm a bit confused about which is best suited
>>>>>>> to=
>>>>
>>>> =0A=
>>>>>>>
>>>>>>> changing the output of an instrument at runtime, or whether either
>>>>>>> of=
>>>>
>>>> =0A=
>>>>>>>
>>>>>>> them=0A=
>>>>>>> is necessary and just use global signal variables.=0A=
>>>>>>> Basically I want to have a bunch of different effect instruments
>>>>>>> runni=
>>>>
>>>> ng=0A=
>>>>>>>
>>>>>>> and=0A=
>>>>>>> in a source instrument, using timeout or metro loop evaluate a
>>>>>>> conditi=
>>>>
>>>> on=0A=
>>>>>>>
>>>>>>> and=0A=
>>>>>>> based on the result route its signal to any combination of effects..=
>>>>
>>>> =0A=
>>>>>>>
>>>>>>> Whats the most straightforward way to achieve this?=0A=
>>>>>>> thanks=0A=
>>>>>>
>>>>>> =0A=
>>>>>> =0A=
>>>>>> Send bugs reports to the Sourceforge bug tracker=0A=
>>>>>> =A0 =A0 =A0 =A0 =A0
>>>>>> =A0https://sourceforge.net/tracker/?group_id=3D81968=
>>>>
>>>> &atid=3D564599=0A=
>>>>>>
>>>>>> Discussions of bugs and features can be posted here=0A=
>>>>>> To unsubscribe, send email sympa@lists.bath.ac.uk with body
>>>>>> "unsubscribe=
>>>>
>>>> =0A=
>>>>>>
>>>>>> csound"=0A=
>>>>>> =0A=
>>>>>
>>>>> =0A=
>>>>> =0A=
>>>>
>>>> =0A=
>>>> =0A=
>>>> Send bugs reports to the Sourceforge bug tracker=0A=
>>>>
>>>>  https://sourceforge.net/tracker/?group_id=3D81968&atid=3D564599=
>>>> =0A=
>>>> Discussions of bugs and features can be posted here=0A=
>>>> To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe
>>>> cs=
>>>> ound"=0A=
>>>> =0A=
>>>
>>>
>>
>>
>> Send bugs reports to the Sourceforge bug tracker
>>           https://sourceforge.net/tracker/?group_id=81968&atid=564599
>> Discussions of bugs and features can be posted here
>> To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe
>> csound"
>>
>
> Dr Victor Lazzarini
> Senior Lecturer
> Dept. of Music
> NUI Maynooth Ireland
> tel.: +353 1 708 3545
> Victor dot Lazzarini AT nuim dot ie
>
>
>
>
>
> Send bugs reports to the Sourceforge bug tracker
>           https://sourceforge.net/tracker/?group_id=81968&atid=564599
> Discussions of bugs and features can be posted here
> To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe
> csound"
>
>


Send bugs reports to the Sourceforge bug tracker
            https://sourceforge.net/tracker/?group_id=81968&atid=564599
Discussions of bugs and features can be posted here
To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe csound"