News in 3.13:
Guides | News

News in 3.13

A summary of news in SC 3.13

Welcome to the SuperCollider 3.13 release!

NOTE: In this version numerous UGens have been fixes so that they calculate their initial value as originally intended. In some cases this may create a different result than previously. See below for details

We now also provide a universal build for both x86_64 and arm64 Apple machines.

Below you can find a more complete list of changes in this version. A big thank you to all developers for your contributions!


Countless improvements to help files and documentation (@elifieldsteel, @JaimeClover, @DoHITB, @jamshark70, @heretogo, @capital-G, @alexhughk, @chris75vie, @forrcaho, @paum3, @avdrd, @wolfgangschaltung, @telephon, @redFrik, @madskjeldgaard, @mxw, @dyfer, @tdug, @mtmccrea, @prko, @mjsyts, @grirgz, @chkworks, @balzss, @hectorgonzalezo, @michelestew, @mttvn, @pearcemerritt, @mlang)

Updates and fixes for the test suite: @telephon in, @telephon in, @jamshark70 in, @elgiano in, @dyfer in, @dyfer in, @dyfer in, @telephon in, @dyfer in, @telephon in, @nuss in @elgiano in

Updates and fixes for the automated build system (GitHub Actions): @dyfer in, @dyfer in, @dyfer in, @dyfer in, @dyfer in, @dyfer in

General: Added

Universal macOS build for both Intel x86_64 and Apple arm64 CPUs by @dyfer in

Better description in the about dialog for tagged builds by @dyfer in and

General: Changed

Update sc-el submodule to latest version by @jxa in

The regular release macOS build now supports macOS 10.14 and up (previously supported 10.13). The legacy build is still provided supporting macOS 10.10 and up.

General: Fixed

Remove spurious Qt dependencies by @marcan in

Update urls in git submodules to use https by @dyfer in

Fix building on Apple M1 by adding ad hoc code signing by @dyfer in

Build on OpenBSD by @ibz in

Find JACK using cmake's FindPkgConfig by @dvzrv in

sclang: Added

Ability to set scrollPosition of QWebView by @paum3 in

Interactive Command line interface on Windows using Readline by @dyfer in

Support for MPEG formats by @dyfer in

sclang: Changed

Signal -thresh by @elgiano in

sclang: Fixed

Stretch behaviour in QcRangeSlider by @miriamvoth in

Symbol -isPrefix by @Brandon-Yip2 in

MIDI realtime message type codes on Linux by @jamshark70 in

RF64 and W64 format recognition by @dyfer in

UdpInPort error reporting by @jamshark70 in

Parsing block arguments by @nilninull in

Class library: Added

Support for kitty and alacritty Linux terminals by @madskjeldgaard in

NodeProxy -seti by @nuss in

Converting mixed outputs in NodeProxy instead of failing by @telephon in

Posthook \synthDefReady after synthdef is built by @avdrd in

Setting the number of decimal places to SimpleNumber -asTimeString by @dyfer in

Make it possible to reschedule a Routine, Task or EventStreamPlayer transparently by @jamshark70 in

Handle langPort startup error descriptively by @jamshark70 in

AppClock -schedAbs by @telephon in

Vim-like keyshortcuts in HelpBrowser by @paum3 in

Add hooks to the Quark class by @capital-G and @telephon in

Class library: Changed

Refactor functionality: connectToServerAddr by @telephon in

Improve efficiency of calling List -order by @telephon in

Allow any type of text stream in the FileReader hierarchy by @jamshark70 in

Improve behaviour of error in loadRelative by @telephon in

The argument name for Spawner -seq was changed to pattern by @tdug in

Replace aiff with wav as the default value for recHeaderFormat by @RhnSharma in

Guarantee that SetBuf gets an array by @telephon in

Delete unused method *findMethod from ScIDE class by @jamshark70 in

HistoryGui: improve display readability by @adcxyz in

Create only a single server meter by default by @telephon in

Class library: Deprecated

QuartzComposerView by @dyfer in

Class library: Fixed

Prevent possible infinite recursion in *initClassTree by @jamshark70 in

Use named controls in node proxy by @telephon in

Fix implicit specs in synth functions by @adcxyz in

Put protect in PauseStreams by @jamshark70 in

Fix some filters with node proxy by @telephon in

Handle buffer instance of NdefGui as argument by @redFrik in

Defer GUI updates in ServerPlusGUI by @dyfer in

Make envelopes behave like patterns in a pattern proxy by @telephon in

Fix Server.remote -startAliveThread by @elgiano in

Exclude QQuartzComposer from headless builds by @elgiano in

Prevent double-firing of cleanup functions in EventStreamCleanup by @jamshark70 in

Fix cleanup setup for Pmono and PmonoArtic by @eleses in

Escaping of String:openOS by @elgiano in

Recording in Pbind by @madredeuz in

Cast sampleRate to Integer in SoundFileView -setData by @redFrik in

Use embedded specs in Ndef for guis by @adcxyz in

Plotter: update colors, fix grid and axis labels, remove Plotter -gui method by @mtmccrea in,, Grid lines and their labels are improved, along with axis labels, which are now settable by their own methods labelX_ and labelY_. The x-axis label inherits the units of a domainSpec if it is explicitly set and labelX hasn't already been set

Make sure Plot color is not converted to array by @telephon in

BinaryOpUGen optimization for a === b cases by @smrg-lm in

Remove inline warnings in the class library by @telephon in

Make maxLogins not to exceed 32 in ServerOptions by @jamshark70 in

Sample alignment with grid lines in Function -plot by @mtmccrea in

Make subBus use the same server as receiver by @telephon in

GridLines improvements: fix exponential grids and add spacing control by @dyfer in and @mtmccrea in,

Expand tilde to users home directory on Windows by @miriamvoth in

Improve Function -flop implementation that works with string ellipsis and keyword arguments by @telephon in,

Time precision issues with Psync and EventStreamPlayer by @totalgee in

Pattern -record by @jamiehodge in

Make Rest accepted by Patterns by @olafklingt in

Buffer *cueSoundFile: keep path value by @telephon in

scsynth and supernova: Added

Support for MPEG formats by @dyfer in

Option for LIB_SUFFIX in the CMake build system by @tdug in and @elgiano in

Error warnings and /fail replies to /d_load and /d_loadDir (scsynth) by @muellmusik in

scsynth and supernova: Fixed

Make /g_head always fire an /n_move reply (scsynth) by @Sciss in

Non-real-time mode in supernova by @Spacechild1 in

Crash when passing audio/control bus mapping to arrayed Group control in supernova by @Spacechild1 in

Possible crash with unit commands by @Spacechild1 in

Use the /error messages to turn on / off the console printing in supernova by @vitreo12 in

Support for libsndfile version >= 1.1.0 by @dyfer in

Print plugin API method in supernova by @Spacechild1 in

UdpInPort error reporting by @jamshark70 in

Behavior of .sqrt and .reciprocal operations on the server on Apple M1 CPUs by @dyfer in

OffsetOut_Ctor error in supernova on Windows by @Spacechild1 in

UGens: Added

Argument binout to SpecPcile by @woolgathering in

UGens: Changed

Impulse is now initialized correctly such that:

These are intended and documented behaviors, but which failed previously in certain UGen configurations. Therefore, users may observe changes to the initial state of synth graphs that use Impulse. (Especially triggered UGens.) For details, a list of resolved/changed behavior can be found here.

For more details see by @mtmccrea

Numerous UGens have been updated so that their initialization sample is set correctly by @mtmccrea: OscUGens in, Klang and Klank in, TWindex in, Free and PauseSelf in, Poll in

Integrator Ctor passes through the first sample only by @jamshark70 in Prior to v3.13, there was a bug that caused the Integrator to double-count the initial value: the integral of a single 1 followed by endless 0s ends up being 2. Starting with v.3.13, it's 1 as expected.

PanAz, due to fixing leaks and imprecisions by @elgiano in

UGens: Fixed

Tap samplerate compensation by @morfant in

Audio rate versions of triggered random ugens by @telephon in

AudioControl and InFeedback processing for an extra cycle by @vitreo12 in

Remove RTAlloc exceptions, and review all plugins' RTAlloc/RTFree by @elgiano in