Csound Csound-dev Csound-tekno Search About

Question regarding new filters

Date2017-04-18 21:36
FromSteven Yi
SubjectQuestion regarding new filters
Hi All,

For those working with Csound from the develop branch, I have pushed
two new filters, zdf_1pole_mode and zdf_2pole_mode, which are filters
that take in a mode argument and output one of several filter types.
This is comparison to the non-mode versions which output multiple
types. The mode versions default to lowpass, but can take in a value
to change their outputs to highpass, allpass, bandpass, notch, etc.
(or just lp, hp, and ap for 1pole right now).

Question: I'm thinking that rather than have the versions that output
multiple outputs (the non-mode versions), to just replace those with
the multimode versions.  I'm not sure when users would want to use the
multi-output versions, and it seems to me that the single-output
version would be more useful as it would work well with function-call
syntax. Perhaps if multiple-output versions are desired, I can make
those the _mode versions or something like that.

Any feedback appreciated!
steven

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here

Date2017-04-18 21:48
FromVictor Lazzarini
SubjectRe: Question regarding new filters
you could use arrays for multi-output?
========================
Prof. Victor Lazzarini
Dean of Arts, Celtic Studies, and Philosophy,
Maynooth University,
Maynooth, Co Kildare, Ireland
Tel: 00 353 7086936
Fax: 00 353 1 7086952 

> On 18 Apr 2017, at 21:36, Steven Yi  wrote:
> 
> Hi All,
> 
> For those working with Csound from the develop branch, I have pushed
> two new filters, zdf_1pole_mode and zdf_2pole_mode, which are filters
> that take in a mode argument and output one of several filter types.
> This is comparison to the non-mode versions which output multiple
> types. The mode versions default to lowpass, but can take in a value
> to change their outputs to highpass, allpass, bandpass, notch, etc.
> (or just lp, hp, and ap for 1pole right now).
> 
> Question: I'm thinking that rather than have the versions that output
> multiple outputs (the non-mode versions), to just replace those with
> the multimode versions.  I'm not sure when users would want to use the
> multi-output versions, and it seems to me that the single-output
> version would be more useful as it would work well with function-call
> syntax. Perhaps if multiple-output versions are desired, I can make
> those the _mode versions or something like that.
> 
> Any feedback appreciated!
> steven
> 
> Csound mailing list
> Csound@listserv.heanet.ie
> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
> Send bugs reports to
>        https://github.com/csound/csound/issues
> Discussions of bugs and features can be posted here

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here

Date2017-04-18 23:18
FromSteven Yi
SubjectRe: Question regarding new filters
I'm not sure how useful that'd be though as I'm not sure how often
anyone would want to use both the lp and hp (1pole) or multiple of the
lp/hp/bp output (2pole) unless they were going to create the derived
signals (allpass, unity gain bandpass, shelf, etc.) that are already
provided in the versions with the mode argument.  Having arrays might
require more processing work than necessary if the use cases I'm
imagining are the main ones people are going to be using them for. On
the other hand, I imagine with opcodes like statevar, it could be
handy to expose multiple signals and let users mix between them like
in an Oberheim SEM. That seems less likely to be used, and would be
addressed by having the _mode versions available that output the
multiple signal types and are the ones one could use in a SEM filter
kind of way.

To illustrate, the proposal would like:

asig = vco2(0.5,440)
asig = zdf_1pole(asig, 2000)   ;; low-pass, 6db/oct
asig = zdf_1pole(asig, 1000, 1)  ;; high-pass

asig = vco2(0.5,440)
asig = zdf_2pole(asig, 2000, 4)  ;; low-pass, Q=4
asig = zdf_2pole(asig, 200, 4, 1) ;; high-pass Q=4

alp, ahp          zdf_1pole_mode asig, 2000
alp, abp, ahp  zdf_2pole_mode asig, 2000, 4

The versions in git are flipped right now where the zdf_1pole has two
outputs, but zdf_1pole_mode has one output and a mode argument.

The _mode might also be interpreted as "this is a multimode filter"
version in the new proposal.

On Tue, Apr 18, 2017 at 4:48 PM, Victor Lazzarini
 wrote:
> you could use arrays for multi-output?
> ========================
> Prof. Victor Lazzarini
> Dean of Arts, Celtic Studies, and Philosophy,
> Maynooth University,
> Maynooth, Co Kildare, Ireland
> Tel: 00 353 7086936
> Fax: 00 353 1 7086952
>
>> On 18 Apr 2017, at 21:36, Steven Yi  wrote:
>>
>> Hi All,
>>
>> For those working with Csound from the develop branch, I have pushed
>> two new filters, zdf_1pole_mode and zdf_2pole_mode, which are filters
>> that take in a mode argument and output one of several filter types.
>> This is comparison to the non-mode versions which output multiple
>> types. The mode versions default to lowpass, but can take in a value
>> to change their outputs to highpass, allpass, bandpass, notch, etc.
>> (or just lp, hp, and ap for 1pole right now).
>>
>> Question: I'm thinking that rather than have the versions that output
>> multiple outputs (the non-mode versions), to just replace those with
>> the multimode versions.  I'm not sure when users would want to use the
>> multi-output versions, and it seems to me that the single-output
>> version would be more useful as it would work well with function-call
>> syntax. Perhaps if multiple-output versions are desired, I can make
>> those the _mode versions or something like that.
>>
>> Any feedback appreciated!
>> steven
>>
>> Csound mailing list
>> Csound@listserv.heanet.ie
>> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
>> Send bugs reports to
>>        https://github.com/csound/csound/issues
>> Discussions of bugs and features can be posted here
>
> Csound mailing list
> Csound@listserv.heanet.ie
> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
> Send bugs reports to
>         https://github.com/csound/csound/issues
> Discussions of bugs and features can be posted here

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here

Date2017-04-18 23:22
FromHlöðver Sigurðsson
SubjectRe: Question regarding new filters
Is computing power a factor here, isn't it quite wasteful to calculate all the different modes if the user chooses only one of them?

2017-04-19 0:18 GMT+02:00 Steven Yi <stevenyi@gmail.com>:
I'm not sure how useful that'd be though as I'm not sure how often
anyone would want to use both the lp and hp (1pole) or multiple of the
lp/hp/bp output (2pole) unless they were going to create the derived
signals (allpass, unity gain bandpass, shelf, etc.) that are already
provided in the versions with the mode argument.  Having arrays might
require more processing work than necessary if the use cases I'm
imagining are the main ones people are going to be using them for. On
the other hand, I imagine with opcodes like statevar, it could be
handy to expose multiple signals and let users mix between them like
in an Oberheim SEM. That seems less likely to be used, and would be
addressed by having the _mode versions available that output the
multiple signal types and are the ones one could use in a SEM filter
kind of way.

To illustrate, the proposal would like:

asig = vco2(0.5,440)
asig = zdf_1pole(asig, 2000)   ;; low-pass, 6db/oct
asig = zdf_1pole(asig, 1000, 1)  ;; high-pass

asig = vco2(0.5,440)
asig = zdf_2pole(asig, 2000, 4)  ;; low-pass, Q=4
asig = zdf_2pole(asig, 200, 4, 1) ;; high-pass Q=4

alp, ahp          zdf_1pole_mode asig, 2000
alp, abp, ahp  zdf_2pole_mode asig, 2000, 4

The versions in git are flipped right now where the zdf_1pole has two
outputs, but zdf_1pole_mode has one output and a mode argument.

The _mode might also be interpreted as "this is a multimode filter"
version in the new proposal.

On Tue, Apr 18, 2017 at 4:48 PM, Victor Lazzarini
<Victor.Lazzarini@nuim.ie> wrote:
> you could use arrays for multi-output?
> ========================
> Prof. Victor Lazzarini
> Dean of Arts, Celtic Studies, and Philosophy,
> Maynooth University,
> Maynooth, Co Kildare, Ireland
> Tel: 00 353 7086936
> Fax: 00 353 1 7086952
>
>> On 18 Apr 2017, at 21:36, Steven Yi <stevenyi@gmail.com> wrote:
>>
>> Hi All,
>>
>> For those working with Csound from the develop branch, I have pushed
>> two new filters, zdf_1pole_mode and zdf_2pole_mode, which are filters
>> that take in a mode argument and output one of several filter types.
>> This is comparison to the non-mode versions which output multiple
>> types. The mode versions default to lowpass, but can take in a value
>> to change their outputs to highpass, allpass, bandpass, notch, etc.
>> (or just lp, hp, and ap for 1pole right now).
>>
>> Question: I'm thinking that rather than have the versions that output
>> multiple outputs (the non-mode versions), to just replace those with
>> the multimode versions.  I'm not sure when users would want to use the
>> multi-output versions, and it seems to me that the single-output
>> version would be more useful as it would work well with function-call
>> syntax. Perhaps if multiple-output versions are desired, I can make
>> those the _mode versions or something like that.
>>
>> Any feedback appreciated!
>> steven
>>
>> Csound mailing list
>> Csound@listserv.heanet.ie
>> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
>> Send bugs reports to
>>        https://github.com/csound/csound/issues
>> Discussions of bugs and features can be posted here
>
> Csound mailing list
> Csound@listserv.heanet.ie
> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
> Send bugs reports to
>         https://github.com/csound/csound/issues
> Discussions of bugs and features can be posted here

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here

Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2017-04-19 00:06
FromSteven Yi
SubjectRe: Question regarding new filters
The code is currently setup to calculate only the operations
necessary, at least for the versions where only one output is used.
For the ones with multiple outputs, yes, the it may be wasteful if you
are using just one of the outputs.

On Tue, Apr 18, 2017 at 6:22 PM, Hlöðver Sigurðsson  wrote:
> Is computing power a factor here, isn't it quite wasteful to calculate all
> the different modes if the user chooses only one of them?
>
> 2017-04-19 0:18 GMT+02:00 Steven Yi :
>>
>> I'm not sure how useful that'd be though as I'm not sure how often
>> anyone would want to use both the lp and hp (1pole) or multiple of the
>> lp/hp/bp output (2pole) unless they were going to create the derived
>> signals (allpass, unity gain bandpass, shelf, etc.) that are already
>> provided in the versions with the mode argument.  Having arrays might
>> require more processing work than necessary if the use cases I'm
>> imagining are the main ones people are going to be using them for. On
>> the other hand, I imagine with opcodes like statevar, it could be
>> handy to expose multiple signals and let users mix between them like
>> in an Oberheim SEM. That seems less likely to be used, and would be
>> addressed by having the _mode versions available that output the
>> multiple signal types and are the ones one could use in a SEM filter
>> kind of way.
>>
>> To illustrate, the proposal would like:
>>
>> asig = vco2(0.5,440)
>> asig = zdf_1pole(asig, 2000)   ;; low-pass, 6db/oct
>> asig = zdf_1pole(asig, 1000, 1)  ;; high-pass
>>
>> asig = vco2(0.5,440)
>> asig = zdf_2pole(asig, 2000, 4)  ;; low-pass, Q=4
>> asig = zdf_2pole(asig, 200, 4, 1) ;; high-pass Q=4
>>
>> alp, ahp          zdf_1pole_mode asig, 2000
>> alp, abp, ahp  zdf_2pole_mode asig, 2000, 4
>>
>> The versions in git are flipped right now where the zdf_1pole has two
>> outputs, but zdf_1pole_mode has one output and a mode argument.
>>
>> The _mode might also be interpreted as "this is a multimode filter"
>> version in the new proposal.
>>
>> On Tue, Apr 18, 2017 at 4:48 PM, Victor Lazzarini
>>  wrote:
>> > you could use arrays for multi-output?
>> > ========================
>> > Prof. Victor Lazzarini
>> > Dean of Arts, Celtic Studies, and Philosophy,
>> > Maynooth University,
>> > Maynooth, Co Kildare, Ireland
>> > Tel: 00 353 7086936
>> > Fax: 00 353 1 7086952
>> >
>> >> On 18 Apr 2017, at 21:36, Steven Yi  wrote:
>> >>
>> >> Hi All,
>> >>
>> >> For those working with Csound from the develop branch, I have pushed
>> >> two new filters, zdf_1pole_mode and zdf_2pole_mode, which are filters
>> >> that take in a mode argument and output one of several filter types.
>> >> This is comparison to the non-mode versions which output multiple
>> >> types. The mode versions default to lowpass, but can take in a value
>> >> to change their outputs to highpass, allpass, bandpass, notch, etc.
>> >> (or just lp, hp, and ap for 1pole right now).
>> >>
>> >> Question: I'm thinking that rather than have the versions that output
>> >> multiple outputs (the non-mode versions), to just replace those with
>> >> the multimode versions.  I'm not sure when users would want to use the
>> >> multi-output versions, and it seems to me that the single-output
>> >> version would be more useful as it would work well with function-call
>> >> syntax. Perhaps if multiple-output versions are desired, I can make
>> >> those the _mode versions or something like that.
>> >>
>> >> Any feedback appreciated!
>> >> steven
>> >>
>> >> Csound mailing list
>> >> Csound@listserv.heanet.ie
>> >> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
>> >> Send bugs reports to
>> >>        https://github.com/csound/csound/issues
>> >> Discussions of bugs and features can be posted here
>> >
>> > Csound mailing list
>> > Csound@listserv.heanet.ie
>> > https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
>> > Send bugs reports to
>> >         https://github.com/csound/csound/issues
>> > Discussions of bugs and features can be posted here
>>
>> Csound mailing list
>> Csound@listserv.heanet.ie
>> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
>> Send bugs reports to
>>         https://github.com/csound/csound/issues
>> Discussions of bugs and features can be posted here
>
>
> Csound mailing list Csound@listserv.heanet.ie
> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to
> https://github.com/csound/csound/issues Discussions of bugs and features can
> be posted here

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here