How to make a "less-than-1-Hertz" noise signal ?

Alexandre's icon

Hi,

Using 3 lores~ after a noise~, i managed to make a smoothed noise around 3-5 Hertz, to use it to drive a frequency on other objects, and well, with this patch i found weird crackling noises. But it appear that i can't really drive these 3 lores~ to less than 3-5 Hertz... !?
(if i select 1 hertz or less, it doesn't goes down anymore, you can see it in the blue scope~, and in the line scroll, in my patch)

Any idea to filter a noise~ signal to less than 1 hertz ?

(and less cpu expensive methods for my example are welcome too.)

Thank,
Alexandre

Strange noises Patch is in attachment.

Roman Thilenius's icon

i dont know offhand but it might be a problem of lores~.
it is very CPU friendly but not the "best" filter.

sub 1 Hz lowpass is possible with slide~ (when steepness
isnt an issue), with FIR using buffir~ (when phase isnt
an issue) and of course with biquad~ (with 2 poles per
instance, 4 serial biquads give you 48 db).

take care when automating biquad~ at low frequemcies it
can easily explode. best if you build static filters
with fixed frequencies.

for what you do you also might want to average the power
of your modulator signal using average~ and rampsmooth~.

-110

Peter Castine's icon

Lp.frrr~ is a low-frequency noise generator doing what you describe. It's part of the Litter Pro Bundle.

If you're not ready for the Pro Bundle yet, your best bet for building anything like this would be to use event-level (ie, plain-vanilla Max) generators triggered by metro and, for smoothing, use line~ or one of its friends.

As a footnote, what you describe is a little different from your patch. Given the sorts of sounds you're generating, I think you'll appreciate what Litter Power has to offer--both Starter Pack and Pro Bundle. Regarding the Starter Pack, it does actually work on Max 5, but it's happier on Max 4. The Pro Bundle is fully Max 5-savvy.

Alexandre's icon

UHh what the hell is this ?
MY PRESETS in the patch above SOUNDS TOTALLY DIFFERENTLY WHEN I TRY THEM AT 44100 Kz in the DSP (instead of 96000) !!???

(..and they sound ugly in fact, as i made them in 96000 Kz...)

==> How can it be that a little patch with only 3 noise~, 5 lores~ and some *~, sounds totally different at 44100Kz than at 96000Kz ????

Well, i looks like the values sent to a [lores~] doesn't react the same when you are in 96000 or 44100. i tryed to put some [/ 2.177 ] after some numberboxes, and now it sounds closer.. but not the same! (and it's not a question of sound definition, it just sound DIFFERENT) So, in the attached patch (with more presets), i put two "versions", one for 44100, for those of you who don't a 96000Kz sound card. one for 96000. The presets are exactly the same in the two patch. but, still, they sound better in 96000Kz...

> with biquad~ (with 2 poles per instance, 4 serial biquads give you 48 db).
Thanks for your notes and advices, Roman, i didn't took time yet to try all theses object to built my less-than-1-hertz noise, i should try them.

> it might be a problem of lores~
True this lores~ is strange : in my patch, with resonance at 0.999, the moving signal at 4.1 Hz or more, suddenly stop when i put 4 Hz or less...

> Lp.frrr~ is a low-frequency noise generator doing what you describe.

I'm owner of your bundle, and looking at your [Lp.frrr~], it does not more than random+rampsmooth... (plus this way of doing makes lots of parasite frequencys more than 1Hz)
For most of the signal-domain objects that you sell, one can do exactly the same with normal max objects using a combination of two objects, and then i have to tell that i find sometimes a bit annoying to read you selling your objects in every single topic-about-noises~ here.
Sorry, but for your signal-domain objects, you'll still have to show real examples of nice sounds that one cannot make with normal signal-domain max objects but only with your signal-domain objects. Today i find that my little patch shared down here make nicer* usefull** noises than your $50 Bundle.

* mmh, using the 96000Kz-patch at 96000Kz

** for example: to send to a resonators~.

Tj Shredder's icon

I didn't study the patch in detail, but the huge difference in sound is most likely caused by aliasing. You can't filter aliasing after it has occured...
You might need to produce the sound in an upsampled poly~ and pass it afterwards to your normal signal handling...

Stefan

Alexandre's icon

> but the huge difference in sound is most likely caused
> by aliasing. You can't filter aliasing after it has occured

Interesting thought, this looks like a beginning of explanation of the phenomenon..

> I didn't study the patch in detail

The particular part of the patch that looks 2 times faster in 44.1 than in 96, is the result in the scope~, of :

noise~ > lores~ > lores~ > lores~

...with about 5 Hertz on 3 lores objects.

Alexandre's icon

Just to notice :

- I managed to built a 1-Hertz-like noise by simply putting 4 [onepole 1. Hz] after a noise. a big number onepole~ in chain gives higher cut off speed after 1 Hz, but with 4 or 5 onepole~ it sounds ok. for less than one hertz, i looks like i need a bigger quantity (something like 15 onepole~ in chain). (the only thing with onepole~ is then that you don't have a resonance control on it. there must be a way to built something that have it, then more expensive for the cpu.)

- This onepole~ solution seems to sounds the same in 96Khz or 44.1Khz.

- The difference of sound that i had between 96k and 44.1k with lores~ seems to be also in the resonance parameter, not same level for the same result...

Tj Shredder's icon

In theory four onepole~s should be the same as two biquad~s set to lowpass, or simply a cascade~. You can easily set a cascade~ to have a lot of poles...
If the setting is fixed in your patch, you could use a filtergraph~ to find the correct list of filter coefficients and bang them into cascade~ on load...

Stefan

oli larkin's icon

did you try the rand~ object? It generates random signal values at the frequency you choose. Set it to 44100 hz and you get white noise.

oli

Alexandre's icon

> did you try the rand~ object?
Thanks, i looked at it but this object makes also lots of parasite frequencies more than 1Hz...

> In theory four onepole~s should be the same as two biquad~s set to lowpass

Thanks Stefan, interesting..
==> Then, do you know what is the Q for the filtergraph to be equivalent to 2 onepole~ ?

> If the setting is fixed in your patch, you could use a filtergraph~

Not really fixed in fact, so i should better use filtercoeff~.. And was just discovering this filtercoeff~.maxhelp while browsing in your very nice "max overview patch" ! (i was just discovering your patch too.. by the way, you could propose to c74 to put it in the official bundle, it's so simple and essential!)

But hum, as i'm not only planning on 1Hz-noise, but also fast moving noises, there is a strange thing here : i was expecting the filtercoeff+Biquad to react in signal precision.. but it's not! : when you put, with Q=30, a very fast modulation on the filter frequency, after 400 Hz, it's start to get down, and at 750Hz it stabilize... and then look, if i divide my sample rate by my vector size : i get 96000/128 = 750 !!

Which means that the coeffs are really changing only once at each signal vector !!

If you increase the Q, and the vector size in your audio, with audio at 44100Hz, that just sound horrible even with a slow lfo of 10Hz on the filter frequency.

Applying an lfo directly on the biquad, I also found out that it is in fact the biquad~ that listen to its signal inlets only once at each vector, and then smooth the data during the audio vector* ..

So this filtercoeff~ object appears to me to be completely useless, it is more efficient to send a new numerics values at each vector, than to have a other more signal object in your patch. C74 should just have just made a biquad~ that comes directly with the freq/gain/Q stuff.

Hum... in fact, as i use a bandpass, what i am talking about is just the [resonators~ smooth] object from CNMAT, used with just 1 filter. This will do the same for less cpu, i think. the resonators~.maxhelp says that it's 2-pole, but i'm still wondering if it sounds exactly the same than a bandpass biquad~.

===> Does an msp filter on which you can CONTINUOUSLY change the coeffs AT EACH AUDIO SAMPLE, by an other signal, exist somewhere ???

Thanks a lot,

* in fact i just realized that biquad~ is smoothed, while cascade~ is not smoothed !

Alexandre's icon

And i also just noticed that, as lores~ have the same particularity than cascade~ (not smoothed), then my noises patch needs to be not only at 96000Hz but also exactly at 128 samples of signal vector size, for my presets to sound like i made them. if not they sound totally differently and less interesting...
(but preset 23 at 44100Hz and 1024 for signal vector sounds also funny..)

Alexandre's icon

Alexandre wrote on Thu, 30 July 2009 01:55Does an msp filter on which you can CONTINUOUSLY change the coeffs AT EACH AUDIO SAMPLE, by an other signal, exist somewhere ???

hm.. finally i found that this may not be so important for me, i found that, as i don't specially love the sound of ring modulation and fm-like-synthesis, LFO of 20Hz or 25Hz as maximum speed (or noise~ lowpass filtered around 20Hz) will be enough for me. And in fact, the strangeness of some noises in this patch here, is more a consequence of this "vector-limit" than a fast modulation which is in fact introducing randomness on the sound, precisely because of this "vector-limit".

However, i discovered a bug on filtercoeff~/biquad~ which are finally not smoothing the data, i post it here :https://cycling74.com/forums/index.php?t=msg&goto=178549

Alexandre's icon

just reposting the ATTACHED PATCH:

465.noises-try1-for-44100and96000.zip
zip