Re: [Csnd] Lockhart Wavefolder
Date | 2019-05-19 04:46 |
From | Partev Barr Sarkissian |
Subject | Re: [Csnd] Lockhart Wavefolder |
Very good. Been following Mr Bilbao's work for sometime. Met him at AES 2011 convention in Hammersmith, London. Definite comes up with some good stuff, as usual. Very good. Thank you Steven, -PBS ================================== --- stevenyi@GMAIL.COM wrote: From: Steven Yi |
Date | 2019-05-20 23:23 |
From | Steven Yi |
Subject | Re: [Csnd] Lockhart Wavefolder |
Thanks all, hope you enjoy! I'd mention I think the work was primarily by Fabián Esqueda and Henri Pöntynen. (I love Stefan's work though!). The authors also published models for a Serge and Buchla wavefolders that might be interesting to port as well. (Will take a look after some other work, unless someone else goes for it first. :) ) On Sat, May 18, 2019 at 11:46 PM Partev Barr Sarkissian |
Date | 2019-05-21 10:01 |
From | Rory Walsh |
Subject | Re: [Csnd] Lockhart Wavefolder |
Thanks for sharing Steven. I'm curious about using such a high sampling rate, is this really more efficient than oversampling, or just easier to implement? Did you see that in Bitwig's new modular interface, all nodes run at 4x-oversampled? On Mon, 20 May 2019 at 23:23, Steven Yi |
Date | 2019-05-21 14:50 |
From | Oeyvind Brandtsegg |
Subject | Re: [Csnd] Lockhart Wavefolder |
Very nice! and brings up the question of generic approaches to oversampling, that you also mentioned a few years back, Steven. I guess some internal methods would be much better optimised in terms of performance, compared to doing the oversampling in orc code. tir. 21. mai 2019 kl. 11:02 skrev Rory Walsh <rorywalsh@ear.ie>: Thanks for sharing Steven. I'm curious about using such a high Oeyvind Brandtsegg Professor of Music Technology NTNU 7491 Trondheim Norway Cell: +47 92 203 205 http://www.partikkelaudio.com/ http://crossadaptive.hf.ntnu.no http://gdsp.hf.ntnu.no/ http://soundcloud.com/brandtsegg http://flyndresang.no/ http://soundcloud.com/t-emp |
Date | 2019-05-21 16:47 |
From | Steven Yi |
Subject | Re: [Csnd] Lockhart Wavefolder |
That's interesting about the 4x-oversampled nodes, I hadn't been following it. I think the paper mentions 88.2 as 2x oversampling with the antiderivative method as being sufficient compared to 4x and 8x oversampling that might be done otherwise: "To tackle the aliasing caused by the nonlinear nature of wavefolding, the proposed model was extended to incorporate the firstorder antiderivative antialiasing method. When combined with oversampling by factor 2, the antialiased wavefolder model is free from perceivable aliasing while still being suitable for real-time implementation." You might try running it at 44100 and see if the sound quality works for you. I *think* the Max patch demo was running at 44100 (a person more experienced with Max/gen~ could confirm) and sounded okay to me, same with the Csound example at 44100. On Tue, May 21, 2019 at 5:02 AM Rory Walsh |
Date | 2019-05-21 17:05 |
From | Steven Yi |
Subject | Re: [Csnd] Lockhart Wavefolder |
Yes, this was a topic from years ago that I'd love to have. I see that SOUL lang has it built-in, though I haven't tried it. (See https://github.com/soul-lang/SOUL/blob/master/docs/SOUL_Language.md#processor-oversampling-and-undersampling). The syntax is a bit quirky, but it does have the flexibility to run choose interpolation types. It'd be nice to have something either like: opcode test, a,a setoversampling(2, 0, 0) ;; set oversampling to 2x, 0 = Sinc interp in, 0 = Sinc interp out asig xin aout init 0 asig xout endop But that might not be as useful as being able to set oversampling from the calling side of code. Perhaps something like: instr Test asig = vco2(0.1, 440) aout @= [2,0,0] my_filter(asig) ;; oversample by 2x, using sinc interp for input, sinc interp for output aout @[2,0,0]= my_filter(asig) ;; alternative syntax endop With csound inserting code to handle the oversampling processing on the inputs and outputs of the opode call. BTW, the above syntax doesn't look great to me, but just speculating. We'd have to be very careful about syntax so that we don't lose too much flexibility for language design moving forward. On Tue, May 21, 2019 at 9:50 AM Oeyvind Brandtsegg |
Date | 2019-05-21 23:19 |
From | Rory Walsh |
Subject | Re: [Csnd] Lockhart Wavefolder |
JUCE has oversampling modules so it's not really that surprising to see it in SOUL I guess. Did you try https://soul.dev/examples/ yet? On Tue 21 May 2019, 17:06 Steven Yi, <stevenyi@gmail.com> wrote: Yes, this was a topic from years ago that I'd love to have. I see that |
Date | 2019-05-22 07:40 |
From | Oeyvind Brandtsegg |
Subject | Re: [Csnd] Lockhart Wavefolder |
I like the idea of enabling upsampling easily, like you suggest But perhaps the requirement of doing it within an UDO is more inline with the practice of setksmps, which is a similar kind of context change? best Oeyvind ons. 22. mai 2019 kl. 00:19 skrev Rory Walsh <rorywalsh@ear.ie>:
Oeyvind Brandtsegg Professor of Music Technology NTNU 7491 Trondheim Norway Cell: +47 92 203 205 http://www.partikkelaudio.com/ http://crossadaptive.hf.ntnu.no http://gdsp.hf.ntnu.no/ http://soundcloud.com/brandtsegg http://flyndresang.no/ http://soundcloud.com/t-emp |
Date | 2019-05-22 08:24 |
From | Victor Lazzarini |
Subject | Re: [Csnd] Lockhart Wavefolder |
If we can do it in an UDO, we can do it in an instrument too. I suppose we could have a setsr() in similar way to setksmps, with optional parameters to define the resampling. Victor Lazzarini
Dean of Arts, Celtic Studies, and Philosophy
Maynooth University
Ireland
|
Date | 2019-05-22 10:10 |
From | Rory Walsh |
Subject | Re: [Csnd] Lockhart Wavefolder |
Attachments | oversampling.csd |
I think a setsr() for UDOs would be a good way of doing this. Nice and clean. For what it's worth, I had a go a creating a simple waveshaper with 2x-oversampling last year. I'm not sure my implementation is correct so I'm sharing it here for review. I used scipy.signal.remez() to generate the filter coefficients. Let me know if you spot any glaring errors. On Wed, 22 May 2019 at 08:25, Victor Lazzarini <Victor.Lazzarini@mu.ie> wrote:
|