No specific use-case, just interested to hear what’s used regularly.
I’ve only ever used the core library as I’m pretty conservative about installing stuff on my system. Also I tend to route midi/audio to my DAW and use plugins for compression/eq/send effects.
But I’ve set a personal challenge of no DAW / VST / Hardware for the month as a way to force myself to dig deeper into SC.
Keen to hear what’s already out there before entering genius mode and making a buggy version of something that already exists.
As an aside to this question, are there any core library uGens you tend to avoid?
It’s my own quark, but I’d say: ddwMixerChannel. If I had to handle signal routing from scratch on every project, I might have quit SuperCollider by now.
Thanks @jamshark70. Sounds great, I’ll be checking that out as it was one of my primary issues to sort along with an efficient way to setup and manage control buses.
I find wslib really useful - especially SimpleMIDIFile for dealing with MIDI files, various String extensions, and ScaledUserView.
One issue is that the help files are in html, which used to be the SC help file format in the past. Nevertheless you can easily open them in a web browser.
I also use wslib a lot. Probably more often than i’m aware of. Right now i solved a string formatting issue with the replaceAt extension for example and realized it’s part of wslib. Many of these extensions should be part of the stock SC library in my opinion. Like SimpleMIDIFile.
Another important Quark for my workflow is Ambisonics Toolkit that i use quite frequently, waiting eagerly for higher-order support.
Thanks @TXMod & @emp. I’ve had a quick look at both and looks like a lot of utility there.
I’ve never looked into the subject of ambisonics, but the docs for the quark look fantastic. Thanks.
ScTimeline to start/stop patterns over time (https://github.com/shimpe/sc-timeline). Also includes a plot method for a simple visualization of the timeline.
The next ones are more or less abandoned at the moment, but may become active again in the future:
TemporalDict (https://github.com/shimpe/temporaldict) to track evolution of key-value pairs over time and easily go back to the previous state at a certain time (I seem to remember it was in a working state)
Sfz (https://github.com/shimpe/sfz) the beginnings of an sfz sound font reader (I remember it could play notes already and supported microtonality but there was quite some work left - I also remember being surprised at the number of different ways an sfz soundfont can be organized and the large number of syntax differences between individual fonts which makes parsing the fonts painful)
oh wow! Thanks @Sam_Pluta . I wish I knew of this sooner. In SuperCollider, my ‘creative’ synthesis techniques are sometimes super-dangerous.
my current SuperCollider to Cubase template has all faders at -6 with a safety limiter on the master, but something on the SC side is still absolutely essential imo.
I originally learned SC in CTK-centric way, and today I’m still using CTK in most projects. I also tend to use ProcMod from JoshMisc as a wrapper for Task to easily control musical sections.
I use Ambisonics in most pieces, ATK is great.
wslib, MathLib - useful for various little things (and MIDI file support)
NetLib - I think I only ever use NetAddr.myIP
As for “dependencies are a hassle” - yes, they are, and users should be aware of the risk. But there are practical limits to what you can develop yourself
Present list of “must haves”: TabbedView2 until I muster time to write an enhanced EnvirGui. For some previous stuff I used the RoundSlider (?) from wslib; what is nice with that one that you can have text on the slider cursor, which for long sliders is helpful because you don’t have to move your eyes a lot to read the precise value. But for a more compact gui, it’s not that big of deal not having it.
I generally have miSC lib, wslib, and the JIT lib extensions quarks installed, but I’ve only dabbled with stuff they provide, not used them “for real” before finding that what I wanted (e.g. presets merging in the JIT lib quark) were better handled by some of my custom code. Also on the dabbled-with list: PresetInterpolator from mmExtensions; found the actual presets it supports to be too OSC-centric. Likewise, I’ve used some PSx patterns, but it turned out that due to the way the interact with the JITlib guis, you can use a Plazy wrapper for the standard Patterns most of the time with the same effect. Another example: VarGui (from miSC) has nicer visuals and grouping, but its initialization behavior was quite annoying to me. (I’ve dabbled even less with crucial lib or ddw stuff, although I’m still hoping to experiment with BP etc. at some point.)
So my usual “boom-bust” excitement cycle with some extension is that I find out that it’s not quite doing what I wanted after a (fairly short) while… (Sometimes coding the “right replacement thing” is rather time-consuming, so I hang onto some sub-optimal way of doing things because of that.)
I’ve had my eye on miSCellaneous_lib for a while now, and looking forward to reading through the fantastic documentation it comes with.
@scztt I tried installing ServerView and it, or one of it’s dependencies caused errors that meant I was no longer able to boot the server. Possibly something is running a bash script and not getting what it’s expecting from my system - could be a red herring tho. (happy to send you a more useful bug report if you’re interested)
yes absolutely. I’d much rather work on creative things or contribute to something that already exists.
Please do! I it’s probably related to the IconSet quark, a dependency of ServerView, and one that I just added a slightly non-standard installation mechanism for.
How is it ddwMixerChannel better than using global variables? Is there a place to read up on it? Would ddwMixerChannel be helpful if Im only using sc for external control of synths with cv and midi?
Some of the quarks look like they haven’t been updated in years. Thats the thing with quarks. I don’t know what is current or abandonware.
MixerChannel isn’t a replacement for global variables. When you have a MixerChannel object, you still have to keep a reference to it somewhere.
What MixerChannel does is to organize groups for synths, and buses for signals, in a way that reads like DAW mixers. Demo/explanation at dewdrop world > supercollider 3 > tutorials
If you’re controlling external gear, then your signals don’t live in the server, and MixerChannel wouldn’t be useful.
This is an interesting topic. I am basically using SC only for live coding, trying to replicate what high-level systems can offer directly from SCLang. Here are my essential Quarks/Extensions:
Synthesis: mi-UGens and Ported Plugins. They add a bit of variety to the UGen library. I must use 30% of what they offer but it is enough to get really complex synthesis. I wish for something like FaustGen in the future. Everything else comes from external sources (synths, drum machines).
Sampling:SAMP to load my sample library and keep it available at all times.
Pattern system:Pmini for mini-notation goodness, probably nth in the future.
IMO, all of this is pretty useless until you start to build your own workflow and abstractions around them. JITLib is the section of SuperCollider that I am the most familiar with and it once was an Extension/Quark as well, I believe?
A similar topic would be nice to have for SynthDefs. There are some common design patterns that you see floating around quite a lot: samplers, some types of synths, etc.