Audio signal summation and level meters?
I'm working on a 16 channel 16step pulse sequencer (based on Chris Muir's sample patch). It's working great. But when I add all the channels together, I'm afraid my levels are getting way too hot. Here's how the channels are added together.
I know there must be a better way. I tried the normalize~ object, but I just don't get it. :(
Is there a "best way" to sum up audio signals in MSP?
Also, I can't get a meter working (so I can check my levels before sending it out of the computer). Could someone maybe show me how that's done too?
I've only been using Max a few months, but this forum is great and I'm having fun learning. Thanks for everyone's help here.
-Don
Oops, here's the more complete summation I'm doing.
multiply all of your signals by 1 / # of signals. In your example, multiply by 1/8 or 0.125. Its easiest to just sum all of the signals with one *~ box-
Nick Inhofe schrieb:
> multiply all of your signals by 1 / # of signals. In your example,
> multiply by 1/8 or 0.125. Its easiest to just sum all of the signals
> with one *~ box-
This is a pretty bad advice, as it might be ok for two, but for more it
will create much too low volume. If the signals are not correlated or
syncronized, the likelyhood that all voices will show the maximum level
at the same time is fast going to zero, this theoretical possibilty has
no practical relevance...
Usually each doubling of voices needs a decrease of 3 dB. But I wouldn't
bother at all. It's much easier to just place a volume control before
the dac~s. Let your ear decide...
Internally you just can't clip, it will never... The volume control as
last pass is all you need...
By the way, the patch posted showed a lack of knowledge about the
principle of poly~... I think the help file and the tutorials should be
enough to get an idea what poly~ is about, just take your time and
experiment...
Stefan
--
Stefan Tiedje------------x-------
--_____-----------|--------------
--(_|_ ----|-----|-----()-------
-- _|_)----|-----()--------------
----------()--------www.ccmix.com
Thanks Nick and Stefen.
Nick's method is working well enough for the patch, but I was wondering about what Stefan brought up about it getting quiet.
Thanks for the technical info and advice, Stefan.
I'm still learning Max, still slowly going through tutorials, going off on a tangent for a while, then going back to where I left off in the tutorial, and repeat. So far, the "ah ha!" moments have come when I finally figure out what an object is capable of doing, but I'm still waiting for the "ah ha" for poly~. The instancing and voice allocation is still a bit confusing. But I just started playing around with poly this least week.
At my current rate of an object per week, I should finish learning max some time in the 22nd century. :)
I had a feeling I was using poly incorrectly...now I have to figure it out.
On Mar 2, 2008, at 3:29 PM, Don K wrote:
> I had a feeling I was using poly incorrectly...now I have to figure
> it out.
I have a couple of simple examples of ways to use poly on my examples
page:
http://www.xfade.com/max/examples
Chris Muir
cbm@well.com
Stefan has a good point. I made the post quickly, without thinking about it too much. Obviously, the best method is to just mix with your ears! If you have a lot of different sound sources which aren't necessarily going to be playing at the exact same time, its just a matter of balance.
However, for something like the example I gave where you have multiple oscillators going at the same time, its a good quick fix to just multiply by the reciprocal of the number of oscs you have.
It is better to mix each individually though, and have more control over timbre!
Don K schrieb:
> At my current rate of an object per week, I should finish learning
> max some time in the 22nd century. :)
Don't worry, a steep learning curve is exponential, you will accelerate,
that's a law of nature...
> I had a feeling I was using poly incorrectly...now I have to figure
> it out.
You just have to know, that you need a single poly~ for 25 voices. Only
if you boost the number of voices into the hundreds and thousands, you
will need more, but they have to be on different computers then... ;-)
And as I said before, experimenting is the key to learning. Most
questions can Max answer itself, as soon as you learned how to pose a
question to Max, your learning curve will accelerate faster than
exponential... ;-)
Good luck, you'll have fun...
Stefan
--
Stefan Tiedje------------x-------
--_____-----------|--------------
--(_|_ ----|-----|-----()-------
-- _|_)----|-----()--------------
----------()--------www.ccmix.com
> You just have to know, that you need a single poly~ for 25 voices. Only
> if you boost the number of voices into the hundreds and thousands, you
> will need more,
The limit to one poly~ is 1024.
> but they have to be on different computers then... ;-)
Unless they use little or no cpu, like my beautiful printpol abstraction I just made, that prints voice numbers upon instantiation. :)
_
johan
Quote: Stefan Tiedje wrote on Tue, 04 March 2008 22:54
----------------------------------------------------
>
> And as I said before, experimenting is the key to learning. Most
> questions can Max answer itself, as soon as you learned how to pose a
> question to Max, your learning curve will accelerate faster than
> exponential... ;-)
>
> Good luck, you'll have fun...
I think I understand poly~ a little more. Is it basically an instance of a subpatch that is created when I play a note (or max plays a note), then is deleted from memory when the note finishes? Sort of like the poly~ object tells the computer to use a subpatch (which may or may not made audio, but usually is audio), it does it's thing and poly~ is is a creator and destroyer of subpatch usage? Kinda, sorta...?
I'm finally comfortable enough with Max to start exploring a bit, and yes, it's been loads of fun. I had an aha moment last night about how I should structure more complex patches. I've been making spaghetti til now. :)
Thanks for the encouragement and help to everyone posting in this thread.