I’ll pop out of hibernation for one longish post…
“Don’t install tons of quarks or third-party plugins” – for the most part, yes – the difference between having 1000 objects that you haven’t learned how to use yet, and having 10,000 objects that you haven’t learned how to use yet, is not especially productive.
One exception, though, is signal routing. I realized early on when I started with SC that I wanted to handle signal routing in DAW terms. So I wrote MixerChannel (ddwMixerChannel quark). As a result, signal routing in my production work is just not a problem. At all.
There are hundreds of ways to use buses and groups for routing, and maybe half a dozen of those are good (I’m tempted to say, even less than that, could be just 1 or 2). The odds of a novice audio programmer improving on DAW routing are slim – there’s a lot of benefit to be gained from standardizing a signal routing methodology, and then continuing to do it that way. (Here, SC documentation would benefit from a signal routing guide.)
That plus a simple parametric EQ GUI (ddwEQ quark) – which doesn’t even show the frequency response graphically, just gives you the controls – got me 95% of the way with mixing in SC.
“Find non-SC production tutorials and translate them to SC” – yes yes yes. Yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes yes.
Here, it might be nice if someone added a Guide doc about standard synthesis formulas.
“Don’t build ambitious software projects in SC” – as advice for beginners, sure. There are bigger questions here about the future of SC, but perhaps not in this thread.
“a rage-filled diatribe about the default Event type” – well… ok… you did say it was opinionated. I’ll be equally opinionated and say that it is very, very nice to be able to think in terms of scale degrees without having to write degreeToKey
everywhere, and to play chords transparently, and to have notes released automatically. For example, rookie mistake with Routines and something that will not happen with the \note
event type:
(
r = Routine {
var synth;
loop {
s.bind { synth = Synth(\default, [freq: exprand(200, 800)]) };
0.3.wait;
s.bind { synth.release };
0.1.wait;
}
}.play
)
r.stop; // 3 in 4 chance of a stuck note now
In my … opinion… then, there’s a bit of throwing out the baby with the bathwater going on here. (For instance, you’re annoyed with SC drone-a-ramas but also discouraging users from looking into a framework that makes it easier, in the long run, to handle rhythm and harmony. Harmony and rhythm are major factors in my SC music and they might not be, if I had been told early on to stay away from patterns and events. They also might not be, if I were using Pd or Max where there’s no built-in support for what SC events do.)
It is fair to say that the documentation doesn’t warn you sufficiently about gotchas and I’m glad to see some ideas here about rectifying that. However, I think we as a community might want to be careful about bandying terms like “disaster” around (not Nathan’s term, in fairness) – it may unwittingly become a counterincentive to future contributions.
hjh