hi, I know about the oversampling + filtering technique, which you can patch it, but what are other techniques for creating band limited signals you people know (not only those you could do it as a pd patch)? Yes, I'm thinking about oscillators mostly.
thanks
I can think of at least two:
Gesendet: Dienstag, 24. November 2015 um 02:30 Uhr Von: "Alexandre Torres Porres" porres@gmail.com An: "pd-list@lists.iem.at" pd-list@lists.iem.at Betreff: [PD] band limited (anti-alias) techniques
hi, I know about the oversampling + filtering technique, which you can patch it, but what are other techniques for creating band limited signals you people know (not only those you could do it as a pd patch)? Yes, I'm thinking about oscillators mostly. thanks_______________________________________________ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
There's also the band-limited pulse wave (Dirichlet kernel oscillator), like gbuzz in csound. See attached.
On Mon, Nov 23, 2015 at 9:07 PM, Christof Ressi christof.ressi@gmx.at wrote:
I can think of at least two:
- wavetables filled with sinesum/cosinesum (possibly blending between
different wavetables according to frequency --> many partials for low pitches, few partials for high pitches) 2) transition tables (check out 3.audio.examples/J09.bandlimited)
Gesendet: Dienstag, 24. November 2015 um 02:30 Uhr Von: "Alexandre Torres Porres" porres@gmail.com An: "pd-list@lists.iem.at" pd-list@lists.iem.at Betreff: [PD] band limited (anti-alias) techniques
hi, I know about the oversampling + filtering technique, which you can patch it, but what are other techniques for creating band limited signals you people know (not only those you could do it as a pd patch)? Yes, I'm thinking about oscillators mostly.
thanks_______________________________________________ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Välimäki and Houvilainen have published a number of articles about something called 'differentiated parabolic waveforms'. Basically, you square a digital sawtooth and put it through a one-zero differentiating filter (y(n) = x(n) - x(n-1)). What you get out is a slightly rounder (less aliasing) sawtooth. I've never actually tried this, but it looks pretty interesting and could easily be patched. Super simple.
The CMJ paper explains it in full detail. You might need a University-style subscription to get the actual PDF: http://www.mitpressjournals.org/doi/pdf/10.1162/comj.2006.30.2.19 but the reference is: Välimäki, Vesa, and Antti Huovilainen. "Oscillator and filter algorithms for virtual analog synthesis." /Computer Music Journal/ 30.2 (2006): 19-31.
On 11/23/2015 6:07 PM, Christof Ressi wrote:
I can think of at least two:
- wavetables filled with sinesum/cosinesum (possibly blending between different wavetables according to frequency --> many partials for low pitches, few partials for high pitches)
- transition tables (check out 3.audio.examples/J09.bandlimited)
Gesendet: Dienstag, 24. November 2015 um 02:30 Uhr Von: "Alexandre Torres Porres" porres@gmail.com An: "pd-list@lists.iem.at" pd-list@lists.iem.at Betreff: [PD] band limited (anti-alias) techniques
hi, I know about the oversampling + filtering technique, which you can patch it, but what are other techniques for creating band limited signals you people know (not only those you could do it as a pd patch)? Yes, I'm thinking about oscillators mostly.
thanks_______________________________________________ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Le 24/11/2015 18:21, David Medine a écrit :
Välimäki and Houvilainen have published a number of articles about something called 'differentiated parabolic waveforms'. Basically, you square a digital sawtooth and put it through a one-zero differentiating filter (y(n) = x(n) - x(n-1)). What you get out is a slightly rounder (less aliasing) sawtooth. I've never actually tried this, but it looks pretty interesting and could easily be patched. Super simple.
The CMJ paper explains it in full detail. You might need a University-style subscription to get the actual PDF: http://www.mitpressjournals.org/doi/pdf/10.1162/comj.2006.30.2.19 but the reference is: Välimäki, Vesa, and Antti Huovilainen. "Oscillator and filter algorithms for virtual analog synthesis." /Computer Music Journal/ 30.2 (2006): 19-31.
if someone have access to this paper, i would love to have a copy. cheers c
On 11/23/2015 6:07 PM, Christof Ressi wrote:
I can think of at least two:
- wavetables filled with sinesum/cosinesum (possibly blending between different wavetables according to frequency --> many partials for low pitches, few partials for high pitches)
- transition tables (check out 3.audio.examples/J09.bandlimited)
Gesendet: Dienstag, 24. November 2015 um 02:30 Uhr Von: "Alexandre Torres Porres"porres@gmail.com An:"pd-list@lists.iem.at" pd-list@lists.iem.at Betreff: [PD] band limited (anti-alias) techniques
hi, I know about the oversampling + filtering technique, which you can patch it, but what are other techniques for creating band limited signals you people know (not only those you could do it as a pd patch)? Yes, I'm thinking about oscillators mostly.
thanks_______________________________________________Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management ->http://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management ->http://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
there are nice saw~ and square~ in nusmuk-audio. cheers c
Le 24/11/2015 02:30, Alexandre Torres Porres a écrit :
hi, I know about the oversampling + filtering technique, which you can patch it, but what are other techniques for creating band limited signals you people know (not only those you could do it as a pd patch)? Yes, I'm thinking about oscillators mostly.
thanks
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
there are nice saw~ and square~ in nusmuk-audio.
can't find it, is it on extended?
2015-11-24 6:20 GMT-02:00 cyrille henry ch@chnry.net:
there are nice saw~ and square~ in nusmuk-audio. cheers c
Le 24/11/2015 02:30, Alexandre Torres Porres a écrit :
hi, I know about the oversampling + filtering technique, which you can patch it, but what are other techniques for creating band limited signals you people know (not only those you could do it as a pd patch)? Yes, I'm thinking about oscillators mostly.
thanks
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Cool, I assumed there'd be many techniques out there.
Do any of you know the advantages and disadvantages between "*oversampling
cheers
2015-11-24 12:53 GMT-02:00 Alexandre Torres Porres porres@gmail.com:
there are nice saw~ and square~ in nusmuk-audio.
can't find it, is it on extended?
2015-11-24 6:20 GMT-02:00 cyrille henry ch@chnry.net:
there are nice saw~ and square~ in nusmuk-audio. cheers c
Le 24/11/2015 02:30, Alexandre Torres Porres a écrit :
hi, I know about the oversampling + filtering technique, which you can patch it, but what are other techniques for creating band limited signals you people know (not only those you could do it as a pd patch)? Yes, I'm thinking about oscillators mostly.
thanks
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Hi,
On Tue, Nov 24, 2015 at 01:01:00PM -0200, Alexandre Torres Porres wrote:
Do any of you know the advantages and disadvantages between "*oversampling
- filtering*" and the other techniques?
A big difference is CPU load: the bandlimited oscillators in the rj-library aimed at mobile devices of some years ago use the transition splicing technique because it's one of the fastest. It only needs a simple table lookup in addition to the phasor~ etc. that are running anyway. We even replaced the tabread4~ with tabread~ to save even more CPU.
Frank Barknecht _ ______footils.org__
yes, this can be very efficient when the table is pre computed. using 32 bits int and a 8K sample table, I recently implement a BL saw~ in an arduino due with surprisingly fast and good result.
cheers c
Le 24/11/2015 16:12, Frank Barknecht a écrit :
Hi,
On Tue, Nov 24, 2015 at 01:01:00PM -0200, Alexandre Torres Porres wrote:
Do any of you know the advantages and disadvantages between "*oversampling
- filtering*" and the other techniques?
A big difference is CPU load: the bandlimited oscillators in the rj-library aimed at mobile devices of some years ago use the transition splicing technique because it's one of the fastest. It only needs a simple table lookup in addition to the phasor~ etc. that are running anyway. We even replaced the tabread4~ with tabread~ to save even more CPU.
Ciao
cool, I just miss a few bandlimited oscillators in Pd, I'm doing them as patches/abstractions, but I think the best way to go would be to code an external, hopefully it ain't be too tricky and hard, but over my head one way or another :P
2015-11-24 13:22 GMT-02:00 cyrille henry ch@chnry.net:
yes, this can be very efficient when the table is pre computed. using 32 bits int and a 8K sample table, I recently implement a BL saw~ in an arduino due with surprisingly fast and good result.
cheers c
Le 24/11/2015 16:12, Frank Barknecht a écrit :
Hi,
On Tue, Nov 24, 2015 at 01:01:00PM -0200, Alexandre Torres Porres wrote:
Do any of you know the advantages and disadvantages between "*oversampling
- filtering*" and the other techniques?
A big difference is CPU load: the bandlimited oscillators in the rj-library aimed at mobile devices of some years ago use the transition splicing technique because it's one of the fastest. It only needs a simple table lookup in addition to the phasor~ etc. that are running anyway. We even replaced the tabread4~ with tabread~ to save even more CPU.
Ciao
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Le 24/11/2015 16:25, Alexandre Torres Porres a écrit :
cool, I just miss a few bandlimited oscillators in Pd, I'm doing them as patches/abstractions, but I think the best way to go would be to code an external,
i think there is no need for externals. there are at least 3 different implementations in pd vanilla that are fast and good. (mine in nusmuk audio, the one in rjdj, and a 3d one made by Roman Heafeli that i don't know where to find)
cheers c
hopefully it ain't be too tricky and hard, but over my head one way or another :P
2015-11-24 13:22 GMT-02:00 cyrille henry <ch@chnry.net mailto:ch@chnry.net>:
yes, this can be very efficient when the table is pre computed. using 32 bits int and a 8K sample table, I recently implement a BL saw~ in an arduino due with surprisingly fast and good result. cheers c Le 24/11/2015 16:12, Frank Barknecht a écrit : Hi, On Tue, Nov 24, 2015 at 01:01:00PM -0200, Alexandre Torres Porres wrote: Do any of you know the advantages and disadvantages between "*oversampling + filtering*" and the other techniques? A big difference is CPU load: the bandlimited oscillators in the rj-library aimed at mobile devices of some years ago use the transition splicing technique because it's one of the fastest. It only needs a simple table lookup in addition to the phasor~ etc. that are running anyway. We even replaced the tabread4~ with tabread~ to save even more CPU. Ciao _______________________________________________ Pd-list@lists.iem.at <mailto:Pd-list@lists.iem.at> mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
On Tue, 2015-11-24 at 16:44 +0100, cyrille henry wrote:
Le 24/11/2015 16:25, Alexandre Torres Porres a écrit :
cool, I just miss a few bandlimited oscillators in Pd, I'm doing them as patches/abstractions, but I think the best way to go would be to code an external,
i think there is no need for externals. there are at least 3 different implementations in pd vanilla that are fast and good. (mine in nusmuk audio, the one in rjdj, and a 3d one made by Roman Heafeli that i don't know where to find)
Mine is here: https://github.com/reduzent/pd-bloscabs
It has [blsaw~], [blsquare~] and [bltriangle~]. It pre-calculates look-up tables and switches table on the fly depending on frequency.
Roman
I didn't think about other solutions in a patch besides *oversampling + filtering* and I considered it too expensive and not perfect. I assumed most of the techniques for bandlimiting wouldn't be possible as patches and/or would be inefficient.
But you (all) tell me :)
2015-11-24 14:20 GMT-02:00 IOhannes m zmoelnig zmoelnig@iem.at:
On 2015-11-24 16:25, Alexandre Torres Porres wrote:
but I think the best way to go would be to code an external,
why?
fgamsdr IOhannes
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
As it so often does, I think it comes down to what you hope to be able to do with them. I wouldn't expect to be able to run 100 instances of my [gbuzz~] abstraction (save me, gbuzz!), and it certainly would be more efficient as part of an external. But handling efficiency/performance tradeoffs is just part of Pd patching, especially with respect to synthesis. What's your use case?
On Tue, Nov 24, 2015 at 11:46 AM, Alexandre Torres Porres porres@gmail.com wrote:
I didn't think about other solutions in a patch besides *oversampling + filtering* and I considered it too expensive and not perfect. I assumed most of the techniques for bandlimiting wouldn't be possible as patches and/or would be inefficient.
But you (all) tell me :)
2015-11-24 14:20 GMT-02:00 IOhannes m zmoelnig zmoelnig@iem.at:
On 2015-11-24 16:25, Alexandre Torres Porres wrote:
but I think the best way to go would be to code an external,
why?
fgamsdr IOhannes
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
I have an external for an anti-aliasing table reader (tabread4a~), which is almost certainly more efficient than upsampling+filtering, works on any table, and doesn't require analysis/synthesis. It's computing cost scales linearly with increases in playback speed faster than simple playback. It scales all the way up to Nyquist where the signal just quietly vanishes (although at substantial cpu load. For a 256 point table, it's equivalent to the cost of running 128 tabread4~ readers when scaled up to the Nyquist freq).
It needs some updating, was never written optimally, and I never was satisfied with the method of numerical differentiation used to compute playback speed from the index array.
Anyway... the point of which is generality (yay math)--the method is not comparably great for oscillators that you already know in advance.
On Tue, Nov 24, 2015 at 10:46 AM, Alexandre Torres Porres porres@gmail.com wrote:
I didn't think about other solutions in a patch besides oversampling + filtering and I considered it too expensive and not perfect. I assumed most of the techniques for bandlimiting wouldn't be possible as patches and/or would be inefficient.
But you (all) tell me :)
Le 24/11/2015 16:01, Alexandre Torres Porres a écrit :
Cool, I assumed there'd be many techniques out there.
Do any of you know the advantages and disadvantages between "/oversampling + filtering/" and the other techniques?
adventage : -easy to implement -any waveform can be bandlimited (including sample).
disadvantage : -can be very slow. for a classic saw by example, there is an infinity of harmonic, of amplitude decreasing by 6dB/Octave. if you have a perfect filter and wish 60dB S/N ration (that is not a lot), you need 10 octave between the oscillator frequency and (oversample samplerate)/2. i.e : oversample by 512, for a 10Khz saw at SR 44100Hz.
cheers c
cheers
2015-11-24 12:53 GMT-02:00 Alexandre Torres Porres <porres@gmail.com mailto:porres@gmail.com>:
>there are nice saw~ and square~ in nusmuk-audio. can't find it, is it on extended? 2015-11-24 6:20 GMT-02:00 cyrille henry <ch@chnry.net <mailto:ch@chnry.net>>: there are nice saw~ and square~ in nusmuk-audio. cheers c Le 24/11/2015 02:30, Alexandre Torres Porres a écrit : hi, I know about the oversampling + filtering technique, which you can patch it, but what are other techniques for creating band limited signals you people know (not only those you could do it as a pd patch)? Yes, I'm thinking about oscillators mostly. thanks _______________________________________________ Pd-list@lists.iem.at <mailto:Pd-list@lists.iem.at> mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list _______________________________________________ Pd-list@lists.iem.at <mailto:Pd-list@lists.iem.at> mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
On 24/11/2015 16:01, Alexandre Torres Porres wrote:
Cool, I assumed there'd be many techniques out there.
Do any of you know the advantages and disadvantages between "/oversampling + filtering/" and the other techniques?
Apart from the explanations already provided, I also think (as usual) that it depends on the use case... Lots of bandlimiting examples assume one wants to do a 20Hz to 20kHz 'smooth' sweep - which might not always be the case (I'm not sure how common that is with saw, square etc. (I guess pure sine has more applications for that)). For a saw-sounding synth sound one could just use a wavetable with some filters, etc.
There are even some people who might use aliasing and its sound characteristics as a 'feature' for its distinctive 'harsh' timbre :-)
Lorenzo.
Le 24/11/2015 15:53, Alexandre Torres Porres a écrit :
there are nice saw~ and square~ in nusmuk-audio.
can't find it, is it on extended?
look like it's not if you can't find it. Iohannes recentlly put it on deken, but maybe only for debian.
source are on pd svn. release are here :
http://www.chnry.net/ch/?091-nusmuk-audio&lang=en (you don't need any binary for saw~ and square~ since they are vanilla.)
cheers c
2015-11-24 6:20 GMT-02:00 cyrille henry <ch@chnry.net mailto:ch@chnry.net>:
there are nice saw~ and square~ in nusmuk-audio. cheers c Le 24/11/2015 02:30, Alexandre Torres Porres a écrit : hi, I know about the oversampling + filtering technique, which you can patch it, but what are other techniques for creating band limited signals you people know (not only those you could do it as a pd patch)? Yes, I'm thinking about oscillators mostly. thanks _______________________________________________ Pd-list@lists.iem.at <mailto:Pd-list@lists.iem.at> mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list _______________________________________________ Pd-list@lists.iem.at <mailto:Pd-list@lists.iem.at> mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
On 24/11/2015 02:30, Alexandre Torres Porres wrote:
hi, I know about the oversampling + filtering technique, which you can patch it, but what are other techniques for creating band limited signals you people know (not only those you could do it as a pd patch)? Yes, I'm thinking about oscillators mostly.
Hi,
There are some bandlimited signal generation techniques. The most famous are
https://ccrma.stanford.edu/~stilti/papers/blit.pdf). The idea is that you generate a bandlimited impulse train at a give frequency and then you create the classic waveforms by means of integration
http://www.cs.cmu.edu/~eli/papers/icmc01-hardsync.pdf). The concept is the same but it use bandlimited step function. It also provide a means for hard synch between generators/oscillators (actually I think it was conceived fot that reason).
Cheers
a.
thanks
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
On 24/11/2015 02:30, Alexandre Torres Porres wrote:
hi, I know about the oversampling + filtering technique, which you can patch it, but what are other techniques for creating band limited signals you people know (not only those you could do it as a pd patch)? Yes, I'm thinking about oscillators mostly.
Maybe have a look here too..
http://musicdsp.org/archive.php?classid=1#90
Lorenzo.