Procedural Audio: Rain System

soulfulmojo's icon

Hi Guys,

As part of my final masters project I am trying to build a procedural audio weather/storm patch based on the work of Andy Farnell. I have created the first part of the system in the patch below with my own alterations from Andy's work. I'm wondering if any of you have any advice how I might smooth out the sound as it's quite harsh and is actually more like a crackle rather than rain. but I'm still new to max and I'm not sure how to go about it.

I also need to create short blasts of white noise that can randomly retrigger. I'm not 100% about how to get short (m/s long) blasts of sound from noise~, is there a function to switch it on and off periodically in order to achieve this?

Procedural-Wind-and-Rain-System.maxpat
Max Patch
Roman Thilenius's icon

you dont even understand what you want to copy?

soulfulmojo's icon

I'm not attempting to directly copy their work but I have to use academic research as basis for development. The only thing I want to take from Verron is generating individual droplets in 3 categories. All I need to know is the start of the process really which is how I can get a chirped noise impact. I tried using adsr on a noise~ to create blasts of sound a few milliseconds long but it didn't work very well and just wondered if anyone was able to help. Sorry if I didn't word that brilliantly in the beginning. I really am completely new to Max so I'm just a little lost on where to start but have a pretty good idea where to go once I have a sound to work with

woyteg's icon

hm, I must admit I thought something similar as roman. The procedural modeling thing is a huge and sometimes hard topic, and not knowing how to amplitude modulate a signal seems to imply that you don't know what you're doing ;) Anyway, I don't mean to insult you.
You could take a noise~ and multiply it by some signal. An adsr for example, or a filtered impulse(see click~) if it has to be really short. slide~ might be your friend when you create an impulse that has some length and you want to control its attack and release times.
You could also build something in gen~. Or you could use click~, +=~ and delay~ to build a custom small pulse generator with adjustible hold time in the signal domain.