Skip to content

Latest commit

 

History

History
2314 lines (1669 loc) · 173 KB

CHANGELOG.md

File metadata and controls

2314 lines (1669 loc) · 173 KB

Change Log

Release dates of 3.x versions:

  • 3.1: 2007-10-31
  • 3.2: 2008-02-19
  • 3.3: 2009-04-30
  • 3.4: 2010-07-15
  • 3.5: 2012-03-16
  • 3.6: 2012-11-28
  • 3.7: 2016-03-13
  • 3.8: 2016-11-04
  • 3.9: 2018-01-13
  • 3.10: 2018-11-24
  • 3.11: 2020-03-08

3.11.2 (2020-11-15)

We are now providing a "legacy macOS" binary that supports macOS 10.10 and above. It can be found where you normally download SuperCollider (#5190, #5242).

General: Fixed

In the help browser, Shift-Enter now evaluates code again! (#4883)

Fixed faulty deployment of macOS app bundle due to bug in Qt utility (#5187, #5230).

Fixed support for Portaudio in build system with CMake 3.18 (#5206).

Fixed support for building shared libscsynth on macOS and Linux (#5215).

General documentation improvements (#5131, #5136, #5137, #5141, #5142, #5173, #5203).

General: Removed

Removed some unused code for old Android support (#4975).

Class library: Fixed

Fixed a bug in Pfindur where the last event of the pattern could become "Rest-less" (#5113).

SynthDesc and SynthDescLib now restore metadata for SynthDefs (#5122).

Fixed an issue in output formatting for UnitTest:assertFloatEquals (#5135).

Pattern:record no longer ignores header and sample formats provided as arguments (#5031).

Pseg:embedInStream now returns 'inval' to match other patterns (#5145).

ProxySpace:copy also rebuilds the ProxySpace to copy referenced objects (#5192).

Servers: Fixed

Supernova now correctly handles /s_getn with a control name instead of index (#5182).

3.11.1 (2020-08-19)

This version of SuperCollider now supports Fedora 32 and Ubuntu 20.04. See README.md or the wiki for more information on the full set of platforms and toolchains supported by SuperCollider.

General: Added

Added support for AArch64 (64-bit ARM) architecture (#5095)

Added support for Qt 5.15 (#4986)

Added support for Boost 1.72 (#4990) and 1.73 (#4983)

Added a new script for maintainers for producing a release tarball (#4837)

Added a new script to help automate the release process (#4987, #5114)

General: Changed

Building sclang with readline now requires ncurses; this is to fix build errors on some Linux systems where libreadline is not fully linked (#4900)

The 'render all help' CMake target no longer includes extensions (#5089)

Changed the disableBufferAliasing argument of the plugin interface's registerUnit() from int to bool (#4710)

Disabled a harmless warning from Boost that caused lots of noise when building on Windows (#4804)

General: Fixed

The IDE and sclang GUI components now work better on high-resolution displays on Windows (#4850)

Removed use of deprecated features in examples (#4827)

CI fixes (#4861, #4847, #4920, #4993, #5074, #5076)

Removed unused packaging scripts (#4840)

"Guides" help documents are installed on all non-GUI builds now (#5042)

The make_parser.sh script in the main repository works again (#5032)

Fixed an issue in one of the internal gen_cmake tools used in cookiecutter-supercollider-plugin (#5079)

Documentation improvements (#4854, #4838, #4886, #4905, #4868, #4995, #5006, #4888, #4881, #5039, #5023, #5001, #5029, #5028, #5010, #4988, #4923, #5045, #5082, #5078, #5088, #5109, #5093, #5094, #4796, #4792, #4762)

scsynth and supernova: Fixed

Both servers now do better at explaining what errors like "Exception in World_OpenUDP: unable to bind udp socket" mean (#4863)

supernova now ignores non-scsyndef files when loading synthdefs at startup or with /d_loadDir (#4917)

Both servers are now built with correct Unicode support under MinGW (#4926)

Both servers now warn about an issue where Windows Defender may delay booting by ~1 minute (#4984)

supernova now uses FFTW as its FFT library on macOS to solve a thread safety issue (#4583)

scsynth now supports non-ASCII device names on the command line on Windows (#4479)

UGens: Changed

TWindex learned to respond to multiple triggers in a single control block (#5002)

sclang: Fixed

MIDIOut now checks the correct bounds when sending messages (#4652)

WebView:-findText no longer throws an error when used correctly (#4937)

[].mirror.wrapAt no longer crashes the interpreter (#4935)

Fixed a segfault in the prMatchLangIP primitive (#4927)

Buffer:-getToFloatArray correctly handles a count of -1 now (#4939)

Some dead code was removed (#4934)

Fixed a crash on macOS when calling MIDIIn.connectAll immediately before HID.findAvailable (#5046)

scel: Fixed

Fixed a build issue on Ubuntu caused by incompatibility with Emacs 25 (#4855)

scel: Added

Added support for completion-at-point-functions and company-mode (#4855)

Class library: Added

Plotter learned to allow multiple active plot modes, similar to having multiple active colors (#4459)

The class library's HelpBrowser class learned how to respond to the same keyboard shortcuts as the IDE help browser (#4932)

Class library: Changed

Quarks prints more helpful error messages for a common error (#4404)

Object:-writeDefFile no longer allows an empty string as an argument (#4953)

Class library: Fixed

Cmd-W now closes GUI windows again on macOS (#4821)

Passing a nil spec to NamedControl no longer overwrites a spec in SynthDef metadata (#4817)

Fixed a deprecation that broke non-GUI builds (#4875)

String:-runInTerminal works again on macOS (#4880)

UnitTest:-assertFloatEquals's formatting was fixed (#4946)

String:-splitext no longer interprets a period in a path component as the start of a file extension (#4960)

When building a UGen graph, SynthDef no longer deletes structures of the form (a + b) + (a + b) (#5048)

TaskProxy and EventPatternProxy now respect instances' clocks in -play (#4996)

EventPatternProxy does not prematurely cleanup a faded-in stream in some cases (#5057)

UGen:-composeBinaryOp's return value was fixed (#5000)

ProxySpace.storeOn became more robust (#4316)

View:-font_ now correctly sets the view's Font object (#5107)

SimpleNumber:-asTimeString behaves correctly when the receiver is negative (#4802)

Pfset now correctly cleans up when a subpattern yields nil immediately (#4815)

Silenced some warnings during class library compilation (#4782)

Test suite improvements (#4938, #4962)

IDE & SCDoc: Fixed

Fixed a communication problem between sclang and scide which could cause confusing failures in the help browser (#5015)

Selecting regions in the help browser by clicking on parens works correctly now (#5044)

The IDE no longer contains code that depends on a Quark (#4948)

The IDE correctly transmits non-ASCII characters when queried with Document.text (#4978)

IDE translation files are now correctly included and found in distributions, although there are no translations available so this has no functional effect (#4810, #4811)

3.11.0 (2020-03-08)

New feature - Ableton Link support. See sclang: added

Documentation improvements (#4759, #4732, #4744, #4697, #4326, #4673, #4610, #4515, #4389, #4355, #4333, #4222, #4198, #4144, #4123, #4148, #4140, #4080, #4078, #4057, #4016, #4027, #3925, #3953, #3954, #3912, #3929)

General: Added

Added NOVA_SIMD build option for cookiecutter based plugin development (#4354)

General: Changed

Moved RPi and BeagleBone README files into the main repository. (#4639)

The way version numbering is handled in the build system has been reformed. This primarily affects building, but also required changes to the class library (see class library: deprecated) (#4706)

scel has been updated (#4712, #4700)

scvim has been updated (#4197)

CONTRIBUTING.md and DEVELOPING.md have been updated and moved to the wiki (#4503, #4297, #4028)

README_LINUX.md has been updated (#4397, #4159)

Templates for issues have been updated (#4271)

Templates for pull requests have been updated (#4272)

macOS builds now require >= 10.10. Documentation and travis builds are updated to reflect this (#4068)

General: Fixed

Fixed linking issues for supernova on macOS (#4764)

Fixed build issues when using system boost or yaml-cpp (#4185)

scsynth and supernova: Added

macOS: Added cocoa event loop to scsynth and supernova to allow future work on VST integration (#4499)

Added a missing flag for no buffer aliasing to the plugin interface (#4356)

scsynth and supernova: Changed

Replaced a magic number used by the clock (#4714)

supernova now has more deterministic ordering of OSC messages in asynchronous requests (#4460)

scsynth and supernova: Fixed

Fixed an issue with scsynth and supernova pre-processor directives (fixes issue raised in (#4504)) (#4784)

Fixed issues with clock jitter when using JACK (#4599)

Fixed a bug where Windows would not guard against denormals, which would cause large CPU utilisation (#4504)

Prevented coreaudio from resampling audio stream when using portaudio on macOS (#4477)

Fixed an erroneous include that stopped supernova from compiling in some cases (#4018)

Ugens: Fixed

Fixed an issue with the Done flags on EnvGen (#4789)

Fixed an issue with EnvGen gating non-gated envelopes (#4436)

sclang: Added

Ableton Link support is here! Check the LinkClock class for more information. (#4331, #4340, #4337)

Add PortAudio bindings to allow listing audio devices on Windows (#4742).

sclang: Fixed

Fixed an issue where TCP connections were not closed properly when recompiling the class library (#4518)

Fixed LanguageConfig sometimes storing in the wrong location (#4680)

Fixed an number of garbage collection related issues that would sometimes render the interpreter unstable (#4192)

Class library: Added

Added Platform.architecture to allow detection of system architecture (#4524)

Added File.deleteAll to facilitate the deletion of all files within a given path - to be used for good, not evil (#3921)

Added more flexible ways to modify ControlSpecs related to SynthDef args (#3814)

Added support for listing audio devices on Windows from ServerOptions.inDevices, ServerOptions.outDevices and ServerOptions.devices (#4742)

Added 'composite' event type to default Event prototype (#4441)

Added SequenceableCollection:unixCmdGetStdOut to capture std output from external programs (#3539)

Added String.parseJSON and String.parseJSONFile as an alias around parseYAML (#3956)

Added debug method to UnitTest(#3623)

Class library: Changed

Improvements to drag functionality with Ndef params (#4093)

Collection:== optimised to exit early for identity, inherited by subclasses (#3962)

As part of version reforming, Main.versionAtMost and Main.versionAtLeast now accept a third argument for the tweak level (e.g. checking for 3.10.4 is now possible) (#4706)

Some UnitTests now print fewer newline characters, and inline warnings have been fixed (#4716)

NodeProxy:set can now be used with arbitrary objects (#4090)

UnitTest methods are now isolated from each other (#3836)

Increased the maximum number of attempts for TCP connection to server (#4481)

Class library: Deprecated

String.scDir is deprecated (#4374). Please use Platform.resourceDir instead.

PlotView.plotColors is deprecated (#4678). Please use plotColor instead.

As part of version reforming, Main.scVersionPostfix has been deprecated (#4706). Please use Main.scVersionTweak instead

Object.asInt is deprecated (#4089). Please use Object.asInteger instead.

Class library: Fixed

Breaking change: Fixed an issue with Signal:hammingWindow using incorrect coefficients. Signal:hammingWindow_old can be used for previous behaviour (#4324)

Breaking change: Color:asHSV could sometimes return NaN -- grayscale colors returned NaN hue, and black returned NaN hue and saturation. Zero values are now returned in these cases, as is the standard (#4369)

Fixed an issue where NamedControl would erroneously convert name to a String in some cases (#4761).

Fixed an issue with copying Ndef (#4690)

Fixed an issue where Document.initAction would fail to run in some cases (#4582)

Fixed an issue with NodeProxy bundling (#4461)

Fixed a bug in Ndef:asCode to correctly handle the default fadeTime (#4721, #4695)

Fixed a bug involving fadeTime and Ndef:copy (#4701)

Fixed issues with resampling in Plotter (#4223)

Fixed a duplicate node ID error in NodeProxy:xset (#4512)

Fixed an issue where changing the number of channels or rate of a NodeProxy would not free the old bus in time (#4493)

Fixed an issue with Plotter resampling of domain given fixed Array:series method (#4510)

Fixed a UnitTest for TestTempoClock (#4334)

Fixed an issue where typeView wasn't updated in NdefGUI (#4056)

Fixed an issue where findRegexp would return incorrectly when given an empty string (#4241)

Fix for Score examples and Platform.defaultTempDir on OSX (#4221)

Fixed Plotter domain and superpose behavior (#4082)

Fix FunctionDef:argumentString handling of varArgs (#4085)

Fixed several issues with SoundFile:cue behaviour (#3728)

Fixed an issue where Image would not support a filename as an argument (#3949)

Fixed UnitTests for Event to reset between tests (#3961)

Fixed an issue where NodeProxy would use the wrong release shape in some cases (#3776)

Fixed an issue with Menu.insertAction not invoking properly (#3871)

Fixed an issue with UnitTest where runAll could be inherited by individual tests (#4722)

IDE & SCDoc: Added

Help Browser now supports executing code regions (#3904)

IDE & SCDoc: Changed

sc-ide is now built as a static library (#4628)

Improved a number of style issues in the Help Browser (#3881)

IDE & SCDoc: Fixed

Fixed an issue where SCDoc might segfault on deep node trees during tests (#4713)

Fix for an issue on Windows where the IDE would appear to lock during launch in some cases due to an IPC issue between IDE and sclang (#4646)

Fixed an issue with code execution in the Help Browser where comments contained brackets (#4548)

Fixed an issue where copying a theme would crash the IDE if the new theme was not yet saved (#4146)

Fixed a number of deprecations in Qt (#4649)

Fixed a number of rendering warnings from SCDoc (#4265)

3.10.4 (2020-01-16)

Xcode 11 is now supported (#4611).

Minimum supported Boost version is now 1.66.0 (#4611). Boost 1.71 is also now supported (#4612).

supernova would sometimes return malformed /done OSC messages over TCP due to a concurrency issue. This has been fixed (#4435).

On macOS, Cmd+Q causes a segmentation fault in sclang. This is a regression from old behavior, where Cmd+Q is simply ignored. This has been fixed (#4533).

Fixed a mistake where Recorder would get its default file extension from server.recHeaderFormat rather than its own recHeaderFormat (#4550).

The NodeProxy filter role now respects fadeTime (#4278).

Some sequences of IDE actions involving editor splits (such as removing a split and then recompiling the class library) can lead to an eventual IDE crash. These have been fixed (#4645).

On macOS, Cmd+Q used to quit both the IDE and interpreter, but it regressed and only the interpreter would quit. This has been fixed (#4300).

3.10.3 (2019-08-30)

General: Fixed

For people compiling with musl libc, some build errors have been fixed (#4535).

scsynth and supernova: Changed

Breaking change: scsynth had a security issue where it listens to 0.0.0.0 by default. For most users, this is undesirable behavior since it allows anyone on your local network to send messages to scsynth! This default has been changed to 127.0.0.1 (#4516). To change it back (e.g. for networked server/client setups), use -B 0.0.0.0 at the command line or server.options.bindAddress = "0.0.0.0".

scsynth and supernova: Fixed

On Windows, scsynth was not able to select separate input and output devices. Since many audio drivers present inputs and outputs as separate devices, this caused major blocking issues for anyone using Windows with an external sound card. This has been fixed (#4475).

Fixed a supernova compilation issue on Boost 1.67 (#4447).

Fixed server hangs happening in plugins employing SequencedCmd (#4456).

UGens: Fixed

Fixed an initialization issue for the trig input to Convolution2 (#4341).

sclang: Added

sclang and the IDE can now be compiled without QtWebEngine -- just set SC_USE_QTWEBENGINE=OFF at the cmake stage (#4328).

sclang: Fixed

The mouseWheelAction of View erroneously reported xDelta and yDelta to be 0 in some cases. This is fixed (#4423).

Fixed incorrect mathematics in SimpleNumber:series (#4454).

Fixed a harmless but annoying warning in when running HelpBrowser.instance in sclang without the IDE (#4488).

Class library: Added

The -B command-line flag to scsynth was missing a frontend in ServerOptions. This has been fixed by introducing ServerOptions:bindAddress (#4516).

Add Platform.hasQtWebEngine to query whether sclang was compiled with QtWebEngine support (#4523).

Class library: Fixed

Fix issues when using a regular Buffer (that is, not a LocalBuf) for FFT (#4050).

Lots of small issues in Plotter were fixed, especially related to the domain and domainSpec arguments (4082).

When changing the source of an input to a NodeProxy, discontinuities can happen even when smooth crossfading is requested. This has been fixed (#4296).

ProxyMixer no longer assumes the ProxySpace it is using to be the current environment (#4339).

The default recordings directory on Windows was the somewhat redundant My Documents\SuperCollider\SuperCollider\Recordings. The additional SuperCollider subdirectory has been removed (#4420).

In Events where strum is set, the releases of notes was erroneously done in reverse order. This is fixed (#4406).

Fix EnvirGui always creating a SkipJack due to incorrect logic concerning the makeSkip flag (#4376).

SkipJack would not remove itself properly when stopped by its stopTest. This is fixed (#4376).

Fixed class library compilation issues on Qt-less sclang installations (#4219).

IDE & SCDoc: Fixed

Fixed crashes trying to run multiple IDEs at once, and a related error when attempting to run HelpBrowser:instance in sclang while an IDE help browser is open (#4267).

On macOS, Cmd+Q in the IDE would quit the interpeter but not the IDE. This is a regression from old behavior where the IDE was quit entirely. This has been fixed (#4300).

Since 3.10, the help browser would execute code twice when selected. This has been fixed (#4390).

Fix footnotes adding unwanted line breaks in SCDoc (#4365).

3.10.2 (2019-02-08)

Due to immature development status and lack of cross-platform compatibility, MainMenu is no longer created by default (#4285). It can be re-enabled by running MainMenu.initBuiltInMenus (add this to your startup file to permanently re-enable). The API for MainMenu is subject to change in the future.

MainMenu consumes less resources and no longer causes a gradual memory leak (#3870).

Fix SCIDE missing an icon on some Linux desktop environments (#4269).

Fixed incorrect parsing of strings containing \" and single-quote symbols containing \' in class library files (#4255).

Fixed language-side issues when using FFT UGens on a regular Buffer rather than a LocalBuf (#4050).

Added TempoClock:isRunning method (#4254).

Fixed some compiler warnings (#4275, #4274).

3.10.1 (2019-01-17)

Fixed an infinite hang in SerialPort.devices affecting macOS (#4180).

Fixed ServerOptions producing eight channels instead of two channels when explicitly setting numOutputBusChannels or numInputBusChannels (#4251).

Fixed a build issue on OpenBSD (#4203).

Fixed /b_fill, which was broken in supernova (#4188).

Fixed incorrect latency compensation in PortAudio driver (#4210).

The CheckBadValues UGen incorrectly recognized zero as a bad value on Windows. This has been fixed (#4240).

Fixed crtscts flag in SerialPort.new, which broke in 3.10 (#4191).

Fixed lack of backgroundImage support for Slider2D (#3952).

Fixed incorrect behavior of String:asSecs (#3819).

0X0 is an illegal hexadecimal literal in sclang, but SCIDE and SCDoc highlighted such strings as if they were correct. They have been updated (#4170).

Fixed weird colors in SCIDE when changing from other themes to the "classic" theme (#4161).

3.10.0 (2018-11-24)

Contributors to this release: adcxyz, bagong, brianlheim, dkmayer, dmorgan-github, dyfer, g-roma, geoffroymontel, gusano, hardiksingh-rathore, htor, jamshark70, jpburstrom, LFSaw, lnihlen, lvm, markwheeler, mhetrick, miczac, muellmusik, nilninull, novadeviator, orbsmiv, patrickdupuis, paum3, prko, redFrik, sbl, scztt, sensestage, shimpe, simonvanderveldt, smiarx, smrg-lm, snappizz, sonoro1234, telephon, tem44, widp, Xon77, and many others.

Known issues

  • FileDialog can hang — currently we are only able to reproduce on KDE, but other OS's could be affected (#3807).
  • On Windows and Linux, running code with Ctrl+Enter in the help browser (not the editor) only evaluates the current line (#3989).
  • QtWebEngine, a hard dependency of SCLang and SCIDE, is difficult or impossible to install in some environments (#4010). Work is underway to make it an optional component, but this will not happen in time for 3.10.

General: Added

A NO_X11 option has been added to the build system so that server plugins requiring an X server such as MouseX can be omitted (#3738).

General: Changed

sclang and scide have long been stuck with Qt 5.5 due to Qt dropping QtWebKit for QtWebEngine. They have been upgraded for compatibility with Qt 5.7+. We recommend using the most recent version of Qt. The impacts of this change include:

  • sclang and scide now build on Visual Studio 2015 and later. (Previously, Windows users had to obtain the now-ancient Visual Studio 2013.)
  • UserView now supports Retina/HiDPI display.
  • A somewhat different build process on Linux. See the README.

The minimum required version is now CMake 3.5 instead of CMake 2.8 (#3656).

scel (the emacs package) is now a submodule (#3519).

General: Fixed

Many issues with Unicode paths on Windows were fixed in 3.9. A few remaining cases involving sound files remained, and are now fixed (#3720):

  • supernova's sound file backend, buffer manager, and plugin loading
  • NRT mode in scsynth
  • /b_read family of commands in scsynth
  • SoundFileView in the sclang GUI

Fixed a build failure with the CMake option SYSTEM_YAMLCPP=on (#3558).

Fixed a misleading deprecation warning when CMAKE_INSTALL_PREFIX is set to the home directory in Linux (#3613).

Fixed CMAKE_PREFIX_PATH incorrectly defaulting to /usr/local/ on macOS under some conditions (#4043).

scsynth and supernova: Added

supernova now has latency compensation (#3790).

scsynth and supernova: Fixed

scsynth's latency compensation had a math error that ended up doubling the latency. It is fixed now (#3790).

For consistency with scsynth, supernova no longer requires the final argument to /b_allocReadChannel (#3826).

Fixed a missing newline in some of supernova's error messages (#3897).

Fixed errors in supernova's /s_getn (#3893).

Fix supernova's response to /g_queryTree so it matches scsynth (#3221).

UGens: Fixed

Fixed clicks in Convolution2L (#3687).

sclang: Added

Menus are now supported in the Qt GUI. See help files for Menu, MenuAction, ToolBar, and MainMenu (#2504).

Added wrappers for over 100 special mathematical functions (gamma function, Bessel functions, elliptic integrals, etc.) from the Boost library (#3672).

SerialPort now works on Windows (#3809).

FileDialog and Dialog now support a "path" argument that specifies a default directory when the dialog appears (#3508).

QTreeView has a new method: setColumnWidth (#3560).

sclang: Changed

Breaking change: Float:asString now always produces a decimal point, so 3.0.asString is now "3.0" instead of "3" (#3585).

Breaking change: The server argument has changed to target in Function:asBuffer, Function:loadToFloatArray, and Function:plot, and now allows spawning the plotting synth relative to a group or node rather than just a server (#3088).

Breaking change: File:mkdir now returns a Boolean indicating whether the operation was successful. Previously, it returned the File object (#3635).

Scrollbars now always appear for ScrollView on Linux an Windows, as a temporary workaround for a very odd dependency on the use of the scroll wheel (#3686).

sclang: Removed

Removed some unused Qt dependencies from the build system (#3472).

sclang: Fixed

Breaking change: Fixed a long-standing math error in SimpleNumber:expexp (#3786).

Fixed extreme CPU usage of sclang when built without Qt (#3772).

On Windows, the directory where extensions were installed was accidentally changed in 3.9. It has been reverted (#3751).

Fixed a crash when calling File.copy when the destination exists (#3633).

Fixed two Array:lace issues: a crash when any element is an empty array, and an error when no length argument is provided and any element is not an array (#3716).

Fixed conditions where Integer:forBy can cause sclang to freeze when the step size is 0 or a floating point value with an absolute value less than 1 (#3804).

Fixed some incorrect output in FunctionDef:dumpByteCodes (#3803).

Fixed Node:release getting stuck on negative release times, which are now equivalent to 0 (#3741).

Fixed == on Signal objects randomly returning the wrong result (#3970).

Class library: Added

UnitTest.passVerbosity allows changing the verbosity of test failure reports. See the UnitTest help file for more information (#3615).

Added new UGen methods .snap and .softRound (#3429).

Node:query has a new action argument, allowing specification of a callback function (#3701).

.degrad and .raddeg are now implemented for UGens (#3821).

Class library: Changed

The default behavior of SerialPort.devices pattern matching has been improved to match a wider variety of devices on macOS and Linux (#3809).

Internal calls to .interpret have been removed from Color.fromHexString and History.unformatTime, improving both performance and security (#3527).

Class library: Deprecated

SerialPort.cleanupAll is deprecated (#3809).

Providing an integer index for SerialPort.new is deprecated (#3809).

Class library: Fixed

BufWr.ar no longer allows its input signals to be control rate, which caused the server to read from garbage memory (#3749).

Buffer:query returned incorrect results if multiple query messages are sent at once. This has been fixed (#3645).

Fixed fragilities in path joining methods such as +/+, withTrailingSlash, and withoutTrailingSlash (#3634).

Fixed bugs when certain pattern classes are passed in 0 as the number of repeats (#3603).

Fixed Event.addEventType ignoring the parentEvent argument (#3736).

Fixed Pkey being skipped because the default number of repeats is nil instead of inf (#3724).

Fixed some harmless but annoying errors about extensions of nonexistent classes when sclang is built without Qt (#3770).

ProxySpace:linkDoc was broken — switching documents did not actually change ProxySpaces. This is fixed now (#3764).

Recorder:prepareForRecord produced an error if the recordings path does not exist. It now makes the directory if it doesn't exist (#3788).

Fixed bugs when providing multiple paths in ServerOptions:ugensPluginPath (#3754).

Fixed HelpBrowser (the class, not the IDE help browser) being unusable since it didn't trigger rendering of help files when links are clicked (#3832).

Fixed some bugs in EnvGate: throwing an error when fadeTime is a constant rather than a UGen input, and i_level not behaving as documented (#3797).

Fixed occasional hangs when rebooting supernova (#3848).

Fixed confusing user feedback with the "Check for updates" button in the quarks GUI (#3986).

Buffer methods ensure that the buffer number in outbound OSC messages is an integer (#3907). This fixes errors in supernova, which is stricter than scsynth about the buffer number type.

Fixed confusing user feedback with the "Check for updates" button in the quarks GUI (#3986).

Fixed missing default arguments in fold2, wrap2, and excess methods of Collection for consistency with SimpleNumber (#4037).

Fixed incorrect template matching behavior in OSCFunc and related functionality (#4027).

Fixed "Message 'extension' not understood" preventing Image from working (#3728).

IDE & SCDoc: Added

The IDE has a prettier default theme (#4025). The old theme still exists as "classic."

The IDE now properly highlights scale degree literals like 4s (#4032).

IDE & SCDoc: Changed

The IDE has a prettier default theme (#4025). The old theme still exists as "classic."

The IDE now has a unified look across all platforms, and its color scheme adapts to match the editor theme (#3950).

The SCDoc TOC and menubar have been redesigned again (#3831).

Various tweaks to the appearance of the IDE: nicer tabs (#3992), better border colors (#4022).

IDE & SCDoc: Fixed

When starting the IDE, detached docklet sometimes spawn as unresponsive. This has been fixed (#3660).

Syntax colors in the help browser now match the IDE (#3883).

Only one preference window can be open at a time now (#3988).

Fixed tabs reversing in order when restoring a session (#3942).

3.9.3 (2018-04-07)

Contributors to this release: brianlheim, mneilsen, patrickdupuis, telephon

General: Fixed

It is now possible to build the project using a system install of yaml-cpp. Previously the SYSTEM_YAMLCPP CMake option was broken (#3557).

Improvements to documentation on writing and designing classes (#3605).

sclang: Fixed

Fixed a regression from 3.8 to 3.9 that prevented the tilde character from being expanded to the user's home directory during class library compilation (#3646).

Class library: Fixed

Fixed an issue with handling of ranges in RangeSlider:setSpan and :setDeviation (#3620).

Fixed a regression in Score's multichannel expansion from 3.9.1 to 3.9.2 (#3608).

3.9.2 (2018-03-23)

Contributors to this release: adcxyz, brianlheim, davidgranstrom, jamshark70, patrickdupuis, snappizz, telephon, vivid-synth

General: Fixed

Improvements to various documentation pages (#3587, #3526)

Fixed CMake configuration errors that prevented successfully building on Windows when the project path contains spaces (#3525).

UGens: Fixed

Fixed PSinGrain growing in amplitude after it was supposed to finish (#3494).

sclang: Fixed

sclang now creates a configuration directory on startup, rather than waiting for it to be created by another action. This step is skipped if sclang is run as a standalone (-a) or if a language config file is specified with the -l option (#3577).

SequenceableCollection:unixCmd now allows respects PATH instead of strictly requiring the executable path (#3501).

Class library: Added

A new method, Platform:killProcessByID, was added (#3499).

Class library: Changed

LanguageConfig:store throws an error if it fails to write (#3577).

Class library: Fixed

Fixed an off-by-one error in a warning message for Server:clientID_ (#3487).

Event:isRest now returns true if the event's \isRest entry is true. This usage was backported from 3.8 and is deprecated (#3521).

Server now tries to recover in the case of a lost connection between client and server (#3486).

Fixed an error when producing a Score containing an Event with a multichannel timingOffset (#3544).

IDE & SCDoc: Fixed

The help browser table of contents popout no longer has redundant "table of contents" text (#3576).

3.9.1 (2018-02-05)

Contributors to this release: antonhornquist, aspiers, brianlheim, cappelnord, florian-grond, gusano, jamshark70, patrickdupuis, redFrik, shimpe, telephon

General: Added

Introduced Guard integration that allows sclang UnitTests to be automatically rerun whenever a file changes (#3369).

Bleeding-edge builds are now uploaded for Windows. See the Windows README for details (#3441).

General: Fixed

Debugging information is improved when building a Windows installer package (#3464).

scsynth and supernova: Fixed

supernova only looked for plugins in a plugins/ subfolder of the provided extensions directory. This has been fixed to be consistent with scsynth (#3433).

UGens: Fixed

Fixed Index, IndexL, FoldIndex, WrapIndex, IndexInBetween, and DetectIndex incorrectly downsampling audio-rate index arguments (#3436).

sclang: Fixed

The GUI class library folders were installed even when building sclang without Qt, resulting in unbound primitives. This has been fixed (#3456).

Some default class library directories had to be manually created. sclang will now create them for you if they don't exist (#3469).

Class library: Fixed

Fixed a Routine not being properly terminated when running CmdPeriod.run (or hitting an equivalent shortcut) when a Server:plotTree window is open (#3423).

Fixed LevelIndicator:style_ doing nothing and printing the warning Qt: WARNING: Do not know how to use an instance of class 'Meta_QLevelIndicatorStyle' (#3398).

Fixed Git.checkForGit returning nil (#3445).

The SynthDef compiler optimizes a + b.neg to a - b, but other UGens that depend on b.neg would also be incorrectly removed in some cases. This has been fixed (#3437).

In 3.9.0, the group key broke in the "grain" event type. This has been fixed (#3483).

IDE & SCDoc: Added

New IDE themes have been introduced for the editor and post window: Solarized, Solarized Dark, and Dracula (#3412, #3410).

IDE & SCDoc: Changed

Set the default font in the IDE for macOS to Monaco, instead of the rather silly non-monospace font that has been the SC default for over a decade (#3404).

IDE & SCDoc: Fixed

Fixed duplicate SCIDE icons in GNOME, and fixed the SCIDE icon looking wrong (#3380).

Fixed SCDoc breaking with page titles containing a single quote character (#3301).

Fixed an error due to lack of input sanitization when trying to open help (Cmd+D/Ctrl+D) or references (Cmd+U/Ctrl+U) on text containing a double quote character (#3277).

3.9.0 (2018-01-13)

We are proud to announce the arrival of SuperCollider 3.9.0! Apologies for being so far behind schedule; we hope the improvements you'll find here will more than make up for it. In 3.9.0, determined contributors have fixed some of SuperCollider's major cross-platform compatibility demons, addressed longstanding issues in the IDE and language, and added new features and bugfixes across the board.

Many thanks to all who contributed to this release: adcxyz, awson, bagong, brianlheim, cappelnord, carlocapocasa, crucialfelix, danstowell, defaultxr, dyfer, elifieldsteel, gagnonlg, ghost, gusano, jamshark70, jd-m, jleben, jmckernon, joshpar, jreus, LFSaw, llloret, LucaDanieli, Magicking, miguel-negrao, muellmusik, patrickdupuis, porres, privong, redFrik, samaaron, scztt, simdax, smoge, smrg-lm, snappizz, telephon, thormagnusson, tiagomoraismorgado88, timsutton, vivid-synth, vividsnow, yurivict, and many more in the SC community who helped in ways other than participation on GitHub.

Known Issues

The IDE server status display turns yellow after a few seconds when opening s.makeGui. This does not cause any usability issues (#3310).

Only the first pages of the HTML files produced by SCDoc are printed in web browsers (#3395).

The help browser does not remember the last position open in a document when navigating through history, and just jumps to the top of the file (#3396).

Supernova loads plugins from "Extensions/plugins" rather than "Extensions" (#3391).

LevelIndicator.style() is broken, which leads to confusing warning messages (#3398).

File.copy crashes the interpreter if the destination file exists (#3401).

On Windows, SerialPort is not available (#1008).

On Windows, Supernova is not available.

On Windows, the command-line sclang interpreter is not available.

General: Added

scvim has seen numerous enhancements now that an actively maintained fork has been merged in (scvim #11).

SuperCollider can now be built on Windows using the MSYS2 toolchain, thanks in particular to @awson and @bagong. (PortAudio #1, HIDAPI #5, #2473, #2704)

SuperCollider can now be built on FreeBSD, thanks to @shamazmazum and @yurivict (#2834, #2704, HIDAPI #8, #3131).

Detailed documentation on creating macOS standalone applications with SuperCollider has been added, thanks to @adcxyz (#2881).

Support for multiple sclang clients connecting to the same server is greatly improved, thanks to @adcxyz.

A CODE_OF_CONDUCT.md and CONTRIBUTING.md have been added to the repository (#3001).

Higher-resolution raster versions of the SC cube logo have been added to the top-level icons/ directory (#3023), and a retina-friendly .icns file (#3060).

General: Changed

Breaking change: sc_gcd in the plugin interface now conforms to gcd(n, 0) == n instead of gcd(n, 0) == abs(n) (#2980). This also affects the method SimpleNumber:gcd.

The macOS plist file now shows the full version number for both the Version String and Shortened Version String (#2487).

General: Fixed

A typo in the build system prevented the -msse compiler flag from being properly set for gcc and clang (#2623). This may fix subnormal number issues in scsynth that some users have been experiencing.

Fixed a fontification break in scel when too many classes are defined (#2508).

Fixed build failures on FreeBSD (#3126), GCC 7 (#3226), and newer versions of Boost (#3227).

scsynth and supernova: Added

scsynth and supernova now support a /version command, which responds with a message of the form /version.reply program major minor patch branch commit (#2546, #2598). See the Server Command Reference for full details.

scsynth and supernova: Changed

On macOS, if scsynth's input and output devices have mismatched sample rates, an error is thrown and the server does not boot. Setting the number of input channels to 0 (-i 0 on the command line and s.options.numInputBusChannels = 0 in sclang) now bypasses this error (#2610).

Disabled Nagle's algorithm for TCP communication in scsynth (#2613). Nagle's algorithm increases bandwidth at the cost of delay, which is undesirable in the context of SuperCollider. Both supernova and sclang have it turned off.

scsynth and supernova: Fixed

The /b_read and /b_readChannel messages experienced intermittent failures to read sound files, most notably affecting Buffer.cueSoundFile. This has been fixed (#2793).

UGens: Added

A new UGen, Sanitize, replaces infinities, NaNs, and subnormals with another signal, zero by default (#2561).

The doneAction argument to DetectSilence can now be modulated (#2379).

UnaryOpUGen now supports the bitwise not operator bitNot (#2381). It used to simply fail silently.

UGens: Changed

Breaking change: The application binary interface (ABI) for server plugins has changed (#3129). This has an important impact: plugin binaries compiled for SuperCollider 3.8 will not work with SuperCollider 3.9 and vice versa. Please recompile your plugins.

Breaking change: FOS.ar with control-rate coefficient inputs incorrectly initialized its coefficients at 0 and ramped to the correct values over the first control period. This has been fixed (#2658). To restore old behavior, multiply each coefficient by Line.ar(0, 1, ControlDur.ir).

UGens: Deprecated

Donce, a demand-rate UGen with no identifiable purpose, is deprecated (#2564). It was most likely used in the production of electronic donce music.

UGens: Fixed

A number of UGens were discovered to have serious initialization bugs (#2333) where the UGen would output an initial sample of garbage memory. This can create audio explosions if the buggy UGen's output is fed into certain filter UGens like LPF or Delay1. These bugs have been fixed, affecting:

  • BeatTrack
  • BeatTrack2
  • CoinGate
  • Convolution
  • Convolution2
  • Convolution2L
  • Convolution3
  • DetectSilence
  • DiskIn
  • DiskOut
  • IFFT
  • KeyTrack
  • LFGauss
  • PartConv
  • PV_JensenAndersen
  • PV_HainsworthFoote
  • RunningSum
  • StereoConvolution2L
  • Unpack1FFT

Fixed a bug with TGrains ignoring the amp parameter (#2809).

Dibrown no longer ignores the length argument (#2654).

Pitch no longer ignores the median argument (#2953).

Fixed a build error in DiskIOUGens on Windows (#3015).

Fixed AudioControl outputting garbage data if a bus is mapped to it but nothing is playing to the bus (#3063).

Fixed incorrect math in PanAz.ar with audio-rate input signal and position (3139).

sclang: Added

Regression tests for the sclang lexer, parser, and compiler have been added (#2751). This will make it easier to make fixes to these components in the future.

sclang: Changed

Breaking change: sclang's nestable multiline comments had some mistakes. In particular, sometimes sclang's lexer would incorrectly process overlapping combinations of /* and */, so e.g. */*/ would be interpreted like */ /* */. This has been fixed (#2625).

The maximum number of MIDI ports has been increased from 16 to 128 (#2494).

The startup post "NumPrimitives = #" is reworded to "Found # primitives" (#3139).

sclang: Removed

Removed some unhelpful memory addresses from call stack output in error printing (#2951).

Removed some accidentally retained debug posts when the language starts up (#3135).

sclang: Fixed

Fixed help files failing to open on Windows if the user's name contains a non-ASCII character (#2861).

Fixed non-ASCII characters breaking the Visual Studio debugger (#2861).

Fixed a crash in Object:perform when the selector is an Array whose first element is not a Symbol, e.g. 0.perform([0]) (#2617).

thisProcess.nowExecutingPath is no longer corrupted by Routine:stop (#2620).

TextView:selectedString_ now works when the selection size is zero (#2648).

Fixed a crash when a method or class/instance variable is named "none" (#2638).

Exceptions occurring in primitives no longer print unavoidable error messages even when wrapped in try-catch (#2876).

Fixed a crash when Dictionary:keysValuesArrayDo is called with nil as an argument (#2799).

Fixed WebView:onLinkActivated handler failing to fire (#3003).

Fixed GUI objects failing to display when launched from the action of unixCmd (#3009). You will still need { }.defer, however.

Fixed QImage:getColor always returning zero for the green channel (#3190).

Class library: Added

The UnitTest quark has been incorporated into the main repository (#3168).

Added a rewind method to CollStream (#2400).

Added four new class methods to File for convenience: readAllString, readAllSignal, readAllStringHTML, readAllStringRTF (#2410).

Pstep accepts an array as a duration argument (#2511).

Help files originating from extensions now display a plaque for visibility (#2449).

For consistency with other Platform class methods, Platform.recordingsDir may be used instead of thisProcess.platform.recordingsDir (#2877).

SequenceableCollection has two new instance methods: flatten2 and flatBelow (#2527). Additionally, flatten is faster now.

The ~callback function is now available for all Event types instead of just "on" events (#2376).

Event types now include a parentEvent, which provides default values. (#3021).

New aliases for done actions, e.g. Done.freeSelf == 2, are introduced for better readability (#2616). See the Done helpfile for details.

A new class, Recorder, allows recording independently of the Server object (#2422).

SequenceableCollection:reduce supports an adverb argument (#2863).

A recordingsDir method has been added directly to Platform, which transparently calls thisProcess.platform.recordingsDir (#2877).

View:-resizeToBounds, View:-resizeToHint, and Window:-resizeToHint were added to make it easier to force Views and Windows to automatically resize (#2865).

Maybe now supports collection methods at, atAll, put, putAll, add, addAll (#2437).

BusPlug:-play can now accept a Bus object (#2845).

Breadcrumb links in helpfiles now have separate links for each node in the hierarchy, and pages with multiple categories have separators between the categories (#2916).

SoundFile:*openWrite now takes additional parameters (#2926).

Two new instance methods were added to Symbol: isBinaryOp and isIdentifier (#2955).

Added three convenience methods: View:resizeToBounds, View:resizeToHint, and Window:resizeToHint (#2865).

Added Collection:asEvent for easy conversion to an Event (#2871).

DeprecatedError now shows you the file path of the deprecated method (#3039).

Added two new methods to SimpleNumber: snap and softRound (#3160).

ReadableNodeIDAllocator offers a new optional replacement for PowerOfTwoAllocator that assigns node IDs in a way more readable to humans when working with multiclient setups (#3179).

A new "booted" stage has been added to Server objects that have been booted but may not be running yet, accessible via Server:hasBooted and Server.allBootedServers (#3275).

Class library: Changed

Breaking change: Rests in the patterns system have been restructured (#2802). Instead of using the isRest event property, events are considered rests if one of their properties is a Rest object. You must use instances of Rest rather than the rest class itself -- use of Rest instead of Rest() is now deprecated.

Breaking change: Fixed Dictionary:== only comparing the values of the two dictionaries, not the keys (#2737).

Breaking change: Fixed a mistake where Pen.quadCurveTo used the primitive for a cubic Bézier instead of quadratic (#2553). To restore the old behavior, change Pen.quadCurveTo to Pen.curveTo.

Breaking change: The convenience instance methods Env:kr and Env:ar had the arguments mul and add renamed to levelScale and levelBias, since they don't behave like typical mul and add arguments (#2866).

Collection:processRest returns the processed collection rather than the original (#2497).

The maximum number of MIDI ports has been increased (#2494).

Attempting to use a control-rate signal as an input to Hasher.ar now results in an error (#2589).

The "Cleaning up temp synthdefs..." post message is suppressed if there is nothing to clean up (#2629).

To match Out and ReplaceOut, LocalOut and XOut now correctly validate their input, checking for a non-zero number of channels (#2659, #2659).

The argument to Pattern:fin has a default of 1 for consistency with Object:fin (#2480).

Complex:reciprocal is faster now (#2890).

Buffer:write takes floating point arguments, truncating them to integers (#2547).

Conversion methods among collection types has been improved and documented (#2871).

clientID is now protected from being changed while the server is running (#3275).

Class library: Deprecated

OSCresponder, OSCresponderNode, and OSCpathResponder now emit deprecation messages, and will be removed after at least a year (#2870). Use OSCFunc or OSCdef instead.

Speech is deprecated (#2424), and will be removed in 3.10. The rationale is that its audio output is independent of the server (severely limiting use in compositions), it depends on a proprietary macOS API with no prospect of cross-platform compatibility, and it is too niche to justify inclusion in the core library.

The WiiMote classes (WiiMote, WiiMoteIRObject, WiiCalibrationInfo, WiiMoteGUI, WiiRemoteGUI, WiiNunchukGUI) are deprecated (#2698). They never reached a stable state and have gone unmaintained and unused for years.

AudioIn is deprecated and will be removed in some future version (#2482). It was provided only for backward compatibility with SC2, so its deprecation is long overdue. Use SoundIn instead.

SplayZ has been deprecated for a long time, but it's finally on the "official" deprecation track and will be removed in 3.10 (#2631). Use SplayAz instead.

TDuty_old has been deprecated for a long time, but it now emits a warning and will be removed in 3.10 (#2677). Use TDuty instead.

Watcher is an old alias for SkipJack provided for backward compatibility. It is officially deprecated and will be removed in 3.10 (#2700).

Server:recordNode is deprecated. Use Recorder:recordNode instead (e.g. s.recorder.recordNode) (#2422).

The Server.set class variable is deprecated. Use Server.all instead (#2422).

SimpleNumber:quantize is deprecated. Use SimpleNumber:snap instead (#3160).

Server:userSpecifiedClientID is deprecated. Use Server:clientID instead (#3275).

Class library: Removed

Removed non-functional stub methods and classes related to Image: the classes ImageFilter and ImageKernel, and the Image instance methods lockFocus, unlockFocus, applyFilters, filters, filteredWith, addFilter, removeFilter, flatten, invert, crop, applyKernel (#2867).

Module, an unmaintained and unused class for serialization of Synths, has been moved to a quark (#2703).

Removed the openHelpFile instance methods of Object, String, Method, and Quark. These methods have been deprecated since 3.8.

Removed String:openTextFile and Symbol:openTextFile. Use String:openDocument and Symbol:openTextFile instead. These methods have been deprecated since 3.8.

Class library: Fixed

A number of instance methods in Buffer and Bus did not properly check to see if the object has already been freed, and would act on buffer #0 or bus #0 (which is especially dangerous for the free instance method). They now safeguard against this case and throw errors (#2936, #2960, #2993).

The useRanger option in EnvirGui broke in 3.7. This has been fixed (#2418).

IdentityDictionary methods collect, select, and reject retain references to the parent and proto objects (#2507).

On Linux, some MIDI methods created method override warnings. These have been silenced (#2717).

The "key" argument to Pn was not properly set on the first repeat. This has been fixed (#2833).

Fixed errors when using a DragSource inside a CompositeView object (#2804).

Fixed an interpreter crash when defining a SynthDef whose name is too long (#2821). More specifically, the inputs to UnixFILE:putPascalString and CollStream:putPascalString are now validated.

Server crashes are better handled by the interpreter (#2453).

The time display and the "start recording", "pause recording", and "stop recording" menu items now cooperate better with running Server:record, Server:pauseRecording, and Server:stopRecording (#2422).

Server:makeGui and Server:makeWindow broke in 3.8 — the fields in the windows went blank. They are working again (#2422).

A timing error with NodeProxy:-clear was fixed (#2845).

SoundFileView correctly displays its grid and does not draw the grid on top of the selection box (#2872).

The macOS plist file now shows the full version number for both the Version String and Shortened Version String (#2487).

Fixed instances of accidentally silencing error messages caused by neglecting to call Object:primitiveFailed (#2908).

Patched the possibility of inconsistent TempoClock state when the tempo is set via setTempoAtSec (#2078).

Fixed memory spikes when using MIDIFunc.sysex with a large srcID (#3005).

Fixed spaces sometimes being rendered as %20 in links in SCDoc (#3033).

Fixed Function:plot showing an empty graph if the server wasn't booted when the method was invoked (#3047).

Fixed blatant errors in Collection:asAssociations and Collection:asPairs where elements were dropped (#3101).

Fixed bugs in NodeProxy when using external servers (#3103).

History now outputs a correct timestamp on Windows (#3045).

Fixed Volume control failing to be persistent when rebooting the server (#3125).

Fixed SimpleNumber:asTimeString producing nonsensical results with the "precision" argument (#3166).

Server:clientID can now be changed, allowing multiple clients connect to the same server (#3178).

History and HistoryGui have been cleaned up (#3267).

Fixed duplicate node IDs involving Server.initTree (#3265).

Fixed supernova crashing when too many controls are used (#3196).

Volume now respects lag time when it is instantiated or destroyed (#3332).

IDE & SCDoc: Added

Entries in the Documents docklet can be reordered, and document tabs will automatically reorder to reflect this (#2555).

"Edit > Preferences > Editor > Display" has a new option that allows replacing tabs with a dropdown whose items are alphabetically ordered (#2555). This makes navigation easier in some performance contexts.

IDE & SCDoc: Changed

Server actions, which were previously in the "Language" menu, have been moved out to their own "Server" menu (#3049).

Changed "occurrences" to "matches" in the status bar in the Find and Replace features (#2702).

Many minor improvements were made to the look and feel of the documentation (#2944, #2945, #2947, #2948, #2967, #3006, #3022, #3025, #3034, #3175, #3346).

IDE & SCDoc: Fixed

Fixed SCDoc refusing to index any further documents if one document has a malformed copymethod:: command (#3050).

Some Linux systems had unreadable font colors in the autocomplete tooltips. This has been (finally) fixed (#2672).

Fixed a bug where Document:selectedString_ had no effect (#2849).

New tabs are now inserted to the right of the current tab instead of all the way at the end (#3053).

The help browser now has keyboard shortcuts for navigating back and forward (#3056). These shortcuts are OS-dependent and given to us by Qt.

Fixed the "Find in page..." feature in the help viewer skipping every other occurrence (#2903).

Fixed HTML checkboxes appearing in the upper left of the help viewer (#3028).

Fixed the right-click menu for the tabs appearing in the wrong place in macOS (#3042).

3.8.0 (2016-09-23)

Full Changelog

API change

  • Increase the default number of audio buses from 128 to 1024 #2239 by vivid-synth
  • server plugins: Unify panning behavior of granular ugens #2136 by snappizz
  • scsynth: commandline option (-B) to bind to specific address #2095 by llloret
  • PathName has potentially superfluous methods #1909 by telephon
  • class library: sound file view - rename argument startframe -> startFrame to match convention #1684 by telephon

comp: scsynth

comp: server plugins

comp: supernova

comp: sclang

comp: class library

comp: help

comp: HID

  • Update pointer to submodule hidapi #2420 by bagong
  • Adjust pointer to hidapi to fix cmp0048 bug breaking build for cmake … #2342 by bagong
  • Update pointer to hidapi submodule #2330 by bagong
  • HID: various small additions to adjust to developments in hid submodule #2123 by bagong
  • Switch to hidapi subomodule in sc org repo #2111 by bagong

comp: Qt GUI

comp: SCDoc

  • Adjust Help title for Windows return value of folder #2392 by bagong
  • fix link to class file source in scdoc header #2131 by snappizz
  • Change "source" to "helpfile source" in scdoc footer #2130 by snappizz
  • SCDoc HTML renderer includes literal spaces in links with anchors #1650 by jamshark70
  • SCDoc shows getters where there are only setters #837 by muellmusik

comp: build

  • Document cmake dependency for supernova #2207 by snappizz
  • Explain /path/to/qt5 in Linux README #2205 by snappizz
  • move jackey include dir from server to scsynth #2179 by flv0
  • Fix oscpack build fail on various architectures #2174 by danstowell
  • Simplify MS Compiler detection to avoid cmake warning #2120 by bagong
  • Travis: Update OSX build system and correct omissions #2092 by bagong
  • sclang: changed some boost code to std #2091 by llloret
  • Switch to portaudio repo in supercollider org #2088 by bagong
  • travis: move git key to env, aws fixes #1987 by scztt
  • Set correct hash for portaudio submodule #1971 by bagong
  • cmake: library locations, hide them from the default listing of user cmake variables #1968 by danstowell
  • Add cmake options list to READMEs #1965 by vivid-synth
  • Update linux travis recipe #1932 by patrickdupuis
  • build: bump GCC version requirement up from 4.7 to 4.8 #1839 by danstowell
  • Building master with gcc 4.7 fails due to 'is_trivially_destructible' in SC_PlugIn.hpp #1820 by danstowell

env: Qt IDE

env: scel

env: scvim

os: Linux

  • Do not allocate all channels reported by Pa_GetDeviceInfo / use memcpy instead of for-loop #1943 by hzulla
  • Fixes/alsa midi fixes #1760 by timblechmann
  • HID final cleanup, and LID adaption to use similar API #1573 by sensestage

os: Windows

  • Fix problem with boost interprocess module on Win #2457 by llloret
  • Update Windows Readme #2419 by bagong
  • Exception in World_New: boost::interprocess::intermodule_singleton initialization failed #2409 by brachna
  • Fix QLocalSocket problem under Windows #2197 by llloret
  • Windows exit nicely master #2107 by llloret
  • Make MIDI work on Windows (PR for master) #2106 by llloret
  • nsis windows for master branch #2103 by llloret
  • Make Vista the minimum required Windows version #2017 by llloret
  • Make the required version Windows Vista #2016 by llloret
  • sclang: Fix to get Object: render to work on Windows #1899 by antonhornquist
  • Windows: sclang crashes on executing menu-item "Quit interpreter"/freezes on evaluating 0.exit #1578 by bagong
  • Server not shut down on IDE-close #1449 by bagong
  • MIDI sysex is not implemented for Windows (SC_PortMIDI.cpp) #1200 by sensestage

qt5

quarks

architecture: arm

  • Provide compiler flags for armv6l and armv7l and add a few hints for building on RPi and headless #2065 by bagong

bug

enhancement

Miscellaneous

3.7.2 (2016-06-03)

Full Changelog

This patch release fixes the Windows including MIDI. HID is still not quite working on Windows. Many thanks to: @bagong and @llloret

SC VIM is now a git submodule. This affects mainly developers. VIM support can be installed as per the documentation - nothing has changed in how you use it. We changed this in 3.7.2 as well as on master (3.8 development) so that switching back and forth between branches wouldn't be super annoying.

Fixes:

  • Midi not working on Windows #1922
  • Windows: opening SC via system registered document types faulty #2022
  • HIDdef.element forwards arguments incorrectly #2090

Closed Pull Requests

3.7.1 (2016-04-10)

Full Changelog

Enhancements

  • Native FLAC support for scsynth on OS X #1783
  • Libsndfile: have cmake prefer homebrew install over bundled version #1870 (bagong)
  • OS X Readme: note that Qt 5.5 is required, not Qt 5.6 #1931
  • class library: node proxy: improve shape error post #1889 (telephon)
  • Server.schelp: fixed description of scsynth method, changed wording, … #1894 (miczac)

Fixes:

  • Windows build system #1900 (bagong)

  • cmake: fix build when using system boost #1896 (danstowell)

  • Correct accidental msys leftovers in findPortaudio #1941 (bagong)

  • Remove -fstrict-aliasing from the MinGW build to allow using MinGW 4.9.2 #1923 (bagong)

  • Quarks.update("quarkname") does not always update correctly #1895

  • fix #1895 : update Quark by git pull and git checkout master #1954 (crucialfelix)

  • Quarks Windows fixes #1956 (bagong)

  • Errors when closing scope window #1878

3.7.0 (2016-03-13)

Full Changelog

Enhancements

  • New Quarks system using Git #1800
  • Qt GUI: TextView's enterInterpretsSelection treats line wrapping like a hard line break #1637
  • UnitTest missing documentation #1610
  • LinLog function? #1555
  • sclang and scserver use the same icon #1548
  • help: recent changes for 3.7 documentation #1516
  • MIDIFunc does not deal with allNotesOff message #1485
  • Tab does not work in IDE (on OSX) #1453
  • Feature: IDE preference to disable displaying help pages in the autocomplete popup #1435
  • quarks (new) - suggestion - directory.txt use https instead of git protocol. #1397
  • quarks (new) - Add a way to update quarks (git pull or delete folder and clone again) #1386
  • Use reader/writer thread for all disk IO (DiskIn / DiskOut ugens, others if applicable) #1381
  • quarks (new) - canceling git checkout #1376
  • help: News in 3.7 #1347
  • class library: addition of SimpleController::removeAt #1328
  • scsynth ought to print the version number when passed the --version flag #1310
  • UGen to report node ID #1212
  • incomprehenisble error message with Function-play and empty array #1128
  • pattern cleanup shouldn't be passed around #1049
  • README file and windows build instructions #1034
  • Enhance OSX readme for 3.6.6 #1001
  • README_OS_X.txt is overly complex #960
  • "Exception when parsing synthdef: corrupted synthdef" - report which synthdef caused the error. #904
  • "start coding" window title #898
  • Windows: No 64-bit version #853
  • toggle dumpOSC via menu entry #848
  • default file extension missing #838
  • open file dialog: start in last used directory across sessions #805
  • recent files: hide no-longer existent files #804
  • Faint highlighting on the cursor's line #793
  • display volume in server status bar #762
  • mouse wheel volume control (server status bar) #760
  • post message in post window when sclang quits/crashes #743
  • I would like to ask for a ListView.selection_ method. #741
  • Autosave #725
  • NRT message length limit #714
  • problems with PandaboardES and SC #689
  • More obvious access to SCIDE help file #682
  • get rid of jitter for non time stamped bundles #648
  • Popup Index for class file tabs #629
  • semicolon ending block evaluation #627
  • Missing functionality in Qt: QuartzComposer #624
  • Missing functionality in Qt: Checking whether a window is closed #622
  • Missing functionality in Qt: SCMenuItem #617
  • Missing functionality in Qt: SCImage #616
  • Please make ctrl-return behavior configurable WRT execute region #603
  • Command like "Balance Parens" from sc.app #602
  • Soften, or allow customizing, the bracket-mismatch color #599
  • Tab behaviour #593
  • scide - help browser window font should be adjustable #587
  • hide line numbers #585
  • "Start sclang" should be greyed out when language is running #584
  • Double-click on a float doesn't select all of it #581
  • Hitting Cmd/Ctrl while inertial scrolling causes rapid zoom in / out #568
  • find next / previous key binding #555
  • If untitled doc from start has not been used close it when first file is opened #553
  • Undocking widgets and tabs as proper windows #550
  • Move cursor to end of document on down arrow key in last line. #543
  • New method to get complete (multiple) item selection from QListView and QTreeView #535
  • Several items in the preferences can be set to the same shortcut #516
  • language config dialog #515
  • bracket auto-paring #513
  • A few basic issues concerning the replacement of SCApp by SCIDE #511
  • ctrl-click on document icon to open file path #510
  • support for editing plain-text files #495
  • Method Call Assist: Handy way to insert an argument name for keyword addressing #492
  • integrate scdoc into ide #471
  • Class method autocompletion and method signatures of view redirect classes #469
  • (Future) More sophisticated regexp find/replace #464
  • Looking up definition from post window #461
  • Request keyboard shortcut to navigate up/down to the next empty line #453
  • rtf import of (erroneous) weblinks #448
  • Document open/save dialogs: Keyboard shortcut to navigate to the parent folder #445
  • Keyboard shortcut to select a code block enclosed in () #444
  • Dark-on-light color scheme: orange for ~envVars is too bright #442
  • Shortcuts to add and remove /* */ pairs #441
  • Add menu command to save all dirty files #439
  • make post window scrollback configurable #430
  • switch session dialog #429
  • case-insensitive search in `open definition' dialog #428
  • Documentation dock widget #420
  • SC-IDE: Show full path somewhere #413
  • autocompletion for literals and brackets #410
  • insert key should toggle overwrite mode #407
  • Save dialog should provide options for scd and sc #405
  • keyboard shortcut for "clear post window" #404
  • .sc and .scd links in Help should open in scide #402
  • Quick toggle of spaces/tab indentation #400
  • Word wrap #399
  • Show help and definition don't work on post window #398
  • F1 is an awkward keyboard shortcut for help on Macs #397
  • Split pane tabs #396
  • Provide built-in color schemes #387
  • Preview of color settings #386
  • show references to symbol #384
  • drag/drop support for scide #383
  • popup list view to cycle open documents #382
  • scide desktop integration #381
  • key combinations for commenting/uncommenting #380
  • programmatically resize or set a preferences for IDE window placement #376
  • server control widget #372
  • Instance method auto-completion: group offered methods by name #371
  • Method call aid: highlight proper argument when entered "by name" #370
  • Integrate help with auto-completion #368
  • Do not require a keyword to be selected to lookup implementations or help #364
  • Related to 312 and 313: Completion of instance methods by user selection of class #362
  • Option to preserve Poll output w/ lower verbosity #350
  • Support NRT with no output file, for analysis #349
  • [SC-IDE] Document implementation #333
  • [SC-IDE] Make OSX Bundle #331
  • [SC-IDE] Syntax colorize schelp files #330
  • [SC-IDE] Open file by searching for Class or method in a pop up window. #329
  • [SC-IDE] save or discard changes on quit per unsaved document #327
  • [SC-IDE] Update file view if it is updated by another program #326
  • [SC-IDE] Open recent file menu entry. #321
  • [SC-IDE] Open multiple files at the same time #318
  • [SC-IDE] Visual indicator if file is edited or not #317
  • show search-replace results in realtime #316
  • Code completion for Class names with hovering dropdown menu. #314
  • [SC-IDE] Code completion for Class methods with hovering drop-down menu. #313
  • Hovering popup with argument names for class methods #312
  • [SC-IDE] Open definition of method #309
  • postln with prefix and suffix #306
  • .data_ method for QSoundFileView implementation #304
  • Proposal for Helpbrowser layout #300
  • [Cocoa GUI] allowsReselection flag on SCPopUpMenu #299
  • allowsReselection for SC- and Q- listviews and popup menus #298
  • Implement focusGainedAction/focusLostAction for QtGUI #295
  • HTML doc and web standards #294
  • Control over the numeric x-labels in plot2 #293
  • Implement focusGainedAction/focusLostAction for CocoaGUI #291
  • Dwrand doesn't exist #287
  • Send to bus without creating new synths #286
  • BinaryOpUGen optimization needs review #284
  • Convolution UGens should all use SC_fftlib #276
  • Buffer:normalize #275
  • test 2 #274
  • test #273
  • mapping audio buses as synth controls #272
  • Getting sound card list with # of ins/outs from scsynth #271
  • source code #270
  • Post window should have correct window title #269
  • Menu Icon request #268
  • sources tarball #267
  • Windows Port #266
  • Topic/release notes 3 7 0 #1791 (crucialfelix)
  • Topic/select reject indices #1591 (LFSaw)
  • class library: fuzzy equal with relative precision #1587 (telephon)
  • Fix range in Function:plot #1454 (thormagnusson)

Fixed bugs:

  • scel: Directory change of sclang/scsynth in 3.7-beta1 causing error #1860
  • interpreter crashes after server boot when very large scd file is currently open #1823
  • SC_SndBuf.h (in master) can't compile on ARM because uses _mm_pause #1819
  • OS X: scsynth icon bounces forever in the dock #1804
  • supernova compilation error #1794
  • MulAddUGens broken #1793
  • Evaluate commands (Shift-Enter/Return, Ctrl-Enter/Cmd-Return, menus) work not reliably #1786
  • Bad values (nan) from underflow with pow() on Server #1766
  • setProperties fails for plots of signals #1762
  • Quarks: update fail when missing tag or no new version number #1735
  • Quarks.update calls wrong git method #1734
  • Typo / wrong cmake function name in CMakeLists.txt #1705
  • TwoWayIdentityDictionary.asCompileString misses to include key #1699
  • error with soundfileview.schelp #1682
  • Quarks on Windows: isPath regex is wrong #1670
  • Windows File.existsCaseSensitive does not work for directories #1668
  • calling ScIDE prSend from a routine makes the ide unreachable #1657
  • EnvGen \cub produces NaNs #1656
  • Scale.choose throws error #1653
  • d_removed #1648
  • Triggering EnvGen with Impulse.ar crashes the server #1642
  • DetectSilence won't free if it never encounters nonzero value #1639
  • IDE: Colorizer highlights "pi" at the start of a word #1613
  • LanguageConfig-includePaths stack overflow #1604
  • Removing Application Support/SuperCollider causes SCDoc to crash the interpreter #1589
  • supernova tries to set unallocated memory in b_set and b_setn #1588
  • failed to read Quark directory listing #1585
  • Example code in documentation doesn't play for LocalIn function. Missing Out.ar(0,local); #1563
  • OscUGens.cpp omits the required DefineSimpleUnit call for PSinGrain #1556
  • MethodOverride.printAll fails on OSX 10.8 #1538
  • NRT realloc failure #1537
  • useSystemClock breaks the server #1534
  • evaluating code in the help browser evaluates code in the document window instead #1532
  • Installing Quark with an invalid refspec should throw an error #1531
  • FreqScope doesn't work #1527
  • reboot of the internal server crashes interpreter #1526
  • Scroll view issue in Qt -- no vertical scroll bar #1521
  • (regression) Document keyDownActions: discrepancy between global and instance #1512
  • Issues with maximized (fullscreen) Qt windows on OS X #1506
  • WebView auto-closes when used without explicit parent #1505
  • LFPulse UGen gives asymmetrical waveform when duty (width) is 0.5 #1501
  • MIDIdef.mtcQuarterFrame #1496
  • WebView closes after displaying scrollbar #1489
  • MIDIIn.connectAll connects to wrong ports on Linux #1487
  • Sclang client crashes on serial port close from data sender #1479
  • Quarks: memory corruption(s) #1476
  • Windows: New Quarks system: installed Quarks not recognized #1475
  • How to complete unload plugins PR? #1473
  • Quarks: refix the valueing of isCompatible #1463
  • Slider with an increment fires action even when value doesn't change #1460
  • Scsynth zombie when quitting scide #1456
  • IDE Help popup -> crash #1452
  • Quarks windows path error bug #1451
  • Error on interpreter startup #1448
  • Font.defaultMonoFace/.defaultSansFace/.defaultSerifFace return the same value #1447
  • Switching a session causes the IDE to segfault #1430
  • Quarks conflicts with case insensitive file systems #1429
  • Using Function-try inside an ArrayedCollection.do loop corrupts interpreter #1428
  • MIDIFunc.noteOn does not work with floats when Arrays of numbers are passed #1426
  • Sclang keeps crashing on recent build (Win) #1405
  • Preferences/Editor/Fonts&Colors/Color:Current Line: sample text display doesn't update to the color selected in Text #1403
  • icon representation of sclang and scserver: and still jumping #1399
  • Blank help window #1395
  • ERROR: ScIDE not connected #1390
  • scdoc - can't run code from help window. #1385
  • GridLayout spanning bug #1383
  • Server window should use reasonable default record buffer size #1380
  • quarks (new) - installing local quark does not install it's dependencies it only links. #1378
  • quarks (new) - dependencies specified with git url and refspec not working ? #1377
  • Server Gui volume bug (gitreports.com) #1370
  • LanguageConfig.current problems #1369
  • same cubic icon with scide and sclang (OS X) #1367
  • OSX/IDE: default key for "trigger autocomplete" cmd-space conflicts with spotlight #1365
  • IDE: Splits & Tool panels: after closing panel with esc keyboard focus will always move to top left split/pane #1363
  • New Quarks: if sclang_config.yaml doesn't exist prior to install of Quark, include-path is not written #1362
  • Quarks install on Windows fails in parseQuarkName #1346
  • fix travis builds posting to github #1339
  • DiskIOUGens zombies #1331
  • supernova dont report lateness #1323
  • .argumentString fails for Methods with argNames==nil #1320
  • Delay1's first output sample is its input, rather than 0 #1313
  • Poll ignores initial trigger #1312
  • OSCdef:free does not free OSCdef when (srcID != nil) #1306
  • GeneralHID documentation misleading #1303
  • drag and drop files to expand paths broken #1295
  • LinXFade2 pans backward in at least some cases #1294
  • Disable tokenizing and auto-indent for schelp documents #1292
  • _String_Format primitive eats backslashes #1291
  • argumentString includes 'this' for Method #1289
  • ide "Open Recent" doesn't update when loading a new session #1287
  • MultiSliderView.action_ not triggered by value changes via keyboard #1285
  • TRand, TExpRand, TIRand are broken for audio-rate inputs #1278
  • UserView with drawFunc loops infinitely when resized by code #1274
  • HelpSource is not installed on Linux anymore #1273
  • MoreDocument: selectionStart doesn't update upon document changes #1254
  • cmake version should be over 2.8.11 for 3.7 #1247
  • notes may hang in NodeProxy when using synth def names (symbols) #1246
  • "String".newTextWindow complaints #1238
  • Primitive '_ScIDE_SetDocSelectionMirror' failed. #1228
  • dumpOSC method posts status messages when it shouldn't #1227
  • recent build - osx crashes 10.7 #1226
  • getting these errors WARNING: Attempted to modify missing Text Mirror for Document #1220
  • .post in .onFree() doesn't post. #1219
  • help-installation broken - possibly under Linux only #1218
  • REPL sometimes doesn't Post #1216
  • TGrains & LocalBuf #1204
  • linux: MIDI - rescanning MIDI.connectAll does not note new ports without disposing client first #1194
  • incorrect plugin directory in cmake: exception in GraphDef_Recv: UGen 'Control' not installed #1181
  • BlockSize UGen not working due to typo Blocksize -> BlockSize #1180
  • fatal error: tlsf.h: No such file or directory #1176
  • help not installed properly (at least under Linux) #1174
  • Keyboard-shortcuts that contain right or left arrow are not persistent across sc restart #1170
  • Menu-item 'Show Spaces and Docs' confusing #1169
  • Pbindef broken when overloading play key #1167
  • DiskIn channel limitation #1162
  • Document.globalKeyDownAction doesn't apply to new code windows in the IDE #1159
  • synth order shouldn't matter for TrigControl #1145
  • two Dictionaries merge to an Event #1142
  • Crash after launching sc with floating Doc panel #1139
  • Qt5 branch in Ubuntu exhibits some seriously weird behavior #1138
  • ide toggle "Dump OSC" sticks when recompiling sclang #1136
  • Commit f7b708553 breaks Pan2 where a mono NodeProxy is the source #1116
  • JitLib: Ndef.play sending stereo output to bus 0 #1114
  • Jitlib: Ndef(\y).play(numChannels:2) causes error #1113
  • scvim doesn't close down properly #1111
  • SynthDescLib send can cause recursive sends #1110
  • findAllRegexp seems to be broken #1108
  • tcp server<->sclang communication is broken in 3.7 #1099
  • setting font in TextView fails #1097
  • NdefMixer clips output channel to 99 #1096
  • Incorrect window position with multiple displays and negative x value #1090
  • NdefMixer bug - calling controlspec on EZText #1083
  • keyDown in QtGUI doesn't pass char as indicated for non-printing chars #1081
  • Plotter doesn't respond to arrays of nil as minval/maxval as expected #1078
  • Function-plot scales each channel separately #1077
  • server crashes on control rate input to audio rate DelTapWr #1065
  • dumpOSC doesn't post array type chars #1064
  • EnvGen releases incorrectly for early gate #1063
  • switch called with just one function without var declarations crashes sclang #1056
  • sclang EXC_BAD_ACCESS (SIGSEGV) #1051
  • Pcollect behaves incorrectly with event as input #1048
  • Pcollect behaves incorrectly with event as input #1047
  • SplayAz fails when input array has only one element #1045
  • SplayAz fails when input is not an array #1044
  • multichannel control mapping spill over #1037
  • Document title method returns a Symbol - should be a String #1031
  • OSX - sclang crashing #1030
  • sclang - currently not starting properly on terminal due to new document stuff #1026
  • EnvGen releases incorrectly for very very short envelope segments #1023
  • 'Host not found' error in 10.9 #1016
  • supernova: UIUGens get built but not installed #1010
  • Windows - possible fix for if there is no default input or output device on a machine #1009
  • dictionary doesn't freeze properly #1007
  • .blend outputs array rather than signal in Signal #1004
  • long enough function chain causes sclang to output bogus results #999
  • Cmd-W doesn't close help window when it is detached and front #996
  • scide: Object::connect: No such slot ScIDE::DocumentManager::updateCurrentDocContents(int, int, int) in ../editors/sc-ide/core/doc_manager.cpp:907 #985
  • scrolling scide is extremely slow on osx #984
  • sc does not build against 10.9 sdk #982
  • sclang consumes high CPU when opening a session with multiple files #980
  • [ide] help->"how to use the supercollider ide" detaches help browser #976
  • NamedControl.new() returns single-element array of Lags when it should return a Lag #973
  • NdefGUI and related don't show vol labels in IDE #965
  • Primitive error in _ScIDE_SetDocTextMirror called from openDocument #964
  • ide document: errors when closing document windows during language init #961
  • SC_QT=OFF build flag still needs QT on OSX #959
  • dumpOSC is broken #955
  • IDE passes wrong Document modifiers to mouseDownAction #952
  • scope buffer allocation problem #937
  • Programmatically opening help files bug on linux #931
  • Sending to a NetAddr with broadcast IP fails #930
  • Windows - SCIDE: font-size snaps down in editor pane on preferences save/apply #928
  • QView doesn't receive all key down actions #918
  • supernova: setting an array onto a control that doesn't exist will set value that does exist #916
  • Qt menu's with > 10 items get a scrollbar, and at the same time the view doesn't get wider #915
  • BinaryOpUGen 'div' operator: off-by-one and not integer division #907
  • SimpleNumber-curvelin broken for negative numbers #902
  • switching session: cancel loses unsaved documents and dialog blocks reviewing them #899
  • Ramp UGen fails in LTI test #888
  • Pitch UGen fails in unit test #884
  • prSimpleNumberSeries throws incomprehensible error for bad inputs #882
  • uiugens: osx uses deprecated API #880
  • A few UGens failing the unit tests #879
  • Alias Manager depreated: sc_ResolveIfAlias will have to be rewritten #875
  • NodeProxy: multi-channel expansion broken for SynthDefs #872
  • git clone --recursive is broken #866
  • Windows: No SCIDE-icon #854
  • Linux FFT/IFFT: Hann window with hop size 0.25 sounds wrong #851
  • SendReply kills server #850
  • SuperCollider can't boot on disabling microphone #844
  • SendReply.ar crashes the server #841
  • chained function application giving strange results #839
  • QListView:items_ can crash sclang #835
  • menu items in the title bar vanish when detached window comes in focus #829
  • ScrollView in Qt - setting visibleOrigin doesn't work unless deferred #823
  • SinOsc phase argument fails for values outside +-8pi #815
  • Return key before closing bracket: empty line is not always appropriate #814
  • Drag-and-drop broken on windows with 'alwaysOnTop' enabled #812
  • IDE Config > Editor > Font Settings: Unsetting "Show only monospaced" doesn't return the previously selected font #811
  • sclang crashes for some GUI operation involving QTextEngine::itemize() #794
  • LocalOut without LocalIn crashes the server #780
  • QWindow crash with wrong argument types #770
  • s.options.sampleRate_ setter requires boot then reboot to take effect #768
  • FreqScope not updating correctly on current development version. #767
  • Wrongly reported external document changes #758