Releases: ossia/score
v3.0.8
v3.0.7
IMPORTANT KNOWN ISSUE
Due to a release mistake, Faust support was not enabled in this release. 3.0.8 will come out shortly with the fix.
New features
-
A stable plug-in API through Avendish! It took years of work but there is finally an API that is guaranteed to stay stable as long as C++ compilers exist thanks to the entirely declarative paradigm used, all while enabling the back-end to keep evolving to offer continuously improving performance. Documentation is there: https://celtera.github.io/avendish ; support for JIT-compiling these is a work-in-progress and should already work in simple cases. As an added bonus, plug-ins written against this API will also be portable to other environments, such as PureData, Max, VST...
- It allows to write both CPU and experimentally GPU processors
- Entirely custom UIs are possible
- More features will be added over time ; thanks to the reflection-based design it can be done without breaking existing code.
-
The DNSSD implementation will now check that Bonjour (on Windows) and Avahi (on Linux) are running, to prevent slow timeouts when they are not.
Bugfixes
- Multiple MIDI bugfixes (#1384 #1386)
- Fix some eager asserts causing crashes in video process (#1377)
- Fix that setting time signatures was broken (#1383)
- Reallow to change advanced execution settings through the config file
- Fix that the Linux AppImage would sometimes not start on Linux due to GDK woes (https://gitlab.freedesktop.org/xorg/xserver/-/issues/1330)
- Be more lenient when loading a bad scenario and try to recover things a bit
- Fix that the position of comment blocks was not mapped correctly (#1379)
- Fix that nodes would stay selected if clicking on a port
- Lots of work on improving compile times
Thanks to @simonArchipoff for his first contribution and @RobinMontferme for the ongoing MIDI improvements ! :)
v3.0.6
New features
- Added trigger auto-select on user creation (thanks @RobinMontferme !)
- Autoscroll learn dialog on new message (thanks @RobinMontferme !)
- Internal: added support for Avendish as a plug-in format - no plug-ins yet though.
Bugfixes
- Fix some thumbnail memory leaks when resizing the slots when there is a video (thanks @yiids for noticing !)
- Fix the issue where on some Linux distros with some OpenGL hardware, the app would crash on start with some GDK errors
- Reduce the number of repaints & updates in the ui
- [wip] Re-allow editing automation points through the inspector
- Lot of work on improving compile times
- Minor typo fixes
v3.0.5
New features
- Serial protocol is now able to process either text or binary messages, or custom binary streams. Multiple framing options are implemented ; the user also has the option of handling the framing entirely from the script. Here is the documentation: https://ossia.io/score-docs/devices/serial-device.html ; thanks to @thibaudk for work on this !
- Copy-and-paste for MIDI notes (thanks @RobinMontferme)
- Copy-and paste for automation points
- Copy-and paste nodes in nodal view
- Allow to move multiple nodes in nodal view
Bugfixes
- Fix a small regression which sometimes showed an error message when clicking on a cable
- Show entire names for files in library when the file has a dot in the name, e.g.
foo.1.wav
will now show up asfoo.1
, notfoo
. - shmdata: do not copy textures when nothing is being rendered
v3.0.4
New features
- Official Spout and Syphon support for both video input and output :-)
- Ability to connect / disconnect multiple devices at once (thanks @RobinMontferme !)
- Ability to copy-paste parts of the curve in automation curves #1074 #1364
- Spline: double-click on a point now removes it
- (work-in-progress) copy-paste of nodes
- (experimental) Live preview widget in the inspector for video processes
- (experimental) Direct PipeWire audio back-end on Linux. For now score needs to be built from source.
- When quitting the splash screen with "Esc", an empty document will be created as the previous behaviour was confusing.
Changes
- Do not autotrigger things anymore if they do not have any visual trigger enabled. For instance this could happen if copy-pasting the first elements of the score and hitting play, as the first state was considered a root of the score (and this state is being copied). This has proven to be confusing. To keep non-root parts of the score auto-playing on start, simply add a trigger with a "True" condition.
- (experimental) a big part of the audio driver interaction has been rewritten to make things more asynchronous. The dreaded "Audio engine stuck" pop-up should be a thing of the past, but there is the possibility of corner case bugs which may have crept in.
Bugfixes
- Fix scaling of the splash screen with non-integer zoom levels (e.g. 150% zoom). #1241
- Do not submit undo/redo command if clicking on a node without moving it.
- Allow to deselect things in nodal view by clicking in the background.
- Fix issues with broken cable connections when editing at runtime
- Fix that shmdata outputs did not send the framerate info to GStreamer
- Improvements on the inspector UI
- Add a failsafe that will stop score from trying to start with opengl if it crashed during startup.
If the file "failsafe.bit" exists in the score configuration folder, e.g.~/.config/ossia
, then score won't try to start rendering its UI with the GL paint engine. - Many improvements on the library performance.
- Add a timer to update the timebar regularly when GL does not drive the UI (#1357) and fix some other UI bugs when not using OpenGL
- Fix that play-from-here past the end trigger of the root interval did not work
- Allow infinite dezoom. Fixes #444
- Fix that the focus on the score window would be lost on macOS after adding an OSCQuery device, requiring an alt-tab to get focus back.
- MIDI: Do not send undo commands when clicking on a note without moving
- Improvements to auto-scroll
- Improvements to the video inspector
- Fix some remaining live-code issues with the JS process
v3.0.3
New features
- Console: Add Score.readFile(...) to read a data file in JS (#1337 !)
- Official releases on Mac and Linux now build with an updated Harfbuzz (in a hope to solve spurious crashes that look like they have been fixed in recent versions, up to now it used Qt 5.15's bundled version which is out-of-date by a few years). Windows will follow.
- Linux now has subpixel AA by default which gives much crispier fonts on the release (above is without, below is with subpixel AA):
Note that in case of a non-RGB monitor, this can be toggled through the QT_SUBPIXEL_AA_TYPE
environment variable (RGB, BGR, VRGB, None...).
- Exit button on the splash screen (thanks @aklevy and @RobinMontferme !)
- Ctrl-Alt-N shortcut for switching between nodal and timeline view.
- The release should work again on macOS High Sierra (10.13).
Fixes
- Detect and disable OpenGL on llvmpipe systems, which fixes a startup crash on some Linux distros especially when running in VMs.
- Fix that the tempo points could not be changed from the inspector (thanks @featherfurl for reporting !)
- Fix various typos in the source code (thanks @luzpaz !)
- Video: use avformat_seek_file which seems to work better than av_seek_frame to seek in video files.
- Video: take start offset into account.
- OSC: fix that the OSC version (1.0/1.1/Extended) was not being saved
- Fix an error when changing a control after changing a time signature due to the undo/redo command not being completed.
- Fix that the edit dialog would sometimes come up when trying to add a new device.
- Fix a potential issue when reloading after a crash where an OSCQuery device had been created and deleted.
- Fix that the Linux release was building without PortAudio and ALSA support which limited its compatibility greatly.
Also big thanks to @JoaoSvidzinski who helped find many small bugs and issue over the course of three days this week !
v3.0.2
New features & changes
- Improvements to the package manager (thanks @thibaudk who pretty much entirely rewrote it. More to come !).
- Implement auto-scrolling during playback (in the view menu). It will follow either the main interval if nothing is selected or the selected interval otherwise. Please make issues if you see any improvement that could be made !
- Add the ability to scrub intervals through the tempo process's third inlet
- Add new console features, reinstate live scripting from js.
- Video process: implement multiple scale modes (stretch, fit, original size...), in the inspector
Bugfixes
- Fix reloading of shmdata output devices
- Various build fixes when using LTO (thanks to @ycollet for helping evidencing them)
- Make Tempo curve disabled when the ports are used to control speed explicitly. Fixes #1332 (thanks @thibaudk !)
- Fix VST3 plug-in scaling when score has a zoom setting different from 100%. (Issue is not fixed yet for VST2 / LV2).
- Fix cables being offset when the source or target port have different scales.
- Fix readbacks of GPU textures for shmdata and others.
- Refactor and improve camera input, allow to share a single input across multiple nodes.
- Fix that live edition of shaders would disconnect cables.
- Add a trivial fft implementation for when neither KFR or FFTW are available.
- Fix passing multiple positional arguments on the command line, such as
./ossia-score foo.score -platform vnc --autoplay
- Image process: Keep the previous renderer by default for now
- Fix crash when removing an interval while it is the one at the root of the execution
- WIP on fixing texture and device coordinates across GPU backends... a hard task, help wanted.
- Fix that image being dropped on the score were not put in cache, leading to them being reloaded twice for no good reason. Thanks to @josephlarralde for noticing a lot of bugs and issues in there
- Fix files with names such as "foo..wav" not loading (thanks @josephlarralde)
- JIT: Cache factories and fix a serialization bug for copy paste
- Fix video rendering logic by putting the frame pulling in the node instead of the renderer
v3.0.1
New features
- JS: add a Device.system method to run system shell commands
- JIT: log more errors and give line numbers when an error occurs
Bugfixes
- VST: Replace assert by softer safety check in case of missing plug-in
- Magnetism: Add a safety in case some magnetism value ends up negative
- Magnetism: Fix magnetism in sub-scenarios
- Protocols: Multiple protocols fix in libossia when opening multiple documents (joystick and artnet)
- Performance: Optimize curve rendering by caching common powers
- Performance: Do not translate some strings as they show up in perf traces for now
- Performance: Cache some texts that were being unneededly re-rendered
- Various small code tidyings and fixes
- VST3: Fix Vital loosing parameters upon save...
- Midi: workaround some issue when dropping a midi and putting it in loop if there is already a nodal
- LV2: Initialize sample rate correctly
- UI: Various improvements for musical bar display
- UI: Do not create connections between inlets when double-clicking from the process library
- Rename Value Filter into Smooth as it is shorter and more specific
- Refactor Micromap and normal mapping, add a po / pov variable and pa/pb/pc to access the previous output and previous values for a,b,c
- 2D spline: Improve rendering smoothness of playback
- JIT: Add rnd to jit in debug build to give access to a fast random value generator
- Math expression: fix wrong samplerate for audio
- UI: fix incorrect preset indexing
- Optimize binary size by disabling some unused features in fmt
v3.0.0
New features
- JSFX support available on Linux / Mac / Windows releases.
- Many new functions in the JS console to serve generative needs. See https://vimeo.com/662325572 for an example.
Fixes & updates
- Processes names have been reorganized a bit in categories. Audio plug-ins are now in a "plugins" category, as many plug-ins aren't audio effects or instruments, but for instance midi <-> midi, etc. Likewise, "Mappings" was put under "Control"
- Add various missing licenses in the About dialog.
- FFT with KFR will now use AVX, etc.. if available.
- Ton of build fixes for various platforms
- Update VST3 SDK to latest version.
- Appveyor disabled until we have some time for fixing MSVC (and someone actually asks for it)
- Save / reload for LV2.
- Various fixes for VST.
- Linux builds are now done under centos:8 (soon rockylinux:8).
- Various accuracy fixes for Looper.
- Various fixes for analysis plug-ins. Added a small filter as input to the pitch detector which makes it much more accurate
- Fix support for some formats with shmdata.
v3.0.0-rc7
New features
-
Add support for JSFX (Reaper) plug-ins through the ysfx library. Note that this is not part of the release yet and has to be built from source.
-
VST: controls being created for plug-ins with large amounts of controls is now opt-in with a new button in the inspector:
This is going to be extended to other plug-in APIs soon.
- Pattern sequencer: visual feedback
- Image process: wip: allow to tile input images
- Value generator: allow to return arrays
- WIP on new console functions for creating automations programmatically
- [Linux only] Support shmdata as a way to send / receive video frames between applications.
- Audio analysis plug-ins merged into score directly: pitch recognition, onset detection, etc. are now all available out-of-the-box, thanks to the Gist library !
- Add a Leapmotion device. Note that this is not part of the release yet and has to be built from source.
- Allow to control the UI execution update rate (rate at which the UI reads the new state from the execution engine).
- Micromap: support input of array types with
xv
/pxv
variables. - JIT: Automatically create controls with the information available.
- MIDI: Added note deletion using the Delete Key for Piano Roll plugin. Thanks @RobinMontferme !
Bugfixes & changes
- VST: many small compatibility fixes from trying various plug-ins. Also always set a stereo speaker arrangement until we find a better way of handling that.
- LV2: small correctness fix
- FFT can now use KFR instead of FFTW which makes it easier to build in some cases
- Main tempo is now saved correctly
- Various buffer allocation optimizations
- Fix image loading when a palette is used
- Optimize image loading for image process
- Looper: add a small fade-in / fade-out
- Looper: fix blank output when switching to an empty input
- Fix process name when creating with drag and drop
- JSFX: fix ports created at the wrong place
- Cables will now always be shown at the same hierarchy level
- Fix corner cases for musical quantization
- Minor qt6 fixes
- Refactor and fix infinite scrolling for ui widgets
- Various drag'n'drop fixes
- Fix that nodal view execution position had disappeared
- Various video pixel format fixes, e.g. for ARGB, YUYV and YUV422. Support more formats being decoded on the GPU.
- Library: support for subcategories in processes.
- The old envelope plug-in is now deprecated. Use the new ones which support gain adjustment.
- Refactor rescaling and camera input and fix many bugs in the process.
- Various drag'n'drop improvements.
- Fix issue when hitting ctrl-c when no document is loaded.
- Refactor the viewport bounding code.
- JIT: Add seemingly missing flag for EH handling.
- JIT: Preserve ports when editing script
- MIDI: handle note selection properly
- Linux: Fix startup crashing under offscreen Qt QPA, useful for gui-less on small underpowered SBCs.
- UI: Improve comboboxes
- Fix that adding processes through the library would add them to every document.
Special thanks
- @VastareMetal for testing the JIT process in-depth and reporting many bugs.