Software
Version
3.0.9
Release Date
New features
  • Avendish plug-ins: support for FFT input ports
    https://twitter.com/jcelerie/status/1517818996661399552

  • Avendish plug-ins: support for soundfile input ports ; @bltzr is using it to cook an upcoming granulator =)
    https://twitter.com/jcelerie/status/1516785899413151749

  • Virtual MIDI devices on platform which support it (thanks @RobinMontferme !)

  • Allow GPU nodes to have control outputs, which enables nice things like performing a
    computation on the GPU with a compute shader, and getting back the data on the audio processing path:
    an example has been done with YoloV5 for object recognition on the GPU: https://vimeo.com/711256381
    This object is not yet part of the release but will likely happen soon along with other fun GPU stuff :-)

  • Allow to register JS scripts (using the same API than the console) that will show up as actions in the menu:
    https://vimeo.com/711841390
    Here is an example of such a script which allows to randomize a process: https://github.com/ossia/score-user-library/blob/master/Scripts/Randomize.mjs

  • Console: add Score.selectedObject() and Score.selectedObjects() methods to get the current selection in scripts

  • Faust will look for libraries in /packages//library/<faust .lib files here>
    This allows to support new Faust add-ons: for instance, the package manager will allow to download https://github.com/alainbonardi/abclib,
    a library for sound spatialization and mixed music Faust objects developed by @alainbonardi (thanks !)

  • A few new presets in the user library - auto-update isn't implemented yet so do not forget to update ! https://github.com/ossia/score-user-library

  • Add the ability to save presets by click-drag-drop from a little preset's folder icon to the system & project library panes

  • Math expressions: added a new noise(input, octaves, persistence) function which provides @Reputeless's Perlin noise implementation

Bugfixes
  • Fix VST3 resizing
  • Fix VSTs showing duplicated if /usr/lib is a symlink to /usr/lib64 on Linux
  • Fix a potential crash when closing a score while inside a nested scenario
  • Change Faust to use double-precision processing like everything else
  • Performance improvements: use boost::container::vector in more places to reduce the initialization cost
  • Allow using alloca in JIT process on Windows
  • Fix mapping of data copied through value ports
  • Fix for ISF shaders that assumed that they were being rendered on a quad (score used to render them on a single triangle).
    This only applies for shaders without any vertex shader defined.
  • Fix that dropping an invalid video file would crash
  • Automation fix for int addresses
  • Fixes for Qt 6 support (not finished yet)
  • Fixes for GCC 12 (WARNING: it is not supported yet due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105683)
  • Fix crash when adding an Images process
  • Value display: fit in rect for long values
  • Fix that smoothing did not work for some inputs
  • Fix an issue when dragging the mouse on the step sequencer's right
Various
  • Big variant refactor, to use mpark::variant everywhere as std::variant is problematic on macOS
  • Internal libpd / Puredata implementation updated to 0.52-2 ; in particular opening and closing Pd UIs seem to work better.
  • CI updated to macOS Monterey
  • CI for Qt 6 on macOS with Homebrew