Skip to content

Commit

Permalink
Merge branch '3.13'
Browse files Browse the repository at this point in the history
  • Loading branch information
dyfer committed Feb 20, 2023
2 parents 608a4fd + 3c693b9 commit 3188503
Show file tree
Hide file tree
Showing 342 changed files with 12,345 additions and 6,123 deletions.
402 changes: 240 additions & 162 deletions .github/workflows/actions.yml

Large diffs are not rendered by default.

251 changes: 251 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,257 @@ Release dates of 3.x versions:
- 3.10: 2018-11-24
- 3.11: 2020-03-08
- 3.12: 2021-08-02
- 3.13: 2023-02-19

3.13.0 (2023-02-19)
===================

### 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
### 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

### 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.
### 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
### 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

### sclang: Changed

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

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

`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

### Class library: Added

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

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

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

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

Setting the number of decimal places to `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 `langPort` startup error descriptively by @jamshark70 in https://github.com/supercollider/supercollider/pull/5158

`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 `Quark` class by @capital-G and @telephon in https://github.com/supercollider/supercollider/pull/5907

### Class library: Changed

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

Improve efficiency of calling `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 `loadRelative` by @telephon in https://github.com/supercollider/supercollider/pull/5744

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

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

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

Delete unused method `*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

### Class library: Deprecated

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

### Class library: Fixed

Prevent possible infinite recursion in `*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 `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 `NdefGui` as argument by @redFrik in https://github.com/supercollider/supercollider/pull/5692

Defer GUI updates in `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 `Server.remote` `-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 `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 `String:openOS` by @elgiano in https://github.com/supercollider/supercollider/pull/5322

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

Cast sampleRate to Integer in `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 `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, https://github.com/supercollider/supercollider/pull/5942. 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 https://github.com/supercollider/supercollider/pull/5849

`BinaryOpUGen` optimization for `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 `ServerOptions` by @jamshark70 in https://github.com/supercollider/supercollider/pull/5149

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

Make `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 `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

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

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

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

### 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

### scsynth and supernova: Fixed

Make `/g_head` always fire an `/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 `/error` messages to turn on / off the console printing in supernova by @vitreo12 in https://github.com/supercollider/supercollider/pull/5820

Support for `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

### UGens: Added

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

`Impulse` is now initialized correctly such that:

- 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:
`OscUGens` in https://github.com/supercollider/supercollider/pull/5787
`Klang`, `Klank` in https://github.com/supercollider/supercollider/pull/5817
`TWindex` in https://github.com/supercollider/supercollider/pull/5815
`Free` and `PauseSelf` in https://github.com/supercollider/supercollider/pull/5914
`Poll` in https://github.com/supercollider/supercollider/pull/5965

`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.

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

### UGens: Fixed
`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

`AudioControl` and `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


3.12.2 (2022-01-08)
===================
Expand Down
39 changes: 36 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,11 @@
cmake_minimum_required(VERSION 3.12)

# pick up vcpkg installation, if VCPKG_ROOT is set
if(DEFINED ENV{VCPKG_ROOT} AND NOT DEFINED CMAKE_TOOLCHAIN_FILE AND NOT "$ENV{VCPKG_ROOT}" STREQUAL "")
set(CMAKE_TOOLCHAIN_FILE "$ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake" CACHE STRING "")
message(STATUS "Using CMAKE_TOOLCHAIN_FILE at ${CMAKE_TOOLCHAIN_FILE}")
endif()

include(SCVersion.txt)
# CMake versions can only consist of digits and periods, so don't use _TWEAK
project(SuperCollider VERSION ${SC_VERSION_MAJOR}.${SC_VERSION_MINOR}.${SC_VERSION_PATCH})
Expand All @@ -12,7 +19,7 @@ if(CMAKE_SYSTEM_NAME MATCHES "Linux|FreeBSD|DragonFly|OpenBSD|NetBSD")
endif()

message(STATUS "SuperCollider Version: ${SC_VERSION}")
message(STATUS "Building from branch ${GIT_BRANCH}, commit hash is ${GIT_COMMIT_HASH}")
message(STATUS "Building from ${GIT_REF_TYPE} ${GIT_BRANCH_OR_TAG}, commit hash is ${GIT_COMMIT_HASH}")
include(CTest)
enable_testing()

Expand Down Expand Up @@ -149,6 +156,29 @@ if( CCacheExectuable )
# only used with >=cmake-3.4
set( CMAKE_C_COMPILER_LAUNCHER "${CCacheExectuable}" )
set( CMAKE_CXX_COMPILER_LAUNCHER "${CCacheExectuable}" )
if(NOT CMAKE_GENERATOR MATCHES "Xcode" AND (NOT CMAKE_GENERATOR MATCHES "Visual Studio")) # we already post a message when using Xcode or MSVC
message(STATUS "Found ccache at ${CCacheExectuable}: using ccache to speed up build process")
endif()

# fix for Visual Studio adapted from https://github.com/ccache/ccache/wiki/MS-Visual-Studio#usage
# NOTE: there is an issue with ccache installed from chocolatey
# since chocolatey puts a "shim" as opposed to the actual executable in the PATH
# the solution is to add the path to the actual ccache executable earlier in the path
# e.g. in bash: export PATH=`echo c:/ProgramData/chocolatey/lib/ccache/tools/ccache*`:$PATH
if (MSVC)
message(STATUS "Found ccache at ${CCacheExectuable}: using ccache with MSVC to speed up build process")
file(COPY_FILE
${CCacheExectuable} ${CMAKE_BINARY_DIR}/cl.exe
ONLY_IF_DIFFERENT)

set(CMAKE_VS_GLOBALS
"CLToolExe=cl.exe"
"CLToolPath=${CMAKE_BINARY_DIR}"
"TrackFileAccess=false"
"UseMultiToolTask=true"
"DebugInformationFormat=OldStyle"
)
endif()
endif()

#############################################
Expand Down Expand Up @@ -246,8 +276,11 @@ endif()
option(SC_ABLETON_LINK "Build with Ableton Link support" ON)

if(APPLE)
# codesigning breaks increamental builds in Xcode 11+
option(SC_DISABLE_XCODE_CODESIGNING "Disable codesigning in XCode" ON)
# codesigning used to break increamental builds in Xcode 11+, but it's now fixed
option(SC_DISABLE_XCODE_CODESIGNING "Disable codesigning in XCode" OFF)
# codesigning is also being broken by macdeployqt, but it is needed on arm64
# to run the app locally at all, hence we sign after deploying the app
option(SC_CODESIGN_AFTER_DEPLOY "Run ad hoc codesigning after creating the app bundle" ON)
# verify_app fails with official Qt; we'll still use it for Qt from homebrew
option(SC_VERIFY_APP "Run verify_app on the app bundle" OFF)
endif()
Expand Down
Loading

0 comments on commit 3188503

Please sign in to comment.