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/addDependant system.

  • Require — Node.js-style require() for .scd files.

  • 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.addReplace method 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 MIDIClient not 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 when obj is 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 .quark metadata files.