Csound Csound-dev Csound-tekno Search About

[Csnd] Oversampling to avoid aliasing

Date2020-08-23 12:26
FromOeyvind Brandtsegg
Subject[Csnd] Oversampling to avoid aliasing
Attachmentsoversampling.zip  
Hi

I have made a UDO to do oversampled audio processing by a factor of 2,4 or 8.
I wonder if it could be done more elegantly? The audio process that should be oversampled now resides inside the UDO to do the upsampling and decimation, and because of this I could not find an elegant way of allowing the user to define their own process.
After some discussion with Rory, he suggested defining the audio process as another UDO, and this can be overloaded when we want to replace the oversampled audio process. This is what I currently did. I also made this with an optional k-rate input, so that it is a little bit flexible.

Still, it would be more elegant if we could do something like 
a2 Oversample a1, 8, myOversampledProcess(kparm)
.. on line 98 of my attached csd
This would mean we need to be able to allow a UDO as an argument to a UDO, I think(?)

Anyway, in its current state, perhaps someone finds it useful, even if it is a little bit cumbersome to use.

all best
Oeyvind


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

Date2020-08-23 13:05
FromOeyvind Brandtsegg
SubjectRe: [Csnd] Oversampling to avoid aliasing
Just in case there is anything preventing the zip file from being attached through the mailing list, I put the files here too:
 

søn. 23. aug. 2020 kl. 13:26 skrev Oeyvind Brandtsegg <obrandts@gmail.com>:
Hi

I have made a UDO to do oversampled audio processing by a factor of 2,4 or 8.
I wonder if it could be done more elegantly? The audio process that should be oversampled now resides inside the UDO to do the upsampling and decimation, and because of this I could not find an elegant way of allowing the user to define their own process.
After some discussion with Rory, he suggested defining the audio process as another UDO, and this can be overloaded when we want to replace the oversampled audio process. This is what I currently did. I also made this with an optional k-rate input, so that it is a little bit flexible.

Still, it would be more elegant if we could do something like 
a2 Oversample a1, 8, myOversampledProcess(kparm)
.. on line 98 of my attached csd
This would mean we need to be able to allow a UDO as an argument to a UDO, I think(?)

Anyway, in its current state, perhaps someone finds it useful, even if it is a little bit cumbersome to use.

all best
Oeyvind


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

Date2020-08-23 21:08
FromRory Walsh
SubjectRe: [Csnd] Oversampling to avoid aliasing
Thanks for sharing this Oeyvind. I'm also curious to hear if others have ideas on how to handle custom audio processing within the oversampling process. 

On Sun, 23 Aug 2020 at 13:05, Oeyvind Brandtsegg <obrandts@gmail.com> wrote:
Just in case there is anything preventing the zip file from being attached through the mailing list, I put the files here too:
 

søn. 23. aug. 2020 kl. 13:26 skrev Oeyvind Brandtsegg <obrandts@gmail.com>:
Hi

I have made a UDO to do oversampled audio processing by a factor of 2,4 or 8.
I wonder if it could be done more elegantly? The audio process that should be oversampled now resides inside the UDO to do the upsampling and decimation, and because of this I could not find an elegant way of allowing the user to define their own process.
After some discussion with Rory, he suggested defining the audio process as another UDO, and this can be overloaded when we want to replace the oversampled audio process. This is what I currently did. I also made this with an optional k-rate input, so that it is a little bit flexible.

Still, it would be more elegant if we could do something like 
a2 Oversample a1, 8, myOversampledProcess(kparm)
.. on line 98 of my attached csd
This would mean we need to be able to allow a UDO as an argument to a UDO, I think(?)

Anyway, in its current state, perhaps someone finds it useful, even if it is a little bit cumbersome to use.

all best
Oeyvind


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

Date2020-08-23 22:55
FromVictor Lazzarini
SubjectRe: [Csnd] [EXTERNAL] Re: [Csnd] Oversampling to avoid aliasing
Two thoughts: Steven has been discussing opcode types for 7, which would allow something like this.

But more to the point we can talk about local
SR to allow oversampling to be performed internally in a transparent way, as we do with local ksmps. So the opcode would have a means of upsampling the input, running the code at a higher local rate, then downsampling the output.

Prof. Victor Lazzarini
Maynooth University
Ireland

On 23 Aug 2020, at 21:11, Rory Walsh <rorywalsh@ear.ie> wrote:



*Warning*

This email originated from outside of Maynooth University's Mail System. Do not reply, click links or open attachments unless you recognise the sender and know the content is safe.

Thanks for sharing this Oeyvind. I'm also curious to hear if others have ideas on how to handle custom audio processing within the oversampling process. 

On Sun, 23 Aug 2020 at 13:05, Oeyvind Brandtsegg <obrandts@gmail.com> wrote:
Just in case there is anything preventing the zip file from being attached through the mailing list, I put the files here too:
 

søn. 23. aug. 2020 kl. 13:26 skrev Oeyvind Brandtsegg <obrandts@gmail.com>:
Hi

I have made a UDO to do oversampled audio processing by a factor of 2,4 or 8.
I wonder if it could be done more elegantly? The audio process that should be oversampled now resides inside the UDO to do the upsampling and decimation, and because of this I could not find an elegant way of allowing the user to define their own process.
After some discussion with Rory, he suggested defining the audio process as another UDO, and this can be overloaded when we want to replace the oversampled audio process. This is what I currently did. I also made this with an optional k-rate input, so that it is a little bit flexible.

Still, it would be more elegant if we could do something like 
a2 Oversample a1, 8, myOversampledProcess(kparm)
.. on line 98 of my attached csd
This would mean we need to be able to allow a UDO as an argument to a UDO, I think(?)

Anyway, in its current state, perhaps someone finds it useful, even if it is a little bit cumbersome to use.

all best
Oeyvind


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

Date2020-08-24 07:53
FromRory Walsh
SubjectRe: [Csnd] [EXTERNAL] Re: [Csnd] Oversampling to avoid aliasing
Being able to control local SR would be really great. I'd love to see that down the line.  

On Sun, 23 Aug 2020 at 22:55, Victor Lazzarini <Victor.Lazzarini@mu.ie> wrote:
Two thoughts: Steven has been discussing opcode types for 7, which would allow something like this.

But more to the point we can talk about local
SR to allow oversampling to be performed internally in a transparent way, as we do with local ksmps. So the opcode would have a means of upsampling the input, running the code at a higher local rate, then downsampling the output.

Prof. Victor Lazzarini
Maynooth University
Ireland

On 23 Aug 2020, at 21:11, Rory Walsh <rorywalsh@ear.ie> wrote:



*Warning*

This email originated from outside of Maynooth University's Mail System. Do not reply, click links or open attachments unless you recognise the sender and know the content is safe.

Thanks for sharing this Oeyvind. I'm also curious to hear if others have ideas on how to handle custom audio processing within the oversampling process. 

On Sun, 23 Aug 2020 at 13:05, Oeyvind Brandtsegg <obrandts@gmail.com> wrote:
Just in case there is anything preventing the zip file from being attached through the mailing list, I put the files here too:
 

søn. 23. aug. 2020 kl. 13:26 skrev Oeyvind Brandtsegg <obrandts@gmail.com>:
Hi

I have made a UDO to do oversampled audio processing by a factor of 2,4 or 8.
I wonder if it could be done more elegantly? The audio process that should be oversampled now resides inside the UDO to do the upsampling and decimation, and because of this I could not find an elegant way of allowing the user to define their own process.
After some discussion with Rory, he suggested defining the audio process as another UDO, and this can be overloaded when we want to replace the oversampled audio process. This is what I currently did. I also made this with an optional k-rate input, so that it is a little bit flexible.

Still, it would be more elegant if we could do something like 
a2 Oversample a1, 8, myOversampledProcess(kparm)
.. on line 98 of my attached csd
This would mean we need to be able to allow a UDO as an argument to a UDO, I think(?)

Anyway, in its current state, perhaps someone finds it useful, even if it is a little bit cumbersome to use.

all best
Oeyvind


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