This isn’t specifically a question about SC, so no code is included, though if you find it helpful to look at some, please let me know, I’ll upload! More of a technical, theoretical, or process-based question, below I’ll be asking about how to/how you go about linking parameters and values in meaningful ways, about how to allow certain parameters to have ‘influence’ in deriving values for others, and generally how to go about researching this, and learning these techniques. It’s something at a cross between aesthetic and practical decision making, and a technical knowledge of math.
There was that thread on here recently about how important math skills are when it comes to making musical things (in SC), and I feel like my lack of knowledge of math beyond simple algebra is what’s impeding me here. (If you disagree, and think it’s something other, I’d like to hear that too!)
My typical process is to bypass this issue and break out every parameter, and whatever, deal with it in a case by case, or moment by moment basis, but I don’t want to do that anymore as eventually none of those parameters get tweaked, and all transformative aspects of sound manipulation tend to get pushed further down the chain, additively… adding elements for nuance. It becomes unwieldy though, and not to mention computationally expensive. So I’m thinking about how to minimize the amount of controls for dialing in different timbres, achieving different timbre transformations, or generally some sort of musical expression, while under the hood coupling, correlating, etc parameters.
For example, I’m working on a coding up a SynthDef - more a synth than a synth-patch - that’s intended to be a bass drum synthesizer. Its comprised of two parallel signal chains that are eventually mixed down. One chain is intended for the low-end oomph and the other for the clicky and noisy part of the timbre. Each chain has its own envelope, and I’d like to have the release times as controls. Instead of independent amplitude argument for each chain, I’m thinking of having a balance control that lets you tweak the ratio between them.
Due to the way I’ve got the chains currently coded as well as perception of loudness of different frequency ranges, when I increase the release time on the clicky/noisy chain it becomes quantitatively and qualitatively louder. So to compensate, I want to bring up the oomph chain a bit, and generally lower the volume of the mixed signals just before output. I suppose I’m sort of trying to make an auto-gain controller, or some sort of compressor, but instead of just sticking a compressor pattern toward the end of the SynthDef, I’m specifically interested in creating this behavior through some sort of what I hope to be (semi-) elegant math. The balance control also should have a nuanced effect at different release times to further compensate for the volume.
I feel that my lack of formal math knowledge is making it far more difficult to deal with these perceptual aspects and aesthetic choices.
So… I know that I don’t know calculus, too much about functions, etc. This I’m not too concerned with cause there are lots of resources out there for finding these, and explanations to them…
What I don’t know that I don’t know - and the reason I never clicked with math in school - is practical application of things, the whys, meaning I don’t know or have context for creative reapplication, or obvious choices of functions or equations.
I understand that this is a rather abstract question… what are some good resources that you’ve found for either learning this applied form of math, ideally in a musical context, or generally what’s your process for correlating and linking together parameters like this?
I’ve got a computer science intro to algorithms book coming that’s supposed to be a very practical take on explanations, but generally… I feel that there’s just something I’m missing here.
Up til now, I’ve been using brute stupidity and creating formulas of more and more complexity (read longer and inefficient) to make the numbers move in the direction and (toward more than at) the rate that I want them to.
For instance, when relNoise
increases, I also want to increase ampBass
, but not linearly. Thus far I keep tacking on extra parenthesised blocks which grows the formula longer and longer, makes it far more difficult to read, and for all that still doesn’t do exactly what I want it to. And then I look at the math equation for linear to exponential mapping, and it’s far more powerful, a fraction of the size of what I’ve got, etc, etc. Unfortunately I need a different type of curve, it seems.
And/or, it’s a different type of problem. Perhaps I’m compensating in the wrong parts of the signal chain, or should be compensating in multiple places.
Sorry for the long post here! Any insights, personal rules of thumb, resources, links to this is typically solved via x-formula, anything is greatly appreciated! Currently this is a SynthDef that I’m working on, but it’s actually very important to my compositional process as I’m thinking about similar things for the higher level process too.
Boris