I am wondering how more experienced SC-users solve this production problem. Imagine I have a synth and am calling a big amount of that synth more or less parallel. Now the overall amplitude is summing up, so I must compensate it when calling the synths. For this I usually calculate the single amplitudes of each synth to be the reciprocal of the number of synths I am generating, so that they sum up to 1 (e.g. for 10 synths, each will have an amplitude of 0.1). This prohibits clips in the final audio, but also the overall sound is less clear and sharp! This is specially the case, if each synth is doing something very fine-tuned and delicate. The fine parts of the single synths are mostly lost in the final summation, and hence the overall character is also less powerful, than the single synths.
How do you go about this issue, how do you handle the overall amplitude of your final mix?
I’m not sure this is an amplitude problem.
Wrt amplitude, 32-bit floats (used internally in scsynth) give you the same dynamic range as 24 bits, just scaleable to larger or smaller magnitudes. It’s more than enough.
I noticed at one point, when listening to dense Bach counterpoint (such as the opening chorus of his Ein Feste Burg cantata, with a 4-part fugue sandwiched in between a 2-part canon on the hymn phrases) that I could closely follow one lead part, one secondary part, and the rest would blur into the background. Attention would shift among the parts but it’s really hard to fully engage with more than two foreground elements at the same time. Then I was reading a sound design book and saw a quote from a Hollywood sound effects guru, to the effect that, at any moment, you can have two foreground elements and the rest is background and I marked the page because it was confirming what I already noticed in music.
The point being, if you have 20 finely detailed synths, they won’t all be foreground. If I were mixing it in fixed media, I’d automate the hell out of the mix, to draw important details forward and de-emphasize other parts at that time… a difficult mix but would make it sing. To do it in real time algorithmically… that would be tough.
Hope that helps? It’s a tricky problem.
hjh
If there are 10 synths that are all variations of each other, it’s quite possible you could be experiencing phasing issues. I obviously don’t know if you are, but whenever I’m losing energy in a mix - phase is one of the first things that comes to mind. It would be difficult to hunt down phase issues in Supercollider honestly. But once you learn to hear it, you can spot it sometimes, and adjust sounds so that they are different enough so to avoid it.
Second culprit for losing energy is lots of low end in sounds that don’t need it. Lows take up a lot of headroom and that could accumulate with many synths. It’s easy to go too far when high passing sounds and you can lose some vibe, but a little bit can make a big difference.
Another thing you could try is just simplifying. Instead of 10 synths, it might be worth trying 1 mono synth and then 2 more panned left and right. I realize you lose the conceptual honeypot of generating 10 synths, but usually simple sounds bigger / more defined
For bringing out detail, maybe try a filter on the panned synths, a little res to bring out the movement. Could be worth dialing in level by ear instead of dividing amplitude by n synths. The panned synths won’t need as much level, and certain notes are probably more resonant than others depending on the synth patch. Our ears are very sensitive to changes in pitch, so sometimes a subtle pitch envelope can help an element jump out momentarily.
@dylan makes a good point - two sinewaves at the same frequency and in-phase added together are twice as loud (+6db) - but two incoherent sounds added together are only 3bd louder (square root of 2) due essentially to phase cancellation. For incoherent sound sources the formula is: N sources added together will be square root of N times louder. So 100 synths that are not in phase and at different pitches will be only 10 times as loud as one.