title:: News in 3.13
summary:: A summary of news in SC 3.13
categories:: News

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!

section::  General

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 https://github.com/supercollider/supercollider/pull/5304, 
@telephon in https://github.com/supercollider/supercollider/pull/5676, 
@jamshark70 in https://github.com/supercollider/supercollider/pull/5666, 
@elgiano in https://github.com/supercollider/supercollider/pull/5717, 
@dyfer in https://github.com/supercollider/supercollider/pull/5702, 
@dyfer in https://github.com/supercollider/supercollider/pull/5738, 
@dyfer in https://github.com/supercollider/supercollider/pull/5792, 
@telephon in https://github.com/supercollider/supercollider/pull/5801, 
@dyfer in https://github.com/supercollider/supercollider/pull/5867, 
@telephon in https://github.com/supercollider/supercollider/pull/5677, 
@nuss in https://github.com/supercollider/supercollider/pull/5687 
@elgiano in https://github.com/supercollider/supercollider/pull/5716.

Updates and fixes for the automated build system (GitHub Actions):
@dyfer in https://github.com/supercollider/supercollider/pull/5845, 
@dyfer in https://github.com/supercollider/supercollider/pull/5783, 
@dyfer in https://github.com/supercollider/supercollider/pull/5847, 
@dyfer in https://github.com/supercollider/supercollider/pull/5875, 
@dyfer in https://github.com/supercollider/supercollider/pull/5889, 
@dyfer in https://github.com/supercollider/supercollider/pull/5776.

section::  General: Added

Universal macOS build for both Intel x86_64 and Apple arm64 CPUs by @dyfer in https://github.com/supercollider/supercollider/pull/5953

Better description in the about dialog for tagged builds by @dyfer in https://github.com/supercollider/supercollider/pull/5697 and https://github.com/supercollider/supercollider/pull/5739

section::  General: Changed

Update sc-el submodule to latest version by @jxa in https://github.com/supercollider/supercollider/pull/5600

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.
section::  General: Fixed

Remove spurious Qt dependencies by @marcan in https://github.com/supercollider/supercollider/pull/4991

Update urls in git submodules to use https by @dyfer in https://github.com/supercollider/supercollider/pull/5694

Fix building on Apple M1 by adding ad hoc code signing by @dyfer in https://github.com/supercollider/supercollider/pull/5650

Build on OpenBSD by @ibz in https://github.com/supercollider/supercollider/pull/5822

Find JACK using cmake's FindPkgConfig by @dvzrv in https://github.com/supercollider/supercollider/pull/5680

section::  sclang: Added
Ability to set scrollPosition of QWebView by @paum3 in https://github.com/supercollider/supercollider/pull/5483

Interactive Command line interface on Windows using Readline by @dyfer in https://github.com/supercollider/supercollider/pull/5712

Support for MPEG formats by @dyfer in https://github.com/supercollider/supercollider/pull/5786

section::  sclang: Changed

code:: Signal -thresh :: by @elgiano in https://github.com/supercollider/supercollider/pull/5432
section::  sclang: Fixed

Stretch behaviour in QcRangeSlider by @miriamvoth in https://github.com/supercollider/supercollider/pull/5595

code:: Symbol -isPrefix :: by @Brandon-Yip2 in https://github.com/supercollider/supercollider/pull/5708

MIDI realtime message type codes on Linux by @jamshark70 in https://github.com/supercollider/supercollider/pull/5846

RF64 and W64 format recognition by @dyfer in https://github.com/supercollider/supercollider/pull/5877

UdpInPort error reporting by @jamshark70 in https://github.com/supercollider/supercollider/pull/5850

Parsing block arguments by @nilninull in https://github.com/supercollider/supercollider/pull/5522

3.13.1 fixes an allocation bug when using an HID on Linux by @dyfer, @bgola and @xunil-cloud in https://github.com/supercollider/hidapi/pull/17 

section::  Class library: Added

Support for code:: kitty :: and code:: alacritty :: Linux terminals by @madskjeldgaard in https://github.com/supercollider/supercollider/pull/5548

code:: NodeProxy -seti :: by @nuss in https://github.com/supercollider/supercollider/pull/5640

Converting mixed outputs in code:: NodeProxy :: instead of failing by @telephon in https://github.com/supercollider/supercollider/pull/5699

Posthook code:: \synthDefReady :: after synthdef is built by @avdrd in https://github.com/supercollider/supercollider/pull/5657

Setting the number of decimal places to code:: SimpleNumber -asTimeString :: by @dyfer in https://github.com/supercollider/supercollider/pull/4709

Make it possible to reschedule a Routine, Task or EventStreamPlayer transparently by @jamshark70 in https://github.com/supercollider/supercollider/pull/5038

Handle code:: langPort :: startup error descriptively by @jamshark70 in https://github.com/supercollider/supercollider/pull/5158

code:: AppClock -schedAbs :: by @telephon in https://github.com/supercollider/supercollider/pull/5851

Vim-like keyshortcuts in HelpBrowser by @paum3 in https://github.com/supercollider/supercollider/pull/5742

Add hooks to the code::Quark:: class by @capital-G and @telephon in https://github.com/supercollider/supercollider/pull/5907

section::  Class library: Changed

Refactor functionality: code:: connectToServerAddr :: by @telephon in https://github.com/supercollider/supercollider/pull/5569

Improve efficiency of calling code:: List -order :: by @telephon in https://github.com/supercollider/supercollider/pull/5561

Allow any type of text stream in the FileReader hierarchy by @jamshark70 in https://github.com/supercollider/supercollider/pull/5611

Improve behaviour of error in code:: loadRelative :: by @telephon in https://github.com/supercollider/supercollider/pull/5744

The argument name for code:: Spawner -seq :: was changed to code:: pattern :: by @tdug in https://github.com/supercollider/supercollider/pull/5767

Replace code:: aiff :: with code:: wav :: as the default value for code:: recHeaderFormat :: by @RhnSharma in https://github.com/supercollider/supercollider/pull/5559

Guarantee that code:: SetBuf :: gets an array by @telephon in https://github.com/supercollider/supercollider/pull/5743

Delete unused method code:: *findMethod :: from ScIDE class by @jamshark70 in https://github.com/supercollider/supercollider/pull/5840

HistoryGui: improve display readability by @adcxyz in https://github.com/supercollider/supercollider/pull/5861

Create only a single server meter by default by @telephon in https://github.com/supercollider/supercollider/pull/5908

section::  Class library: Deprecated

QuartzComposerView by @dyfer in https://github.com/supercollider/supercollider/pull/5710

section::  Class library: Fixed

Prevent possible infinite recursion in code:: *initClassTree :: by @jamshark70 in https://github.com/supercollider/supercollider/pull/5575

Use named controls in node proxy by @telephon in https://github.com/supercollider/supercollider/pull/5675

Fix implicit specs in synth functions by @adcxyz in https://github.com/supercollider/supercollider/pull/5681

Put code:: protect :: in PauseStreams by @jamshark70 in https://github.com/supercollider/supercollider/pull/5626

Fix some filters with node proxy by @telephon in https://github.com/supercollider/supercollider/pull/5679

Handle buffer instance of code:: NdefGui :: as argument by @redFrik in https://github.com/supercollider/supercollider/pull/5692

Defer GUI updates in code:: ServerPlusGUI :: by @dyfer in https://github.com/supercollider/supercollider/pull/5491

Make envelopes behave like patterns in a pattern proxy by @telephon in https://github.com/supercollider/supercollider/pull/5287

Fix code:: Server.remote :: code:: -startAliveThread :: by @elgiano in https://github.com/supercollider/supercollider/pull/5715

Exclude QQuartzComposer from headless builds by @elgiano in https://github.com/supercollider/supercollider/pull/5733

Prevent double-firing of cleanup functions in code:: EventStreamCleanup :: by @jamshark70 in https://github.com/supercollider/supercollider/pull/5386

Fix cleanup setup for Pmono and PmonoArtic by @eleses in https://github.com/supercollider/supercollider/pull/5027

Escaping of code:: String:openOS :: by @elgiano in https://github.com/supercollider/supercollider/pull/5322

Recording in code:: Pbind :: by @madredeuz in https://github.com/supercollider/supercollider/pull/5793

Cast sampleRate to Integer in code:: SoundFileView -setData :: by @redFrik in https://github.com/supercollider/supercollider/pull/5812

Use embedded specs in Ndef for guis by @adcxyz in https://github.com/supercollider/supercollider/pull/5686

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

Make sure code:: Plot :: color is not converted to array by @telephon in https://github.com/supercollider/supercollider/pull/5849

code:: BinaryOpUGen :: optimization for code:: a === b :: cases by @smrg-lm in https://github.com/supercollider/supercollider/pull/5427

Remove inline warnings in the class library by @telephon in https://github.com/supercollider/supercollider/pull/5856

Make maxLogins not to exceed 32 in code:: ServerOptions :: by @jamshark70 in https://github.com/supercollider/supercollider/pull/5149

Sample alignment with grid lines in code:: Function -plot ::  by @mtmccrea in https://github.com/supercollider/supercollider/pull/5855

Make code:: subBus :: use the same server as receiver by @telephon in https://github.com/supercollider/supercollider/pull/5887

GridLines improvements: fix exponential grids and add spacing control by @dyfer in https://github.com/supercollider/supercollider/pull/5161 and @mtmccrea in https://github.com/supercollider/supercollider/pull/5895, https://github.com/supercollider/supercollider/pull/5942

Expand tilde to users home directory on Windows by @miriamvoth in https://github.com/supercollider/supercollider/pull/5431

Improve code:: Function -flop :: implementation that works with string ellipsis and keyword arguments by @telephon in https://github.com/supercollider/supercollider/pull/5499, https://github.com/supercollider/supercollider/pull/5900

Time precision issues with Psync and EventStreamPlayer by @totalgee in https://github.com/supercollider/supercollider/pull/5891

code:: Pattern -record :: by @jamiehodge in https://github.com/supercollider/supercollider/pull/5883

Make code:: Rest :: accepted by Patterns by @olafklingt in https://github.com/supercollider/supercollider/pull/5882

code:: Buffer *cueSoundFile ::: keep code:: path :: value by @telephon in https://github.com/supercollider/supercollider/pull/5937

section::  scsynth and supernova: Added

Support for MPEG formats by @dyfer in https://github.com/supercollider/supercollider/pull/5786

Option for LIB_SUFFIX in the CMake build system by @tdug in https://github.com/supercollider/supercollider/pull/5644 and @elgiano in https://github.com/supercollider/supercollider/pull/5728

Error warnings and /fail replies to /d_load and /d_loadDir (scsynth) by @muellmusik in https://github.com/supercollider/supercollider/pull/5244

section::  scsynth and supernova: Fixed

Make code:: /g_head :: always fire an code:: /n_move :: reply (scsynth) by @Sciss in https://github.com/supercollider/supercollider/pull/5580

Non-real-time mode in supernova by @Spacechild1 in https://github.com/supercollider/supercollider/pull/5616

Crash when passing audio/control bus mapping to arrayed Group control in supernova by @Spacechild1 in https://github.com/supercollider/supercollider/pull/5617

Possible crash with unit commands by @Spacechild1 in https://github.com/supercollider/supercollider/pull/5610

Use the code:: /error :: messages to turn on / off the console printing in supernova by @vitreo12 in https://github.com/supercollider/supercollider/pull/5820

Support for code:: libsndfile :: version >= 1.1.0 by @dyfer in https://github.com/supercollider/supercollider/pull/5761

Print plugin API method in supernova by @Spacechild1 in https://github.com/supercollider/supercollider/pull/5874

UdpInPort error reporting by @jamshark70 in https://github.com/supercollider/supercollider/pull/5850

Behavior of .sqrt and .reciprocal operations on the server on Apple M1 CPUs by @dyfer in https://github.com/supercollider/supercollider/pull/5901

OffsetOut_Ctor error in supernova on Windows by @Spacechild1 in https://github.com/supercollider/supercollider/pull/5902

section::  UGens: Added

Argument code:: binout :: to code:: SpecPcile :: by @woolgathering in https://github.com/supercollider/supercollider/pull/5097
section::  UGens: Changed

code:: Impulse :: is now initialized correctly such that:
LIST::
##it will fire on the first sample, given the default phase of 0 (or multiple of 1).
##a frequency of 0 fires once and only once on the first sample (unless the frequency subsequently changes).
##negative frequencies and phases are now supported and phase of any value is wrapped into range.
::

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 https://github.com/supercollider/supercollider/pull/4150 by @mtmccrea

Numerous UGens have been updated so that their initialization sample is set correctly by @mtmccrea: 
code:: OscUGens :: in https://github.com/supercollider/supercollider/pull/5787, 
code:: Klang :: and code:: Klank :: in https://github.com/supercollider/supercollider/pull/5817, 
code:: TWindex :: in https://github.com/supercollider/supercollider/pull/5815,
code:: Free :: and code:: PauseSelf :: in https://github.com/supercollider/supercollider/pull/5914,
code::Poll:: in https://github.com/supercollider/supercollider/pull/5965
.

code:: Integrator :: Ctor passes through the first sample only by @jamshark70 in https://github.com/supercollider/supercollider/pull/5352. 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.

code:: PanAz ::, due to fixing leaks and imprecisions by @elgiano in https://github.com/supercollider/supercollider/pull/4971

section::  UGens: Fixed
code:: Tap :: samplerate compensation by @morfant in https://github.com/supercollider/supercollider/pull/5606

Audio rate versions of triggered random ugens by @telephon in https://github.com/supercollider/supercollider/pull/5344

code:: AudioControl :: and code:: InFeedback :: processing for an extra cycle by @vitreo12 in https://github.com/supercollider/supercollider/pull/5601

Remove RTAlloc exceptions, and review all plugins' RTAlloc/RTFree by @elgiano in https://github.com/supercollider/supercollider/pull/5713
