News in 3.10:
Guides | News

News in 3.10

All the news that's fit to .postln

Known issues

FileDialog can hang — currently we are only able to reproduce on KDE, but other OS's could be affected.

On Windows and Linux, running code with Ctrl+Enter in the help browser (not the editor) only evaluates the current line.

QtWebEngine, a hard dependency of SCLang and SCIDE, is difficult or impossible to install in some environments. 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.

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:

The minimum required version is now CMake 3.5 instead of CMake 2.8.

scel (the emacs package) is now a submodule.

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:

Fixed a build failure with the CMake option SYSTEM_YAMLCPP=on.

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

Fixed CMAKE_PREFIX_PATH incorrectly defaulting to /usr/local/ on macOS under some conditions.

scsynth and supernova: Added

supernova now has latency compensation.

scsynth and supernova: Fixed

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

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

One second folks, takin' a quick break here. Gotta get my morning cuppa! Alright, we're back.

Fixed a missing newline in some of supernova's error messages.

Fixed errors in supernova's /s_getn.

Fix supernova's response to /g_queryTree so it matches scsynth.

UGens: Fixed

Fixed clicks in Convolution2L.

sclang: Added

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

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

SerialPort now works on Windows.

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

QTreeView has a new method: setColumnWidth.

sclang: Changed

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

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.

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

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.

sclang: Removed

Removed some unused Qt dependencies from the build system.

sclang: Fixed

Breaking change: Fixed a long-standing math error in SimpleNumber:expexp.

Fixed extreme CPU usage of sclang when built without Qt.

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

Fixed a crash when calling File.copy when the destination exists.

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.

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.

Fixed some incorrect output in FunctionDef:dumpByteCodes.

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

Fixed == on Signal objects randomly returning the wrong result.

Class library: Added

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

Added new UGen methods .snap and .softRound.

Node:query has a new action argument, allowing specification of a callback function.

.degrad and .raddeg are now implemented for UGens.

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.

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

Class library: Deprecated

SerialPort.cleanupAll is deprecated.

Providing an integer index for is deprecated.

Class library: Fixed no longer allows its input signals to be control rate, which caused the server to read from garbage memory.

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

Fixed fragilities in path joining methods such as +/+, withTrailingSlash, and withoutTrailingSlash.

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

Fixed Event.addEventType ignoring the parentEvent argument.

Fixed Pkey being skipped because the default number of repeats is nil instead of inf.

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

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

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

Fixed bugs when providing multiple paths in ServerOptions:ugensPluginPath.

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

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.

Fixed occasional hangs when rebooting supernova.

Fixed confusing user feedback with the "Check for updates" button in the quarks GUI.

Buffer methods ensure that the buffer number in outbound OSC messages is an integer. 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.

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

Fixed incorrect template matching behavior in OSCFunc and related functionality.

Fixed "Message 'extension' not understood" preventing Image from working.

IDE & SCDoc: Added

The IDE has a prettier default theme. The old theme still exists as "classic."

The IDE now properly highlights scale degree literals like 4s.

IDE & SCDoc: Changed

The IDE has a prettier default theme. 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.

The SCDoc TOC and menubar have been redesigned again.

Various tweaks to the appearance of the IDE: nicer tabs, better border colors.

IDE & SCDoc: Fixed

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

Syntax colors in the help browser now match the IDE.

Only one preference window can be open at a time now.

Fixed tabs reversing in order when restoring a session.