additive synthesis

Eric Sheffield's icon

Hello, all.
I'm trying to imitate the sounds of specific, non-pitched metal objects. The additive synthesis stuff (from MSP tutorial #7) is exactly what I'm using. It works just fine with a LOT of tweaking. The problem for me is getting the analysis process to be a little more user-friendly.
Right now I'm using fiddle~ with lbyl. Obviously, the most fiddle~ will give me in terms of sinusoidal component analysis is 3 outputs. The sounds I'm trying to reproduce work as well as I'd like once there's more like 5 sinusoidal components being used.
Because of the way fiddle~ jumps around, even with lbyl, I'm recording the sound, playing it through fiddle~ a few times, and watching the numbers as they change, keeping note of the unique ranges I see (i.e. 'around' 282hz, 425hz, 1186hz, etc.). These numbers come and go as I watch, so I really am lost as to how I can automatically keep track of them all. Then, even when I get the right freqs, I'd like to get at least close to the unique envelope characteristics of each one. Fiddle~ sort of accomplishes this since it gives you an amplitude with the sinusoidal component output, but as I mentioned, that jumps around and isn't really reliable. What I'd REALLY like is if, once fiddle~ detected a freq, it focused only on that (and two other ones) and gave a reliable amplitude envelope for that specific frequency.
Perhaps I don't know how to effectively use fiddle~. Any suggestions?

vze1mk7d's icon

Hi. I have a patch I made a while ago that I think does exactly what you want. So here it is:

Max Patch
Copy patch and select New From Clipboard in Max.
Eric Sheffield's icon

Wow.
Hello. Sorry for the late reply. This helps immensely.
Especially since it introduced me to pitch~. I don't know why I had never tried it before, but it seems to fit my needs much better than fiddle~.
Thanks!

vze1mk7d's icon

Hey. I didn't realize I used pitch~ in that patch. I have a more complicated version of that patch that uses fiddle~. The right outlet of pitch and fiddle are the same so you could easily just switch the objects.

Eric Sheffield's icon

Hmm. I am confused.
I understand that pitch~ is based on fiddle~ and that the right outputs do the same thing.
However, doesn't fiddle~ only output 3 sinusoidal peaks, while pitch~ does up to 100?
For me, having at least 8 is key.

Eric Sheffield's icon

Whoops. Just double-checked fiddle~ help file. Guess I was wrong.
However, with fiddle~ I was usually lucky if I even got 3 peaks detected. Is pitch~ somehow better at this? When I've run the sounds that I need to synthesize through the pitch~ based patch that you posted, I was getting up to all 10 most of the time. Some were essentially at 0 amplitude, but there were still almost always 8 viable ones. Any ideas?

marius.schebella's icon

I don't know if someone already mentioned, there is also an external
called analyzer~ that can be useful. but if you are using pitch~
already, then I think I am telling you nothing new...
cheers,
marius.

Eric Sheffield wrote:
> Whoops. Just double-checked fiddle~ help file. Guess I was wrong.
> However, with fiddle~ I was usually lucky if I even got 3 peaks detected. Is pitch~ somehow better at this? When I've run the sounds that I need to synthesize through the pitch~ based patch that you posted, I was getting up to all 10 most of the time. Some were essentially at 0 amplitude, but there were still almost always 8 viable ones. Any ideas?
>

Eric Sheffield's icon

Yeah. I saw analyzer~, but I'm not totally sure what all that other stuff does! It may come in handy for me, but at this point I feel pretty good about what I'm getting for pitch information.
Now I need to deal with capturing the envelope of the percussive sounds. Many people on the forums have suggested ways to follow envelopes, but I'm still not sure how to capture the envelope and use it for resynthesis. Table and capture have sort of worked. I've even tried feeding the numbers into function with a counter to provide X coordinates every 100 ms or so. I like this because then I can tweak function after the initial analysis, but all of these things have been quite cumbersome.
Any suggestions in this area? In a pinch, I've just used the amplitude straight from the samples themselves (through abs~ and slide~) and triggered the samples to open the envelope for synthesis, but this is kind of cheating. After the initial analysis, I'd really like all of the sounds created to be purely synthesized.

riccardo dapelo's icon

Sorry,
fiddle~ outputs as many components as you specify in the third argument

here is a very rough example:

Max Patch
Copy patch and select New From Clipboard in Max.

>
> Hmm. I am confused.
> I understand that pitch~ is based on fiddle~ and that the right
> outputs do the same thing.
> However, doesn't fiddle~ only output 3 sinusoidal peaks, while
> pitch~ does up to 100?
> For me, having at least 8 is key.
>