Additive Synth with multislider and oscbank~

guitarguy93's icon

I was hoping someone could help me in creating the basics of an additive synth using the objects listed in the title. I know that this has been done before, and all, but, in the hopes of learning more, I want to make my own. I'll edit this post to include what I have so far, but I can't seem to get it to work.

Another question: When you add a decimal point in front of a number for a math equation, what does the number become? Is it considered a float, int, or what? I've always wondered this, but I've been too scared to ask out of the fear of looking like an idiot. I'm done just "going through the motions" of Max, so to speak. I want to know every possible concept of it, and this seems like a good place to start.

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

EDIT: Here's what I've got:

I'm pretty sure that the way I'm using the multislider is NOT correct, but I couldn't figure out how to do it correctly, obviously. If someone could show me an example of using it in this way, that would be fantastic.

What I'm trying to do is use the multislider to control 16 different harmonic volumes. 1 slider for each sine oscillator. Any help would be MUCH appreciated!

mzed's icon

Your trigger object after the multislider was changing the output from a list to a single float.

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

In max, ints don't have any decimal points and floats do. Max tends towards ints, so you need to be specific if you want a float.

guitarguy93's icon

So, without opening that patch, you're saying that my trigger should be, instead of "t f," "t l?"

Also, the decimal point changes a number from an int to a float? That's what I had been assuming, but I was never quite sure.

Thank you very much!

Edit: Unfortunately, all I'm getting out of this is a single click noise, and then nothing. I don't exactly know what to do next. =S

mzed's icon

"t l" would work, although it wouldn't do anything. (list in, list out). I went with [t b l] to bang the left inlet of [zl lace].

Have you manipulated the multislider? Try sending a message like "77 127" into the unpack object.

guitarguy93's icon

I have copied your patch into an instrument of mine, and it does the same thing. I have manipulated the multislider, and still nothing. Could anyone send me a working patch so that I could compare the two?

mzed's icon

I didn't have your ADSR bpatcher... maybe there's some bogus data coming from there? Also, I'm just testing in Max proper, not M4L.

kleine's icon

You can also take a look at my Bertha, it is essentially additive but doesn't use oscbank~  (i preferred cycle~)

guitarguy93's icon

Thanks for this, but I know how to make one with cycle~. I wanted to use oscbank~, because it, in theory, makes it easier and more tidy to use a high amount of harmonics. While cycle~ may be easier for a small amount of harmonics, it isn't very efficient with a higher amount. I want to use up to 32 harmonics and eventually learn to create something like this: http://www.youtube.com/watch?v=_LkD8mtyvak

Here's a problem I've recently come across when I was trying to replicate your patch with my own twist; When I try to use the "patcher" object, it doesn't seem to be loading anything. I've put in the file name and all the preferences are default, so I would assume that this should work. Unfortunately, it doesn't. I'll probably post a new thread about this, but if someone sees it here first, that's fantastic.

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

Okay, guys. I got this thing to work the way I want except for the fact that I can't make it polyphonic, nor can I morph the partials while playing the synth. Any help? My patch:

EDIT: Fixed the morphing issue. Now, I need help with polyphony.

Peter McCulloch's icon

You need to hook up the output of adsr~ to thispoly~. (thispoly~ is key to voice handling--without it, you have a very expensive monosynth...)

If you also connect the third outlet of adsr~ to thispoly~, you'll get muting. Be sure to provide some default arguments for adsr~. (maybe 5 150. 0.5 200. or something like that)

guitarguy93's icon

That wasn't it. It happened again in a different patch and I think I had to add extra arguments to the "poly~" object that had the synth in it. I'll try it here in a minute and let you know.