"extract" a time-variant filter curve?
-
sorry for the dumb question but I don't even know what to search for when it comes to this sort of thing
i need some sort of tool that can "subtract" a real audio sample from white noise, invert it, then subtract the inverted version from white noise again to retrieve something similar to the original audio sample
is that a thing or am i dumb?
-
@iamlamprey what's the end goal?
-
Whats the difference here between white noise and silence?
-
end goal: extract residue using Loris, use subtractive synthesis to recreate the residue/noisy part of the signal (and additive to reconstruct the partials)
i need (ideally) an automated way of telling the subtractive synth which frequencies to remove, and when (envelopes etc), i'm currently doing it manually using analysis tools like STFTs, but an impulse response or something would be much easier
estimating a noise-shaping function is something ML is really good for (DDSP), but i'm trying to keep it strictly inside Scriptnode so it would be compatible with Rhapsody etc
by combining the partial reconstruction & residue via shaped noise, you can get pretty damn close to the original signal, plus it opens an insane world of possibilities when you start modifying the values of the synth (127 keyrange, "infinite" round-robins, tiny filesizes etc)
-
welp reading up further: https://intro2ddsp.github.io/filters/fir-optim.html
In the context of synthesis we often wish to produce sounds that change over time, and so we would ideally like to be able to vary the filter response. For example, in Engel et al.’s differentiable harmonic-plus-noise synthesiser [EHGR20], the frequency sampling technique we implemented in the previous section is applied to a time series of frequency responses, which are applied to overlapping segments of incoming white noise signal. These filtered segments are windowed and recombined using overlap-add (OLA) to produce the final signal.
basically multiple convolutions blended together along the length of the audio sample
i figure the easiest approach would be to use their method with Torch, then "snapshot" the largest filter moves (they provide Plot methods) and recreate them loosely in scriptnode
will report back 🧐
-
use subtractive synthesis to recreate the residue/noisy part of the signal
Before you dive into this: I always found that the synthetic recreation of the noisal part is the one thing that gives away physical modeling and other synthesis methods, so I always ended up trying to recreate that part using samples.
You can already "isolate" the noise part with Loris by subtracting the resynthesised, pure tonal part from the original sample - in most cases this works well enough.
-
@Christoph-Hart yeah for sure, i've already got the residue samples as a backup in case it doesn't work out
let's just say in theory the synthesis route can sound close enough, it would then be really easy to build up things like randomization/infinite round robins, as well as expose some of the synth parameters to the end user to adjust the timbre in some arbitrary ways
i'll stick to simpler sounds at first like plucked/percussive versus something like a legato string library for obvious reasons