smoothing and scaling RMS data
Hello, I'm wanting to capture the amplitude envelope from a live source and generate feedback loops... I'm starting by obtaining RMS values, as per the examples on the home site: https://chuck.cs.princeton.edu/doc/examples/analysis/features/rms.ck First, does anyone have a preferred way of filtering the data that effectively captures transients and smoothes the decay? Second, is there a way to scale the range of this smoothed data - that is, map it onto a defined range to use as a parametric control for another UGen? While I'm at it, does ChucK have a filter for DC leak? I'm new to ChucK and am used to work, so I appreciate any help (and patience).
Hi Andrew, It seems to me you need an envelope follower. You can find more info about a possible implementation here: https://www.bbc.co.uk/rd/publications/rdreport_1983_17 It's about dynamic range control (compressor, expander, limiter, gate), and all of them use an envelope follower. In alternative, you could start from here as well: https://chuck.cs.princeton.edu/doc/examples/deep/follower.ck Cheers, Mario On Tue, 25 Feb 2020 at 02:38, Andrew Telichan Phillips < a.telichanphillips@gmail.com> wrote:
Hello,
I'm wanting to capture the amplitude envelope from a live source and generate feedback loops... I'm starting by obtaining RMS values, as per the examples on the home site: https://chuck.cs.princeton.edu/doc/examples/analysis/features/rms.ck
First, does anyone have a preferred way of filtering the data that effectively captures transients and smoothes the decay?
Second, is there a way to scale the range of this smoothed data - that is, map it onto a defined range to use as a parametric control for another UGen?
While I'm at it, does ChucK have a filter for DC leak?
I'm new to ChucK and am used to work, so I appreciate any help (and patience). _______________________________________________ chuck-users mailing list chuck-users@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
Thanks Mario - I appreciate the guidance!
Uff... I see I left a clause dangling in my last sentence there! Oops!
Anyhow, since I posted, I happened to come across the idea of using a one
pole filter to smooth the signal and was able to implement something... and
then later refine the implementation with the help of colleagues who have
more DSP knowledge than I do.
I've got something working fairly well, but will certainly see what this
paper has to offer... I'm sure there's plenty of room for improvement.
сб, 29 февр. 2020 г. в 19:30, Mario Buoninfante : Hi Andrew, It seems to me you need an envelope follower.
You can find more info about a possible implementation here:
https://www.bbc.co.uk/rd/publications/rdreport_1983_17 It's about dynamic range control (compressor, expander, limiter, gate),
and all of them use an envelope follower.
In alternative, you could start from here as well:
https://chuck.cs.princeton.edu/doc/examples/deep/follower.ck Cheers,
Mario On Tue, 25 Feb 2020 at 02:38, Andrew Telichan Phillips <
a.telichanphillips@gmail.com> wrote: Hello, I'm wanting to capture the amplitude envelope from a live source and
generate feedback loops... I'm starting by obtaining RMS values, as per the
examples on the home site:
https://chuck.cs.princeton.edu/doc/examples/analysis/features/rms.ck First, does anyone have a preferred way of filtering the data that
effectively captures transients and smoothes the decay? Second, is there a way to scale the range of this smoothed data - that
is, map it onto a defined range to use as a parametric control for another
UGen? While I'm at it, does ChucK have a filter for DC leak? I'm new to ChucK and am used to work, so I appreciate any help (and
patience).
_______________________________________________
chuck-users mailing list
chuck-users@lists.cs.princeton.edu
https://lists.cs.princeton.edu/mailman/listinfo/chuck-users _______________________________________________
chuck-users mailing list
chuck-users@lists.cs.princeton.edu
https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
participants (2)
-
Andrew Telichan Phillips
-
Mario Buoninfante