Core Libraries
-
LanguageServer — LSP (Language Server Protocol) implementation for sclang. Runs as a background socket server inside the SC interpreter and responds to JSON-RPC requests from editors (VS Code, Neovim, etc.) for autocompletion, hover documentation, go-to-definition, and diagnostics.
-
Connection — A comprehensive reactive programming library built on SC’s
changed/addDependantsystem. -
Require — Node.js-style
require()for.scdfiles. -
UnitTest2 — An improved unit testing framework for sclang, inspired by Catch2.
UGens & DSP
-
BandSplitter — UGens for splitting an audio signal into 2, 4, or 8 frequency bands using cascaded Linkwitz-Riley crossovers.
-
OfflineProcess — Simplifies NRT (non-realtime) audio rendering by wrapping SynthDef/Score setup into a higher-level API.
Patterns
-
SZPat — A collection of Pattern extensions.
-
OSequence — A library for manipulating abstract timespans.
Server & GUI
-
ServerView — An improved server status window that replaces SC’s built-in server GUI.
-
NodeSnapshot — Queries the server node tree and captures a snapshot as SC objects. Supports iterating, searching, and selecting nodes by SynthDef name or node ID.
-
AddReplace — Adds a
SynthDef.addReplacemethod that recompiles a SynthDef and live-replaces all currently-running instances on the server, preserving their control values. -
SAMP — A loader for sample libraries.
Hardware Controllers
-
Electra — Framework for building and uploading control presets to the Electra One hardware MIDI controller.
-
Twister — Driver for the DJ TechTools MIDIFighter Twister.
-
MIDIWatcher — Polls the system MIDI device list and fires callbacks when devices are connected or disconnected. Solves the problem of SC’s
MIDIClientnot providing hot-plug notifications.
State & Control Flow
-
Deferred — Promise/future implementation for sclang.
-
Reactive — An experimental signals/reactive-values library implementing fine-grained reactivity with three-phase dirty tracking, modeled after MobX/TC39 Signals.
Utilities
- Singleton — Base class providing named-singleton behavior:
MySingleton(\name)always returns the same instance for a given name. - Log — Structured logging with named loggers, configurable severity levels, and optional GUI log-window output.
- Collapse — Rate-limiter/debouncer for function calls. Useful when responding to fast-changing input (e.g. MIDI CCs).
- FreeAfter — Ties the lifetime of objects together:
.freeAfter(obj)automatically frees the receiver whenobjis freed. - Preference — Reads and writes persistent user preferences to disk (JSON-backed).
- WindowViewRecall — Automatically saves and restores Window/View positions and sizes across sessions.
- WindowHandleView — Makes borderless/frameless windows draggable by clicking on a custom view.
- IconSet — Packages collections of open-source SVG/image icons for use in SC GUIs.
- QuarkEditor — GUI tool for editing
.quarkmetadata files.