Skip to main content
Release Date Range:

Mixxx is Free DJ software that gives you everything you need to perform live mixes.

Updated: 27 Nov, 2024

This is is the 2nd minor release of the Mixxx 2.4 branch.

Have a look at the CHANGELOG and the Mixxx website for more information:

MilkyTracker is a Fasttracker II like open source, multi-platform music application for creating .MOD and .XM module files.

Updated: 27 Nov, 2024

release info: https://milkytracker.org/news/2024/11/25/version-1.05

this is a pre-release, please report bugs in this issue

MAC users: feel free to provide us extra builds in this issue

RPI users: feel free to provide us extra builds in this issue and/or improve the build_rpi.sh script

PraxisLIVE is a hybrid visual live programming IDE, rethinking general purpose and creative coding.

Updated: 26 Nov, 2024

This is the first release of PraxisCORE and PraxisLIVE v6.

PraxisLIVEv6

Version 6 is a substantial rewrite of some key aspects of how PraxisCORE works. Expect some rough edges! Many deprecated and legacy features have been removed. The IDE and core now require minimum Java 21. Networked hubs now use Netty and Ion to provide a more robust and structured communication protocol than was possible with OSC. Key libraries have been updated, including libP5X now based on Processing 4. Runtime dependency management is now based on MiMa rather than Ivy. Much of the project saving and execution has been moved directly into PraxisCORE.

There are a bunch of other useful changes - custom roots can now specify use of table editing rather than the graph editor; containers can filter allowed child types and even specify custom types; annotations no longer require a weight / index parameter - eg. @P int x,y,z; is now legal syntax! Examples and custom components are being updated and added showing the new features.

The most obvious change is the new vector logo, window background actions, and revamped dashboard.

The IDE build system has been moved to Maven, and various IDE modules are also published, allowing use

Power Tab Editor is a cross-platform guitar tablature editor

Updated: 21 Nov, 2024

Thanks to the following contributors who worked on this release:

Changed

  • The barline under the cursor can now be deleted without requiring it to be selected first

Fixed

  • Fixed AppStream validation issues in xdg/powertabeditor.metainfo.xml
  • Updated the MSVC redistributable for the Windows installer to be compatible with Visual Studio 2022
  • Fixed a bug which could prevent barlines from being deleted (#496)
  • Fixed errors with saving files in the Snap or Flatpak packages (#498)
  • Fixed sizing issues in the playback widget on Windows (#495, #497)

Power Tab Editor is a cross-platform guitar tablature editor

Updated: 19 Nov, 2024
No content.

Rosegarden is a composition and editing environment based around a MIDI sequencer

Updated: 11 Nov, 2024
ROSEGARDEN 24.06 RELEASED

The Rosegarden team is proud to announce the release of version 24.06 of Rosegarden, a MIDI sequencer that features a rich understanding of music notation along with basic support for digital audio.

http://www.rosegardenmusic.com/

Included in this release...

Bug Fixes

  • txt2rgd.py: Fix MSB/LSB bug. [d501a6f]
  • Fix instrument selection for Ctrl+T (add track), file import and merge. Bug #1670.
  • Disallow deletion of devices that are in use by tracks. Bug #1670.
  • Use track names for segment names on MusicXML import. Bug #1673. [d477398]
  • Fix misplaced TimeWidget title in "Native (Light)" theme. Bug #1678. [2b63fab]
  • Fix an .rg parsing error related to softsynths. [a854726]
  • Fix unobtainable segment presets and other preset issues. Bug #1684. [da32ccc]
  • Fix audio time stretching erasing all audio data in release build. Bug #1680. [79d672b]
  • Fix submaster port count changing when changing the number of audio input ports. Bug #1685. [1ac61ff]
  • Fix window focus problem when creating MIDI Devices. Bug #1686. [7baaffd]
  • Fix track instrument reset when editing banks. Bug #1688. [d83d883] [eab9b9a]
  • Fix buffer overflow in notation editor. Bug #1689. [dd4549b]
  • Fix examples

Rosegarden is a composition and editing environment based around a MIDI sequencer

Updated: 11 Nov, 2024
ROSEGARDEN 23.12 RELEASED

The Rosegarden team is proud to announce the release of version 23.12 of Rosegarden, a MIDI sequencer that features a rich understanding of music notation along with basic support for digital audio.

http://www.rosegardenmusic.com/

Included in this release...

Bug Fixes

  • Make punch-in also start recording. [f7b3aa7]
  • Fix broken metronome flash in the transport. [975ffe9]
  • Fix solo affects archived tracks. [bad41f2]
  • Fix data loss when recording with loop on. [7988915]
  • Prevent archived tracks from recording. [82a4360]
  • Fix arm status lost on save when archived. [5d85e8b]
  • Fix armed+archive recording after load. [ab8eba6]
  • Unarm archived Tracks when enforcing the arm rule: only one Track can be armed per Instrument. [7bcc351]
  • Skip archived tracks when routing. [21e4566]
  • Fix refresh artifacts on the Matrix piano keyboard. Bug #1656. [5cf37ed]
  • Fix error when rosegarden creates submaster outs. Bug #1658. [c89ab3b]
  • Fixed potential race conditions with audio files. [1e8d406]
  • Fix segment relabel dialog not showing original label. Bug #1660. [3fbc697]
  • Fixed events with data1 == 121 being dropped. Bug #1663. [df93bd9]
  • Fixed potential race conditions in the

Rosegarden is a composition and editing environment based around a MIDI sequencer

Updated: 11 Nov, 2024
ROSEGARDEN 23.06 RELEASED

The Rosegarden team is proud to announce the release of version 23.06 of Rosegarden, a MIDI sequencer that features a rich understanding of music notation along with basic support for digital audio.

http://www.rosegardenmusic.com/

Included in this release...

Bug Fixes

  • Fix crash related to static initialization order. Bug #1647. Release as 22.12.1. [3e34166]
  • Fix bug #1047, beaming groups erroneous after merging notes. [83f1dca, 2709e76]
  • Fix offset selection rectangle in Notation. Bug #1444. [fc08c3e]
  • Fix time column widths in the Event Editor so that they don't need resizing on every launch. [aed705b]
  • Event filter dialog improvements and fixes. [c5e3c6a]
  • Fix broken retrograde commands. Bug #1648. [84faef1]
  • Lilypond: Fix volta/alternatives and lyrics. Bug #1649. [6e5ba2d]
  • Lilypond: Fix vertical alignment of verses. Bug #1650. [b42cbff]
  • Lilypond: Fix the printing of supplementary verses. [46c7d3d]
  • Lilypond: Fix multiple lyrics verses with repetition. [50266c5]
  • Lilypond: Fix the removing of an underscore at the end of a bar of lyrics. [62feb9b]
  • Lilypond: Fix printing of verses is now working when voltas are unfolded. [2eae089]
  • Lilypond: Fix bar number of verses

Rosegarden is a composition and editing environment based around a MIDI sequencer

Updated: 11 Nov, 2024
ROSEGARDEN 22.12.1 RELEASED

The Rosegarden team is proud to announce the release of version 22.12 of Rosegarden, a MIDI sequencer that features a rich understanding of music notation along with basic support for digital audio.

http://www.rosegardenmusic.com/

Included in this release...

Bug Fixes

  • Fix a crash caused by static initialization/link order. Bug #1647. [fa6eea8]

Rosegarden is a composition and editing environment based around a MIDI sequencer

Updated: 11 Nov, 2024
ROSEGARDEN 22.12 RELEASED

The Rosegarden team is proud to announce the release of version 22.12 of Rosegarden, a MIDI sequencer that features a rich understanding of music notation along with basic support for digital audio.

http://www.rosegardenmusic.com/

Included in this release...

Bug Fixes

  • Fix a crash when deleting segments that are visible in notation. [e67b14a]
  • Hide the experimental Channel Fixed/Auto widgets behind a preference. To re-enable: Edit > Preferences > General > Auto Channels (experimental). [eda6701]
  • Fix the Base Velocity dialog in the Event Editor which was missing Ok/Cancel buttons. [aa3218e]
  • Fix lilypond syntax error when exporting lyrics. Bug #1639. [1702b0f]
  • Fix restore of keyboard in the shortcut editor. Feature request #511. [44ce000]
  • Fix "out of processor power" dialog always coming up on some systems. Feature request #496. [adab9c3]
  • Fix MIDI file merge disconnects connections. Bug #1645. [fe70e17]

New Features

  • Advanced Looping rewrite including indicators in the Loop Ruler. Enable via the preferences. Edit > Preferences > General > Advanced Looping (beta).
  • Jump to loop feature. Edit > Preferences > General > Jump to loop. [69350eb]
  • Loop buttons added to the main, matrix, and notation

RaySession is a GNU/Linux session manager for audio programs, using a varient of NSM

Updated: 11 Nov, 2024

Bug fix release.

Bug Fixes:

  • Support pyliblo3 as well as pyliblo (Done by AdamWill)
  • ray_control open_session_off fixed (very important for some scripts)
  • execute chmod +w on session files after their copy from template (needed for NixOs)
  • save_via_windows script is now POSIX compliant (Done by Dennis Braun)

Improvments:

  • add --osc-port argument to sooperloooper_nsm executable (Done by Jean-Emmanuel)

Power Tab Editor is a cross-platform guitar tablature editor

Updated: 05 Nov, 2024

This release drops the alpha tag and moves to a normal versioning scheme: future versions will bump the major / minor / patch versions depending on the scope of the changes.

Thanks to the following contributors who worked on this release:

Added

  • Unsaved modified files can now be automatically backed at a regular interval, controlled via the Preferences dialog. The backup folder can be opened via the File menu (#392)
  • The preferred MIDI output device is now tracked by name rather than by port number, which is more robust if e.g. a new device is plugged in
  • Chord names can now use a custom label instead of the auto-generated chord name. This is primarily used for chords imported from Guitar Pro files (#442)
  • When attempting to insert a note at the end of a system, a space is now automatically inserted to allow the note to be added (#439)
  • Extended the view filter menu to support filtering by a specific player without requiring a filter to be explicitly created (#301)
  • Copying and pasting selections which include barlines is now supported (#416)
  • Improved the smoothness of MIDI

Yabridge is Yet Another way to use both 32-bit and 64-bit Windows VST2 and VST3 plugins on Linux

Updated: 04 Nov, 2024

If you need any help setting up yabridge or if you just want to keep up to date with new releases and important Wine related announcements, then feel free to join the Discord.

Fixed

  • Fixed DPI scaling causing windows contents to become larger than they should be when using Wine 9.17+ and Wine's font DPI scaling feature.
  • Fixed a potential segfault when unloading yabridge.

Compatibility

These binaries are compiled on Ubuntu 20.04, and should work on any other distro that's newer than that.

Updating

To update from an older installation, simply overwrite your current yabridge and yabridgectl files with the ones downloaded below, and then rerun yabridgectl sync to complete the update.

PulseAudio is a sound system for POSIX OSes, meaning that it is a proxy for your sound applications

Updated: 02 Nov, 2024

A bug fix release.

  • A couple of time-smoother-2 fixes, mainly manifesting in issues for GStreamer clients
  • Fix a crash in some restricted environments
  • Minor RTP spec compliance fix
  • Minor completion and tests fixups

Contributors

Arun Raghavan Georg Chini Igor V. Kovalenko flyingOwl

synthv1 is an old-school all-digital 4-oscillator subtractive polyphonic synthesizer with stereo fx

Updated: 31 Oct, 2024

A Halloween'24 Release

QjackCtl is a simple Qt application to control the JACK sound server daemon

Updated: 29 Oct, 2024

A Autumn'24 Release

ReceiveMIDI is a command-line MIDI message monitor

Updated: 16 Oct, 2024
  • Added error reporting to Javascript engine.
  • Added Javascript Util.print function.
  • Updated to JUCE 7.0.12.

LibraZiK is digital audio-software studio and related documentation, based on Debian Buster

Updated: 14 Oct, 2024

Hello LibraZiK-ies.

It's time to take stock of what's been new in LibraZiK over the last 7 months. If you've been following the Mastodon account for the project, you've been able to keep up with them as they've come in, and here they are below in summary form (software updates, new software, miscellaneous information...).

mastodon-entête-LZK4.png

Musics made with LibraZiK:: Below are some pieces of music created with LibraZiK that you can listen to while reading this article: tracks by r1 : an 80s pop-electro track: https://mastodon.xyz/@LibraZiK/1117... and https://framapiaf.org/@erwan35/1127... a dance-pop track: https://mastodon.xyz/@LibraZiK/1118... and... Lire LibraZiK news - September 2024

SVGuitar is a JavaScript (TypeScript) SVG guitar chord renderer library

Updated: 10 Oct, 2024

2.4.1 (2024-10-10)

Bug Fixes

  • chord diagram: fix fret marker outside diagram (e332a41)

PraxisLIVE is a hybrid visual live programming IDE, rethinking general purpose and creative coding.

Updated: 08 Oct, 2024

The second beta release of PraxisLIVE v6 brings a few updates and bug fixes as we proceed towards a final release.

PraxisLIVE IDE changes

  • Extend property wrappers to support all function controls eg. this function on a component can be called, and the result (or error) displayed, using the property tab or the component editor dialog - @FN String upper(String in) { return in.toUpperCase(Locale.ROOT); }
  • Add a stop / clean button to the output tab for each project.
  • Update NetBeans platform to v23
    • Support Java 23.
    • Switch to upstream Project dashboard widget with history display.
  • Update bundled JDK in installers to JDK 23, and add macOS aarch64 installer.
  • Fix exception shown when displaying scene comments.
  • Various tweaks to allow branding of CORE location and graph colours.

PraxisCORE changes

  • Add LWJGL natives for running on Apple Silicon, and also suppress warning caused by resigning of binaries on both macOS architectures.
  • Update to libP5X 4.430.1 - fix display issues on Linux Wayland by reverting to use GLFW X11 backend (via XWayland) by default.
  • Allow access to all JDK modules in user code (eg. HTTPClient) by using --add-modules=ALL-DEFAULT in launcher and child

Zrythm is a featureful and easy to use DAW, written in C using the GTK+3 toolkit.

Updated: 04 Oct, 2024
No content.

ZPlugins is a collection of LV2 plugins intended to be bundled with the Zrythm DAW

Updated: 02 Oct, 2024

v0.2.7

Yoshimi is a software audio synthesizer, originally forked from ZynAddSubFX.

Updated: 25 Sep, 2024

And already we have a bugfix release. There were three of them.

The first was a failure to test a headless build and there was a detail we'd forgotten.

The second was not accounting for some less common build environments.

The third was a total surprise. It was a bug in effects that goes back at least 6 years and probably further, but only became obvious with the latest EQ display improvements we had made.

Cardinal is a virtual Eurorack modular synthesizer platform

Updated: 24 Sep, 2024

This release brings a few critical bug-fixes and a few modules updates.
Notably voxglitch which was stuck on older versions due to heavy graphic resource usage.

Changelog:

  • Consistent mouse scroll behaviour for all OSes
  • Fix a missing resource for Cardinal Mini
  • Fix headless builds and ensure context consistency across headless/normal builds
  • Fix crash on patch load via OSC
  • Tweak OSC defaults: auto-deploy by default and skip screenshot if not required on server side

Modules changes:

  • Added RCM modules
  • Update Befaco
  • Update CVfunk
  • Update DrumKit
  • Update Sapphire
  • Update voxglitch

image

Fully-featured audio plugin host, with support for many audio drivers, plugin and sound bank formats.

Updated: 22 Sep, 2024
  • Do not show windows crash dialogs for plugin bridges
  • Fix build against latest liblo
  • Fix crash when showing some plugin UIs under wayland
  • Fix minimum width of CanvasPort labels
  • Fix missing painter.restore() in case of CanvasPort errors
  • Fix OSC unregister handling

Functional programming language for signal processing and sound synthesis

Updated: 20 Sep, 2024

Change log

WARNING: to get the source version

  • be sure to download the faust-2.75.7.tar.gz file to get a complete source folder (in particular, with all the libraries)
  • on macOS, binary files are still to notarise, you may have to use the xattr -rd com.apple.quarantine file command to remove the com.apple.quarantine extended attribute. See the xattr man page for details on how to use that tool. MacOS Monterey is now the minimal version.

New

  • Add -mc option in faust2w32max6 and faust2w64max6.
  • Add FAUST_DTREE_SIZE env variable.
  • Deterministic compilation activated with the FAUST_DTREE environment variable.
  • Faster hashkey computation taken from boost::hash_combine.
  • Update faust2object for Apple ARM targets.
  • Add llvm-test-poly test.
  • Introduction of sigRegister and retiming algorithm.
  • Another gameaudio - complex rain sounds.
  • Another gameaudio - modal synthesis of wind chimes.
  • Another gameaudio example - thunder.
  • Christof Ressi multichannel implementation in faust2puredata. New -newio option to activate the new model.
  • Document ratio related methods in APIUI.

Deprecated

Fixed bugs

  • Man page generation now uses '--' for long options.
  • Use 'struct' instead of 'class' for C++ code generation in -uim mode.
  • Steven Kraninger fix for JUCE architecture bus channel changes for VST3 compatibility up to 8 channels. The original code would create errors

Helio Workstation is free and open-source music sequencer, designed to be used on all major platforms.

Updated: 14 Sep, 2024

Update change log

DawDreamer is a DAW with Python; VST instruments/effects, parameter automation, and native processors

Updated: 09 Sep, 2024

For macOS builds, macOS 12 (Monterey) is required.
For all platforms Python 3.10 or higher is required (to save space on PyPI).

PluginProcessor:

  • Added get_parameter_range(index: int, search_steps: int = 1000, convert: bool = True)
    Since convert=True, the output will try to convert the parameter's range of text labels into floats (e.g. "16.2 kHz" will become 16200.0, "440 Hz" will become 440, "50% (-32.0 dB)" will become -32.0, and so on). If convert=False, you'll get the strings instead of the float conversions.

FaustProcessor:

  • Use libfaust 2.70.3 (which is behind the latest libfaust version 2.74.6)
  • Added opt_level property for LLVM optimization level, defaulting to -1 for backwards compatibility.
  • Allow multiple paths for Faust assets paths and library paths.
    • .faust_libraries_path (a str)
    • .faust_libraries_paths (a list of str)
    • .faust_assets_path (a str)
    • .faust_assets_paths (a list of str)
  • boxFFun and sigFFun have been added to the Box API and Signal API.
  • Fixed a bug with boxVGroup accidentally using boxHGroup

DawDreamer is a DAW with Python; VST instruments/effects, parameter automation, and native processors

Updated: 09 Sep, 2024

update version to 0.8.2

DawDreamer is a DAW with Python; VST instruments/effects, parameter automation, and native processors

Updated: 09 Sep, 2024

PluginProcessor:

  • Add get_parameter_range
    FaustProcessor:
  • Use libfaust 2.70.3.
  • Add parameter for LLVM optimization level.
  • Allow multiple paths for Faust assets paths and library paths.

RTcmix is an digital signal processing and sound synthesis language

Updated: 03 Sep, 2024

This release supports a new advanced feature: The ability to "derive" a MinC struct from another using the 'structbase' keyword. Also bug fixes.

PraxisLIVE is a hybrid visual live programming IDE, rethinking general purpose and creative coding.

Updated: 30 Aug, 2024

This is the first beta release of PraxisCORE and PraxisLIVE v6.

Screenshot from 2024-08-29 17-35-34

Version 6 is a substantial rewrite of some key aspects of how PraxisCORE works. Expect some rough edges! Many deprecated and legacy features have been removed. The IDE and core now require minimum Java 21. Networked hubs now use Netty and Ion to provide a more robust and structured communication protocol than was possible with OSC. Key libraries have been updated, including libP5X now based on Processing 4. Runtime dependency management is now based on MiMa rather than Ivy. Much of the project saving and execution has been moved directly into PraxisCORE.

There are a bunch of other useful changes - custom roots can now specify use of table editing rather than the graph editor; containers can filter allowed child types and even specify custom types; annotations no longer require a weight / index parameter - eg. @P int x,y,z; is now legal syntax! Examples and custom components are being updated and added to showing the new features.

The most obvious change is the new vector logo, window background actions, and revamped dashboard.

The IDE build system has been moved to Maven, and various IDE modules are also published

ProjectM is an open source MilkDrop

Updated: 14 Aug, 2024

This bugfix release addresses two OpenGL-related issues causing GL errors, and adds some improvements to the vcpkg manifest which were required for adding the projectM library to the official vcpkg ports. This release does not contain any other functional improvements or API changes.

What's Changed

  • Fix GL_INVALID_ENUM error in CopyTexture (PR #826)
  • Fixed variable using reserved word in vertex shader (PR #832)
  • vcpkg fix for projectm eval (PR #835)

Full Changelog: v4.1.1...v4.1.2

PlugData is a plugin wrapper around PureData featuring a new GUI

Updated: 11 Aug, 2024

Bugfix release for v0.9.0

  • Fixed crash when closing the parent patch of an opened subpatch
  • Fixed plugin shutdown crash on Windows
  • Fixed array redrawing bug
  • Fixed crash when using palettes or "add object" menu in plugins
  • Fixed broken multi-drag connection behaviour
  • Fixed graph rendering bug when scrolling
  • Fixed rendering artifacts on connection cords
  • Fixed [pic] send symbol
  • Fixed multichannel connection rendering
  • Fixed MIDI input for Logic instrument plugins
  • Fixed strange tooltip behaviour on Linux
  • FIxed crash when sending "open" message to "pd"
  • Fix redo broken after deleting an object and undoing
  • Fix rendering with very small global scale applied
  • Fixed memory leak when plugin editor is closed
  • Fix numbox issue with canvas synchronisation
  • Fixed window dragging scale bug
  • Added "gradient connection" theming option, similar to cables.gl
  • Optimised [note] and [messbox] objects
  • Drastically reduced VRAM usage
  • Optimised various actions like copy/paste/duplicate/remove when performed on many objects
  • Small startup optimisations
  • Various rendering optimisations
    • More efficient use of memory and CPU cache
    • Do more work directly from shader
    • Removed redundant work
  • Fixed various iOS bugs (release will be on AppStore soon!)

Functional programming language for signal processing and sound synthesis

Updated: 28 Jul, 2024

Change log

WARNING: to get the source version

  • be sure to download the faust-2.74.6.tar.gz file to get a complete source folder (in particular, with all the libraries)
  • on macOS, binary files are still to notarise, you may have to use the xattr -rd com.apple.quarantine file command to remove the com.apple.quarantine extended attribute. See the xattr man page for details on how to use that tool. MacOS Monterey is now the minimal version.

New

  • Improve JuceOSCUI to use OSC alias when they are used instead of the path.
  • Create architecture file and faust2stratus script for Chaos Audio Stratus pedal (Martin Bartlett).
  • Add multichannels support in faustgen~.
  • Add -mc (multi-channels model) option in faust2max6.
  • Reworked mesh2fausttool by Karl Hiner.
  • Added faust2caconsole (Core Audio + Console architecture).
  • new DirectedGraph based code in progress in -ocpp backend.
  • Reworked -fx mode with new -fx-size option. Merge Agathe Herrou interval and precision branch.
  • Rework -os (with new 'frame' method) and -it options. New -ec option to separate 'control' and 'compute'.
  • Improve Rust backend to have ffi remainder/rint properly compile on Windows.

Deprecated

Fixed bugs

  • Correct impulse-tests to correctly use -O3 optimisation level.
  • Add a generic 'one update per single updateAllGuis refresh' model in

RTcmix is an digital signal processing and sound synthesis language

Updated: 23 Jul, 2024

Bug fix release.

PlugData is a plugin wrapper around PureData featuring a new GUI

Updated: 22 Jul, 2024

Our biggest release ever! Thanks for everyone who helped!

  • Huge performance improvements because of GPU accelerated rendering!
  • Design improvements: less outlines, smaller toolbar, reorganised statusbar, new about panel.
  • Implemented all of pure-data's autopatching (only missing paste/replace)
  • Improved presentation mode
  • Updated to pure-data 0.55-0
  • Updated to ELSE rc11
    • NOTE: some upcoming changes for ELSE rc12 have accidentally been included. These include [damp.osc~], [vcf2~] and [scope3d~]. Use these objects at your own risk, their interfaces may change and they might not be completely stable yet.
  • Added macOS legacy version, recommended when running macOS <10.15 or on Macs from before 2017
  • New connection activity display
  • Connection arrows drawn between segments when connection is segmented
  • Windows build now uses system rounded window border and dropshadow. (Straight for w10)
  • Connections can be set behind / in front for both edit & locked mode.
  • Can now search for send/receive symbols in patch search panel
  • Rewritten tabbar and split view for better stability and maintainability
  • Improved patch loading time in DAW.
  • Patches load a lot faster now
  • Latest ELSE master branch changes, including updated MERDA modules
  • Latest pure-data master branch changes
  • Improved compatibility with [drawcurve], [fillcurve] and [plot] drawing
  • Redesigned GraphOnParent area resizer
  • Plugin version now displays

SpectMorph can analyze samples of musical instruments and combine and morph between.

Updated: 02 Jul, 2024

SpectMorph 1.0.0 beta2

Updates for macOS

  • Plugin user interface now works correctly on macOS 14 (#28).
  • Update clang++ compiler version on macOS.
  • Minimum supported macOS version is now macOS 11.

SpectMorph can analyze samples of musical instruments and combine and morph between.

Updated: 26 Jun, 2024

SpectMorph 1.0.0 beta1

New Features

  • WavSource: support two formant preserving algorithms for repitching vocals.
  • New operators:
    • KeyTrack - can be used to combine instruments by note range.
    • Envelope - to generate arbitary modulation envelopes.
  • User defined curve editor for KeyTrack, Envelope and LFO.
  • Add presets using the new operators:
    • KeyTrack Choir Ah/Oh
    • StringBrass Fusion
  • JACK CC values are now interpreted per channel (allows polyphonic modulation).
  • Support double click to reset properties to default value.

Fixes

  • Apply midi channel bend to new voices.
  • Make portamento affect filter cutoff key tracking.
  • Fix problems with WavSource paths stored by LV2 plugin (make Ardour archives work).
  • Fix getting the initial click events / focus plugin UI on macOS under Bitwig.
  • Fix invalid access to past last vector element (#24).
  • Make PandaResampler work without problems in ASAN builds.
  • Refactor leak debugger to fix possible crashes caused by global destructors.
  • Do not ship sample data in "1 Instrument WavSource" preset.

Internals: Improvements

  • Generate and store spectral envelopes in each AudioBlock for formant correction.
  • Improve the strategy for portamento synthesis (more accurate and less CPU usage).
  • Propagate portamento frequency to sources.
  • Randomize start phase per default to improve "Harmonic Resynthesis" quality.
  • JACK: use two audio

PlugData is a plugin wrapper around PureData featuring a new GUI

Updated: 17 Jun, 2024

Pre-release version 2 of plugdata v0.9.0

Headlines:

  • Huge performance improvements because of GPU accelerated rendering!
  • Design improvements: less outlines, smaller toolbar, reorganised statusbar, new about panel.
  • Ships with Gem built in. Gem objects need the "Gem/" prefix, unless you add Gem to the list of libraries to load.
  • Improved presentation mode
  • Added macOS legacy version, recommended when running macOS <10.15 or on Macs from before 2017
  • New connection activity display
  • Connection arrows drawn between segments when connection is segmented
  • Windows build now uses system rounded window border and dropshadow. (Straight for w10)
  • Connections can be set behind / in front for both edit & locked mode.
  • Can now search for send/receive symbols in patch search panel
  • Rewritten tabbar and split view for better stability and maintainability
  • Improved patch loading time in DAW.
  • Patches load a lot faster now
  • Latest ELSE master branch changes, including updated MERDA modules
  • Latest pure-data master branch changes
  • Improved compatibility with [drawcurve], [fillcurve] and [plot] drawing
  • Redesigned GraphOnParent area resizer
  • Plugin version now displays the current latency in the statusbar if it has been changed from the default
  • Improvements to pd-vanilla compatibility, patches should look even more similar to their vanilla counterparts than before
  • Improved Heavy

Mixxx is Free DJ software that gives you everything you need to perform live mixes.

Updated: 10 Jun, 2024

Mixxx 2.5-beta

meters.lv2 is a collection of audio-level meters with GUI in LV2 plugin format.

Updated: 10 Jun, 2024

update man page for v0.9.26

fil4.lv2 aka x42-eq is a 4 Band Parametric EQ

Updated: 10 Jun, 2024

update man page for v0.8.9

setBfree is a DSP Tonewheel Organ emulator

Updated: 10 Jun, 2024

finalize changelog v0.8.13

stepseq.lv2 is simple step sequencer for moddevices.com

Updated: 10 Jun, 2024

update man page for v0.6.14

Valhalla Tracker is MIDI sequencing companion written in a C and Python for GNU/Linux audio setups.

Updated: 01 Jun, 2024

one day...

Valhalla Tracker is MIDI sequencing companion written in a C and Python for GNU/Linux audio setups.

Updated: 01 Jun, 2024

boom

Valhalla Tracker is MIDI sequencing companion written in a C and Python for GNU/Linux audio setups.

Updated: 31 May, 2024

new icon hehe

Cardinal is a virtual Eurorack modular synthesizer platform

Updated: 27 May, 2024

This is a quick bug-fix release that also brings 2 new plugin modules.

  • Add SurgeXT Nimbus to Cardinal Mini
  • Fix crash loading StarlingVia modules
  • Fix showing AU GUI
  • General build improvements, allow plugins to use host MIDI (used in Biset modules)
  • Update to latest Carla Plugin Host (no longer ships with custom JUCE, so we now store it deps/JUCE; needed for SurgeXT)

Module changes:

  • Add Biset
  • Add PdArray
  • Update CVfunk
  • Update Sapphire

screenshot

Anklang, a digital audio synthesis application for live creation and composition

Updated: 21 May, 2024

Anklang 0.2.0.nightly2405211359

Development version - may contain bugs or compatibility issues.

include ase/*.hh: fix missing include misc/cirun: use $CITAG, instead of hard coding dist Merge branch 'log2file' # 2024-05-20 Tim Janik f4a6e2d7 * Branch commit log: package.json: add --log2file to synth engine electron/main.js: add --log2file to synth engine ase/utils.hh: include ase/logging.hh ase/main: add --log2file and log info of interest ase/engine.cc: log missing PCM driver as error ase/driver.cc: log driver opening as info ase/logging: add log_setup(), loginf() and logerr() ase/logging: add source files for logging Merge branch 'override-drivers' # 2024-05-20 Tim Janik 80ed0d56 * Branch commit log: ui/Makefile.mk: add --norc when running --js-api doc/Makefile.mk: add --norc when running --class-tree ase/server.cc: ase_{error_blurb|error_from_errno}: always map errno to strerror ase/driver-alsa.cc: always pass ALSA errno back to the caller ase/cxxaux.cc: ignore ptrace_scope when constructing debugger cmd misc/GNUmakefile: allow subdir builds ase/Makefile.mk: utilize GNU Parallel for test execution Use GNU Parallel if available, otherwise xargs. Avoid parallel.moreutils which is incompatible and tends to drop jobs. ase/engine.cc: let main_config.pcm_override, .midi_override override drivers ase/main.cc: add -P and -M ase/main.hh: add pcm_override, midi_override to MainConfig ase/main.cc: implement --list-tests Merge branch 'uselocale' # 2024-05-20 Tim Janik 72514ffd * Branch commit log: ase/strings: provide POSIX-locale strerror() ase/main.cc: apply user locale Merge branch 'npm-updates' # 2024-05-20 Tim Janik 0a4b1af8 * Branch commit log: ui/b/tracklist.js: work around postcss-advanced-variables bugs ui/startup.js: minor package.json, ui/postcss.config.mjs: remove unused postcss-normalize-charset With postcss-import, we stopped adding charset to generated imports. ase/main.cc: document --norc ui/Makefile.mk: fix missing dep on ui/postcss.config.mjs ui/Makefile.mk: make .js files an index.html dependency ui/jsextract.js: leave @charset "UTF-8" to the postcss build step ui/postcss.config.mjs: add postcss, tailwind and css-function configs ui/postcss.js: remove unused in-browser impl of postcss ui/Makefile.mk: properly extract css`` into build files, adjust linting Keep *.js files with extracted css`` snippets around for parallel linintg. package.json: shorten rebuild times ui/Makefile.mk: generate import for dark.scss ui/global.scss: import theme.scss here ui/mixins.scss: remove all color definitions ui/theme.scss: remove all color definitions ui/dark.scss: include theme color definitions ui/theme.scss: move scss variable ui/b/noteboard.vue: use Dom.markdown_to_html() ui/b/databubble.js: use Dom.markdown_to_html() and move scss var ui/jsextract.js: keep the same file extension for extracted files ui/Makefile.mk: merge vue styles, lit styles, stylelint and postcss processing ui/Makefile.mk: use ui/eslintrc.js for linting ui/b/statusbar.js: use Dom.markdown_to_html() ui/stylelintrc.cjs: remove unused setting ui/b/clipview.js: avoid nested scss variable definitions ui/sfc-compile.js: avoid useless dep on sass ui/startup.js: remove browserified.js helper ui/util.js: fix color parsing ui/util.js: remove markdown_to_html() ui/dom.js: add Dom.markdown_to_html() package.json: add @rollup/plugin-terser, remove browserify ui/Makefile.mk: build markdown-it for the web via rollup Get rid of building with browserify which results in a much larger artifact. package.json: add eslint helpers ui/index.html: remove vue-styles.css ui/postcss.js: add tailwind @apply test Makefile.mk: properly clean compile_commands.json .gitignore: ignore /.dir-locals.el package.json: upgrade allmost all packages ui/util.js: remove unused compat code for FF-68 ui/util.js: use LSP friendly comments Merge branch 'sfz-filedialog' # 2024-05-07 Tim Janik 1ca390ce * Branch commit log: ui/b/textinput.js: support file picking for props with extensions ase/api.hh: Property: add name, value, metadata members * Rename Property.get_metadata(), adjust uses * Adjust metadata uses and value notifications ui/b/crawlerdialog.js: minor fixups ui/util.js: extend_property(): prefetch prop.{name|value|metadata} devices/liquidsfz/liquidsfz.cc: add sfz as file extension to .instrument Merge branch 'crawlerdialog' # 2024-05-06 Tim Janik 859b88ed * Branch commit log: ui/b/menubar.js: pass `existing=false` on save-as, default to ~MUSIC ui/b/shell.vue: pass `existing` to b-crawlerdialog, default to ~MUSIC ui/b/crawlerdialog.js: add docs to BCrawlerDialog class ui/b/crawlerdialog.js: add dialog to pick files via resource crawler * Rewrite and merge folderview and filedialog * Fix grid and entry alignment * Split direntry and pathentry * Handle selection of new files, `existing=false` ase/strings: add string_islower(), string_isupper() ui/b/filedialog.vue: remove obsolete file ui/b/folderview.vue: remove obsolete file ui/b/menubar.js: fix load/save dialog titles ui/b/preferencesdialog.vue: show all preference settings ui/little.js: add LitComponent.mkstate() helper for Signal.State ui/tailwind.scss: add spacing to dialog buttons ui/types.d.ts: supress TS warnings about missing _() ui/util.js: inside_display_none(): avoid expensive getComputedStyle ui/kbd.js: support left<->right for data-subfocus="*" ui/kbd.js: add keydown_move_focus_{up|down} ui/kbd.js: add flag to make debugging easier ui/kbd.js: support up/down/left/right focus with data-subfocus="+" ase/api.hh, ase/crawler: in ResourceCrawler.assign() split dirname and basename ase/crawler.hh: fix args ase/crawler.cc: remove debugging printerr ase/crawler.cc: ensure dir URLs end in / ase/api.hh, ase/crawler: rename ResourceCrawler.entries ase/api.hh: ResourceCrawler: add .folder, .files member properties ase/gadget.cc: fix emplace() post condition Merge branch 'member-template' # 2024-04-27 Tim Janik ef130823 * Branch commit log: ui/b/textinput.js: adjust to this.request_update() rename ui/b/propinput.js: adjust to this.request_update() rename ui/b/pianoroll.js: simplify to just use this.clip.all_notes ui/b/piano-ctrl.js: simplify to just use piano_roll.clip.all_notes ui/b/pianoroll.js: listen to wheel events with passive:false ui/b/knob.js: listen to wheel events with passive:false ui/b/clipview.js: simplify to just use this.clip properties ui/b/trackview.js: simplify to just use this.track properties ui/b/app.js: provide App.project and auto update App.project.name ui/b/positionview.js: use App.project with .bpm, .numerator, .denominator ase/api.hh: Project: add bpm, numerator, denominator properties ui/Makefile.mk: alter stamp to rebuild ui/index.html after errors ui/Makefile.mk: include jsonipc/jsonipc.js in linting ui/b/contextmenu.js: force integrate_children() within render_contextmenu() ui/b/trackview.js: fix early this.mcc() invocation ui/wrapper.js: avoid arbitrarily calling freeze_deep() on unknown objects ui/little.js: use tracking_wrappe() for .render() and .updated() ui/index.html: provide module map for ./signal.js and auto-load it ui/signal.js: export Signal, State, Computed, Watcher, tracking_wrapper Introduce JavaScript Signal and provide tracking_wrapper() to utilize dependency tracking for synchronous functions. ui/Makefile.mk: add signal-polyfill.js module to site build files ase/properties.hh: include api.hh ase/api.hh: add include for Member<> package.json: add signal-polyfill ase/clip: add all_notes, end_tick member properties ase/main.cc: let --fatal-warnings set assertion_failed_fatal=true ase/api.hh: expose Emittable.emit_notify() .gitignore: ignore package-lock.json jsonipc/jsonipc.js: maintain $props.promise and allow GC of objects with props jsonipc/jsonipc.hh: generate C++ properties as reactive JS properties This gets rid of getter() and setter() on the JavaScript side and instead provides an object property that supports assignment and readout. jsonipc/jsonipc.hh: determine JavaScript initializer from C++ property type jsonipc/jsonipc.js: add reactive property fetching, support finalizer cleanup callbacks jsonipc/jsonipc.hh: use C++17 to check for Has_setget<> jsonipc/jsonipc.hh: support Member<> fields with set() + get() accessors This uses C++20 concepts to detect the Member<> field. jsonipc/jsonipc.hh: avoid implicit `await` that delays setters, pass all args jsonipc/jsonipc.hh: fix missing `const` ase/project: create Member bpm, numerator, denominator, skip musical_tuning Leave (re-)implementation of musical_tuning (with its enum list) for later when we actually use it. ase/properties.hh: remove unused struct Prop ase/properties, ase/gadget: remove unused PropertyBag ase/{parameter.hh,properties.hh}: move ParameterProperty into properties.hh ase/properties: inline PropertyBag::operator+= ase/parameter.hh: move ParamExtraVals out of Param ase/parameter.cc: maintain "ident=..." in metadata_ alongside cident ase/gadget: add name member property ase/gadget: implement registry to access Member<>s ad parameters * Implement _register_parameter() * Implement requires_accessor(), register_accessor() * Add ExtraVals to _register_parameter() * Implement GadgetImpl::create_properties() from Member * In create_properties(): use dynamic_cast to identify class member list When creating the properties for an instance, walk through the known GadgetClassMemberList entries, test each via dynamic_cast and thus identify all class member lists that match the instance. ase/member: add Member<> to implement member field APIs via simple accessors * FunctionTraits<>: provide ClassType, ReturnType, Arguments * Add Member<> template * Add MemberDetails to capture meta data * Add and test _register_parameter() * Add and test ExtraVals * Pass ExtraVals as _register_parameter(ExtraVals) * In tests, return bool from set() * Add support for Member without data field Note, Member<> do not support initialization from the ctor. In practice, we cannot call a Member<> setter for intiialization, as it may be pointing to an abstract method, implemented by a yet to be initialized derived class. Related: "C++ Properties - a Library Solution", by Lois Goldthwaite https://accu.org/journals/overload/13/65/goldthwaite_255/#d0e143 https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1615.pdf ase/crawler: add documentation to methods ase/driver.cc: docs ase/driver.hh: docs ase/strings.cc: fix typeid_name() tests ase/main.cc: support --test[=testname] ase/cxxaux: return const char* from typeid_name() and string_demangle_cxx() Merge branch 'fix-lint' # 2024-04-27 Tim Janik ad00599f * Branch commit log: ase/combo.cc: fix includes ase/clapdevice.cc: fix includes ase/device.cc: fix includes ui/b/clipview.js: write proper todo comment ase/inifile.cc: write proper todo comment ase/gtk2wrap.cc: write proper todo comment ase/engine.cc: write proper todo comment ase/driver.cc: fix comment ase/driver-alsa.cc: fix cpp cond ase/device.cc: write proper todo comment ase/combo.cc: write proper todo comments ase/clapplugin.cc: fix includes ui/b/positionview.js: write proper todo comments ui/b/propgroup.js: write proper todo comment ase/clapdevice.cc: write proper todo comments Merge branch 'highlight-friendly-css' # 2024-04-27 Tim Janik 60f501a0 * Branch commit log: ui/b/*.js: use css`` method of JsExtract ui/little.js: allow css`` constructs .gitignore: add ignores ui/postcss.js, ui/tailwind.config.mjs: move tailwind config Merge branch 'js-fixes' # 2024-03-27 Tim Janik b13f8b94 * Branch commit log: ui/kbd.js: when changing focus, scrollIntoView() ui/wrapper.js: fix formatting of missing property error ui/b/cliplist.js: use LitElement.weak_this ui/little.js: provide lazily initialized LitElement.weak_this ui/Makefile.mk: first check syntax via eslint, then types package.json: add printf-ts for printf-style formatting in JS Merge branch 'disabled-button-menu-items' # 2024-03-06 Tim Janik db5b11af * Branch commit log: ui/b/menurow.js: update menu item description ui/b/menuitem.js: remove, use instead now This addresses #55 by now keeping a button inside a shadowRoot. ui/b/contextmenu.js: handle .isactive, disabled state, focus assignment ui/b/aboutdialog.js: use startViewTransition() to show dialog with async values ui/eslintrc.cjs: allow & in class attributes of lit elements ui/b/dialog.vue: add floating-dialog styling ui/theme.scss: fix CSS ui/mixins.scss: fix CSS ui/global.scss: fix CSS ui/b/filedialog.vue: fix CSS ui/Makefile.mk: fix dir dependency ase/memory.cc: change TODO comment ase/clapplugin.cc: change TODO comment ui/b/trackview.js: use render_contextmenu() and fix menu flicker ui/b/treeselector-item.vue: fix CSS ui/b/statusbar.js: use tailwind, fix height ui/b/menurow.js: use tailwind ui/b/propgroup.js: fix CSS ui/b/menubar.js: fix CSS ui/b/knob.js: fix CSS ui/b/icon.js: fix CSS ui/b/dialog.vue: fix CSS ui/b/devicepanel.vue: fix CSS ui/b/contextmenu.js: add render_contextmenu() ui/b/clipview.js: fix CSS ui/b/choiceinput.js: fix CSS ui/b/contextmenu.js: properly update buttons on attribute changes ui/b/contextmenu.js: fix CSS ui/dom.js: fix comment misc/version.sh: truncate extra long commit hash characters Merge branch 'menu-item-button' # 2024-03-04 Tim Janik 64cc42bb * Branch commit log: x11test/play-notes.json: fixup icon reference ui/theme.scss: fix duplicate CSS ui/postcss.js: minor fix ui/dom.js: add text_content() ui/b/treeselector.vue: allow get_uri() in ui/b/treeselector-item.vue: allow get_uri() in ui/b/textinput.js: fix missing prop init ui/b/contextmenu.js, menurow.js: fix padding ui/types.d.ts: add document.startViewTransition package.json: update all packages (Electron-29) This updates to Vue-3.4, Electron-29 with Chrome-122, Node-20 and V8-12. ui/Makefile.mk: run stylelint when processing CSS files ui/stylelintrc.cjs: add postcss-scss to stylelint, ignore whitespace diags package.json: add stylelint-config-standard-scss package.json: fix dependency order ui/b/contextmenu.js: treat normal elements like menu items ui/b/trackview.js: use button as menu item ui/b/menurow.js: add some horizontal spacing around rows ui/b/pianoroll.js: use button as menu item ui/b/menubar.js: use button as menu item ui/b/deviceeditor.js: use button as menu item ui/b/choiceinput.js: use button as menu item ui/util.js: remove uinused handler ui/kbd.js: remvoe useless prefix ui/kbd.js: leave focus activation via Enter to the browser ui/kbd.js: allow cycling when arrow keys change focus ui/dom.js: add get_uri, valid_uri, has_uri ui/b/treeselector.vue: use get_uri() ui/b/treeselector-item.vue: use get_uri() ui/b/trackview.js: use get_uri() ui/b/pianoroll.js: use get_uri() ui/b/filedialog.vue: use get_uri() ui/b/choiceinput.js: use get_uri() ui/eslintrc.cjs: permit custom class names next to tailwind ui/b/aboutdialog.js: fix class comment to apply to class ui/b/folderview.vue: remove useless flexbox packing around each file entry Significant CR speed up, flexbox seems slow in Chrome. ui/b/editable.js: fix background color ui/Makefile.mk: remove stale build file $>/ui/global.scss ui/tailwind.scss: split off button-down-within and button-active ui/b/menubar.js: adjust icon layout ui/b/folderview.vue: adjust icon layout ui/b/icon.js: simplify and remove intermediate HTMLElement ui/b/menubar.js: apply button-dim ui/b/playcontrols.js: apply button-down ui/tailwind.scss: split .button-dim .button-down ui/b/playcontrols.js: add .button-dim to push-buttons ui/b/filedialog.vue, ui/b/preferencesdialog.vue: use .button-xl ui/b/editable.js: only cancel valid edits on Escape ui/Makefile.mk: invoke ui/postcss.js directly ui/colors.js: import zcam-js as module ui/Makefile.mk: allow recovery from build errors during live updates ui/Makefile.mk: reassign ui-build and ui-reload rules ui/b/trackview.js: use tailwind for b-editable ui/b/positionview.js: use tailwind for b-editable ui/b/editable.js: simplify, remove shadowRoot, use tailwind ui/tailwind.scss: add text-inherit and :focus-visible styling ui/eslintrc.cjs: remove unsupported start_view_transition global ui/b/aboutdialog.js: use startViewTransition() around closing ui/global.scss: get rid of (now) unused grid helpers ui/b/filedialog.vue: use col-start-* row-start-* ui/b/pianoroll.js: use col-start-* row-start-* ui/b/shell.vue: properly use document.startViewTransition() ui/index.html: sync document.startViewTransition() with Vue for CR and FF Always sync document.startViewTransition() with pending Vue updates, and install a simple handler caller if the browser does not support document.startViewTransition() (like FireFox-123). ui/b/aboutdialog.js: use tailwind styling ui/tailwind.scss: add dialog-header, dialog-footer ui/tailwind.scss: add button-dim, button-xl ui/global.scss: leave buttons to tailwind ui/tailwind.scss: add border-1 ui/tailwind.scss: add hflex, vflex and dialog helpers ui/tailwind.scss: add dflt border color, disable text selection in base layer ui/postcss.js: add "dim" color scheme, a smoothed zinc like color ui/postcss.js: add --tw-border-default-color ui/ch-component.md: add section on "Guidelines for Web Components" ui/util.js: remove unneeded visibility:hidden toggeling This solves the menu-button-stuck-on-outside-click issue described in #55. Merge branch 'tailwindcss' # 2024-03-03 Tim Janik 74673c38 * tailwindcss: ui/global.scss: remove ui/normalize.scss, tailwind does normalization now ui/global.scss: import tailwind.scss ui/tailwind.scss: render tailwind base, component, utility styles ui/eslintrc.js: add tailwindcss recommended warnings ui/Makefile.mk: add tailwind inputs as global.css dependency ui/postcss.js: add tailwindcss, tailwindcss/nesting to processing misc/package.json.in: add prettier, prettier-plugin-tailwindcss for devel misc/package.json.in: add eslint-plugin-tailwindcss misc/package.json.in: install tailwindcss components Merge branch 'pr51/swesterfeld-piano-roll-fixes', closes #51 # 2024-03-03 Tim Janik c5ea11f2 * pr51/swesterfeld-piano-roll-fixes: ui/b/piano-ctrl.js: use higher tool priority for selected notes ui/b/pianoroll.js: draw selected notes over unselected notes ui/b/piano-ctrl.js: support shift cursor up/down (move 1 octave up/down) Merge branch 'pr50/swesterfeld-default-tempo-120-bpm' # 2024-03-03 Tim Janik aac575d4 * pr50/swesterfeld-default-tempo-120-bpm: ase/project.cc: set transport tempo when starting playback ase/project.cc: set default tempo to 120 bpm Merge branch 'color-js' # 2024-03-03 Tim Janik 8e9eb35e * Branch commit log: misc/package.json.in: add colorjs.io ui/colors.js: export hex_from_zcam() and add zcam4() misc/package.json.in: remove unused postcss-color-mod-function ui/postcss.js: remove unused color-mod Merge branch 'proper-package.json' # 2024-03-01 Tim Janik 19e59488 * Branch commit log: doc/copyright.ini: fix package.json path ui/Makefile.mk: adjust paths for the typescript compiler invocation ui/Makefile.mk: adjust paths for the eslint invocation ui/Makefile.mk: adjust paths for the stylelint invocation ui/Makefile.mk: adjust build stamp paths ui/tsconfig.json: use full path to source files Makefile.mk: fix missing CLEANFILES ui/xbcomments.js: use ES6 imports ui/jsextract.js: use ES6 imports ui/Makefile.mk: adjust eslint to run in project root ui/sfc-compile.js: use ES6 imports ui/eslintrc.cjs: add comment about why this is CJS ui/eslintrc.cjs: convert to CJS to be loadable from eslint package.json: use paths relative to project root doc/jsdoc-slashes.cjs: add comment about why this is CJS doc/jsdoc-slashes.cjs: convert to CJS to be loadable from jsdoc doc/jsdoc2md.js: convert to ES6 module ui/Makefile.mk: use node_modules/ in project root x11test/replay.sh: use node_modules/ in project root doc/*: use node_modules/ in project root electron/Makefile.mk: use node_modules/ in project root Makefile.mk: install node_modules/ in project root package.json: move NPM package configuration here misc/package.json.in: use exec in scripts to spare shell wrappers Merge branch 'utf8-for-legacy-filenames' - support legacy filenames via UTF-8 private use area mapping # 2024-02-21 Tim Janik f6ea63f3 * utf8-for-legacy-filenames, closes #49: ui/b/app.js: use displayfs(), displaybasename() ui/b/folderview.vue: import basename, dirname, displayfs, etc ui/b/menubar.js: use displayfs(), dirname() ui/b/filedialog.vue: use displayfs(), displaybasename(), displaydirname() ui/strings.js: add hex basename dirname displayfs isplaybasename displaydirname ui/index.html, ui/eslintrc.js, ui/types.d.ts: add assert() globally ase/project: use encodefs/decodefs for all filenames in the API ase/crawler: use encodefs/decodefs for all filenames in the API ase/websocket: add WebSocketServer::utf8_validate() This exports the websocketpp UTF-8 validation logic. ase/unicode.cc: test encodefs(), decodefs(), displayfs() ase/unicode: add encodefs(), decodefs(), displayfs() ase/tests/benchmarks.cc: use Ase::utf8encode() ase/unicode: rename utf8encode() Change string_from_unicode to utf8encode() to be more consistent. ase/unicode: add utf8decode() ase/unicode.cc: utf8character<>(): support mapping high bytes to 0xEF80..0xEFFF ase/cxxaux: export backtrace_command() with lldb and gdb support Merge branch 'bug-fixes' # 2024-02-21 Tim Janik 7ebcb3eb * bug-fixes: ui/b/trackview.js: fix scale rounding that caused extra UI flicker README.md: link to Roadmap Discussions Feedback & Ideas: #52 ase/combo.cc: fix combo insertion order for devices inserted at end Fixes #24. Merge branch 'pr45/swesterfeld-freeverb-mix' - closes #23 # 2024-02-14 Tim Janik 82fad166 * pr45/swesterfeld-freeverb-mix: devices/freeverb/freeverb.cc: support sample-accurate parameter changes devices/freeverb/freeverb.cc: optimize processing for constant mix case devices/freeverb/freeverb.cc: merge dry/wet parameters into mix parameter See #23. Also add parameter smoothing for mix to avoid clicks when changing/automating the parameter. Merge branch 'pr43/swesterfeld-midi-events-uint-offset' - closes #26 # 2024-02-14 Tim Janik 714ea0c0 * pr43/swesterfeld-midi-events-uint-offset: devices/liquidsfz/liquidsfz.cc: avoid using printf (use printerr instead) ASE: midievent.hh: fix clang tidy problem (add typename) devices/saturation/saturation.cc: midi event frame offsets are now unsigned devices/liquidsfz/liquidsfz.cc: midi event frame offsets are now unsigned devices/blepsynth/blepsynth.cc: midi event frame offsets are now unsigned ASE: midilib.cc: midi event frame offsets are now always positive (#26) ASE: clapplugin.cc: midi event frame offsets are now always positive (#26) ASE: midievent: avoid negative frame offsets in midi events Use unsigned data type for midi event offset, see issue #26. ase/memory.cc: avoid constexpr std::string use that needs clang++-17 Merge branch 'SPEEDUP-UTILS' - extend and speed up internal utils # 2024-02-14 Tim Janik 02e6083c * SPEEDUP-UTILS: ase/memory.cc: use array + string ptr unordered_map for quarks This fixes slowdowns where heavy use of CString lookups turns into a bottleneck. ase/platform.hh: add extern const char *const ase_sharedir; ase/Makefile.mk: add extern char*ase_sharedir; to ase/buildversion*.cc ase/strings.cc: support arrays for string_startswith() and string_endswith() ase/path: add glob() variant that separates dirs and files ase/path.cc: increase file_memread() buffer size to up to 1MB Merge branch 'b-textinput-prop' - add .prop to # 2024-02-12 Tim Janik af7da4af * b-textinput-prop: ui/b/propinput.js: use ui/b/objecteditor.js: use ui/b/textinput.js: move to directly operating on .prop ase/project.cc: add project.default_license preference Merge branch 'fix-non-anklang-dir' - fix loading from non-anklang-dir # 2024-02-11 Tim Janik ab3b8da2 * fix-non-anklang-dir: ase/project.cc: properly halt at root when searching parent dirs ase/path: add and test Path::isroot() .gitignore: remove unused backslash that confuses jj Merge branch 'properties-metadata' - support generic metadata on properties # 2024-02-08 Tim Janik 5f06a6d4 * properties-metadata: devices/saturation/saturation.cc: add "blurb=" prefix and mark translations devices/liquidsfz/liquidsfz.cc: add "blurb=" prefix and mark translations devices/freeverb/freeverb.cc: add "blurb=" prefix and mark translations devices/blepsynth/blepsynth.cc: add "blurb=" prefix and mark translations ase/api.hh: introduce metadata() for properties * Add const this qualifier to parameter APIs. * engine.cc: add "descr=" prefix to property metadata * project.cc: add "descr=" prefix to property metadata ase/strings: add kvpairs_fetch() and kvpairs_assign() Merge branch 'MOUSE-WHEEL' - fix mouse wheel handling in modern Chrome and Firefox # 2024-02-08 Tim Janik 070d91a9 * MOUSE-WHEEL: ui/util.js: remove unused wheel2scrollbars ui/b/pianoroll.js: reinstante hzoom and vzoom adjustments via Ctrl ui/util.js: use Mouse.wheel_delta() ui/b/knob.js: use Mouse.wheel_delta() ui/b/pianoroll.js: properly scroll via deltaY from Mouse.wheel_delta() ui/mouse.js: wheel_delta(): provide .x, .y, .z in pixels ui/b/app.js: defer ZMove handling to mouse.js ui/mouse.js: include ZMove notification handling ui/index.html: start mouse.js early on ui/mouse.js: add event_movement() and wheel_delta() to fix event coords Cross browser normalization of movementX,movementY and deltaX,deltaY is a hot mess, see: https://bugs.chromium.org/p/chromium/issues/detail?id=1092358 https://bugzilla.mozilla.org/show_bug.cgi?id=1392460 https://github.com/w3c/uievents/issues/181 https://github.com/w3c/pointerlock/issues/42 https://github.com/mdn/content/issues/11811 ui/index.html: disable modulepreload, it causes module errors in Firefox-122 Merge branch 'GRID-FILE-BROWSER' - use for file browser # 2024-02-08 Tim Janik 8cfd3299 * GRID-FILE-BROWSER: misc/package.json.in: fix path of rebuild command ui/kbd.js: fix coord check during horizontal focus movement ui/b/folderview.vue: use grid with column flow to fix slow flexbox wrapping ase/websocket.cc: use "CR" as Chrome abbreviation ase/strings.hh: fix spacing ase/clapplugin.cc: fix newline Merge branch 'ATOMIC-STACK' - simple atomic stack based on Loft # 2024-02-08 Tim Janik 765600ad * ATOMIC-STACK: ase/atomics.cc: add atomic_valuestack_test() ase/atomics.hh: add a simple AtomicStack<> with just push, pop, empty ase/loft.hh: reduce includes ase/loft.hh: allow constexpr Loft::Allocator and export allows_read_after_free misc/synsmell.py: escape FI[X]ME misc/synsmell.py: reduce false positives for the separate-body check Merge branch 'SFZ-STRING-PARAM' - pass SFZ instrument as string # 2024-02-08 Tim Janik 789a493e * SFZ-STRING-PARAM: devices/liquidsfz/liquidsfz.cc: pass instrument name as string param via Quark ase/memory.hh: fix missing constexpr for CString::qset() Merge branch 'pr7/swesterfeld-liquidsfz' # 2024-02-08 Tim Janik 55480ad2 * pr7/swesterfeld-liquidsfz: devices/liquidsfz/Makefile.mk: remove -Iexternal/liquidsfz/lib Includes need to be added to ase/Makefile.mk for all tools to pick them up. ase/Makefile.mk: add -Iexternal/liquidsfz/lib ASE: add copyright information to liquidsfz meta includers ASE: compile liquidsfz library code into ase library DEVICES: liquidsfz: prepare code for .sfz file specific parameter handling DEVICES: liquidsfz: add include path to external submodule EXTERNAL: liquidsfz: add swesterfeld/liquidsfz commit from 2023-11-18 15:15:57 git submodule add --name liquidsfz https://github.com/swesterfeld/liquidsfz.git external/liquidsfz git -C external/liquidsfz checkout 590149ea8c83588c17833d7b9b6653f0f6aab6fb DEVICES liquidsfz: port to new parameter API DEVICES: liquidsfz: move SFZ loading to its own thread DEVICES: liquidsfz: add LiquidSFZ device for SFZ support Merge branch 'LIT-DEVICEEDITOR' - port b-deviceeditor to Lit # 2024-02-08 Tim Janik 760b00be * LIT-DEVICEEDITOR: ui/b/deviceeditor.js: point out layout todo ui/b/deviceeditor.js: port logic to lit ui/b/contextmenu.js: support popup with null origin ui/b/deviceeditor.js: convert syntax to valid javascript ui/b/deviceeditor.js: replace deviceeditor.vue Merge branch 'STRING-PROPS' - support String as AudioProcessor property # 2024-02-08 Tim Janik 2aef82b3 * STRING-PROPS: STRING-PROPS: ase/processor: allow temporary String mappings for text parameters ase/memory: add CString::temp_quark_impl() to expose quarks in some cases ase/memory: introduce CString::qset() which can count quark references ase/processor: AudioProcessor: unify IBus+OBus into IOBus Allow non-trivial ~IOBus() execution. ase/sndfile.cc: add libmp3lame to assertion about missing MP3 support ui/b/propinput.js: start text field support ase/parameter.cc: treat is_text() as non-numeric and allow Quark values Merge branch 'branch-check' # 2024-01-26 Tim Janik 9d38b0f8 * branch-check: GITHUB: workflows/testing.yml: update to actions/upload-artifact@v4 GITHUB: workflows/testing.yml: only build & upload docs from tim-janik/anklang GITHUB: workflows/testing.yml: update to actions/cache@v4 GITHUB: workflows/testing.yml: use actions/checkout@v4.1.1, fix annotated tag Upgrade to actions/checkout@v4.1.1 and Fix actions/checkout messing up checkouts of annotated tags; actions/checkout#290 Also fetch submodule upfront. GITHUB: workflows/testing.yml: remove Release-Upload run MISC: Makefile.mk: fix script v2.34 invocation The util script from util-linux 2.34 (focal) has no `-O` option. GITHUB: workflows/testing.yml: add `make branch-check` and check errors in PRs MISC: Makefile.mk: add branch-check rule, $BRANCH_CHECK_EXIT holds error status GITHUB: workflows/testing.yml: disable CI on tag pushes MISC: mknews.sh: show git command line MISC: Makefile.mk: fix missing CLEANDIRS Merge branch 'clang-tidy+synsmell' # 2024-01-25 Tim Janik ceaf5265 * clang-tidy+synsmell: UI: Makefile.mk: ui/lint: add checks with misc/synsmell.py DEVICES: Makefile.mk: devices/lint: add checks with misc/synsmell.py ASE: Makefile.mk: ase/lint: add checks with misc/synsmell.py MISC: synsmell.py: check syntax for code smells, based on regular expressions ASE: Makefile.mk: allow double loop variable tests in mathutils.cc ASE: *.cc: fix clang-tidy warnings DEVICES: saturation/Makefile.mk: remove -Iexternal/pandaresampler/lib DEVICES: blepsynth/Makefile.mk: remove -Iexternal/pandaresampler/lib ASE: Makefile.mk: move -Iexternal/pandaresampler/lib here MISC: Makefile.mk: clang-tidy: strip $PWD MISC: colorize.sh: fix black-on-black coloring MISC: Makefile.mk: fix lint-unused rule MISC: Makefile.mk: fix lint-cppcheck rule MISC: Makefile.mk: clang-tidy: support target specific .CTIDY_FLAGS MISC: Makefile.mk: add clang-tidy-check: false exit status on errors/warnings MISC: Makefile.mk: clang-tidy: skip empty reports during printout MISC: Makefile.mk: clang-tidy: add -march=x86-64-v2 so atomics checks pass Merge branch 'docker-apt-cache' # 2024-01-25 Tim Janik 4dcc915d * docker-apt-cache: MISC: version.sh: shorten the logic GITHUB: workflows/testing.yml: compress lines MISC: cirun: simplify, add -B to trigger build, compress cache MISC: Dockerfile.focal: add /var/cache/apt caching MISC: mkassets.sh: build release assets with clang Merge branch 'reduce-make-deps' # 2024-01-22 Tim Janik 8b6e4a71 * reduce-make-deps: ASE: atomics.cc: add simple AtomicIntrusiveStack test MISC: publish.sh: fix git command quoting MISC: mknews.sh: fix extraneous commit hash output ASE: cxxaux.cc: fix missing unistd.h include for read() MISC: Makefile.mk: add appimagetools/ to CLEANDIRS MISC: mkAppImage.sh, mkdeb.sh: fetch $pkgdir from out/config.sh Makefile.mk: generate config.sh to export pkgdir, etc UI: Makefile.mk: add tscheck/ to CLEANDIRS IMAGES: knobs/Makefile.mk: add images/ to CLEANDIRS MISC: package.json.in: minor fix ASE: Makefile.mk: avoid useless rebuilds Makefile.mk: TAGS: use sed to compress flood of "Warning: ignoring null tag" Makefile.mk: regen TAGS after git changed Makefile.mk: avoid touching ls-tree.lst needlessly Makefile.mk: avoid npm rebuilds on git changes Makefile.mk: avoid needlessly touching package.json Merge branch 'simpler-assert' # 2024-01-22 Tim Janik 25b6611f * simpler-assert: ASE: utils: use diag_prefix() for printouts ASE: backtrace.*: remove old code ASE: cxxaux.hh: add ASE_ASSERT_UNREACHED() and ASE_ASSERT() ASE: cxxaux.hh: add assertion_fatal() and bool assertion_failed_fatal ASE: cxxaux.cc: add assertion_fatal(), handle $ASE_DEBUG assertion debug keys Check and implement "breakpoint", "backtrace" and "fatal-warnings" in $ASE_DEBUG Merge branch 'swesterfeld-move-bleptools-to-dspresearch' # 2024-01-22 Tim Janik a26757d3 * swesterfeld-move-bleptools-to-dspresearch: DEVICES: blepsynth: remove design/test tools (moved to dsp-research repo) Merge branch 'build-fixes' # 2023-12-05 Tim Janik fce55a41 * build-fixes: DOC: Makefile.mk: work around broken heading anchors in pandoc-1.3.9 ASE: Makefile.mk: ase/sndfile.cc requires fully built $>/lib/libsndfile.so Merge branch 'sndfile-1.2.2' - build custom libsndfile # 2023-11-22 Tim Janik 1ca7ebc6 * sndfile-1.2.2: MISC: mkdeb.sh: require libmpg123-0 for installations ASE: Makefile.mk: build and link against our own libsndfile.so ASE: sndfile.cc: check libsndfile header and build config .gitmodules: sort modules EXTERNAL: libsndfile: add libsndfile/libsndfile commit from 2023-10-24 09:47:22 git submodule add --name libsndfile https://github.com/libsndfile/libsndfile.git external/libsndfile git -C external/libsndfile checkout e486f20fd4b1c7490cde84f22635e1c267ae882b MISC: Dockerfile.arch: install mpg123, lame for libsndlfile MISC: Dockerfile.focal: install Vorbis, libmpg123, libmp3lame, update Pandoc Merge branch 'git-shallow' # 2023-11-22 Tim Janik bdb82734 * git-shallow: MISC: mknews.sh: create NEWS in forward order MISC: mknews.sh: handle repos without tags MISC: mkassets.sh: fallback to building in /tmp/anklang.tmp/ MISC: version.sh: support git repos without tags Merge branch 'swesterfeld-blepsynth-sample-accurate', closes #27 # 2023-11-18 Tim Janik 80927e07 * swesterfeld-blepsynth-sample-accurate: DEVICES: blepsynth: treat negative time offsets as time offset 0 events DEVICES: blepsynth: remove debugging code DEVICES: blepsynth: change defaults for 2nd oscillator / mix DEVICES: blepsynth: remove event offset debug checks DEVICES: blepsynth/blepsynth.cc: improve updates for some parameters DEVICES: blepsynth/blepsynth.cc: use new filter version from dsp-research - use better tanh() approximation in filter saturation function DEVICES: blepsynth/blepsynth.cc: set more parameter used flags DEVICES: blepsynth/blepsynth.cc: use switch for parameter updates DEVICES: blepsynth/blepsynth.cc: implement sample accurate event processing Merge branch 'swesterfeld-saturation', closes #28 # 2023-11-18 Tim Janik be928207 * swesterfeld-saturation: DEVICES: saturation: treat negative time offsets as time offset 0 events DEVICES: saturation: remove debugging code DEVICES: saturation: port to new parameter API, support in-block events DEVICES: saturation: update DSP code - process left/right in single SaturationDSP object - parameter smoothing - performance optimizations DEVICES: saturation: add Saturation device Merge branch 'separate-ci-checks' # 2023-11-18 Tim Janik afb2db07 * separate-ci-checks: GITHUB: workflows/testing.yml: avoid make all vs make check races Makefile.mk: ensure all checks are added $(CHECK_TARGETS) Merge branch 'simplify-assertions' # 2023-11-17 Tim Janik b9dcc9b8 * simplify-assertions: ASE: queuemux.hh: avoid inlining fallback method `empty()` ASE: cxxaux: assertion_failed: simplify many call sites by adding noexcept ASE: queuemux.hh: simplify impls by adding noexcept ASE: platform.cc: fix up assertion_failed() call ASE: engine.cc: use ASE_ASSERT_WARN() instead of one-off special macro ASE: cxxaux: assertion_failed: simplify many call sites by using char* ASE: cxxaux.hh: simplify compiler errors by avoiding macro indirections ASE: internal.hh: simplify compiler errors by avoiding macro indirections Merge branch 'fix-multiplexer-iterator' # 2023-11-17 Tim Janik 47565461 * fix-multiplexer-iterator: ASE: queuemux.hh: properly check for more() in iterator equality operator ASE: midievent.cc: show hex dump for unknown events Merge branch 'param-events' # 2023-11-16 Tim Janik 8f23a2df * param-events: DEVICES: blepsynth/blepsynth.cc: port to new Parameter API * Start using install_params() * Rename pid_key_[abcdefg]_, add key prefix * Declare all parameter IDs in an enum * Use ase_gettext() multi arg formatting * Construct AudioProcessor with ProcessorSetup& * Add "toggle" hint for piano key properties * Handle PARAM_VALUE events via apply_event() * Start using midi_event_input() * Port remaining OSC1 and OSC2 parameter references * Adjust and check parameter state *after* processing MIDI events * Adjust parameter ID types DEVICES: freeverb/freeverb.cc: support new param events * Use install_params(ParameterMap) * Construct AudioProcessor with ProcessorSetup& * Use adjust_all_params() and apply_input_events() * Fix MODE hints and param position DEVICES: colorednoise.cc: use adjust_all_params() and apply_input_events() * Port to install_params(ParameterMap) * Construct AudioProcessor with ProcessorSetup& DEVICES: Makefile.mk: include colorednoise.cc in the build ASE: midilib.cc: use midi_event_input() and midi_event_output() ASE: clapplugin.cc: use midi_event_input() ASE: engine: allow atomic frame_counter and block_size access ASE: engine.cc: use midi_event_output() ASE: midievent: rename + rewrite MidiEventReader to read many queues * Base MidiEventReader on QueueMultiplexer<> to turn it into a multiplexing event queue reader * Rename MidiEventReader (former MidiEventRange) ASE: clapplugin.cc: use call_delete<>() ASE: cxxaux.hh: add call_delete<> to quickly create delete callbacks ASE: rename MidiEventOutput (former MidiEventStream) ASE: nativedevice.cc: use AudioProcessor.access_properties() ASE: midilib: construct AudioProcessor with ProcessorSetup& ASE: api.hh, server.cc: add Server.engine_stats() ASE: engine: add AudioEngine.engine_stats() ASE: clapplugin.cc: construct AudioProcessor with ProcessorSetup& ASE: clapplugin: remove unused flags fiels from params ASE: combo: construct AudioProcessor with ProcessorSetup& ASE: processor: implement parameter change events * Introduce AudioParams, t0events, install_params(), apply_event() * Implement AudioParams::dirty() * Implement AudioProcessor.access_properties() * Store aseid_ in each AudioProcessor * Add property weak pointers to AudioParams * Support install_params() with an ordinary map<> * Initialize parameter cache with intial value * Disable Property inflight handling code * Rename MidiEventOutput (former MidiEventStream) * Implement multiplexing MIDI event handling * Atomically modify and swap t0events to pass between threads * Leave new/delete of t0events to the main-thread * Add modify_t0events<>() helper to care about atomic swapping * Rename and rewrite get_event_input() and get_event_output() * Introduce RenderContext for rendering specific variables * midi_event_input(): setup multiplexing event queue reader * midi_event_output(): provide writable MIDI event vector * Implement send_param() * Only set dirty and changed for params with property object * Enqueue PARAMCHANGE notification if params changed * Simplify event processing * Provide apply_input_events() to assign PARAM_CHANGE events * Use uint32_t as parameter id type for processors * Provide adjust_all_params() to call adjust_param() for all params ASE: midievent: support MidiMessage::PARAM_VALUE ASE: midievent: add PARAM_VALUE and make_param_value() ASE: parameter: add ParameterMap and support groups * Make `ident` the first Param() field, adjust callers * Add ParameterMap helper type * Support Param.MinMaxStep as double min,max pair * Catch simple cases of duplicate IDs, ident, label * Assign group to new ParameterMap Params ASE: queuemux: support iterators and assign via std::array ASE: queuemux: add QueueMultiplexer.assign() and support iterator template arg Merge branch 'loft-stl-allocator' # 2023-11-13 Tim Janik 89cc7d6c * loft-stl-allocator: ASE: loft: provide STL allocator adapter Loft::Allocator ASE: utils.cc: allow 3 character "unicode" icons ASE: cxxaux.cc, utils.cc: for --fatal-warnings, call breakpoint() This allows continuations in gdb sessions. ASE: utils.hh: require multiple arguments to ase_gettext() for string_format() Merge branch 'queuemux' # 2023-11-13 Tim Janik e1031e5f * queuemux: ASE: queuemux: integrate QueueMultiplexer ASE: queuemux.cc: start QueueMultiplexer implementation Merge branch 'swesterfeld-flexible-adsr', closes #6 # 2023-11-11 Tim Janik 409e87d3 * swesterfeld-flexible-adsr: DEVICES: blepsynth/blepsynth.cc: cleanup unneccessary initialization DEVICES: blepsynth/blepsynth.cc: introduce flexible ADSR model - volume envelope can now be analog (exponential) or flexible - flexible envelope has adjustable attack/decay/release slope - support changing volume/filter envelope params while note is playing Merge branch 'swesterfeld-blepsynth-sallen-key-filter', closes #10 # 2023-11-01 Tim Janik 441cbca2 * swesterfeld-blepsynth-sallen-key-filter: ASE: resampler2: remove, superseded by pandaresampler DEVICES: blepsynth/blepsynth.cc: reorder parameter groups DEVICES: blepsynth/Makefile.mk: include external/pandaresampler/lib EXTERNAL: pandaresampler: add swesterfeld/pandaresampler commit from 2023-02-14 10:18:45 git submodule add --name pandaresampler https://github.com/swesterfeld/pandaresampler.git external/pandaresampler git -C external/pandaresampler checkout 29097dc786b6d75a9deb12e70ec8960a78f7f8f5 DEVICES: blepsynth: update LadderVCF with drive/reso boost DEVICES: blepsynth: optimize filter code if freq/reso/drive are constant DEVICES: blepsynth: update LadderVCF, setup cutoff frequency range DEVICES: blepsynth: add latency compensation for LadderVCF DEVICES: blepsynth: update LadderVCF to version from dsp-research - oversample LadderVCF with factor 4, too DEVICES: blepsynth: compensate for SKFilter FIR oversampling delay DEVICES: blepsynth: reset filter state on filter type change DEVICES: blepsynth: reset SKFilter state if filter mode changes DEVICES: blepsynth: make cutoff parameter log-scaled DEVICES: blepsynth: rename vcf_ to ladder_filter_; minor cleanups DEVICES: blepsynth: implement midi velocity handling and add master gain DEVICES: blepsynth: smooth drive / reso input for Sallen-Key Filter DEVICES: blepsynth: add Sallen-Key Filter Merge branch 'constrain-parameters' # 2023-11-01 Tim Janik fff51b9e * constrain-parameters: UI: b/databubble.js: fix assertion ASE: processor.cc: use parameter->dconstrain() ASE: parameter: add dconstrain() to convert to double and constrain ASE: processor.cc: use Parameter::construct_hints() ASE: parameter: export construct_hints(), always use "stepped" hint for bools UI: b/propinput.js: give toggles preference over choices ASE: processor.cc: remove unused choices from boolean param ASE: serialize.cc: call jsonvalue_to_string() directly ASE: jsonapi.cc: call jsonobject_to_string() directly JSONIPC: jsonipc.hh: always write null instead of NAN, ±Inf Remove JsonWriteFlags from the (template) API. JSONIPC: Makefile: fix include path to external/rapidjson/ EXTERNAL: rapidjson: update Tencent/rapidjson to 2023-09-28 11:36:59 +0200 git -C external/rapidjson checkout f9d53419e912910fd8fa57d5705fa41425428c35 Among other changes, this provides kWriteNanAndInfNullFlag. ASE: parameter: value_from_text(): yield integers for text inputs of choices Merge branch 'npm-updates' # 2023-11-01 Tim Janik 8d568227 * npm-updates: MISC: package.json.in: update various minor versions Makefile.mk: allow $NPM_INSTALL overrides via config-defaults.mk This allowes e.g.: NPM_INSTALL = pnpm install --prefer-offline Merge branch 'g++-bun-pnpm-ci' # 2023-10-27 Tim Janik 042fd7ab * g++-bun-pnpm-ci: GITHUB: workflows/testing.yml: test Arch builds with g++ MISC: Dockerfile.arch: provide pnpm as JS package manager MISC: Dockerfile.arch: update build comments MISC: Dockerfile.focal: provide bun as JS package manager MISC: cirun: defer check for docker-buildx-plugin until we actually need it Makefile.mk: guard against `prefix := / / ` etc which will confuse `rm -rf` EXTERNAL: websocketpp: update zaphoyd/websocketpp to 2022-05-24 18:42:50 2022 -0500 git -C external/websocketpp/ checkout b9aeec6eaf3d5610503439b4fae3581d9aff08e8 This includes fixes applied after version 0.8.2, in particular it allows g++ to build the sources with C++20 enabled. See: https://github.com/zaphoyd/websocketpp/issues/991 Merge branch 'bun' # 2023-10-24 Tim Janik 63e4292b * bun: Makefile.mk: fix up sharp and electron installations with bun At the moment, we need to call the postinstall scripts manually, see: https://github.com/oven-sh/bun/pull/5077 MISC: config-checks.mk: support bun 1.0.0 as package manager Merge branch 'pnpm' # 2023-10-24 Tim Janik f1b37e40 * pnpm: MISC: config-checks.mk: remove unused NPM_INSTALL Makefile.mk: save XNPM to defaults and use it to install node_modules/ MISC: config-checks.mk: check for pnpn, provide as $(XNPM) UI: Makefile.mk: fetch Lit version directly from node_modules/lit/package.json X11TEST: ereplay.cjs: set timeout to 2500 to allow click durations of 2200ms Merge branch 'package-updates' # 2023-10-24 Tim Janik 1c7da515 * package-updates: MISC: package.json.in: update babel, eslint, rollup, electron, postcss, lit Major version updates: - electron-27.0.2 - icon-gen-4.0.0 - lit-3.0.0 - rollup-4.1.4 - postcss-lab-function-6.0.7 - puppeteer-core-21.4.0 MISC: package.json.in: update to vue-3.3.6 Merge branch 'preferences' and live PCM driver updates # 2023-10-16 Tim Janik c7ece44a * preferences: UI: util.js: call prop->ident() ASE: shorten Parameter method ident() ASE: strings: add fallback to string_option_find(), remove string_option_get() ASE: testing.cc: use string_option_find_value() ASE: processor.cc: use string_option_find() ASE: cxxaux.cc: use ase_fatal_warnings ASE: main: remove feature toggles, use ase_fatal_warnings ASE: utils: export ase_fatal_warnings ASE: utils.cc: base debug key checks on string_option_find_value() ASE: strings: base option search on string_option_find_value() (without malloc) ASE: project: create_properties: use property_bag() and Prop ASE: clapdevice.cc: use parameter_guess_nick() ASE: gadget: add property_bag() and create_properties() UI: b/preferencesdialog.vue: edit everything with Shift+Ctrl+Alt+Click [Close] UI: b/preferencesdialog.vue: fetch + edit only selected PCM + MIDI preferences UI: b/objecteditor.js: fix blurb and descr bubbles UI: index.html, eslintrc.js: allow _("for translation") markup UI: util.js: rename extended Property descr() (abbreviate) UI: b/choiceinput.js: treat choice property as string UI: b/preferencesdialog.vue: special case driver.pcm.devid UI: b/objecteditor.js: rename internal function on xprop UI: b/contextmenu.js: support focus_uri ASE: engine.cc: add preferences for up to 4 MIDI controllers ASE: engine.cc: cache PCM driver live listing for ca half a second ASE: engine: change PCM driver when preferences change ASE: engine.cc: add audio.synth_latency Preference ASE: driver*: allow to query all PcmConfig values from drivers ASE: api.hh, server: remove all old preference handling ASE: api.hh, server: add Server.list_preferences() ASE: properties: add Preference classes and majorly simplify Property impls * Remove obsolete structures and aux constructors * Add getter/setter lister for enumeration types * Add PropertyBag - a helper to simplify property registrations * Add small PropertyImpl based on ParameterProperty * Add generic Preference class, useful for static initialization * Remove property nick guessing * Add global Preference setting list based on Parameter * Implement saving/loading preferences from anklangrc * Auto save preference changes after maybe half a second * Ensure that Preference names follow NCName syntax ASE: defs.hh: add PropertyImpl ASE: api.hh: rename Property.descr() (abbreviate) ASE: api.hh, server: provide access_preference() instead of access_prefs() ASE: api.hh: add constexpr GUIONLY, STORAGE, STANDARD to avoid C++ SIOF ASE: main.cc: save/load preferences unless --norc is given ASE: processor: use Parameter instead of the old ParamInfo ASE: parameter: add Parameter, ParameterProperty and parameter_guess_nick() * Implement Parameter{} with Param{} as initializer * Add constrain, normalize and text conversions * Implement simple ParameterProperty abstract base class * Support callback function to query parameter choices * In set_value: constrain Value according to parameter range * Use variants for flexible initilizers * Treat choice parameters as text * Match choices via normalized Damerau-Levenshtein distance * Add parameter_guess_nick() (former on property_guess_nick). ASE: value.hh: add Value::is_string() ASE: object.cc: allow NCName as event detail, to support preference identifiers ASE: defs.hh: declare Preference ASE: strings: add kvpairs_search() ASE: strings: define and use ASE_STRING_SET_ASCII_ALNUM and _LOWER_ALNUM ASE: unicode.cc: add missing docs ASE: unicode: add string_to_ncname() and string_is_ncname() ASE: levenshtein: compute (un)restricted Damerau-Levenshtein string distances ASE: defs.hh: add F32EPS and F32MAX ASE: memory.hh: declare CStringS ASE: loop: add exec_once() ASE: cxxaux.hh: add ASE_ASSERT_ALWAYS() MISC: package.json.in: reduce wait delay for rebuilds Merge branch 'c++20' # 2023-10-10 Tim Janik 3a7c2d39 * c++20: MISC: mkAppImage.sh: fix $ORIGIN in AnklangSynthEngine-fma, add jackdriver.so MISC: Dockerfile.focal: install latest poxy (again) MISC: Dockerfile.focal: provide libstdc++-10-dev and a recent castxml MISC: config-uname.mk: optimize with clang -march=x86-64-v3 on modern platforms Clang chokes on '-march=haswell -mno-hle', so we use '-march=x86-64-v3' which is close to Haswell, the clang docs say: -march=x86-64: CMOV, CMPXCHG8B, FPU, FXSR, MMX, FXSR, SCE, SSE, SSE2 -march=x86-64-v2: (close to Nehalem) CMPXCHG16B, LAHF-SAHF, POPCNT, SSE3, SSE4.1, SSE4.2, SSSE3 -march=x86-64-v3: (close to Haswell) AVX, AVX2, BMI1, BMI2, F16C, FMA, LZCNT, MOVBE, XSAVE -march=x86-64-v4: AVX512F, AVX512BW, AVX512CD, AVX512DQ, AVX512VL MISC: mkassets.sh: adopt compiler config and fix make V=1 * Support make with V=1 during asset builds * Copy compiler config from config-defaults.mk for mkassets Makefile.mk: ignore leading spaces in config-defaults.mk ASE: properties.hh, processor.hh: remove unused (and conflicting) GroupId ASE: memory.cc: test CString operators ASE: memory.hh: CString: provide operator== and operator<=> to disambiguate JSONIPC: cxxjip.py: switch from C++17 to C++20 README.md, *.mk: switch from C++17 to C++20 ASE: memory.hh: always provide ctor for Block initialization Merge branch 'audio-engine-job-cleanups' # 2023-10-01 Tim Janik 8067acc1 * audio-engine-job-cleanups: ASE: engine.hh: document engine lifetime ASE: engine: remove BorrowedPtr, simplify EngineJobImpl ASE: clapplugin.cc: use main_rt_jobs queue to delete events from audio_thread ASE: clapplugin.cc: rename ClapAudioProcessor ASE: project.cc: do not (auto) destroy all projects during atexit ASE: main.cc: shutdown: unset engine project and handle main loop callbacks ASE: engine: make transport a reference, move job queues into AudioEngine ASE: engine: rename AudioEngineThread Merge branch 'websocket-fix' # 2023-10-01 Tim Janik a5f9ca97 * websocket-fix: ASE: jsonapi.cc: cache socket nickname for use during errors ASE: websocket.cc: avoid exceptions in boost::asio socket.remote_endpoint() ASE: callback.hh: remove (sync) return value handling in JobQueue ASE: jsonapi.cc: wait for main loop callback completion via semaphore Merge branch 'main-rt-jobs' # 2023-09-30 Tim Janik a3f8f290 * main-rt-jobs: ASE: main.cc: fit one RtCallJob into a cache line This becomes possible with RtCall allocating just 4 pointer sizes. Since Loft allocates at cache line boundaries only, this essentially halves the size of an RtCallJob allocation. ASE: callback: shrink struct RtCall by a pointer ASE: loft: fix and test LoftPtr actually running ~T ASE: engine.hh: add comment about main_rt_jobs ASE: main.cc: turn debugging code into real job_queue_tests ASE: main: main_rt_jobs: add main_loop callback queue without invoking malloc() ASE: callback: RtCall: wrap simple callback pointers, without using malloc ASE: cxxaux.hh: add unalias_ptr<> helper ASE: callback.cc: add a small callback list test ASE: callback: add CallbackList - reentrant cb list with configurable arguments ASE: callback: move JobQueue implementation here Merge branch 'fix-warnings' # 2023-09-29 Tim Janik 9c1a0624 * fix-warnings: ASE: track.cc: fix signedness ASE: utils.cc: cosmetic change ASE: project.cc: cosmetic change ASE: nativedevice.cc: fix signedness ASE: midilib.cc: fix signedness ASE: midievent.cc: cosmetic change ASE: internal.hh: cosmetic change ASE: inifile.cc: fix signedness ASE: engine.cc: cosmetic change ASE: compress.cc: fix write check signedness ASE: combo: fix insert position signedness ASE: clapplugin.cc: cosmetic change ASE: device.cc: remove unused code ASE: blob.cc: cosmetic fix MISC: Makefile.mk: clang-tidy: fix missing includes ASE: clapplugin.cc: cosmetic fix ASE: loop.cc: fix typo Merge branch 'bug-fixes' # 2023-09-23 Tim Janik e9015b99 * bug-fixes: GITHUB: workflows/testing.yml: upload dist tarball as isolated smaller artefact GITHUB: workflows/testing.yml: upgrade to actions/upload-artifact@v3.1.3 MISC: *.sh: use '#!/usr/bin/env bash' for bash scripts, fixes #17 Merge branch 'use-git-submodule' # 2023-09-21 Tim Janik 22cf3470 * use-git-submodule: DOC: copyright.ini: apply MPL-2.0 to .gitmodules MISC: Makefile.mk: directly create and reference .dlcache/ for mkassets.sh MISC: Makefile.mk: mkassets: download builds tools before misc/mkassets.sh GITHUB: workflows/testing.yml: use `make mkassets` for release builds .gitignore: ignore .submodule-stamp UI: global.scss, index.html: move AnklangIcons to assets/ UI: Makefile.mk: copy anklangicons-*.tgz files to assets, remove download EXTERNAL: blobs4anklang: add tim-janik/blobs4anklang commit from 2023-09-21 21:04:16 git -C external/blobs4anklang/ checkout 7b0a4a68a1e9efbe68fc9761bef080995f4b4d6b UI: global.scss, index.html: move fork-awesome to assets/ UI: Makefile.mk: copy node_modules/fork-awesome to assets, remove download MISC: package.json.in: install fork-awesome@1.2.0 UI: Makefile.mk: use blobs4anklang/fonts/InterVariable.woff2, remove download EXTERNAL: blobs4anklang: add tim-janik/blobs4anklang commit from 2023-09-21 18:23:36 git submodule add --name blobs4anklang https://github.com/tim-janik/blobs4anklang.git external/blobs4anklang git -C external/blobs4anklang/ checkout 8da35f3914b9668bacc6755a8051a17051b07c3a Makefile.mk: skip `git submodule` in tarball builds Makefile.mk: dist: exclude unused external subdirs from tarball Makefile.mk: include submodule archives in dist tarball ASE: Makefile.mk: use blake3 submodule, remove download rule ASE: compress.cc: use external/blake3/c/blake3.h EXTERNAL: blake3: add BLAKE3-team/BLAKE3 version 1.3.1 git submodule add --name blake3 https://github.com/BLAKE3-team/BLAKE3.git external/blake3 git -C external/blake3/ checkout 1.3.1 ASE: Makefile.mk: use websocketpp submodule, remove download rule EXTERNAL: websocketpp: add zaphoyd/websocketpp version 0.8.2 git submodule add --name websocketpp https://github.com/zaphoyd/websocketpp.git external/websocketpp git -C external/websocketpp/ checkout 0.8.2 ASE: Makefile.mk: use clap submodule, remove download rule EXTERNAL: clap: add free-audio/clap version 1.1.1 git submodule add --name clap https://github.com/free-audio/clap.git external/clap git -C external/clap/ checkout 1.1.1 ASE: Makefile.mk: use rapidjson submodule, remove download rule EXTERNAL: rapidjson: add Tencent/rapidjson commit from 2022-05-24 10:03:13 git submodule add --name rapidjson https://github.com/Tencent/rapidjson.git external/rapidjson git checkout 232389d4f1012dddec4ef84861face2d2ba85709 Makefile.mk: update all submodules before building sources Makefile.mk: remove external/ subdir from ls-tree.lst MISC: mkcopyright.py: ignore dirs passed from `git ls-tree` on the CLI ASE: storage.cc: adjust old link to zlib-ng/minizip-ng/issues/433 ASE: minizip: build against external/minizip-ng/ ASE: Makefile.mk: use minizip-ng submodule, remove download rule EXTERNAL: minizip-ng: add zlib-ng/minizip-ng version 2.9.0 git submodule add --name minizip-ng https://github.com/zlib-ng/minizip-ng.git external/minizip-ng .gitignore: remove entries of files the build is not generating Merge branch 'thin-lto' - improve LTO builds # 2023-09-17 Tim Janik 0e21fc8e * thin-lto: ASE: main.cc: add missing formats to WAV output help MISC: config-uname.mk: when using LTO, enable Thin LTO with clang Thin LTO can result in smaller binaries and better performance. Merge branch 'cirun-docker-caching' - let cirun handle image build and caching # 2023-09-17 Tim Janik 00c05372 * cirun-docker-caching: GITHUB: workflows/testing.yml: use separate steps for docker image builds GITHUB: workflows/testing.yml: make use of cirun which handles docker builds * workflows/testing.yml: use misc/cirun -u 1000 to fix ownership * workflows/testing.yml: fix CIMAKE for Focal-Clang-Tidy * workflows/testing.yml: move nproc out of env variables MISC: cirun.sh: remove, use simpler cirun MISC: gh_delete_assets.sh: remove old helper MISC: Dockerfile.lunar: remove old file MISC: docker_*: remove old helpers MISC: cirun: add docker build, run, chown and caching MISC: cirun: add script to run commands in dockerized environments GITHUB: workflows/testing.yml: use buildx with selective caching GITHUB: workflows/testing.yml: configure and use buildx with selective caching GITHUB: workflows/testing.yml: remove unused actions/upload-artifact GITHUB: workflows/testing.yml: split asset builds into separate job MISC: cirun.sh: add --build, note that --check includes --build MISC: mkassets.sh: fix outdated globs Merge branch 'ci-fixes' # 2023-09-10 Tim Janik 9a7e6280 * ci-fixes: MISC: mkassets.sh: remove unused file generations MISC: dbuild.sh: delete, now unused MISC: cirun.sh: add missing arg to help MISC: publish.sh: remove --draft MISC: publish.sh: determine version from tarball, show progress MISC: publish.sh: use assets/ directory contents if present GITHUB: workflows/testing.yml: use download-artifact@v3 to fetch release assets GITHUB: workflows/testing.yml: make sure to generate PDF docs early on GITHUB: workflows/testing.yml: provide GH_TOKEN for gh in publish.sh GITHUB: workflows/testing.yml: first build docs, then upload docs/ artifact GITHUB: workflows/testing.yml: fix Release-Upload deps, avoid skipped jobs GITHUB: workflows/testing.yml: allow skipped jobs in Ping-IRC GITHUB: workflows/testing.yml: use github expression for negating if GITHUB: workflows/testing.yml: escape exclamation mark for yaml GITHUB: workflows/testing.yml: skip Focal-Clang-Tidy for release tags GITHUB: workflows/testing.yml: uplaod releases via misc/publish.sh GITHUB: workflows/release.yml: remove, releases moved into testing.yml MISC: publish.sh: download artifacts and create a release MISC: cirun.sh: properly dockerize clang-tidy MISC: cirun.sh: support V=1 GITHUB: workflows/testing.yml: run clang-tidy on focal MISC: cirun.sh: use 1000:1000 to chown files for docker containers MISC: mkassets.sh: add missing auto to cp --reflink=auto GITHUB: workflows/testing.yml: fix env syntax for gha GITHUB: workflows/testing.yml: use cirun.sh for all CI jobs GITHUB: workflows/testing.yml: use cirun.sh on Focal for docs MISC: cirun.sh: support $CITAG to determine docker run image MISC: Dockerfile.lunar: install missing clang aliases MISC: cirun.sh: add script that runs all CI stages via docker MISC: Dockerfile.focal: install poxy==0.13.0 Versions poxy>=0.13.1 have problems with python-3.8 on focal. MISC: Dockerfile.focal: install pandoc-3.1.6.2 Using pandoc-3.1.7 seems to have issues with PDF generation, anchors in section titles cause an error and SVG images are not found. .gitignore: minor addition MISC: Dockerfile.focal: add clang-17 aliases MISC: Dockerfile.focal: provide xetex, poxy and clang++-17 GITHUB: workflows/release.yml: upload draft releases for CI tests GITHUB: workflows/release.yml: cache focal docker builds with buildx GITHUB: workflows/testing.yml: fix comment GITHUB: workflows/testing.yml: cache arch docker builds with buildx GITHUB: workflows/testing.yml: cache lunar and jammy docker builds with buildx Merge branch 'release-fixes' # 2023-09-08 Tim Janik d8465fd8 * release-fixes: MISC: mknews.sh: print latest NEWS.md version with `misc/mknews.sh --version` GITHUB: workflows/release.yml: set prerelease:false for annotated tags Fix actions/checkout@v3 and actions/checkout@v4 messing up the annotation of the currently fetched tag, even with fetch-depth:0, see: actions/checkout#290 MISC: mknews.sh: for release tags, copy news section from NEWS.md ">Merge branch 'build-fixes' # 2024-05-21 Tim Janik 998d0890 * Branch commit log: ase/logging.cc: add missing unistd.h include package.json: add missing "globals" package (for eslint) ase/*.cc: fix missing include ase/*.hh: fix missing include misc/cirun: use $CITAG, instead of hard coding dist Merge branch 'log2file' # 2024-05-20 Tim Janik f4a6e2d7 * Branch commit log: package.json: add --log2file to synth engine electron/main.js: add --log2file to synth engine ase/utils.hh: include ase/logging.hh ase/main: add --log2file and log info of interest ase/engine.cc: log missing PCM driver as error ase/driver.cc: log driver opening as info ase/logging: add log_setup(), loginf() and logerr() ase/logging: add source files for logging Merge branch 'override-drivers' # 2024-05-20 Tim Janik 80ed0d56 * Branch commit log: ui/Makefile.mk: add --norc when running --js-api doc/Makefile.mk: add --norc when running --class-tree ase/server.cc: ase_{error_blurb|error_from_errno}: always map errno to strerror ase/driver-alsa.cc: always pass ALSA errno back to the caller ase/cxxaux.cc: ignore ptrace_scope when constructing debugger cmd misc/GNUmakefile: allow subdir builds ase/Makefile.mk: utilize GNU Parallel for test execution Use GNU Parallel if available, otherwise xargs. Avoid parallel.moreutils which is incompatible and tends to drop jobs. ase/engine.cc: let main_config.pcm_override, .midi_override override drivers ase/main.cc: add -P and -M ase/main.hh

zam-plugins is a collection of LV2/LADSPA/VST/JACK audio plugins developed in-house at ZamAudio

Updated: 12 May, 2024

Note: First AU release in macOS!

Helio Workstation is free and open-source music sequencer, designed to be used on all major platforms.

Updated: 11 May, 2024

Update change log

amsynth is an easy-to-use software subtractive synth

Updated: 02 May, 2024
  • Fixed "reference to 'filesystem' is ambiguous" build error. [#233]

amsynth is an easy-to-use software subtractive synth

Updated: 02 May, 2024
  • Fixed an error when building DSSI GUI with GCC 14 or Clang

Zrythm is a featureful and easy to use DAW, written in C using the GTK+3 toolkit.

Updated: 28 Apr, 2024

v1.0.0-rc.1

Added
- New Windows UWP (RtMidi) MIDI backend

Changed
- Hide "Custom" tab from scale selector
- Include a scale in the default project (A minor)
- Display region link group IDs inside regions instead of link symbol
- Use new Carla discovery API for scanning plugins
- Use pulse mode in greeter progress bar
- Regenerate bundled faust plugins
- Change Zrythm theme priority to APPLICATION instead of USER

Fixed
- Fix segfault when max tracks limit is reached on trial version
- Fix various issues related to linked regions
- Fix multiple plugins in same CLAP binary not being scanned

Removed
- Removed section labels in some context menus
- Remove libguile dependency
- Remove lilv dependency (at runtime)
- Remove reproc dependency

Zrythm is a featureful and easy to use DAW, written in C using the GTK+3 toolkit.

Updated: 18 Apr, 2024

v1.0.0-rc.0

Added
- Add navigation buttons to the initial greeter window

Changed
- Update the whole user manual
- Update Japanese, Dutch, Russian, translations
- INSTALL: update dependencies list
- Use horizontal icons for some elements in track/channel context menus
- Remove EXIF data from images used in the user manual and add a CI check

Fixed
- Fix crash when changing fade positions in the audio editor

Zrythm is a featureful and easy to use DAW, written in C using the GTK+3 toolkit.

Updated: 12 Apr, 2024

v1.0.0-beta.6.7.32

Added
- Add context menu to import files (#4751)

Changed
- Don't rescan hardware ports periodically (instead do it when the engine gets paused on user actions)
- Port chord selector dialog to AdwDialog and hide tabs with unimplemented functionality (#5071)
- Update Portuguese (Brazil), Turkish, Spanish translations
- Update various sections in the user manual
- Hide Scenes tab in the main panel

Fixed
- Added a temporary workaround to VST3 plugins not accepting all notes off (#5062)
- Fix not being able to select RtAudio device ports in preferences (#5033)
- Fix `is_midi` flag not being copied when cloning hardware ports (may fix issue with MIDI controllers not working)
- Re-enable search in the preferences
- Fix being unable to delete MIDI CC bindings

Cardinal is a virtual Eurorack modular synthesizer platform

Updated: 11 Apr, 2024

This is a feature release that updates to VCV Rack 2.4 and adds quite a few new modules, bringing the module count to 1193

  • HostMIDI: Add option to force gaps between MIDI input notes
  • Fix build with latest liblo
  • Fix Linux VST2 exported symbols
  • Fix MindMeldModular in wasm/web builds
  • Force-redraw of all child widgets on dark mode change
  • Improve Carla/Ildaeil VST3 plugin handling
  • Improve Ildaeil plugin bridge handling for macOS
  • Improve Ildaeil plugin scanning
  • Several fixes for UI size with high-dpi screens
  • Stop using cardinal-specific settings::darkMode
  • Tweak default build flags to better match VCV Rack
  • Update base VCV Rack to v2.4
  • Use DPF for AU support instead of JUCE
  • Use GLES2 render target for Linux ARM release builds

Module updates:

  • Add Computerscare
  • Add CVfunk
  • Add DHE modules
  • Add Starling Via
  • Update Befaco
  • Update GrandeModular
  • Update HetrickCV
  • Update Sapphire
  • Update Surge XT
  • Update unless_modules
  • Update ValleyAudio

Special note for AU format users: this release breaks backwards compat due to JUCE -> DPF framework change.
You should export your old patches individually, and reload them after updating.

screenshot

Zrythm is a featureful and easy to use DAW, written in C using the GTK+3 toolkit.

Updated: 06 Apr, 2024

v1.0.0-beta.6.7.1

Added
- Implement ctrl-drag to move the loop range in the timeline (#4815)
- Print libadwaita/libpanel versions in debug info

Changed
- Remove unneeded `volatile` keywords from some variables
- Monitor section tab: use speaker icon from GNOME icon library
- Stretch objects with Ctrl modifier instead of having a separate stretch mode (#5036)
- Change modulator icon to a knob (#5073)
- Don't allow resizing if the hovered object is too narrow (#5070)
- Update Russian, Interlingua, Catalan, Afrikaans, Finnish, Turkish, Polish, Chinese (Simplified), Japanese translations

Zrythm is a featureful and easy to use DAW, written in C using the GTK+3 toolkit.

Updated: 06 Apr, 2024

v1.0.0-beta.6.7

Radium is a music editor with a tracker and sequencer and mixer interface.

Updated: 01 Apr, 2024

automatically when playing song and switching
between blocks. This was only a bug in the offical
binary releases of Radium 7.3.84.

  • Help: Minor fix
  • About: Include Faust version in the about window.
  • Mac/ARM: Fix deadlock happening when showing
    assertion reporter.
  • Gui: Fix crash when exiting program and waiting for
    a plugins to finish running.
  • JUCE: 7.0.3 -> 7.0.11
  • Sequencer: Don't throw error if pasting automation
    from the clipboard where the two first nodes had
    the same time values.
by pd3v

line is a tiny command-line midi sequencer for live coding

Updated: 24 Mar, 2024

What's new

. gacommand generates random amplitudes for each and every note in the playing phrase

. rl, rr commands rotate, one/various positions, left or right, respectively, each note(s)/cc

. Upgrade notes/cc sync process

This release comes with source code files.
For MacOS and Linux binaries: download artifact

ProjectM is an open source MilkDrop

Updated: 23 Mar, 2024

This is a small bug fix release that corrects some issues found in version 4.1.

Changes since 4.1.0

Enhancements

  • Added CMake USE_PTHREADS option for emscripten builds

Bugs

  • Fixed a bug that prevented a preset's composite shader from being loaded if the warp shader was empty
  • Fixes to GLM CMake targets/usage
  • Fixed a broken #ifdef in the SDL test UI
  • Fixed SOIL2 include directories

Virtual Midi keyboard and Midi Live Looper for Jack Audio Connection Kit

Updated: 23 Mar, 2024

Mamba is a Virtual MIDI Keyboard, a 16 Channel Live MIDI Looper and a (multi) MIDI File player for ALSA / Jack Audio Connection Kit
with a fluidsynth interface, supporting Scala Tuning and Keymap files.

mamba
Release v2.6:

  • Fix issue #53 Config created in home dir instead of XDG_CONFIG_HOME
  • Implement Looper Channel Control to select channels for mute/play
  • Implement loop file clip/clap controls
  • Implement Preload instruments on File load
  • Update libxputty to latest revision

Prebuild binary
Mamba.zip

balance.lv2 is an audio-plugin for stereo balance control with optional per channel delay.

Updated: 20 Mar, 2024

closes #5

Zrythm is a featureful and easy to use DAW, written in C using the GTK+3 toolkit.

Updated: 19 Mar, 2024

v1.0.0-beta.6.6.1

Changed
- Change how object resizing works: revert original object(s) on undo (fixes undoing audio stretching not reverting the original audio, #4955)
- Bump required libadwaita/gtk versions to latest stable releases
- Revert to previous fader style (#5054)

Fixed
- Fix track inputs switching to wrong input in the inspector after selecting a different track
- Fix some issues reported by ASAN
- Fix memory leak when loading project files
- Fix home VST2 path being used when scanning DSSI plugins (#5058)

Removed
- Hide MIDI modifier chooser (out of scope for v1, #5053)

Radium is a music editor with a tracker and sequencer and mixer interface.

Updated: 17 Mar, 2024
  • MacOS: Don't crash when loading files with
    certain non-ascii characters (e.g. Japanese) in
    their filename. (Possibly only a problem in very
    recent versions of MacOS.)
  • Demo songs: New song called "Night comes" by Nay.
  • MacOS: Workaround for strange trackpad behavior
    causing two-finger-touching a seqblock not always
    working.
  • Instrument: Remove the "locked instrument" concept.
    (Yustin / Kmatheussen)
  • Instrument: Never automatically change instrument
    when playing song when the cursor is moved to a new
    editor track. (Yustin / Kmatheussen)
  • Instrument: Replace the "locked" checkbox with
    a "select" button.
  • GUI: Remember window positions and so forth between
    sessions. (Akimaze)
  • Instruments Clarify what the "set new name" option
    does.
  • Sequencer: Enable "Delete all selected" also when
    only one seqblock is selected.
  • Sequencer: Remove the "Delete" popup menu entry
    since it was too similar to "Delete current".
    (It only differered for the behavior of assigned
    keybindings.)
  • Automatically add extension to preset names if
    missing. (Akimaze)
  • Faust: Use linear velocity->gain conversion for
    very low velocities so that gain can reach zero.
  • Audio: Fix pops/scratches/clicks for quite silent
    sounds in the graph that were volume-boosted up
    later in the DSP graph. (Even the "Demo song" demo
    song suffered from this.)
  • Build: Add option to use qwebengine instead

Guitarix is a virtual guitar amplifier for Linux running with JACK.

Updated: 11 Mar, 2024

Guitarix is a modular, virtual amplifier for Linux.

guitarix

With Guitarix you can choose different preamp and amp models
and /or could load *.nam files with the Neural Amp Modeler modules,
or load *.json or .aidax files with the RTNeural modules,
to simulate a specific hardware unit.
Combine them with various effects and speaker cabinet emulations
and/or load your own Impulse Response files
to come up with your very own tones.

New in this release:

  • Add support for RTNeural network engine
  • Allow to load two instances of the neural modules
  • Add NAM and RTNeural Multi module (Load two models and blend between them)
  • Implement links in the about menu to download sites for neural models (*.nam or *.aidax)
  • Fix resampling issues within the neural modules
  • Fix for distributors: reimplement root directory for release tarball

Guitarix is a virtual guitar amplifier for Linux running with JACK.

Updated: 28 Feb, 2024

This is the long overdone release for guitarix2 version 0.45.0

Guitarix is a modular, virtual amplifier for Linux.
With Guitarix you can choose different preamp and amp models
and /or could load *.nam files with the Neural Amp Modeler module,
to simulate a specific hardware unit.
Combine them with various effects and speaker cabinet emulations
and/or load your own Impulse Response files
to come up with your very own tones.

guitarix

This release fix various bugs since the last release from May 2, 2022
It also introduce support for the outstanding Neural Amp Moduler

Symphonia is a pure Rust audio decoding and media demuxing library

Updated: 27 Feb, 2024

New Features

  • Support for demuxing AIFF by @dedobbin in #193
  • Support for demuxing CAF by @irh in #232
  • Added optional SIMD acceleration using RustFFT. Enable specific SIMD ISAs with the opt-simd-sse, opt-simd-avx, and opt-simd-neon feature flags, or opt-simd to enable all.

Deprecations

  • The symphonia-format-wav crate is now deprecated and superseded by the symphonia-format-riff crate. This new crate is intended to support demuxing of all RIFF-based multimedia formats such as WAVE, AIFF, AVI, etc. As of this release, the symphonia-format-riff crate provides WavReader and AiffReader.

Bug Fixes & Improvements

  • Major optimizations for AAC, FLAC, MP3, and Vorbis decoders.
  • Support for FLAC picture blocks in Vorbis comments.
  • Fix edge cases when seeking OGG or FLAC formats.
  • Many other fixes across the board!

New Contributors

Full Changelog: v0.5.3...v0.5.4

RTcmix is an digital signal processing and sound synthesis language

Updated: 16 Feb, 2024

Many bug fixes since previous release.
Improvements to MIDI Output system.
Completion of Minc parser expansion.

Anklang, a digital audio synthesis application for live creation and composition

Updated: 14 Feb, 2024

Anklang 0.2.0.nightly2402140218

Development version - may contain bugs or compatibility issues.

# 2024-02-12 Tim Janik af7da4a * b-textinput-prop: ui/b/propinput.js: use ui/b/objecteditor.js: use ui/b/textinput.js: move to directly operating on .prop ase/project.cc: add project.default_license preference Merge branch 'fix-non-anklang-dir' - fix loading from non-anklang-dir # 2024-02-11 Tim Janik ab3b8da * fix-non-anklang-dir: ase/project.cc: properly halt at root when searching parent dirs ase/path: add and test Path::isroot() .gitignore: remove unused backslash that confuses jj Merge branch 'properties-metadata' - support generic metadata on properties # 2024-02-08 Tim Janik 5f06a6d * properties-metadata: devices/saturation/saturation.cc: add "blurb=" prefix and mark translations devices/liquidsfz/liquidsfz.cc: add "blurb=" prefix and mark translations devices/freeverb/freeverb.cc: add "blurb=" prefix and mark translations devices/blepsynth/blepsynth.cc: add "blurb=" prefix and mark translations ase/api.hh: introduce metadata() for properties * Add const this qualifier to parameter APIs. * engine.cc: add "descr=" prefix to property metadata * project.cc: add "descr=" prefix to property metadata ase/strings: add kvpairs_fetch() and kvpairs_assign() Merge branch 'MOUSE-WHEEL' - fix mouse wheel handling in modern Chrome and Firefox # 2024-02-08 Tim Janik 070d91a * MOUSE-WHEEL: ui/util.js: remove unused wheel2scrollbars ui/b/pianoroll.js: reinstante hzoom and vzoom adjustments via Ctrl ui/util.js: use Mouse.wheel_delta() ui/b/knob.js: use Mouse.wheel_delta() ui/b/pianoroll.js: properly scroll via deltaY from Mouse.wheel_delta() ui/mouse.js: wheel_delta(): provide .x, .y, .z in pixels ui/b/app.js: defer ZMove handling to mouse.js ui/mouse.js: include ZMove notification handling ui/index.html: start mouse.js early on ui/mouse.js: add event_movement() and wheel_delta() to fix event coords Cross browser normalization of movementX,movementY and deltaX,deltaY is a hot mess, see: https://bugs.chromium.org/p/chromium/issues/detail?id=1092358 https://bugzilla.mozilla.org/show_bug.cgi?id=1392460 https://github.com/w3c/uievents/issues/181 https://github.com/w3c/pointerlock/issues/42 https://github.com/mdn/content/issues/11811 ui/index.html: disable modulepreload, it causes module errors in Firefox-122 Merge branch 'GRID-FILE-BROWSER' - use for file browser # 2024-02-08 Tim Janik 8cfd329 * GRID-FILE-BROWSER: misc/package.json.in: fix path of rebuild command ui/kbd.js: fix coord check during horizontal focus movement ui/b/folderview.vue: use grid with column flow to fix slow flexbox wrapping ase/websocket.cc: use "CR" as Chrome abbreviation ase/strings.hh: fix spacing ase/clapplugin.cc: fix newline Merge branch 'ATOMIC-STACK' - simple atomic stack based on Loft # 2024-02-08 Tim Janik 765600a * ATOMIC-STACK: ase/atomics.cc: add atomic_valuestack_test() ase/atomics.hh: add a simple AtomicStack<> with just push, pop, empty ase/loft.hh: reduce includes ase/loft.hh: allow constexpr Loft::Allocator and export allows_read_after_free misc/synsmell.py: escape FI[X]ME misc/synsmell.py: reduce false positives for the separate-body check Merge branch 'SFZ-STRING-PARAM' - pass SFZ instrument as string # 2024-02-08 Tim Janik 789a493 * SFZ-STRING-PARAM: devices/liquidsfz/liquidsfz.cc: pass instrument name as string param via Quark ase/memory.hh: fix missing constexpr for CString::qset() Merge branch 'pr7/swesterfeld-liquidsfz' # 2024-02-08 Tim Janik 55480ad * pr7/swesterfeld-liquidsfz: devices/liquidsfz/Makefile.mk: remove -Iexternal/liquidsfz/lib Includes need to be added to ase/Makefile.mk for all tools to pick them up. ase/Makefile.mk: add -Iexternal/liquidsfz/lib ASE: add copyright information to liquidsfz meta includers ASE: compile liquidsfz library code into ase library DEVICES: liquidsfz: prepare code for .sfz file specific parameter handling DEVICES: liquidsfz: add include path to external submodule EXTERNAL: liquidsfz: add swesterfeld/liquidsfz commit from 2023-11-18 15:15:57 git submodule add --name liquidsfz https://github.com/swesterfeld/liquidsfz.git external/liquidsfz git -C external/liquidsfz checkout 590149ea8c83588c17833d7b9b6653f0f6aab6fb DEVICES liquidsfz: port to new parameter API DEVICES: liquidsfz: move SFZ loading to its own thread DEVICES: liquidsfz: add LiquidSFZ device for SFZ support Merge branch 'LIT-DEVICEEDITOR' - port b-deviceeditor to Lit # 2024-02-08 Tim Janik 760b00b * LIT-DEVICEEDITOR: ui/b/deviceeditor.js: point out layout todo ui/b/deviceeditor.js: port logic to lit ui/b/contextmenu.js: support popup with null origin ui/b/deviceeditor.js: convert syntax to valid javascript ui/b/deviceeditor.js: replace deviceeditor.vue Merge branch 'STRING-PROPS' - support String as AudioProcessor property # 2024-02-08 Tim Janik 2aef82b * STRING-PROPS: STRING-PROPS: ase/processor: allow temporary String mappings for text parameters ase/memory: add CString::temp_quark_impl() to expose quarks in some cases ase/memory: introduce CString::qset() which can count quark references ase/processor: AudioProcessor: unify IBus+OBus into IOBus Allow non-trivial ~IOBus() execution. ase/sndfile.cc: add libmp3lame to assertion about missing MP3 support ui/b/propinput.js: start text field support ase/parameter.cc: treat is_text() as non-numeric and allow Quark values Merge branch 'branch-check' # 2024-01-26 Tim Janik 9d38b0f * branch-check: GITHUB: workflows/testing.yml: update to actions/upload-artifact@v4 GITHUB: workflows/testing.yml: only build & upload docs from tim-janik/anklang GITHUB: workflows/testing.yml: update to actions/cache@v4 GITHUB: workflows/testing.yml: use actions/checkout@v4.1.1, fix annotated tag Upgrade to actions/checkout@v4.1.1 and Fix actions/checkout messing up checkouts of annotated tags; actions/checkout#290 Also fetch submodule upfront. GITHUB: workflows/testing.yml: remove Release-Upload run MISC: Makefile.mk: fix script v2.34 invocation The util script from util-linux 2.34 (focal) has no `-O` option. GITHUB: workflows/testing.yml: add `make branch-check` and check errors in PRs MISC: Makefile.mk: add branch-check rule, $BRANCH_CHECK_EXIT holds error status GITHUB: workflows/testing.yml: disable CI on tag pushes MISC: mknews.sh: show git command line MISC: Makefile.mk: fix missing CLEANDIRS Merge branch 'clang-tidy+synsmell' # 2024-01-25 Tim Janik ceaf526 * clang-tidy+synsmell: UI: Makefile.mk: ui/lint: add checks with misc/synsmell.py DEVICES: Makefile.mk: devices/lint: add checks with misc/synsmell.py ASE: Makefile.mk: ase/lint: add checks with misc/synsmell.py MISC: synsmell.py: check syntax for code smells, based on regular expressions ASE: Makefile.mk: allow double loop variable tests in mathutils.cc ASE: *.cc: fix clang-tidy warnings DEVICES: saturation/Makefile.mk: remove -Iexternal/pandaresampler/lib DEVICES: blepsynth/Makefile.mk: remove -Iexternal/pandaresampler/lib ASE: Makefile.mk: move -Iexternal/pandaresampler/lib here MISC: Makefile.mk: clang-tidy: strip $PWD MISC: colorize.sh: fix black-on-black coloring MISC: Makefile.mk: fix lint-unused rule MISC: Makefile.mk: fix lint-cppcheck rule MISC: Makefile.mk: clang-tidy: support target specific .CTIDY_FLAGS MISC: Makefile.mk: add clang-tidy-check: false exit status on errors/warnings MISC: Makefile.mk: clang-tidy: skip empty reports during printout MISC: Makefile.mk: clang-tidy: add -march=x86-64-v2 so atomics checks pass Merge branch 'docker-apt-cache' # 2024-01-25 Tim Janik 4dcc915 * docker-apt-cache: MISC: version.sh: shorten the logic GITHUB: workflows/testing.yml: compress lines MISC: cirun: simplify, add -B to trigger build, compress cache MISC: Dockerfile.focal: add /var/cache/apt caching MISC: mkassets.sh: build release assets with clang Merge branch 'reduce-make-deps' # 2024-01-22 Tim Janik 8b6e4a7 * reduce-make-deps: ASE: atomics.cc: add simple AtomicIntrusiveStack test MISC: publish.sh: fix git command quoting MISC: mknews.sh: fix extraneous commit hash output ASE: cxxaux.cc: fix missing unistd.h include for read() MISC: Makefile.mk: add appimagetools/ to CLEANDIRS MISC: mkAppImage.sh, mkdeb.sh: fetch $pkgdir from out/config.sh Makefile.mk: generate config.sh to export pkgdir, etc UI: Makefile.mk: add tscheck/ to CLEANDIRS IMAGES: knobs/Makefile.mk: add images/ to CLEANDIRS MISC: package.json.in: minor fix ASE: Makefile.mk: avoid useless rebuilds Makefile.mk: TAGS: use sed to compress flood of "Warning: ignoring null tag" Makefile.mk: regen TAGS after git changed Makefile.mk: avoid touching ls-tree.lst needlessly Makefile.mk: avoid npm rebuilds on git changes Makefile.mk: avoid needlessly touching package.json Merge branch 'simpler-assert' # 2024-01-22 Tim Janik 25b6611 * simpler-assert: ASE: utils: use diag_prefix() for printouts ASE: backtrace.*: remove old code ASE: cxxaux.hh: add ASE_ASSERT_UNREACHED() and ASE_ASSERT() ASE: cxxaux.hh: add assertion_fatal() and bool assertion_failed_fatal ASE: cxxaux.cc: add assertion_fatal(), handle $ASE_DEBUG assertion debug keys Check and implement "breakpoint", "backtrace" and "fatal-warnings" in $ASE_DEBUG Merge branch 'swesterfeld-move-bleptools-to-dspresearch' # 2024-01-22 Tim Janik a26757d * swesterfeld-move-bleptools-to-dspresearch: DEVICES: blepsynth: remove design/test tools (moved to dsp-research repo) Merge branch 'build-fixes' # 2023-12-05 Tim Janik fce55a4 * build-fixes: DOC: Makefile.mk: work around broken heading anchors in pandoc-1.3.9 ASE: Makefile.mk: ase/sndfile.cc requires fully built $>/lib/libsndfile.so Merge branch 'sndfile-1.2.2' - build custom libsndfile # 2023-11-22 Tim Janik 1ca7ebc * sndfile-1.2.2: MISC: mkdeb.sh: require libmpg123-0 for installations ASE: Makefile.mk: build and link against our own libsndfile.so ASE: sndfile.cc: check libsndfile header and build config .gitmodules: sort modules EXTERNAL: libsndfile: add libsndfile/libsndfile commit from 2023-10-24 09:47:22 git submodule add --name libsndfile https://github.com/libsndfile/libsndfile.git external/libsndfile git -C external/libsndfile checkout e486f20fd4b1c7490cde84f22635e1c267ae882b MISC: Dockerfile.arch: install mpg123, lame for libsndlfile MISC: Dockerfile.focal: install Vorbis, libmpg123, libmp3lame, update Pandoc Merge branch 'git-shallow' # 2023-11-22 Tim Janik bdb8273 * git-shallow: MISC: mknews.sh: create NEWS in forward order MISC: mknews.sh: handle repos without tags MISC: mkassets.sh: fallback to building in /tmp/anklang.tmp/ MISC: version.sh: support git repos without tags Merge branch 'swesterfeld-blepsynth-sample-accurate', closes #27 # 2023-11-18 Tim Janik 80927e0 * swesterfeld-blepsynth-sample-accurate: DEVICES: blepsynth: treat negative time offsets as time offset 0 events DEVICES: blepsynth: remove debugging code DEVICES: blepsynth: change defaults for 2nd oscillator / mix DEVICES: blepsynth: remove event offset debug checks DEVICES: blepsynth/blepsynth.cc: improve updates for some parameters DEVICES: blepsynth/blepsynth.cc: use new filter version from dsp-research - use better tanh() approximation in filter saturation function DEVICES: blepsynth/blepsynth.cc: set more parameter used flags DEVICES: blepsynth/blepsynth.cc: use switch for parameter updates DEVICES: blepsynth/blepsynth.cc: implement sample accurate event processing Merge branch 'swesterfeld-saturation', closes #28 # 2023-11-18 Tim Janik be92820 * swesterfeld-saturation: DEVICES: saturation: treat negative time offsets as time offset 0 events DEVICES: saturation: remove debugging code DEVICES: saturation: port to new parameter API, support in-block events DEVICES: saturation: update DSP code - process left/right in single SaturationDSP object - parameter smoothing - performance optimizations DEVICES: saturation: add Saturation device Merge branch 'separate-ci-checks' # 2023-11-18 Tim Janik afb2db0 * separate-ci-checks: GITHUB: workflows/testing.yml: avoid make all vs make check races Makefile.mk: ensure all checks are added $(CHECK_TARGETS) Merge branch 'simplify-assertions' # 2023-11-17 Tim Janik b9dcc9b * simplify-assertions: ASE: queuemux.hh: avoid inlining fallback method `empty()` ASE: cxxaux: assertion_failed: simplify many call sites by adding noexcept ASE: queuemux.hh: simplify impls by adding noexcept ASE: platform.cc: fix up assertion_failed() call ASE: engine.cc: use ASE_ASSERT_WARN() instead of one-off special macro ASE: cxxaux: assertion_failed: simplify many call sites by using char* ASE: cxxaux.hh: simplify compiler errors by avoiding macro indirections ASE: internal.hh: simplify compiler errors by avoiding macro indirections Merge branch 'fix-multiplexer-iterator' # 2023-11-17 Tim Janik 4756546 * fix-multiplexer-iterator: ASE: queuemux.hh: properly check for more() in iterator equality operator ASE: midievent.cc: show hex dump for unknown events Merge branch 'param-events' # 2023-11-16 Tim Janik 8f23a2d * param-events: DEVICES: blepsynth/blepsynth.cc: port to new Parameter API * Start using install_params() * Rename pid_key_[abcdefg]_, add key prefix * Declare all parameter IDs in an enum * Use ase_gettext() multi arg formatting * Construct AudioProcessor with ProcessorSetup& * Add "toggle" hint for piano key properties * Handle PARAM_VALUE events via apply_event() * Start using midi_event_input() * Port remaining OSC1 and OSC2 parameter references * Adjust and check parameter state *after* processing MIDI events * Adjust parameter ID types DEVICES: freeverb/freeverb.cc: support new param events * Use install_params(ParameterMap) * Construct AudioProcessor with ProcessorSetup& * Use adjust_all_params() and apply_input_events() * Fix MODE hints and param position DEVICES: colorednoise.cc: use adjust_all_params() and apply_input_events() * Port to install_params(ParameterMap) * Construct AudioProcessor with ProcessorSetup& DEVICES: Makefile.mk: include colorednoise.cc in the build ASE: midilib.cc: use midi_event_input() and midi_event_output() ASE: clapplugin.cc: use midi_event_input() ASE: engine: allow atomic frame_counter and block_size access ASE: engine.cc: use midi_event_output() ASE: midievent: rename + rewrite MidiEventReader to read many queues * Base MidiEventReader on QueueMultiplexer<> to turn it into a multiplexing event queue reader * Rename MidiEventReader (former MidiEventRange) ASE: clapplugin.cc: use call_delete<>() ASE: cxxaux.hh: add call_delete<> to quickly create delete callbacks ASE: rename MidiEventOutput (former MidiEventStream) ASE: nativedevice.cc: use AudioProcessor.access_properties() ASE: midilib: construct AudioProcessor with ProcessorSetup& ASE: api.hh, server.cc: add Server.engine_stats() ASE: engine: add AudioEngine.engine_stats() ASE: clapplugin.cc: construct AudioProcessor with ProcessorSetup& ASE: clapplugin: remove unused flags fiels from params ASE: combo: construct AudioProcessor with ProcessorSetup& ASE: processor: implement parameter change events * Introduce AudioParams, t0events, install_params(), apply_event() * Implement AudioParams::dirty() * Implement AudioProcessor.access_properties() * Store aseid_ in each AudioProcessor * Add property weak pointers to AudioParams * Support install_params() with an ordinary map<> * Initialize parameter cache with intial value * Disable Property inflight handling code * Rename MidiEventOutput (former MidiEventStream) * Implement multiplexing MIDI event handling * Atomically modify and swap t0events to pass between threads * Leave new/delete of t0events to the main-thread * Add modify_t0events<>() helper to care about atomic swapping * Rename and rewrite get_event_input() and get_event_output() * Introduce RenderContext for rendering specific variables * midi_event_input(): setup multiplexing event queue reader * midi_event_output(): provide writable MIDI event vector * Implement send_param() * Only set dirty and changed for params with property object * Enqueue PARAMCHANGE notification if params changed * Simplify event processing * Provide apply_input_events() to assign PARAM_CHANGE events * Use uint32_t as parameter id type for processors * Provide adjust_all_params() to call adjust_param() for all params ASE: midievent: support MidiMessage::PARAM_VALUE ASE: midievent: add PARAM_VALUE and make_param_value() ASE: parameter: add ParameterMap and support groups * Make `ident` the first Param() field, adjust callers * Add ParameterMap helper type * Support Param.MinMaxStep as double min,max pair * Catch simple cases of duplicate IDs, ident, label * Assign group to new ParameterMap Params ASE: queuemux: support iterators and assign via std::array ASE: queuemux: add QueueMultiplexer.assign() and support iterator template arg Merge branch 'loft-stl-allocator' # 2023-11-13 Tim Janik 89cc7d6 * loft-stl-allocator: ASE: loft: provide STL allocator adapter Loft::Allocator ASE: utils.cc: allow 3 character "unicode" icons ASE: cxxaux.cc, utils.cc: for --fatal-warnings, call breakpoint() This allows continuations in gdb sessions. ASE: utils.hh: require multiple arguments to ase_gettext() for string_format() Merge branch 'queuemux' # 2023-11-13 Tim Janik e1031e5 * queuemux: ASE: queuemux: integrate QueueMultiplexer ASE: queuemux.cc: start QueueMultiplexer implementation Merge branch 'swesterfeld-flexible-adsr', closes #6 # 2023-11-11 Tim Janik 409e87d * swesterfeld-flexible-adsr: DEVICES: blepsynth/blepsynth.cc: cleanup unneccessary initialization DEVICES: blepsynth/blepsynth.cc: introduce flexible ADSR model - volume envelope can now be analog (exponential) or flexible - flexible envelope has adjustable attack/decay/release slope - support changing volume/filter envelope params while note is playing Merge branch 'swesterfeld-blepsynth-sallen-key-filter', closes #10 # 2023-11-01 Tim Janik 441cbca * swesterfeld-blepsynth-sallen-key-filter: ASE: resampler2: remove, superseded by pandaresampler DEVICES: blepsynth/blepsynth.cc: reorder parameter groups DEVICES: blepsynth/Makefile.mk: include external/pandaresampler/lib EXTERNAL: pandaresampler: add swesterfeld/pandaresampler commit from 2023-02-14 10:18:45 git submodule add --name pandaresampler https://github.com/swesterfeld/pandaresampler.git external/pandaresampler git -C external/pandaresampler checkout 29097dc786b6d75a9deb12e70ec8960a78f7f8f5 DEVICES: blepsynth: update LadderVCF with drive/reso boost DEVICES: blepsynth: optimize filter code if freq/reso/drive are constant DEVICES: blepsynth: update LadderVCF, setup cutoff frequency range DEVICES: blepsynth: add latency compensation for LadderVCF DEVICES: blepsynth: update LadderVCF to version from dsp-research - oversample LadderVCF with factor 4, too DEVICES: blepsynth: compensate for SKFilter FIR oversampling delay DEVICES: blepsynth: reset filter state on filter type change DEVICES: blepsynth: reset SKFilter state if filter mode changes DEVICES: blepsynth: make cutoff parameter log-scaled DEVICES: blepsynth: rename vcf_ to ladder_filter_; minor cleanups DEVICES: blepsynth: implement midi velocity handling and add master gain DEVICES: blepsynth: smooth drive / reso input for Sallen-Key Filter DEVICES: blepsynth: add Sallen-Key Filter Merge branch 'constrain-parameters' # 2023-11-01 Tim Janik fff51b9 * constrain-parameters: UI: b/databubble.js: fix assertion ASE: processor.cc: use parameter->dconstrain() ASE: parameter: add dconstrain() to convert to double and constrain ASE: processor.cc: use Parameter::construct_hints() ASE: parameter: export construct_hints(), always use "stepped" hint for bools UI: b/propinput.js: give toggles preference over choices ASE: processor.cc: remove unused choices from boolean param ASE: serialize.cc: call jsonvalue_to_string() directly ASE: jsonapi.cc: call jsonobject_to_string() directly JSONIPC: jsonipc.hh: always write null instead of NAN, ±Inf Remove JsonWriteFlags from the (template) API. JSONIPC: Makefile: fix include path to external/rapidjson/ EXTERNAL: rapidjson: update Tencent/rapidjson to 2023-09-28 11:36:59 +0200 git -C external/rapidjson checkout f9d53419e912910fd8fa57d5705fa41425428c35 Among other changes, this provides kWriteNanAndInfNullFlag. ASE: parameter: value_from_text(): yield integers for text inputs of choices Merge branch 'npm-updates' # 2023-11-01 Tim Janik 8d56822 * npm-updates: MISC: package.json.in: update various minor versions Makefile.mk: allow $NPM_INSTALL overrides via config-defaults.mk This allowes e.g.: NPM_INSTALL = pnpm install --prefer-offline Merge branch 'g++-bun-pnpm-ci' # 2023-10-27 Tim Janik 042fd7a * g++-bun-pnpm-ci: GITHUB: workflows/testing.yml: test Arch builds with g++ MISC: Dockerfile.arch: provide pnpm as JS package manager MISC: Dockerfile.arch: update build comments MISC: Dockerfile.focal: provide bun as JS package manager MISC: cirun: defer check for docker-buildx-plugin until we actually need it Makefile.mk: guard against `prefix := / / ` etc which will confuse `rm -rf` EXTERNAL: websocketpp: update zaphoyd/websocketpp to 2022-05-24 18:42:50 2022 -0500 git -C external/websocketpp/ checkout b9aeec6eaf3d5610503439b4fae3581d9aff08e8 This includes fixes applied after version 0.8.2, in particular it allows g++ to build the sources with C++20 enabled. See: https://github.com/zaphoyd/websocketpp/issues/991 Merge branch 'bun' # 2023-10-24 Tim Janik 63e4292 * bun: Makefile.mk: fix up sharp and electron installations with bun At the moment, we need to call the postinstall scripts manually, see: https://github.com/oven-sh/bun/pull/5077 MISC: config-checks.mk: support bun 1.0.0 as package manager Merge branch 'pnpm' # 2023-10-24 Tim Janik f1b37e4 * pnpm: MISC: config-checks.mk: remove unused NPM_INSTALL Makefile.mk: save XNPM to defaults and use it to install node_modules/ MISC: config-checks.mk: check for pnpn, provide as $(XNPM) UI: Makefile.mk: fetch Lit version directly from node_modules/lit/package.json X11TEST: ereplay.cjs: set timeout to 2500 to allow click durations of 2200ms Merge branch 'package-updates' # 2023-10-24 Tim Janik 1c7da51 * package-updates: MISC: package.json.in: update babel, eslint, rollup, electron, postcss, lit Major version updates: - electron-27.0.2 - icon-gen-4.0.0 - lit-3.0.0 - rollup-4.1.4 - postcss-lab-function-6.0.7 - puppeteer-core-21.4.0 MISC: package.json.in: update to vue-3.3.6 Merge branch 'preferences' and live PCM driver updates # 2023-10-16 Tim Janik c7ece44 * preferences: UI: util.js: call prop->ident() ASE: shorten Parameter method ident() ASE: strings: add fallback to string_option_find(), remove string_option_get() ASE: testing.cc: use string_option_find_value() ASE: processor.cc: use string_option_find() ASE: cxxaux.cc: use ase_fatal_warnings ASE: main: remove feature toggles, use ase_fatal_warnings ASE: utils: export ase_fatal_warnings ASE: utils.cc: base debug key checks on string_option_find_value() ASE: strings: base option search on string_option_find_value() (without malloc) ASE: project: create_properties: use property_bag() and Prop ASE: clapdevice.cc: use parameter_guess_nick() ASE: gadget: add property_bag() and create_properties() UI: b/preferencesdialog.vue: edit everything with Shift+Ctrl+Alt+Click [Close] UI: b/preferencesdialog.vue: fetch + edit only selected PCM + MIDI preferences UI: b/objecteditor.js: fix blurb and descr bubbles UI: index.html, eslintrc.js: allow _("for translation") markup UI: util.js: rename extended Property descr() (abbreviate) UI: b/choiceinput.js: treat choice property as string UI: b/preferencesdialog.vue: special case driver.pcm.devid UI: b/objecteditor.js: rename internal function on xprop UI: b/contextmenu.js: support focus_uri ASE: engine.cc: add preferences for up to 4 MIDI controllers ASE: engine.cc: cache PCM driver live listing for ca half a second ASE: engine: change PCM driver when preferences change ASE: engine.cc: add audio.synth_latency Preference ASE: driver*: allow to query all PcmConfig values from drivers ASE: api.hh, server: remove all old preference handling ASE: api.hh, server: add Server.list_preferences() ASE: properties: add Preference classes and majorly simplify Property impls * Remove obsolete structures and aux constructors * Add getter/setter lister for enumeration types * Add PropertyBag - a helper to simplify property registrations * Add small PropertyImpl based on ParameterProperty * Add generic Preference class, useful for static initialization * Remove property nick guessing * Add global Preference setting list based on Parameter * Implement saving/loading preferences from anklangrc * Auto save preference changes after maybe half a second * Ensure that Preference names follow NCName syntax ASE: defs.hh: add PropertyImpl ASE: api.hh: rename Property.descr() (abbreviate) ASE: api.hh, server: provide access_preference() instead of access_prefs() ASE: api.hh: add constexpr GUIONLY, STORAGE, STANDARD to avoid C++ SIOF ASE: main.cc: save/load preferences unless --norc is given ASE: processor: use Parameter instead of the old ParamInfo ASE: parameter: add Parameter, ParameterProperty and parameter_guess_nick() * Implement Parameter{} with Param{} as initializer * Add constrain, normalize and text conversions * Implement simple ParameterProperty abstract base class * Support callback function to query parameter choices * In set_value: constrain Value according to parameter range * Use variants for flexible initilizers * Treat choice parameters as text * Match choices via normalized Damerau-Levenshtein distance * Add parameter_guess_nick() (former on property_guess_nick). ASE: value.hh: add Value::is_string() ASE: object.cc: allow NCName as event detail, to support preference identifiers ASE: defs.hh: declare Preference ASE: strings: add kvpairs_search() ASE: strings: define and use ASE_STRING_SET_ASCII_ALNUM and _LOWER_ALNUM ASE: unicode.cc: add missing docs ASE: unicode: add string_to_ncname() and string_is_ncname() ASE: levenshtein: compute (un)restricted Damerau-Levenshtein string distances ASE: defs.hh: add F32EPS and F32MAX ASE: memory.hh: declare CStringS ASE: loop: add exec_once() ASE: cxxaux.hh: add ASE_ASSERT_ALWAYS() MISC: package.json.in: reduce wait delay for rebuilds Merge branch 'c++20' # 2023-10-10 Tim Janik 3a7c2d3 * c++20: MISC: mkAppImage.sh: fix $ORIGIN in AnklangSynthEngine-fma, add jackdriver.so MISC: Dockerfile.focal: install latest poxy (again) MISC: Dockerfile.focal: provide libstdc++-10-dev and a recent castxml MISC: config-uname.mk: optimize with clang -march=x86-64-v3 on modern platforms Clang chokes on '-march=haswell -mno-hle', so we use '-march=x86-64-v3' which is close to Haswell, the clang docs say: -march=x86-64: CMOV, CMPXCHG8B, FPU, FXSR, MMX, FXSR, SCE, SSE, SSE2 -march=x86-64-v2: (close to Nehalem) CMPXCHG16B, LAHF-SAHF, POPCNT, SSE3, SSE4.1, SSE4.2, SSSE3 -march=x86-64-v3: (close to Haswell) AVX, AVX2, BMI1, BMI2, F16C, FMA, LZCNT, MOVBE, XSAVE -march=x86-64-v4: AVX512F, AVX512BW, AVX512CD, AVX512DQ, AVX512VL MISC: mkassets.sh: adopt compiler config and fix make V=1 * Support make with V=1 during asset builds * Copy compiler config from config-defaults.mk for mkassets Makefile.mk: ignore leading spaces in config-defaults.mk ASE: properties.hh, processor.hh: remove unused (and conflicting) GroupId ASE: memory.cc: test CString operators ASE: memory.hh: CString: provide operator== and operator<=> to disambiguate JSONIPC: cxxjip.py: switch from C++17 to C++20 README.md, *.mk: switch from C++17 to C++20 ASE: memory.hh: always provide ctor for Block initialization Merge branch 'audio-engine-job-cleanups' # 2023-10-01 Tim Janik 8067acc * audio-engine-job-cleanups: ASE: engine.hh: document engine lifetime ASE: engine: remove BorrowedPtr, simplify EngineJobImpl ASE: clapplugin.cc: use main_rt_jobs queue to delete events from audio_thread ASE: clapplugin.cc: rename ClapAudioProcessor ASE: project.cc: do not (auto) destroy all projects during atexit ASE: main.cc: shutdown: unset engine project and handle main loop callbacks ASE: engine: make transport a reference, move job queues into AudioEngine ASE: engine: rename AudioEngineThread Merge branch 'websocket-fix' # 2023-10-01 Tim Janik a5f9ca9 * websocket-fix: ASE: jsonapi.cc: cache socket nickname for use during errors ASE: websocket.cc: avoid exceptions in boost::asio socket.remote_endpoint() ASE: callback.hh: remove (sync) return value handling in JobQueue ASE: jsonapi.cc: wait for main loop callback completion via semaphore Merge branch 'main-rt-jobs' # 2023-09-30 Tim Janik a3f8f29 * main-rt-jobs: ASE: main.cc: fit one RtCallJob into a cache line This becomes possible with RtCall allocating just 4 pointer sizes. Since Loft allocates at cache line boundaries only, this essentially halves the size of an RtCallJob allocation. ASE: callback: shrink struct RtCall by a pointer ASE: loft: fix and test LoftPtr actually running ~T ASE: engine.hh: add comment about main_rt_jobs ASE: main.cc: turn debugging code into real job_queue_tests ASE: main: main_rt_jobs: add main_loop callback queue without invoking malloc() ASE: callback: RtCall: wrap simple callback pointers, without using malloc ASE: cxxaux.hh: add unalias_ptr<> helper ASE: callback.cc: add a small callback list test ASE: callback: add CallbackList - reentrant cb list with configurable arguments ASE: callback: move JobQueue implementation here Merge branch 'fix-warnings' # 2023-09-29 Tim Janik 9c1a062 * fix-warnings: ASE: track.cc: fix signedness ASE: utils.cc: cosmetic change ASE: project.cc: cosmetic change ASE: nativedevice.cc: fix signedness ASE: midilib.cc: fix signedness ASE: midievent.cc: cosmetic change ASE: internal.hh: cosmetic change ASE: inifile.cc: fix signedness ASE: engine.cc: cosmetic change ASE: compress.cc: fix write check signedness ASE: combo: fix insert position signedness ASE: clapplugin.cc: cosmetic change ASE: device.cc: remove unused code ASE: blob.cc: cosmetic fix MISC: Makefile.mk: clang-tidy: fix missing includes ASE: clapplugin.cc: cosmetic fix ASE: loop.cc: fix typo Merge branch 'bug-fixes' # 2023-09-23 Tim Janik e9015b9 * bug-fixes: GITHUB: workflows/testing.yml: upload dist tarball as isolated smaller artefact GITHUB: workflows/testing.yml: upgrade to actions/upload-artifact@v3.1.3 MISC: *.sh: use '#!/usr/bin/env bash' for bash scripts, fixes #17 Merge branch 'use-git-submodule' # 2023-09-21 Tim Janik 22cf347 * use-git-submodule: DOC: copyright.ini: apply MPL-2.0 to .gitmodules MISC: Makefile.mk: directly create and reference .dlcache/ for mkassets.sh MISC: Makefile.mk: mkassets: download builds tools before misc/mkassets.sh GITHUB: workflows/testing.yml: use `make mkassets` for release builds .gitignore: ignore .submodule-stamp UI: global.scss, index.html: move AnklangIcons to assets/ UI: Makefile.mk: copy anklangicons-*.tgz files to assets, remove download EXTERNAL: blobs4anklang: add tim-janik/blobs4anklang commit from 2023-09-21 21:04:16 git -C external/blobs4anklang/ checkout 7b0a4a68a1e9efbe68fc9761bef080995f4b4d6b UI: global.scss, index.html: move fork-awesome to assets/ UI: Makefile.mk: copy node_modules/fork-awesome to assets, remove download MISC: package.json.in: install fork-awesome@1.2.0 UI: Makefile.mk: use blobs4anklang/fonts/InterVariable.woff2, remove download EXTERNAL: blobs4anklang: add tim-janik/blobs4anklang commit from 2023-09-21 18:23:36 git submodule add --name blobs4anklang https://github.com/tim-janik/blobs4anklang.git external/blobs4anklang git -C external/blobs4anklang/ checkout 8da35f3914b9668bacc6755a8051a17051b07c3a Makefile.mk: skip `git submodule` in tarball builds Makefile.mk: dist: exclude unused external subdirs from tarball Makefile.mk: include submodule archives in dist tarball ASE: Makefile.mk: use blake3 submodule, remove download rule ASE: compress.cc: use external/blake3/c/blake3.h EXTERNAL: blake3: add BLAKE3-team/BLAKE3 version 1.3.1 git submodule add --name blake3 https://github.com/BLAKE3-team/BLAKE3.git external/blake3 git -C external/blake3/ checkout 1.3.1 ASE: Makefile.mk: use websocketpp submodule, remove download rule EXTERNAL: websocketpp: add zaphoyd/websocketpp version 0.8.2 git submodule add --name websocketpp https://github.com/zaphoyd/websocketpp.git external/websocketpp git -C external/websocketpp/ checkout 0.8.2 ASE: Makefile.mk: use clap submodule, remove download rule EXTERNAL: clap: add free-audio/clap version 1.1.1 git submodule add --name clap https://github.com/free-audio/clap.git external/clap git -C external/clap/ checkout 1.1.1 ASE: Makefile.mk: use rapidjson submodule, remove download rule EXTERNAL: rapidjson: add Tencent/rapidjson commit from 2022-05-24 10:03:13 git submodule add --name rapidjson https://github.com/Tencent/rapidjson.git external/rapidjson git checkout 232389d4f1012dddec4ef84861face2d2ba85709 Makefile.mk: update all submodules before building sources Makefile.mk: remove external/ subdir from ls-tree.lst MISC: mkcopyright.py: ignore dirs passed from `git ls-tree` on the CLI ASE: storage.cc: adjust old link to zlib-ng/minizip-ng/issues/433 ASE: minizip: build against external/minizip-ng/ ASE: Makefile.mk: use minizip-ng submodule, remove download rule EXTERNAL: minizip-ng: add zlib-ng/minizip-ng version 2.9.0 git submodule add --name minizip-ng https://github.com/zlib-ng/minizip-ng.git external/minizip-ng .gitignore: remove entries of files the build is not generating Merge branch 'thin-lto' - improve LTO builds # 2023-09-17 Tim Janik 0e21fc8 * thin-lto: ASE: main.cc: add missing formats to WAV output help MISC: config-uname.mk: when using LTO, enable Thin LTO with clang Thin LTO can result in smaller binaries and better performance. Merge branch 'cirun-docker-caching' - let cirun handle image build and caching # 2023-09-17 Tim Janik 00c0537 * cirun-docker-caching: GITHUB: workflows/testing.yml: use separate steps for docker image builds GITHUB: workflows/testing.yml: make use of cirun which handles docker builds * workflows/testing.yml: use misc/cirun -u 1000 to fix ownership * workflows/testing.yml: fix CIMAKE for Focal-Clang-Tidy * workflows/testing.yml: move nproc out of env variables MISC: cirun.sh: remove, use simpler cirun MISC: gh_delete_assets.sh: remove old helper MISC: Dockerfile.lunar: remove old file MISC: docker_*: remove old helpers MISC: cirun: add docker build, run, chown and caching MISC: cirun: add script to run commands in dockerized environments GITHUB: workflows/testing.yml: use buildx with selective caching GITHUB: workflows/testing.yml: configure and use buildx with selective caching GITHUB: workflows/testing.yml: remove unused actions/upload-artifact GITHUB: workflows/testing.yml: split asset builds into separate job MISC: cirun.sh: add --build, note that --check includes --build MISC: mkassets.sh: fix outdated globs Merge branch 'ci-fixes' # 2023-09-10 Tim Janik 9a7e628 * ci-fixes: MISC: mkassets.sh: remove unused file generations MISC: dbuild.sh: delete, now unused MISC: cirun.sh: add missing arg to help MISC: publish.sh: remove --draft MISC: publish.sh: determine version from tarball, show progress MISC: publish.sh: use assets/ directory contents if present GITHUB: workflows/testing.yml: use download-artifact@v3 to fetch release assets GITHUB: workflows/testing.yml: make sure to generate PDF docs early on GITHUB: workflows/testing.yml: provide GH_TOKEN for gh in publish.sh GITHUB: workflows/testing.yml: first build docs, then upload docs/ artifact GITHUB: workflows/testing.yml: fix Release-Upload deps, avoid skipped jobs GITHUB: workflows/testing.yml: allow skipped jobs in Ping-IRC GITHUB: workflows/testing.yml: use github expression for negating if GITHUB: workflows/testing.yml: escape exclamation mark for yaml GITHUB: workflows/testing.yml: skip Focal-Clang-Tidy for release tags GITHUB: workflows/testing.yml: uplaod releases via misc/publish.sh GITHUB: workflows/release.yml: remove, releases moved into testing.yml MISC: publish.sh: download artifacts and create a release MISC: cirun.sh: properly dockerize clang-tidy MISC: cirun.sh: support V=1 GITHUB: workflows/testing.yml: run clang-tidy on focal MISC: cirun.sh: use 1000:1000 to chown files for docker containers MISC: mkassets.sh: add missing auto to cp --reflink=auto GITHUB: workflows/testing.yml: fix env syntax for gha GITHUB: workflows/testing.yml: use cirun.sh for all CI jobs GITHUB: workflows/testing.yml: use cirun.sh on Focal for docs MISC: cirun.sh: support $CITAG to determine docker run image MISC: Dockerfile.lunar: install missing clang aliases MISC: cirun.sh: add script that runs all CI stages via docker MISC: Dockerfile.focal: install poxy==0.13.0 Versions poxy>=0.13.1 have problems with python-3.8 on focal. MISC: Dockerfile.focal: install pandoc-3.1.6.2 Using pandoc-3.1.7 seems to have issues with PDF generation, anchors in section titles cause an error and SVG images are not found. .gitignore: minor addition MISC: Dockerfile.focal: add clang-17 aliases MISC: Dockerfile.focal: provide xetex, poxy and clang++-17 GITHUB: workflows/release.yml: upload draft releases for CI tests GITHUB: workflows/release.yml: cache focal docker builds with buildx GITHUB: workflows/testing.yml: fix comment GITHUB: workflows/testing.yml: cache arch docker builds with buildx GITHUB: workflows/testing.yml: cache lunar and jammy docker builds with buildx Merge branch 'release-fixes' # 2023-09-08 Tim Janik d8465fd * release-fixes: MISC: mknews.sh: print latest NEWS.md version with `misc/mknews.sh --version` GITHUB: workflows/release.yml: set prerelease:false for annotated tags Fix actions/checkout@v3 and actions/checkout@v4 messing up the annotation of the currently fetched tag, even with fetch-depth:0, see: actions/checkout#290 MISC: mknews.sh: for release tags, copy news section from NEWS.md ">Merge branch 'pr43/swesterfeld-midi-events-uint-offset' - closes #26 # 2024-02-14 Tim Janik 714ea0c * pr43/swesterfeld-midi-events-uint-offset: devices/liquidsfz/liquidsfz.cc: avoid using printf (use printerr instead) ASE: midievent.hh: fix clang tidy problem (add typename) devices/saturation/saturation.cc: midi event frame offsets are now unsigned devices/liquidsfz/liquidsfz.cc: midi event frame offsets are now unsigned devices/blepsynth/blepsynth.cc: midi event frame offsets are now unsigned ASE: midilib.cc: midi event frame offsets are now always positive (#26) ASE: clapplugin.cc: midi event frame offsets are now always positive (#26) ASE: midievent: avoid negative frame offsets in midi events Use unsigned data type for midi event offset, see issue #26. ase/memory.cc: avoid constexpr std::string use that needs clang++-17 Merge branch 'SPEEDUP-UTILS' - extend and speed up internal utils # 2024-02-14 Tim Janik 02e6083 * SPEEDUP-UTILS: ase/memory.cc: use array + string ptr unordered_map for quarks This fixes slowdowns where heavy use of CString lookups turns into a bottleneck. ase/platform.hh: add extern const char *const ase_sharedir; ase/Makefile.mk: add extern char*ase_sharedir; to ase/buildversion*.cc ase/strings.cc: support arrays for string_startswith() and string_endswith() ase/path: add glob() variant that separates dirs and files ase/path.cc: increase file_memread() buffer size to up to 1MB Merge branch 'b-textinput-prop' - add .prop to # 2024-02-12

Neothesia is flashy Synthesia-like MIDI file visulisation software

Updated: 12 Feb, 2024

Developer name

Anklang, a digital audio synthesis application for live creation and composition

Updated: 08 Feb, 2024

Anklang 0.2.0.nightly2402082217

Development version - may contain bugs or compatibility issues.

for file browser # 2024-02-08 Tim Janik 8cfd329 * GRID-FILE-BROWSER: misc/package.json.in: fix path of rebuild command ui/kbd.js: fix coord check during horizontal focus movement ui/b/folderview.vue: use grid with column flow to fix slow flexbox wrapping ase/websocket.cc: use "CR" as Chrome abbreviation ase/strings.hh: fix spacing ase/clapplugin.cc: fix newline Merge branch 'ATOMIC-STACK' - simple atomic stack based on Loft # 2024-02-08 Tim Janik 765600a * ATOMIC-STACK: ase/atomics.cc: add atomic_valuestack_test() ase/atomics.hh: add a simple AtomicStack<> with just push, pop, empty ase/loft.hh: reduce includes ase/loft.hh: allow constexpr Loft::Allocator and export allows_read_after_free misc/synsmell.py: escape FI[X]ME misc/synsmell.py: reduce false positives for the separate-body check Merge branch 'SFZ-STRING-PARAM' - pass SFZ instrument as string # 2024-02-08 Tim Janik 789a493 * SFZ-STRING-PARAM: devices/liquidsfz/liquidsfz.cc: pass instrument name as string param via Quark ase/memory.hh: fix missing constexpr for CString::qset() Merge branch 'pr7/swesterfeld-liquidsfz' # 2024-02-08 Tim Janik 55480ad * pr7/swesterfeld-liquidsfz: devices/liquidsfz/Makefile.mk: remove -Iexternal/liquidsfz/lib Includes need to be added to ase/Makefile.mk for all tools to pick them up. ase/Makefile.mk: add -Iexternal/liquidsfz/lib ASE: add copyright information to liquidsfz meta includers ASE: compile liquidsfz library code into ase library DEVICES: liquidsfz: prepare code for .sfz file specific parameter handling DEVICES: liquidsfz: add include path to external submodule EXTERNAL: liquidsfz: add swesterfeld/liquidsfz commit from 2023-11-18 15:15:57 git submodule add --name liquidsfz https://github.com/swesterfeld/liquidsfz.git external/liquidsfz git -C external/liquidsfz checkout 590149ea8c83588c17833d7b9b6653f0f6aab6fb DEVICES liquidsfz: port to new parameter API DEVICES: liquidsfz: move SFZ loading to its own thread DEVICES: liquidsfz: add LiquidSFZ device for SFZ support Merge branch 'LIT-DEVICEEDITOR' - port b-deviceeditor to Lit # 2024-02-08 Tim Janik 760b00b * LIT-DEVICEEDITOR: ui/b/deviceeditor.js: point out layout todo ui/b/deviceeditor.js: port logic to lit ui/b/contextmenu.js: support popup with null origin ui/b/deviceeditor.js: convert syntax to valid javascript ui/b/deviceeditor.js: replace deviceeditor.vue Merge branch 'STRING-PROPS' - support String as AudioProcessor property # 2024-02-08 Tim Janik 2aef82b * STRING-PROPS: STRING-PROPS: ase/processor: allow temporary String mappings for text parameters ase/memory: add CString::temp_quark_impl() to expose quarks in some cases ase/memory: introduce CString::qset() which can count quark references ase/processor: AudioProcessor: unify IBus+OBus into IOBus Allow non-trivial ~IOBus() execution. ase/sndfile.cc: add libmp3lame to assertion about missing MP3 support ui/b/propinput.js: start text field support ase/parameter.cc: treat is_text() as non-numeric and allow Quark values Merge branch 'branch-check' # 2024-01-26 Tim Janik 9d38b0f * branch-check: GITHUB: workflows/testing.yml: update to actions/upload-artifact@v4 GITHUB: workflows/testing.yml: only build & upload docs from tim-janik/anklang GITHUB: workflows/testing.yml: update to actions/cache@v4 GITHUB: workflows/testing.yml: use actions/checkout@v4.1.1, fix annotated tag Upgrade to actions/checkout@v4.1.1 and Fix actions/checkout messing up checkouts of annotated tags; actions/checkout#290 Also fetch submodule upfront. GITHUB: workflows/testing.yml: remove Release-Upload run MISC: Makefile.mk: fix script v2.34 invocation The util script from util-linux 2.34 (focal) has no `-O` option. GITHUB: workflows/testing.yml: add `make branch-check` and check errors in PRs MISC: Makefile.mk: add branch-check rule, $BRANCH_CHECK_EXIT holds error status GITHUB: workflows/testing.yml: disable CI on tag pushes MISC: mknews.sh: show git command line MISC: Makefile.mk: fix missing CLEANDIRS Merge branch 'clang-tidy+synsmell' # 2024-01-25 Tim Janik ceaf526 * clang-tidy+synsmell: UI: Makefile.mk: ui/lint: add checks with misc/synsmell.py DEVICES: Makefile.mk: devices/lint: add checks with misc/synsmell.py ASE: Makefile.mk: ase/lint: add checks with misc/synsmell.py MISC: synsmell.py: check syntax for code smells, based on regular expressions ASE: Makefile.mk: allow double loop variable tests in mathutils.cc ASE: *.cc: fix clang-tidy warnings DEVICES: saturation/Makefile.mk: remove -Iexternal/pandaresampler/lib DEVICES: blepsynth/Makefile.mk: remove -Iexternal/pandaresampler/lib ASE: Makefile.mk: move -Iexternal/pandaresampler/lib here MISC: Makefile.mk: clang-tidy: strip $PWD MISC: colorize.sh: fix black-on-black coloring MISC: Makefile.mk: fix lint-unused rule MISC: Makefile.mk: fix lint-cppcheck rule MISC: Makefile.mk: clang-tidy: support target specific .CTIDY_FLAGS MISC: Makefile.mk: add clang-tidy-check: false exit status on errors/warnings MISC: Makefile.mk: clang-tidy: skip empty reports during printout MISC: Makefile.mk: clang-tidy: add -march=x86-64-v2 so atomics checks pass Merge branch 'docker-apt-cache' # 2024-01-25 Tim Janik 4dcc915 * docker-apt-cache: MISC: version.sh: shorten the logic GITHUB: workflows/testing.yml: compress lines MISC: cirun: simplify, add -B to trigger build, compress cache MISC: Dockerfile.focal: add /var/cache/apt caching MISC: mkassets.sh: build release assets with clang Merge branch 'reduce-make-deps' # 2024-01-22 Tim Janik 8b6e4a7 * reduce-make-deps: ASE: atomics.cc: add simple AtomicIntrusiveStack test MISC: publish.sh: fix git command quoting MISC: mknews.sh: fix extraneous commit hash output ASE: cxxaux.cc: fix missing unistd.h include for read() MISC: Makefile.mk: add appimagetools/ to CLEANDIRS MISC: mkAppImage.sh, mkdeb.sh: fetch $pkgdir from out/config.sh Makefile.mk: generate config.sh to export pkgdir, etc UI: Makefile.mk: add tscheck/ to CLEANDIRS IMAGES: knobs/Makefile.mk: add images/ to CLEANDIRS MISC: package.json.in: minor fix ASE: Makefile.mk: avoid useless rebuilds Makefile.mk: TAGS: use sed to compress flood of "Warning: ignoring null tag" Makefile.mk: regen TAGS after git changed Makefile.mk: avoid touching ls-tree.lst needlessly Makefile.mk: avoid npm rebuilds on git changes Makefile.mk: avoid needlessly touching package.json Merge branch 'simpler-assert' # 2024-01-22 Tim Janik 25b6611 * simpler-assert: ASE: utils: use diag_prefix() for printouts ASE: backtrace.*: remove old code ASE: cxxaux.hh: add ASE_ASSERT_UNREACHED() and ASE_ASSERT() ASE: cxxaux.hh: add assertion_fatal() and bool assertion_failed_fatal ASE: cxxaux.cc: add assertion_fatal(), handle $ASE_DEBUG assertion debug keys Check and implement "breakpoint", "backtrace" and "fatal-warnings" in $ASE_DEBUG Merge branch 'swesterfeld-move-bleptools-to-dspresearch' # 2024-01-22 Tim Janik a26757d * swesterfeld-move-bleptools-to-dspresearch: DEVICES: blepsynth: remove design/test tools (moved to dsp-research repo) Merge branch 'build-fixes' # 2023-12-05 Tim Janik fce55a4 * build-fixes: DOC: Makefile.mk: work around broken heading anchors in pandoc-1.3.9 ASE: Makefile.mk: ase/sndfile.cc requires fully built $>/lib/libsndfile.so Merge branch 'sndfile-1.2.2' - build custom libsndfile # 2023-11-22 Tim Janik 1ca7ebc * sndfile-1.2.2: MISC: mkdeb.sh: require libmpg123-0 for installations ASE: Makefile.mk: build and link against our own libsndfile.so ASE: sndfile.cc: check libsndfile header and build config .gitmodules: sort modules EXTERNAL: libsndfile: add libsndfile/libsndfile commit from 2023-10-24 09:47:22 git submodule add --name libsndfile https://github.com/libsndfile/libsndfile.git external/libsndfile git -C external/libsndfile checkout e486f20fd4b1c7490cde84f22635e1c267ae882b MISC: Dockerfile.arch: install mpg123, lame for libsndlfile MISC: Dockerfile.focal: install Vorbis, libmpg123, libmp3lame, update Pandoc Merge branch 'git-shallow' # 2023-11-22 Tim Janik bdb8273 * git-shallow: MISC: mknews.sh: create NEWS in forward order MISC: mknews.sh: handle repos without tags MISC: mkassets.sh: fallback to building in /tmp/anklang.tmp/ MISC: version.sh: support git repos without tags Merge branch 'swesterfeld-blepsynth-sample-accurate', closes #27 # 2023-11-18 Tim Janik 80927e0 * swesterfeld-blepsynth-sample-accurate: DEVICES: blepsynth: treat negative time offsets as time offset 0 events DEVICES: blepsynth: remove debugging code DEVICES: blepsynth: change defaults for 2nd oscillator / mix DEVICES: blepsynth: remove event offset debug checks DEVICES: blepsynth/blepsynth.cc: improve updates for some parameters DEVICES: blepsynth/blepsynth.cc: use new filter version from dsp-research - use better tanh() approximation in filter saturation function DEVICES: blepsynth/blepsynth.cc: set more parameter used flags DEVICES: blepsynth/blepsynth.cc: use switch for parameter updates DEVICES: blepsynth/blepsynth.cc: implement sample accurate event processing Merge branch 'swesterfeld-saturation', closes #28 # 2023-11-18 Tim Janik be92820 * swesterfeld-saturation: DEVICES: saturation: treat negative time offsets as time offset 0 events DEVICES: saturation: remove debugging code DEVICES: saturation: port to new parameter API, support in-block events DEVICES: saturation: update DSP code - process left/right in single SaturationDSP object - parameter smoothing - performance optimizations DEVICES: saturation: add Saturation device Merge branch 'separate-ci-checks' # 2023-11-18 Tim Janik afb2db0 * separate-ci-checks: GITHUB: workflows/testing.yml: avoid make all vs make check races Makefile.mk: ensure all checks are added $(CHECK_TARGETS) Merge branch 'simplify-assertions' # 2023-11-17 Tim Janik b9dcc9b * simplify-assertions: ASE: queuemux.hh: avoid inlining fallback method `empty()` ASE: cxxaux: assertion_failed: simplify many call sites by adding noexcept ASE: queuemux.hh: simplify impls by adding noexcept ASE: platform.cc: fix up assertion_failed() call ASE: engine.cc: use ASE_ASSERT_WARN() instead of one-off special macro ASE: cxxaux: assertion_failed: simplify many call sites by using char* ASE: cxxaux.hh: simplify compiler errors by avoiding macro indirections ASE: internal.hh: simplify compiler errors by avoiding macro indirections Merge branch 'fix-multiplexer-iterator' # 2023-11-17 Tim Janik 4756546 * fix-multiplexer-iterator: ASE: queuemux.hh: properly check for more() in iterator equality operator ASE: midievent.cc: show hex dump for unknown events Merge branch 'param-events' # 2023-11-16 Tim Janik 8f23a2d * param-events: DEVICES: blepsynth/blepsynth.cc: port to new Parameter API * Start using install_params() * Rename pid_key_[abcdefg]_, add key prefix * Declare all parameter IDs in an enum * Use ase_gettext() multi arg formatting * Construct AudioProcessor with ProcessorSetup& * Add "toggle" hint for piano key properties * Handle PARAM_VALUE events via apply_event() * Start using midi_event_input() * Port remaining OSC1 and OSC2 parameter references * Adjust and check parameter state *after* processing MIDI events * Adjust parameter ID types DEVICES: freeverb/freeverb.cc: support new param events * Use install_params(ParameterMap) * Construct AudioProcessor with ProcessorSetup& * Use adjust_all_params() and apply_input_events() * Fix MODE hints and param position DEVICES: colorednoise.cc: use adjust_all_params() and apply_input_events() * Port to install_params(ParameterMap) * Construct AudioProcessor with ProcessorSetup& DEVICES: Makefile.mk: include colorednoise.cc in the build ASE: midilib.cc: use midi_event_input() and midi_event_output() ASE: clapplugin.cc: use midi_event_input() ASE: engine: allow atomic frame_counter and block_size access ASE: engine.cc: use midi_event_output() ASE: midievent: rename + rewrite MidiEventReader to read many queues * Base MidiEventReader on QueueMultiplexer<> to turn it into a multiplexing event queue reader * Rename MidiEventReader (former MidiEventRange) ASE: clapplugin.cc: use call_delete<>() ASE: cxxaux.hh: add call_delete<> to quickly create delete callbacks ASE: rename MidiEventOutput (former MidiEventStream) ASE: nativedevice.cc: use AudioProcessor.access_properties() ASE: midilib: construct AudioProcessor with ProcessorSetup& ASE: api.hh, server.cc: add Server.engine_stats() ASE: engine: add AudioEngine.engine_stats() ASE: clapplugin.cc: construct AudioProcessor with ProcessorSetup& ASE: clapplugin: remove unused flags fiels from params ASE: combo: construct AudioProcessor with ProcessorSetup& ASE: processor: implement parameter change events * Introduce AudioParams, t0events, install_params(), apply_event() * Implement AudioParams::dirty() * Implement AudioProcessor.access_properties() * Store aseid_ in each AudioProcessor * Add property weak pointers to AudioParams * Support install_params() with an ordinary map<> * Initialize parameter cache with intial value * Disable Property inflight handling code * Rename MidiEventOutput (former MidiEventStream) * Implement multiplexing MIDI event handling * Atomically modify and swap t0events to pass between threads * Leave new/delete of t0events to the main-thread * Add modify_t0events<>() helper to care about atomic swapping * Rename and rewrite get_event_input() and get_event_output() * Introduce RenderContext for rendering specific variables * midi_event_input(): setup multiplexing event queue reader * midi_event_output(): provide writable MIDI event vector * Implement send_param() * Only set dirty and changed for params with property object * Enqueue PARAMCHANGE notification if params changed * Simplify event processing * Provide apply_input_events() to assign PARAM_CHANGE events * Use uint32_t as parameter id type for processors * Provide adjust_all_params() to call adjust_param() for all params ASE: midievent: support MidiMessage::PARAM_VALUE ASE: midievent: add PARAM_VALUE and make_param_value() ASE: parameter: add ParameterMap and support groups * Make `ident` the first Param() field, adjust callers * Add ParameterMap helper type * Support Param.MinMaxStep as double min,max pair * Catch simple cases of duplicate IDs, ident, label * Assign group to new ParameterMap Params ASE: queuemux: support iterators and assign via std::array ASE: queuemux: add QueueMultiplexer.assign() and support iterator template arg Merge branch 'loft-stl-allocator' # 2023-11-13 Tim Janik 89cc7d6 * loft-stl-allocator: ASE: loft: provide STL allocator adapter Loft::Allocator ASE: utils.cc: allow 3 character "unicode" icons ASE: cxxaux.cc, utils.cc: for --fatal-warnings, call breakpoint() This allows continuations in gdb sessions. ASE: utils.hh: require multiple arguments to ase_gettext() for string_format() Merge branch 'queuemux' # 2023-11-13 Tim Janik e1031e5 * queuemux: ASE: queuemux: integrate QueueMultiplexer ASE: queuemux.cc: start QueueMultiplexer implementation Merge branch 'swesterfeld-flexible-adsr', closes #6 # 2023-11-11 Tim Janik 409e87d * swesterfeld-flexible-adsr: DEVICES: blepsynth/blepsynth.cc: cleanup unneccessary initialization DEVICES: blepsynth/blepsynth.cc: introduce flexible ADSR model - volume envelope can now be analog (exponential) or flexible - flexible envelope has adjustable attack/decay/release slope - support changing volume/filter envelope params while note is playing Merge branch 'swesterfeld-blepsynth-sallen-key-filter', closes #10 # 2023-11-01 Tim Janik 441cbca * swesterfeld-blepsynth-sallen-key-filter: ASE: resampler2: remove, superseded by pandaresampler DEVICES: blepsynth/blepsynth.cc: reorder parameter groups DEVICES: blepsynth/Makefile.mk: include external/pandaresampler/lib EXTERNAL: pandaresampler: add swesterfeld/pandaresampler commit from 2023-02-14 10:18:45 git submodule add --name pandaresampler https://github.com/swesterfeld/pandaresampler.git external/pandaresampler git -C external/pandaresampler checkout 29097dc786b6d75a9deb12e70ec8960a78f7f8f5 DEVICES: blepsynth: update LadderVCF with drive/reso boost DEVICES: blepsynth: optimize filter code if freq/reso/drive are constant DEVICES: blepsynth: update LadderVCF, setup cutoff frequency range DEVICES: blepsynth: add latency compensation for LadderVCF DEVICES: blepsynth: update LadderVCF to version from dsp-research - oversample LadderVCF with factor 4, too DEVICES: blepsynth: compensate for SKFilter FIR oversampling delay DEVICES: blepsynth: reset filter state on filter type change DEVICES: blepsynth: reset SKFilter state if filter mode changes DEVICES: blepsynth: make cutoff parameter log-scaled DEVICES: blepsynth: rename vcf_ to ladder_filter_; minor cleanups DEVICES: blepsynth: implement midi velocity handling and add master gain DEVICES: blepsynth: smooth drive / reso input for Sallen-Key Filter DEVICES: blepsynth: add Sallen-Key Filter Merge branch 'constrain-parameters' # 2023-11-01 Tim Janik fff51b9 * constrain-parameters: UI: b/databubble.js: fix assertion ASE: processor.cc: use parameter->dconstrain() ASE: parameter: add dconstrain() to convert to double and constrain ASE: processor.cc: use Parameter::construct_hints() ASE: parameter: export construct_hints(), always use "stepped" hint for bools UI: b/propinput.js: give toggles preference over choices ASE: processor.cc: remove unused choices from boolean param ASE: serialize.cc: call jsonvalue_to_string() directly ASE: jsonapi.cc: call jsonobject_to_string() directly JSONIPC: jsonipc.hh: always write null instead of NAN, ±Inf Remove JsonWriteFlags from the (template) API. JSONIPC: Makefile: fix include path to external/rapidjson/ EXTERNAL: rapidjson: update Tencent/rapidjson to 2023-09-28 11:36:59 +0200 git -C external/rapidjson checkout f9d53419e912910fd8fa57d5705fa41425428c35 Among other changes, this provides kWriteNanAndInfNullFlag. ASE: parameter: value_from_text(): yield integers for text inputs of choices Merge branch 'npm-updates' # 2023-11-01 Tim Janik 8d56822 * npm-updates: MISC: package.json.in: update various minor versions Makefile.mk: allow $NPM_INSTALL overrides via config-defaults.mk This allowes e.g.: NPM_INSTALL = pnpm install --prefer-offline Merge branch 'g++-bun-pnpm-ci' # 2023-10-27 Tim Janik 042fd7a * g++-bun-pnpm-ci: GITHUB: workflows/testing.yml: test Arch builds with g++ MISC: Dockerfile.arch: provide pnpm as JS package manager MISC: Dockerfile.arch: update build comments MISC: Dockerfile.focal: provide bun as JS package manager MISC: cirun: defer check for docker-buildx-plugin until we actually need it Makefile.mk: guard against `prefix := / / ` etc which will confuse `rm -rf` EXTERNAL: websocketpp: update zaphoyd/websocketpp to 2022-05-24 18:42:50 2022 -0500 git -C external/websocketpp/ checkout b9aeec6eaf3d5610503439b4fae3581d9aff08e8 This includes fixes applied after version 0.8.2, in particular it allows g++ to build the sources with C++20 enabled. See: https://github.com/zaphoyd/websocketpp/issues/991 Merge branch 'bun' # 2023-10-24 Tim Janik 63e4292 * bun: Makefile.mk: fix up sharp and electron installations with bun At the moment, we need to call the postinstall scripts manually, see: https://github.com/oven-sh/bun/pull/5077 MISC: config-checks.mk: support bun 1.0.0 as package manager Merge branch 'pnpm' # 2023-10-24 Tim Janik f1b37e4 * pnpm: MISC: config-checks.mk: remove unused NPM_INSTALL Makefile.mk: save XNPM to defaults and use it to install node_modules/ MISC: config-checks.mk: check for pnpn, provide as $(XNPM) UI: Makefile.mk: fetch Lit version directly from node_modules/lit/package.json X11TEST: ereplay.cjs: set timeout to 2500 to allow click durations of 2200ms Merge branch 'package-updates' # 2023-10-24 Tim Janik 1c7da51 * package-updates: MISC: package.json.in: update babel, eslint, rollup, electron, postcss, lit Major version updates: - electron-27.0.2 - icon-gen-4.0.0 - lit-3.0.0 - rollup-4.1.4 - postcss-lab-function-6.0.7 - puppeteer-core-21.4.0 MISC: package.json.in: update to vue-3.3.6 Merge branch 'preferences' and live PCM driver updates # 2023-10-16 Tim Janik c7ece44 * preferences: UI: util.js: call prop->ident() ASE: shorten Parameter method ident() ASE: strings: add fallback to string_option_find(), remove string_option_get() ASE: testing.cc: use string_option_find_value() ASE: processor.cc: use string_option_find() ASE: cxxaux.cc: use ase_fatal_warnings ASE: main: remove feature toggles, use ase_fatal_warnings ASE: utils: export ase_fatal_warnings ASE: utils.cc: base debug key checks on string_option_find_value() ASE: strings: base option search on string_option_find_value() (without malloc) ASE: project: create_properties: use property_bag() and Prop ASE: clapdevice.cc: use parameter_guess_nick() ASE: gadget: add property_bag() and create_properties() UI: b/preferencesdialog.vue: edit everything with Shift+Ctrl+Alt+Click [Close] UI: b/preferencesdialog.vue: fetch + edit only selected PCM + MIDI preferences UI: b/objecteditor.js: fix blurb and descr bubbles UI: index.html, eslintrc.js: allow _("for translation") markup UI: util.js: rename extended Property descr() (abbreviate) UI: b/choiceinput.js: treat choice property as string UI: b/preferencesdialog.vue: special case driver.pcm.devid UI: b/objecteditor.js: rename internal function on xprop UI: b/contextmenu.js: support focus_uri ASE: engine.cc: add preferences for up to 4 MIDI controllers ASE: engine.cc: cache PCM driver live listing for ca half a second ASE: engine: change PCM driver when preferences change ASE: engine.cc: add audio.synth_latency Preference ASE: driver*: allow to query all PcmConfig values from drivers ASE: api.hh, server: remove all old preference handling ASE: api.hh, server: add Server.list_preferences() ASE: properties: add Preference classes and majorly simplify Property impls * Remove obsolete structures and aux constructors * Add getter/setter lister for enumeration types * Add PropertyBag - a helper to simplify property registrations * Add small PropertyImpl based on ParameterProperty * Add generic Preference class, useful for static initialization * Remove property nick guessing * Add global Preference setting list based on Parameter * Implement saving/loading preferences from anklangrc * Auto save preference changes after maybe half a second * Ensure that Preference names follow NCName syntax ASE: defs.hh: add PropertyImpl ASE: api.hh: rename Property.descr() (abbreviate) ASE: api.hh, server: provide access_preference() instead of access_prefs() ASE: api.hh: add constexpr GUIONLY, STORAGE, STANDARD to avoid C++ SIOF ASE: main.cc: save/load preferences unless --norc is given ASE: processor: use Parameter instead of the old ParamInfo ASE: parameter: add Parameter, ParameterProperty and parameter_guess_nick() * Implement Parameter{} with Param{} as initializer * Add constrain, normalize and text conversions * Implement simple ParameterProperty abstract base class * Support callback function to query parameter choices * In set_value: constrain Value according to parameter range * Use variants for flexible initilizers * Treat choice parameters as text * Match choices via normalized Damerau-Levenshtein distance * Add parameter_guess_nick() (former on property_guess_nick). ASE: value.hh: add Value::is_string() ASE: object.cc: allow NCName as event detail, to support preference identifiers ASE: defs.hh: declare Preference ASE: strings: add kvpairs_search() ASE: strings: define and use ASE_STRING_SET_ASCII_ALNUM and _LOWER_ALNUM ASE: unicode.cc: add missing docs ASE: unicode: add string_to_ncname() and string_is_ncname() ASE: levenshtein: compute (un)restricted Damerau-Levenshtein string distances ASE: defs.hh: add F32EPS and F32MAX ASE: memory.hh: declare CStringS ASE: loop: add exec_once() ASE: cxxaux.hh: add ASE_ASSERT_ALWAYS() MISC: package.json.in: reduce wait delay for rebuilds Merge branch 'c++20' # 2023-10-10 Tim Janik 3a7c2d3 * c++20: MISC: mkAppImage.sh: fix $ORIGIN in AnklangSynthEngine-fma, add jackdriver.so MISC: Dockerfile.focal: install latest poxy (again) MISC: Dockerfile.focal: provide libstdc++-10-dev and a recent castxml MISC: config-uname.mk: optimize with clang -march=x86-64-v3 on modern platforms Clang chokes on '-march=haswell -mno-hle', so we use '-march=x86-64-v3' which is close to Haswell, the clang docs say: -march=x86-64: CMOV, CMPXCHG8B, FPU, FXSR, MMX, FXSR, SCE, SSE, SSE2 -march=x86-64-v2: (close to Nehalem) CMPXCHG16B, LAHF-SAHF, POPCNT, SSE3, SSE4.1, SSE4.2, SSSE3 -march=x86-64-v3: (close to Haswell) AVX, AVX2, BMI1, BMI2, F16C, FMA, LZCNT, MOVBE, XSAVE -march=x86-64-v4: AVX512F, AVX512BW, AVX512CD, AVX512DQ, AVX512VL MISC: mkassets.sh: adopt compiler config and fix make V=1 * Support make with V=1 during asset builds * Copy compiler config from config-defaults.mk for mkassets Makefile.mk: ignore leading spaces in config-defaults.mk ASE: properties.hh, processor.hh: remove unused (and conflicting) GroupId ASE: memory.cc: test CString operators ASE: memory.hh: CString: provide operator== and operator<=> to disambiguate JSONIPC: cxxjip.py: switch from C++17 to C++20 README.md, *.mk: switch from C++17 to C++20 ASE: memory.hh: always provide ctor for Block initialization Merge branch 'audio-engine-job-cleanups' # 2023-10-01 Tim Janik 8067acc * audio-engine-job-cleanups: ASE: engine.hh: document engine lifetime ASE: engine: remove BorrowedPtr, simplify EngineJobImpl ASE: clapplugin.cc: use main_rt_jobs queue to delete events from audio_thread ASE: clapplugin.cc: rename ClapAudioProcessor ASE: project.cc: do not (auto) destroy all projects during atexit ASE: main.cc: shutdown: unset engine project and handle main loop callbacks ASE: engine: make transport a reference, move job queues into AudioEngine ASE: engine: rename AudioEngineThread Merge branch 'websocket-fix' # 2023-10-01 Tim Janik a5f9ca9 * websocket-fix: ASE: jsonapi.cc: cache socket nickname for use during errors ASE: websocket.cc: avoid exceptions in boost::asio socket.remote_endpoint() ASE: callback.hh: remove (sync) return value handling in JobQueue ASE: jsonapi.cc: wait for main loop callback completion via semaphore Merge branch 'main-rt-jobs' # 2023-09-30 Tim Janik a3f8f29 * main-rt-jobs: ASE: main.cc: fit one RtCallJob into a cache line This becomes possible with RtCall allocating just 4 pointer sizes. Since Loft allocates at cache line boundaries only, this essentially halves the size of an RtCallJob allocation. ASE: callback: shrink struct RtCall by a pointer ASE: loft: fix and test LoftPtr actually running ~T ASE: engine.hh: add comment about main_rt_jobs ASE: main.cc: turn debugging code into real job_queue_tests ASE: main: main_rt_jobs: add main_loop callback queue without invoking malloc() ASE: callback: RtCall: wrap simple callback pointers, without using malloc ASE: cxxaux.hh: add unalias_ptr<> helper ASE: callback.cc: add a small callback list test ASE: callback: add CallbackList - reentrant cb list with configurable arguments ASE: callback: move JobQueue implementation here Merge branch 'fix-warnings' # 2023-09-29 Tim Janik 9c1a062 * fix-warnings: ASE: track.cc: fix signedness ASE: utils.cc: cosmetic change ASE: project.cc: cosmetic change ASE: nativedevice.cc: fix signedness ASE: midilib.cc: fix signedness ASE: midievent.cc: cosmetic change ASE: internal.hh: cosmetic change ASE: inifile.cc: fix signedness ASE: engine.cc: cosmetic change ASE: compress.cc: fix write check signedness ASE: combo: fix insert position signedness ASE: clapplugin.cc: cosmetic change ASE: device.cc: remove unused code ASE: blob.cc: cosmetic fix MISC: Makefile.mk: clang-tidy: fix missing includes ASE: clapplugin.cc: cosmetic fix ASE: loop.cc: fix typo Merge branch 'bug-fixes' # 2023-09-23 Tim Janik e9015b9 * bug-fixes: GITHUB: workflows/testing.yml: upload dist tarball as isolated smaller artefact GITHUB: workflows/testing.yml: upgrade to actions/upload-artifact@v3.1.3 MISC: *.sh: use '#!/usr/bin/env bash' for bash scripts, fixes #17 Merge branch 'use-git-submodule' # 2023-09-21 Tim Janik 22cf347 * use-git-submodule: DOC: copyright.ini: apply MPL-2.0 to .gitmodules MISC: Makefile.mk: directly create and reference .dlcache/ for mkassets.sh MISC: Makefile.mk: mkassets: download builds tools before misc/mkassets.sh GITHUB: workflows/testing.yml: use `make mkassets` for release builds .gitignore: ignore .submodule-stamp UI: global.scss, index.html: move AnklangIcons to assets/ UI: Makefile.mk: copy anklangicons-*.tgz files to assets, remove download EXTERNAL: blobs4anklang: add tim-janik/blobs4anklang commit from 2023-09-21 21:04:16 git -C external/blobs4anklang/ checkout 7b0a4a68a1e9efbe68fc9761bef080995f4b4d6b UI: global.scss, index.html: move fork-awesome to assets/ UI: Makefile.mk: copy node_modules/fork-awesome to assets, remove download MISC: package.json.in: install fork-awesome@1.2.0 UI: Makefile.mk: use blobs4anklang/fonts/InterVariable.woff2, remove download EXTERNAL: blobs4anklang: add tim-janik/blobs4anklang commit from 2023-09-21 18:23:36 git submodule add --name blobs4anklang https://github.com/tim-janik/blobs4anklang.git external/blobs4anklang git -C external/blobs4anklang/ checkout 8da35f3914b9668bacc6755a8051a17051b07c3a Makefile.mk: skip `git submodule` in tarball builds Makefile.mk: dist: exclude unused external subdirs from tarball Makefile.mk: include submodule archives in dist tarball ASE: Makefile.mk: use blake3 submodule, remove download rule ASE: compress.cc: use external/blake3/c/blake3.h EXTERNAL: blake3: add BLAKE3-team/BLAKE3 version 1.3.1 git submodule add --name blake3 https://github.com/BLAKE3-team/BLAKE3.git external/blake3 git -C external/blake3/ checkout 1.3.1 ASE: Makefile.mk: use websocketpp submodule, remove download rule EXTERNAL: websocketpp: add zaphoyd/websocketpp version 0.8.2 git submodule add --name websocketpp https://github.com/zaphoyd/websocketpp.git external/websocketpp git -C external/websocketpp/ checkout 0.8.2 ASE: Makefile.mk: use clap submodule, remove download rule EXTERNAL: clap: add free-audio/clap version 1.1.1 git submodule add --name clap https://github.com/free-audio/clap.git external/clap git -C external/clap/ checkout 1.1.1 ASE: Makefile.mk: use rapidjson submodule, remove download rule EXTERNAL: rapidjson: add Tencent/rapidjson commit from 2022-05-24 10:03:13 git submodule add --name rapidjson https://github.com/Tencent/rapidjson.git external/rapidjson git checkout 232389d4f1012dddec4ef84861face2d2ba85709 Makefile.mk: update all submodules before building sources Makefile.mk: remove external/ subdir from ls-tree.lst MISC: mkcopyright.py: ignore dirs passed from `git ls-tree` on the CLI ASE: storage.cc: adjust old link to zlib-ng/minizip-ng/issues/433 ASE: minizip: build against external/minizip-ng/ ASE: Makefile.mk: use minizip-ng submodule, remove download rule EXTERNAL: minizip-ng: add zlib-ng/minizip-ng version 2.9.0 git submodule add --name minizip-ng https://github.com/zlib-ng/minizip-ng.git external/minizip-ng .gitignore: remove entries of files the build is not generating Merge branch 'thin-lto' - improve LTO builds # 2023-09-17 Tim Janik 0e21fc8 * thin-lto: ASE: main.cc: add missing formats to WAV output help MISC: config-uname.mk: when using LTO, enable Thin LTO with clang Thin LTO can result in smaller binaries and better performance. Merge branch 'cirun-docker-caching' - let cirun handle image build and caching # 2023-09-17 Tim Janik 00c0537 * cirun-docker-caching: GITHUB: workflows/testing.yml: use separate steps for docker image builds GITHUB: workflows/testing.yml: make use of cirun which handles docker builds * workflows/testing.yml: use misc/cirun -u 1000 to fix ownership * workflows/testing.yml: fix CIMAKE for Focal-Clang-Tidy * workflows/testing.yml: move nproc out of env variables MISC: cirun.sh: remove, use simpler cirun MISC: gh_delete_assets.sh: remove old helper MISC: Dockerfile.lunar: remove old file MISC: docker_*: remove old helpers MISC: cirun: add docker build, run, chown and caching MISC: cirun: add script to run commands in dockerized environments GITHUB: workflows/testing.yml: use buildx with selective caching GITHUB: workflows/testing.yml: configure and use buildx with selective caching GITHUB: workflows/testing.yml: remove unused actions/upload-artifact GITHUB: workflows/testing.yml: split asset builds into separate job MISC: cirun.sh: add --build, note that --check includes --build MISC: mkassets.sh: fix outdated globs Merge branch 'ci-fixes' # 2023-09-10 Tim Janik 9a7e628 * ci-fixes: MISC: mkassets.sh: remove unused file generations MISC: dbuild.sh: delete, now unused MISC: cirun.sh: add missing arg to help MISC: publish.sh: remove --draft MISC: publish.sh: determine version from tarball, show progress MISC: publish.sh: use assets/ directory contents if present GITHUB: workflows/testing.yml: use download-artifact@v3 to fetch release assets GITHUB: workflows/testing.yml: make sure to generate PDF docs early on GITHUB: workflows/testing.yml: provide GH_TOKEN for gh in publish.sh GITHUB: workflows/testing.yml: first build docs, then upload docs/ artifact GITHUB: workflows/testing.yml: fix Release-Upload deps, avoid skipped jobs GITHUB: workflows/testing.yml: allow skipped jobs in Ping-IRC GITHUB: workflows/testing.yml: use github expression for negating if GITHUB: workflows/testing.yml: escape exclamation mark for yaml GITHUB: workflows/testing.yml: skip Focal-Clang-Tidy for release tags GITHUB: workflows/testing.yml: uplaod releases via misc/publish.sh GITHUB: workflows/release.yml: remove, releases moved into testing.yml MISC: publish.sh: download artifacts and create a release MISC: cirun.sh: properly dockerize clang-tidy MISC: cirun.sh: support V=1 GITHUB: workflows/testing.yml: run clang-tidy on focal MISC: cirun.sh: use 1000:1000 to chown files for docker containers MISC: mkassets.sh: add missing auto to cp --reflink=auto GITHUB: workflows/testing.yml: fix env syntax for gha GITHUB: workflows/testing.yml: use cirun.sh for all CI jobs GITHUB: workflows/testing.yml: use cirun.sh on Focal for docs MISC: cirun.sh: support $CITAG to determine docker run image MISC: Dockerfile.lunar: install missing clang aliases MISC: cirun.sh: add script that runs all CI stages via docker MISC: Dockerfile.focal: install poxy==0.13.0 Versions poxy>=0.13.1 have problems with python-3.8 on focal. MISC: Dockerfile.focal: install pandoc-3.1.6.2 Using pandoc-3.1.7 seems to have issues with PDF generation, anchors in section titles cause an error and SVG images are not found. .gitignore: minor addition MISC: Dockerfile.focal: add clang-17 aliases MISC: Dockerfile.focal: provide xetex, poxy and clang++-17 GITHUB: workflows/release.yml: upload draft releases for CI tests GITHUB: workflows/release.yml: cache focal docker builds with buildx GITHUB: workflows/testing.yml: fix comment GITHUB: workflows/testing.yml: cache arch docker builds with buildx GITHUB: workflows/testing.yml: cache lunar and jammy docker builds with buildx Merge branch 'release-fixes' # 2023-09-08 Tim Janik d8465fd * release-fixes: MISC: mknews.sh: print latest NEWS.md version with `misc/mknews.sh --version` GITHUB: workflows/release.yml: set prerelease:false for annotated tags Fix actions/checkout@v3 and actions/checkout@v4 messing up the annotation of the currently fetched tag, even with fetch-depth:0, see: actions/checkout#290 MISC: mknews.sh: for release tags, copy news section from NEWS.md ">Merge branch 'properties-metadata' - support generic metadata on properties # 2024-02-08 Tim Janik 5f06a6d * properties-metadata: devices/saturation/saturation.cc: add "blurb=" prefix and mark translations devices/liquidsfz/liquidsfz.cc: add "blurb=" prefix and mark translations devices/freeverb/freeverb.cc: add "blurb=" prefix and mark translations devices/blepsynth/blepsynth.cc: add "blurb=" prefix and mark translations ase/api.hh: introduce metadata() for properties * Add const this qualifier to parameter APIs. * engine.cc: add "descr=" prefix to property metadata * project.cc: add "descr=" prefix to property metadata ase/strings: add kvpairs_fetch() and kvpairs_assign() Merge branch 'MOUSE-WHEEL' - fix mouse wheel handling in modern Chrome and Firefox # 2024-02-08 Tim Janik 070d91a * MOUSE-WHEEL: ui/util.js: remove unused wheel2scrollbars ui/b/pianoroll.js: reinstante hzoom and vzoom adjustments via Ctrl ui/util.js: use Mouse.wheel_delta() ui/b/knob.js: use Mouse.wheel_delta() ui/b/pianoroll.js: properly scroll via deltaY from Mouse.wheel_delta() ui/mouse.js: wheel_delta(): provide .x, .y, .z in pixels ui/b/app.js: defer ZMove handling to mouse.js ui/mouse.js: include ZMove notification handling ui/index.html: start mouse.js early on ui/mouse.js: add event_movement() and wheel_delta() to fix event coords Cross browser normalization of movementX,movementY and deltaX,deltaY is a hot mess, see: https://bugs.chromium.org/p/chromium/issues/detail?id=1092358 https://bugzilla.mozilla.org/show_bug.cgi?id=1392460 https://github.com/w3c/uievents/issues/181 https://github.com/w3c/pointerlock/issues/42 https://github.com/mdn/content/issues/11811 ui/index.html: disable modulepreload, it causes module errors in Firefox-122 Merge branch 'GRID-FILE-BROWSER' - use for

Stargate is an all-in-one DAW and plugin suite

Updated: 29 Jan, 2024
Installation and troubleshooting guides

Download the Stargate DAW sample pack

Changelog
  • Hardware Dialog: Gracefully ignore audio device names that cannot be decoded
    to UTF-8. Fixes an issue that prevented Stargate from being used on some computers.
Checksums

Optionally, you can generate a sha256sum of the downloaded file and verify
that it matches this signature.

850238e60a7a1529cec3c7540358988a5dd9543d28563c12c3d46fc6af3ab161 stargate-24.02.2-1.x86_64.rpm a9f726dca1f5b30a723a512b10b73bb9f135bc08ddb574792654c34ea63ecb63 stargate-24.02.2-amd64.deb 602cb10b7b071397c6165b934fb16a9f3e8ed54e48add1c81875ef9714c0e81f StargateDAW-24.02.2-linux-x86_64.AppImage 41dc847ece63a7bde0c6e37427fb6ec2cb8974412fbc86baa6ca0b46870091fb StargateDAW-24.02.2-win64-installer.exe a7382bcc085977b0ae6f550694056d084cd72e6cd75ebf048168b55111b0432d StargateDAW-24.02.2-macos-intel-x86_64.dmg e925b2b559bffe2c881af51e1fac68b4cbc8740720dcb536fdc3adc6823f40ae StargateDAW-24.02.2-macos-m1-arm64.dmg

Stargate is an all-in-one DAW and plugin suite

Updated: 25 Jan, 2024

This is a testing release, please use the 24.02.1 release unless you are experiencing crashes when trying to create a project or show the hardware dialog.

Change Log
  • Hardware Dialog: Gracefully ignore audio device names that cannot be decoded to
    UTF-8, instead of crashing.

Stargate is an all-in-one DAW and plugin suite

Updated: 24 Jan, 2024

This is a testing release, please use the 24.02.1 release unless you are experiencing crashes when trying to create a project or show the hardware dialog.

Change Log
  • Hardware Dialog: Gracefully ignore audio device names that cannot be decoded to
    UTF-8, instead of crashing.

Lilv is a C library (with Python bindings) for simple use of LV2 plugins in applications

Updated: 23 Jan, 2024

Lilv 0.24.24

Stargate is an all-in-one DAW and plugin suite

Updated: 21 Jan, 2024
Installation and troubleshooting guides

Download the Stargate DAW sample pack

Changelog
  • Piano Roll: Make resizing multiple notes consistent with other Stargate event
    editors. Instead of forcing all selected notes to the same length, resize
    relative to their original length.
  • Piano Roll: New note parameter: Pitch. Sharpen or flatten each note within
    1.0 to -1.0 semitones
  • Piano Roll: Fix SHIFT+drag resize being limited to a minimum of
    1x quantize size, now limited to a minimum of a 128th note
  • Piano Roll: New action: Find Keys and Scales.
    Find all possible keys and scales that the notes in a sequencer item
    could be a part of. Create a melody by ear, then find potential
    keys/scales to build the melody around.
  • Piano Roll: Add new scale: All. Root note + all white notes
  • Transport: More consistent icon sizes and alignment between buttons
  • Transport: Replace Host combobox with a toolbar icon
  • Sequencer: Fix cases where deselected items can become selected again
  • .deb package: Fix for Ubuntu 23.10
  • Welcome Screen: Better readability and style for the project history list
  • Fix crash when attempting to run a 2nd instance of Stargate, before the
    "Already

Fully-featured audio plugin host, with support for many audio drivers, plugin and sound bank formats.

Updated: 18 Jan, 2024
  • Fix double backslash encoding in pre-included serd
  • Fix a few minor ttl details in carla.lv2 (to make validators happy)
  • Fix potential audio buffer overflow issues due to over-optimization in math utilities
  • Fix winevst for DLL_PROCESS_ATTACH

Neothesia is flashy Synthesia-like MIDI file visulisation software

Updated: 14 Jan, 2024

More flatpak shenanigans

PulseAudio is a sound system for POSIX OSes, meaning that it is a proxy for your sound applications

Updated: 12 Jan, 2024

Changes at a glance:

  • Notes for end users
    • Updates to ALSA UCM-based setups
    • Battery level indication to Bluetooth devices
    • Support for the Bluetooth FastStream codec
    • webrtc-audio-processing dependency updated
    • Trigger role groups added to module-role-cork
    • XDG base directory spec for profile-set loading
  • Notes for application developers
    • PA_RATE_MAX increased
  • Notes for packagers
    • webrtc-audio-processing dependency updated

Fluida.lv2 is Fluidsynth as LV2 plugin

Updated: 10 Jan, 2024

Fluida is a LV2 wrapper around Fluidsynth
allowing to load and control Fluidsynth as LV2 plugin.

Fluida

This release of Fluida add support for Windows.

Attached been ready to use binaries for Linux Fluida.lv2-v0.9-linux-x86_64.tar.xz
and Windows Fluida.lv2-v0.9-win64.zip
To build from source, please download
Fluida.lv2-v0.9-src.tar.xz
as only this one include the needed submodule to build Fluida,
the zip generated by github wont build for that reason!!

Stargate is an all-in-one DAW and plugin suite

Updated: 02 Jan, 2024
Installation and troubleshooting guides

Download the Stargate DAW sample pack

Changelog
  • Plugin Rack, menu button: Move to left side, use icon, for consistency with
    other tabs
  • Audio Items: SHIFT+drag to position, resize and stretch freely
    without quantize
  • Piano Roll: SHIFT+drag to position or resize notes freely without quantize
  • Piano Roll: Fix ALT+click drawing not moving the item + hung note
    if previewing
  • Panic Button: Replace weird icon with slightly less weird icon
Checksums

Optionally, you can generate a sha256sum of the downloaded file and verify
that it matches this signature.

79d6af65479be23a6957ff432296565723ecb362745009748a20b89e6759ab88 stargate-24.01.1-1.x86_64.rpm ac391e48d719eb3e170760a3ea6f3e8d0dc6205b7cbe5f2cfc840b3efd197a23 stargate-24.01.1-amd64.deb d2cc17812e7252080f3eb140806ec08e24bf755f0b3071fd906c4cd4f6c920b1 StargateDAW-24.01.1-linux-x86_64.AppImage b33a58f11f10e1c3617d89ea951abc72d2e8bba1bd00f48e7fa82961a69ffddc StargateDAW-24.01.1-win64-installer.exe 43a98b055adb56f5a847ba787ba42d105361a5ad0ade92746428ed97f07fd66e StargateDAW-24.01.1-macos-m1-arm64.dmg 6462879f75ae684dee807b1f1383518f1aae7373a26ab1ffdb055de788c42592 StargateDAW-24.01.1-macos-intel-x86_64.dmg

Radium is a music editor with a tracker and sequencer and mixer interface.

Updated: 30 Dec, 2023
  • Demo song: "Locrans Shop" made by Trumpetrespas.
  • Editor: Add "Drums" to the "(click me)" menu.
  • Fluidsynth: Replaced the default soundfont
    Orgue.sf2 with FluidR3_GM_drums.sf2. FluidR3_GM is
    made by Frank Wen. Trumpetrespas stripped it down
    to only include drums.
  • Audio: Fix LV2 plugins (bug introduced in 7.2.87).
  • Build: Fix having to run "make packages" twice/etc.

Radium is a music editor with a tracker and sequencer and mixer interface.

Updated: 28 Dec, 2023
  • Macos: Always enable incremental GC when running
    ARM. May improve scrolling performance in the
    editor.
  • Sequencer: Fix "Delete" entry in seqblock popup
    menu.
  • Build: Update bdw-gc from 7.4.16 to 8.2.4.
  • Macos: Fix the ZL1 key again.
  • Macos: Add support for LV2 plugins.
  • Startup/Mac: Fix long startup time on Macos.
  • OpenGL: Fix laggy editor interface after moving
    the main window to a screen with a different
    refresh rate.
  • GUI: Paint thin black border around all
    checkboxes.
  • GUI: Make the color of Mute buttons lighter if
    background color is too similar to the default
    mute color.
  • Preferences: Option to turn off checking for
    abnormal signals. Might shave off a few CPU
    cycles.
  • Add support for aarch64 CPUs, i.e. 64 bit ARM.
  • Remote control: Disable access from other computers
    by default, i.e. only allow requests from
    localhost. Access from other computers can be
    enabled in preferences if needed.
  • GUI/Preferences: Fix program not remembering
    "CPU friendly audio meter updates" between
    sessions.
  • Demo songs: "Poptikus" by Nil Geissweiller /
    A-Lin (Europe). All instruments in this song are
    made with the FaustDev instrument.
  • Build: Upgrade QScintilla from 2.10.8 to 2.14.0.
  • Build: Fix build with gcc>=11 and clang >= 15.
  • Build: Various patches from Arch Linux.
  • Build

Drumstick Metronome is a MIDI Metronome for Linux

Updated: 25 Dec, 2023
Drumstick Metronome 1.4.0

Drumstick Metronome is a MIDI metronome with Qt user interface, based on the ALSA sequencer.
This program was previously and simply known as "kmetronome".

Changes in 1.4.0

  • Fixed compatibility with Qt6 < 6.3.0
  • Fixed default language setting
  • Building with Qt6 by default.
  • For Qt5 compatibility, a new option USE_QT5 must be set.
  • Upgraded compiler/runtime requirements to C++17.
  • Upgraded CMake requirement to 3.16

Compilation minimum requirements for all platforms:

  • C++17 compiler
  • CMake 3.16
  • Qt6 >= 6.2 Qt5 >= 5.12

Copyright (C) 2005-2023, Pedro Lopez-Cabanillas
License: GPL v2 or later

More info
https://kmetronome.sourceforge.io/kmetronome.shtml

Downloads
https://sourceforge.net/projects/kmetronome/files/kmetronome/1.4.0/

Flatpak at FlatHub
https://flathub.org/apps/details/net.sourceforge.kmetronome

Yabridge is Yet Another way to use both 32-bit and 64-bit Windows VST2 and VST3 plugins on Linux

Updated: 23 Dec, 2023

If you need any help setting up yabridge or if you just want to keep up to date with new releases and important Wine related announcements, then feel free to join the Discord.

Added

  • The yabridge libraries now export a yabridge_version function that hosts can query to know that a plugin is a yabridge plugin, and which version of yabridge is in use. Ardour 8.2 will use this to fix a regression in Ardour 7.3 that could cause some VST3 plugins to freeze.

Changed

  • Parsing failures for yabridge.toml files will no longer cause plugins to fail to load. If this does happen, you'll now get a desktop notification and the plugin will simply use the default settings instead.

Fixed

  • Fixed freezes in new versions of Renoise when it tries to set DPI scaling for VST2 plugins.

yabridgectl

  • Yabridgectl's command line interface looks slightly differently again after some dependency updates. The behavior remains the same.
  • Some outdated warning messages have been updated to match yabridge's current state. There are also some additional warnings for common installation issues.

Packaging notes

  • This release includes a workaround to make bitsery compile with GCC 13 due to changes in transitive header includes.
  • The CLAP

Helio Workstation is free and open-source music sequencer, designed to be used on all major platforms.

Updated: 12 Dec, 2023

Update the example project template

SonoBus can stream high-quality, low-latency peer-to-peer audio between devices over the intern

Updated: 11 Dec, 2023

SonoBus 1.7.2 Release Notes

  • Made the use of the universal font optional (defaulting to off), because it was causing slowdowns on some systems. Only enable it if you need to have universal language character support.

From 1.7.1

  • Added dedicated button on main window for getting to VDO.Ninja group video link (for those who didn't even know it was there!)
  • Fixed VDO.Ninja link generator, Open in browser now operates properly (which it never did)
  • Fixed font size issue on Windows
  • Other minor fixes

From 1.7.0:

  • Added "Suggest New Group" feature. From the group popup (the button just below Connect showing group info) a new item was added that lets you pick who from the currently connected group you would like to join you in a new group, makes the request and connects you to the new group. If the others accept they will immediately connect to the new group with you. This feature can be used in the situation where you are in a public group, but would like to continue to play/talk with a subset of them in a new private (or public) group, with the least amount of effort.

  • Added Reset All Jitter Buffer button (near the bottom next

Bintracker is an advanced cross-platform 9/16-bit chiptune music editor

Updated: 09 Dec, 2023

Bugfix release, this fixes a crash under Windows that was caused by using a wrong key name.
There's also support for a new CPU (i8080).

Musescore is an open source and free music notation software.

Updated: 06 Dec, 2023

See dedicated project with changelog.

Added experimental builds for ARM Linux and portable Windows. These haven't been tested as thoroughly as the other builds. Please let us know if you encounter any issues.

ChucK is a programming language for real-time sound synthesis and music creation

Updated: 06 Dec, 2023

chuck-1.5.2.0 release

rtpmidid allows you to share ALSA sequencer devices on the network using RTP MIDI

Updated: 05 Dec, 2023

Version 23.12 Beta 2

Musescore is an open source and free music notation software.

Updated: 04 Dec, 2023

fix pedal import/export for MusicXML

RaySession is a GNU/Linux session manager for audio programs, using a varient of NSM

Updated: 02 Dec, 2023

0.14.3 / 2023-12-02
Bug fix release.

Bug Fixes:

  • Daemon crashed at session open with no clients (making Network Sessions not working well)
  • Desktops Memory option was totally broken
  • Daemon crashed if $LANG environment variable was not defined (thanks to Gaël de Chalendar)

Templates:

  • add Mixbus9 and Mixbus32C 8 and 9 templates (thanks to Erich Eickmeyer)
  • remove Jack Mixer old LASH template (Ray-Hack) (Jack Mixer uses NSM for a long time now)
  • rename Calf JACK Host template with a folder without spaces (adapt to Debian policy)

Please download RaySession-0.14.3-source.tar.gz, other packages are auto generated and incomplete.

by KDE

Kdenlive is video and audio editing software with GPU rendering support. Great variety of video filters available.

Updated: 29 Nov, 2023

Create tag for 24.01.80

Musescore is an open source and free music notation software.

Updated: 27 Nov, 2023

See dedicated project with changelog.

Edit: Added experimental builds for ARM Linux and portable Windows. These haven't been tested as thoroughly as the other builds. Please let us know if you encounter any issues.

Stargate is an all-in-one DAW and plugin suite

Updated: 25 Nov, 2023
Installation and troubleshooting guides

Download the Stargate DAW sample pack

Changelog
  • Tracks: Move the plugins button out of the menu onto the track panel
  • Track Menu Panel: Better layout and cosmetic improvements
  • Sequencer: Fix Select{Right,Left,All} actions not working if right-clicking
    on an empty space instead of on an item
  • Main Track: Fix missing controls on track panel
  • Message Box: Fix label not showing in some cases
  • Item Editors: Move horizontal scrollbars to the top, to match the layout of
    the seqencer
  • Item Editor: Hint box improvements
  • Preset Manager Widget: Add missing hint box hints for menu
  • DAW: Add normalize option to render dialog
  • Linux AppImage: Compatibility improvements on many systems
  • Linux AppImage: Upgrade to Python 3.11
  • More consistent use of fonts and font sizes throughout the application, avoid
    using system fonts and/or sizes to the greatest extent possible
  • Hint box: Smaller font, more room for text, some controls have been given
    longer, more detailed hints to use the additional space
  • Hint Box: Fix bottom alignment in transport layout being smaller than the top
Checksums

Optionally, you can generate a sha256sum of the downloaded file and verify
that it

Anklang, a digital audio synthesis application for live creation and composition

Updated: 23 Nov, 2023

9c9733c7e54d48dcba5732557154d78f4a2cc333

LilyPond is a music engraving program, devoted to producing high-quality sheet music

Updated: 19 Nov, 2023

We are proud to announce the release of GNU LilyPond 2.24.3. LilyPond is a music engraving program devoted to producing the highest-quality sheet music possible. It brings the aesthetics of traditionally engraved music to computer printouts.

This version contains a number of fixes since the release of the previous stable version in August 2023. We recommend all users to update. Scores converted to or written for 2.24.0 will continue to work with this release. A list of added features and other user-visible changes for 2.24 can be found at https://lilypond.org/doc/v2.24/Documentation/changes/. Among others, version 2.24.0 switched to Guile 2.2 and features a completely rewritten infrastructure for creating the official packages, finally allowing us to offer 64-bit binaries for macOS and Windows. These pre-built binaries are linked from https://lilypond.org/download.html and available from GitLab: https://gitlab.com/lilypond/lilypond/-/releases/v2.24.3

For distributions, LilyPond 2.24.3 most notably includes a fix to restore PDF conversion with the recent Ghostscript 10.02.1. Also Guile 3.0 is now officially supported, even though the recommended version will remain Guile 2.2 for the LilyPond 2.24 series.

Audacity is a free, easy-to-use, multi-track audio editor and recorder for Windows, macOS, GNU/Linux and other operating systems

Updated: 16 Nov, 2023

This is a hotfix release. It fixes the following issues:

  • #5568 Fix a crash when opening projects with zero-length clips.
  • #5032 When exporting a file, the sample rate of the tracks is now considered, and last-used sample rate is remembered.
  • #5555 Copy-pasting now pastes into audio again by default. This can be changed via Preferences -> Track Behavior -> Always paste audio as new clips.
  • #5549 Mix and render now also resets the gain for the resulting track.
  • #5571 Fix clips shifting to the right when effects are applied to them.
  • #5106 Fix clicks occurring when overdubbing a project with muted tracks.
  • #5533 Fix files being exported without a file extension in rare cases.
  • #5539 Show all sample rates possible for MP2 exports.
  • #5518 Fix pasting into labels.
  • #5543 Fix a crash when clearing loops.
  • #5529 Fix copying when "select all audio if selection required" is enabled.
  • #5598 #5552 Fix GTK detection and compilation for wxWidgets 3.2.4.
  • #5551 Fix Nyquist-related crashes.
  • #5604 Fix EQs in macros.
  • #5511 Fix a crash when closing Audacity.
  • #5476 Fix builds on armhf.

PipeWire is a server and user space API to deal with multimedia pipelines.

Updated: 16 Nov, 2023

0.3.85

Functional programming language for signal processing and sound synthesis

Updated: 14 Nov, 2023

Change log

WARNING: to get the source version

  • be sure to download the faust-2.69.3.tar.gz file to get a complete source folder (in particular, with all the libraries)
  • on macOS, binary files are still to notarise, you may have to use the xattr -rd com.apple.quarantine file command to remove the com.apple.quarantine extended attribute. See the xattr man page for details on how to use that tool.

WebAssembly

This is the latest release which contains the JavaScript written Faust/WebAssembly glue code using the compiled libfaust-wasm.js, libfaust-wasm.wasm and libfaust-wasm.data files, also used in the faust2webaudio separated project. See documentation.

A new TypeScript/JavaScript based model will be used in the next versions.

New

  • Improve faustbench-llvm by checking -ct 0 option
  • Update faust2max6 link step for Max 8.6
  • Remove identifiers generation workaround in codebox backend
  • JAX: improve soundfile path searching
  • Introduction of widget modulation expressions
  • Add boxHGroup, boxVGroup, boxTGroup and C versions in libfaust API
  • Rework -1*exp like expressions in FIR by adding MinusInst
  • Improved simplifications in particular for -n*exp expressions
  • Expressions 0-x rewritten in -1*x in aterm::normalizedTree()
  • Update faustgen~ link step for Max 8.6
  • Update faust2jackconsole to allow effects option
  • Add -I option to faust2caqt

Deprecated

Fixed bugs

  • Correct LLVMInstVisitor::visitIndexedAddress
  • Minus expression

Functional programming language for signal processing and sound synthesis

Updated: 13 Nov, 2023

Change log

WARNING: to get the source version

  • be sure to download the faust-2.68.1.tar.gz file to get a complete source folder (in particular, with all the libraries)
  • on macOS, binary files are still to notarise, you may have to use the xattr -rd com.apple.quarantine file command to remove the com.apple.quarantine extended attribute. See the xattr man page for details on how to use that tool.

New

  • Reworked mesh2faust tool.
  • Rework faust-dynamic-engine.
  • Experimental -diff option for 'Automatic Differentiation in the Faust Compiler'
  • Add sigDelay1 in signal API.
  • Add printCBox/printCSignal API in box and signal API.
  • Add getSigInterval/setSigInterval in signal API.
  • New faust2rnbo tool (see https://faustdoc.grame.fr/tutorials/rnbo/)
  • Reworked faust2vhdlcode.
  • Add -it option to inline rdtable/rwtable code in the main class.
  • Add missing round primitive in the language.
  • Add -vec mode in Rust backend.
  • Codebox backend (for RNBO support).
  • MIDI and polyphonic support in JSFX backend.

Deprecated

Fixed bugs

  • Revert incorrect route primitive incorrect fix.
  • Add checkNullBargraphLabel to better handle null labels in bargraph.
  • Complete -quad support in C++ backend.
  • Rework broken -inj option.

Libraries

  • Add ba.ifNc and ba.ifNcNo functions
  • Adding new mathematical oscillators to oscillators.lib

Functional programming language for signal processing and sound synthesis

Updated: 13 Nov, 2023

Change log

WARNING: to get the source version

  • be sure to download the faust-2.60.3.tar.gz file to get a complete source folder (in particular, with all the libraries)
  • on macOS, binary files are still to notarise, you may have to use the xattr -rd com.apple.quarantine file command to remove the com.apple.quarantine extended attribute. See the xattr man page for details on how to use that tool.

New

  • Rework -dlt threshold handling.
  • JSFX backend contributed by Johann Philippe.
  • Properly test -mcd values in best found vector option.
  • Improve dsp_optimizer to properly test -mcd values in scalar mode.
  • Add size (in bytes) item in JSON.

Deprecated

Fixed bugs

  • More robust FaustPlugin_template.cs, correct faust2unity.
  • Using boxpp to display real values in SVG diagrams.
  • Make preset management thread safe.

Libraries

  • New version of reducemaps.lib with parReduce.
  • Fix RMS_FBcompressor_peak_limiter_N_chan.
  • Add tabulateNd.
  • tabulate: use int(id+0.5) in .val

LilyPond is a music engraving program, devoted to producing high-quality sheet music

Updated: 11 Nov, 2023

LilyPond 2.25.10

Audacity is a free, easy-to-use, multi-track audio editor and recorder for Windows, macOS, GNU/Linux and other operating systems

Updated: 09 Nov, 2023

This is a hotfix release. It fixes the following bugs:

  • #5467 Fix 24-bit recording.
  • #5488 Fix a crash with .aup importing.
  • #5471 #5483 Fix crossfading of clips and tracks.
  • #5473 Exporting multiple files honors sample rate settings again.
  • #5480 #5417 Fix crashes related to external program exports.
  • #5479 #5476 Fix BSD and ARM builds.
  • #5498 Ctrl+J is now a standard shortcut for joining clips.
  • #5389 Stereo tracks no longer randomly split into mono.
  • #5007 When exporting a file, the file extension is now always added (except for custom FFmpeg and external program exports).
  • #5516 Fix a crash when exporting Opus with older CPUs that don't support AVX.
by KDE

Kdenlive is video and audio editing software with GPU rendering support. Great variety of video filters available.

Updated: 09 Nov, 2023

Create tag for 23.08.3

by KDE

Kdenlive is video and audio editing software with GPU rendering support. Great variety of video filters available.

Updated: 07 Nov, 2023

Create tag for 24.01.75

zam-plugins is a collection of LV2/LADSPA/VST/JACK audio plugins developed in-house at ZamAudio

Updated: 05 Nov, 2023
No content.

CHOW Tape Model is a physical model of an analog tape machine

Updated: 05 Nov, 2023

Release version 2.11.3. Updates include:

  • Fixed bug in Wow processing at high levels of "Depth".

Anklang, a digital audio synthesis application for live creation and composition

Updated: 05 Nov, 2023

Anklang 0.2.0.nightly2311052133

Development version - may contain bugs or compatibility issues.

=0.13.1 have problems with python-3.8 on focal. MISC: Dockerfile.focal: install pandoc-3.1.6.2 Using pandoc-3.1.7 seems to have issues with PDF generation, anchors in section titles cause an error and SVG images are not found. .gitignore: minor addition MISC: Dockerfile.focal: add clang-17 aliases MISC: Dockerfile.focal: provide xetex, poxy and clang++-17 GITHUB: workflows/release.yml: upload draft releases for CI tests GITHUB: workflows/release.yml: cache focal docker builds with buildx GITHUB: workflows/testing.yml: fix comment GITHUB: workflows/testing.yml: cache arch docker builds with buildx GITHUB: workflows/testing.yml: cache lunar and jammy docker builds with buildx Merge branch 'cirun-docker-caching' - let cirun handle image build and caching # 2023-09-17 Tim Janik 00c0537 * cirun-docker-caching: GITHUB: workflows/testing.yml: use separate steps for docker image builds GITHUB: workflows/testing.yml: make use of cirun which handles docker builds * workflows/testing.yml: use misc/cirun -u 1000 to fix ownership * workflows/testing.yml: fix CIMAKE for Focal-Clang-Tidy * workflows/testing.yml: move nproc out of env variables MISC: cirun.sh: remove, use simpler cirun MISC: gh_delete_assets.sh: remove old helper MISC: Dockerfile.lunar: remove old file MISC: docker_*: remove old helpers MISC: cirun: add docker build, run, chown and caching MISC: cirun: add script to run commands in dockerized environments GITHUB: workflows/testing.yml: use buildx with selective caching GITHUB: workflows/testing.yml: configure and use buildx with selective caching GITHUB: workflows/testing.yml: remove unused actions/upload-artifact GITHUB: workflows/testing.yml: split asset builds into separate job MISC: cirun.sh: add --build, note that --check includes --build MISC: mkassets.sh: fix outdated globs Merge branch 'thin-lto' - improve LTO builds # 2023-09-17 Tim Janik 0e21fc8 * thin-lto: ASE: main.cc: add missing formats to WAV output help MISC: config-uname.mk: when using LTO, enable Thin LTO with clang Thin LTO can result in smaller binaries and better performance. Merge branch 'use-git-submodule' # 2023-09-21 Tim Janik 22cf347 * use-git-submodule: DOC: copyright.ini: apply MPL-2.0 to .gitmodules MISC: Makefile.mk: directly create and reference .dlcache/ for mkassets.sh MISC: Makefile.mk: mkassets: download builds tools before misc/mkassets.sh GITHUB: workflows/testing.yml: use `make mkassets` for release builds .gitignore: ignore .submodule-stamp UI: global.scss, index.html: move AnklangIcons to assets/ UI: Makefile.mk: copy anklangicons-*.tgz files to assets, remove download EXTERNAL: blobs4anklang: add tim-janik/blobs4anklang commit from 2023-09-21 21:04:16 git -C external/blobs4anklang/ checkout 7b0a4a68a1e9efbe68fc9761bef080995f4b4d6b UI: global.scss, index.html: move fork-awesome to assets/ UI: Makefile.mk: copy node_modules/fork-awesome to assets, remove download MISC: package.json.in: install fork-awesome@1.2.0 UI: Makefile.mk: use blobs4anklang/fonts/InterVariable.woff2, remove download EXTERNAL: blobs4anklang: add tim-janik/blobs4anklang commit from 2023-09-21 18:23:36 git submodule add --name blobs4anklang https://github.com/tim-janik/blobs4anklang.git external/blobs4anklang git -C external/blobs4anklang/ checkout 8da35f3914b9668bacc6755a8051a17051b07c3a Makefile.mk: skip `git submodule` in tarball builds Makefile.mk: dist: exclude unused external subdirs from tarball Makefile.mk: include submodule archives in dist tarball ASE: Makefile.mk: use blake3 submodule, remove download rule ASE: compress.cc: use external/blake3/c/blake3.h EXTERNAL: blake3: add BLAKE3-team/BLAKE3 version 1.3.1 git submodule add --name blake3 https://github.com/BLAKE3-team/BLAKE3.git external/blake3 git -C external/blake3/ checkout 1.3.1 ASE: Makefile.mk: use websocketpp submodule, remove download rule EXTERNAL: websocketpp: add zaphoyd/websocketpp version 0.8.2 git submodule add --name websocketpp https://github.com/zaphoyd/websocketpp.git external/websocketpp git -C external/websocketpp/ checkout 0.8.2 ASE: Makefile.mk: use clap submodule, remove download rule EXTERNAL: clap: add free-audio/clap version 1.1.1 git submodule add --name clap https://github.com/free-audio/clap.git external/clap git -C external/clap/ checkout 1.1.1 ASE: Makefile.mk: use rapidjson submodule, remove download rule EXTERNAL: rapidjson: add Tencent/rapidjson commit from 2022-05-24 10:03:13 git submodule add --name rapidjson https://github.com/Tencent/rapidjson.git external/rapidjson git checkout 232389d4f1012dddec4ef84861face2d2ba85709 Makefile.mk: update all submodules before building sources Makefile.mk: remove external/ subdir from ls-tree.lst MISC: mkcopyright.py: ignore dirs passed from `git ls-tree` on the CLI ASE: storage.cc: adjust old link to zlib-ng/minizip-ng/issues/433 ASE: minizip: build against external/minizip-ng/ ASE: Makefile.mk: use minizip-ng submodule, remove download rule EXTERNAL: minizip-ng: add zlib-ng/minizip-ng version 2.9.0 git submodule add --name minizip-ng https://github.com/zlib-ng/minizip-ng.git external/minizip-ng .gitignore: remove entries of files the build is not generating Merge branch 'bug-fixes' # 2023-09-23 Tim Janik e9015b9 * bug-fixes: GITHUB: workflows/testing.yml: upload dist tarball as isolated smaller artefact GITHUB: workflows/testing.yml: upgrade to actions/upload-artifact@v3.1.3 MISC: *.sh: use '#!/usr/bin/env bash' for bash scripts, fixes #17 Merge branch 'fix-warnings' # 2023-09-29 Tim Janik 9c1a062 * fix-warnings: ASE: track.cc: fix signedness ASE: utils.cc: cosmetic change ASE: project.cc: cosmetic change ASE: nativedevice.cc: fix signedness ASE: midilib.cc: fix signedness ASE: midievent.cc: cosmetic change ASE: internal.hh: cosmetic change ASE: inifile.cc: fix signedness ASE: engine.cc: cosmetic change ASE: compress.cc: fix write check signedness ASE: combo: fix insert position signedness ASE: clapplugin.cc: cosmetic change ASE: device.cc: remove unused code ASE: blob.cc: cosmetic fix MISC: Makefile.mk: clang-tidy: fix missing includes ASE: clapplugin.cc: cosmetic fix ASE: loop.cc: fix typo Merge branch 'main-rt-jobs' # 2023-09-30 Tim Janik a3f8f29 * main-rt-jobs: ASE: main.cc: fit one RtCallJob into a cache line This becomes possible with RtCall allocating just 4 pointer sizes. Since Loft allocates at cache line boundaries only, this essentially halves the size of an RtCallJob allocation. ASE: callback: shrink struct RtCall by a pointer ASE: loft: fix and test LoftPtr actually running ~T ASE: engine.hh: add comment about main_rt_jobs ASE: main.cc: turn debugging code into real job_queue_tests ASE: main: main_rt_jobs: add main_loop callback queue without invoking malloc() ASE: callback: RtCall: wrap simple callback pointers, without using malloc ASE: cxxaux.hh: add unalias_ptr<> helper ASE: callback.cc: add a small callback list test ASE: callback: add CallbackList - reentrant cb list with configurable arguments ASE: callback: move JobQueue implementation here Merge branch 'websocket-fix' # 2023-10-01 Tim Janik a5f9ca9 * websocket-fix: ASE: jsonapi.cc: cache socket nickname for use during errors ASE: websocket.cc: avoid exceptions in boost::asio socket.remote_endpoint() ASE: callback.hh: remove (sync) return value handling in JobQueue ASE: jsonapi.cc: wait for main loop callback completion via semaphore Merge branch 'audio-engine-job-cleanups' # 2023-10-01 Tim Janik 8067acc * audio-engine-job-cleanups: ASE: engine.hh: document engine lifetime ASE: engine: remove BorrowedPtr, simplify EngineJobImpl ASE: clapplugin.cc: use main_rt_jobs queue to delete events from audio_thread ASE: clapplugin.cc: rename ClapAudioProcessor ASE: project.cc: do not (auto) destroy all projects during atexit ASE: main.cc: shutdown: unset engine project and handle main loop callbacks ASE: engine: make transport a reference, move job queues into AudioEngine ASE: engine: rename AudioEngineThread Merge branch 'c++20' # 2023-10-10 Tim Janik 3a7c2d3 * c++20: MISC: mkAppImage.sh: fix $ORIGIN in AnklangSynthEngine-fma, add jackdriver.so MISC: Dockerfile.focal: install latest poxy (again) MISC: Dockerfile.focal: provide libstdc++-10-dev and a recent castxml MISC: config-uname.mk: optimize with clang -march=x86-64-v3 on modern platforms Clang chokes on '-march=haswell -mno-hle', so we use '-march=x86-64-v3' which is close to Haswell, the clang docs say: -march=x86-64: CMOV, CMPXCHG8B, FPU, FXSR, MMX, FXSR, SCE, SSE, SSE2 -march=x86-64-v2: (close to Nehalem) CMPXCHG16B, LAHF-SAHF, POPCNT, SSE3, SSE4.1, SSE4.2, SSSE3 -march=x86-64-v3: (close to Haswell) AVX, AVX2, BMI1, BMI2, F16C, FMA, LZCNT, MOVBE, XSAVE -march=x86-64-v4: AVX512F, AVX512BW, AVX512CD, AVX512DQ, AVX512VL MISC: mkassets.sh: adopt compiler config and fix make V=1 * Support make with V=1 during asset builds * Copy compiler config from config-defaults.mk for mkassets Makefile.mk: ignore leading spaces in config-defaults.mk ASE: properties.hh, processor.hh: remove unused (and conflicting) GroupId ASE: memory.cc: test CString operators ASE: memory.hh: CString: provide operator== and operator<=> to disambiguate JSONIPC: cxxjip.py: switch from C++17 to C++20 README.md, *.mk: switch from C++17 to C++20 ASE: memory.hh: always provide ctor for Block initialization Merge branch 'preferences' and live PCM driver updates # 2023-10-16 Tim Janik c7ece44 * preferences: UI: util.js: call prop->ident() ASE: shorten Parameter method ident() ASE: strings: add fallback to string_option_find(), remove string_option_get() ASE: testing.cc: use string_option_find_value() ASE: processor.cc: use string_option_find() ASE: cxxaux.cc: use ase_fatal_warnings ASE: main: remove feature toggles, use ase_fatal_warnings ASE: utils: export ase_fatal_warnings ASE: utils.cc: base debug key checks on string_option_find_value() ASE: strings: base option search on string_option_find_value() (without malloc) ASE: project: create_properties: use property_bag() and Prop ASE: clapdevice.cc: use parameter_guess_nick() ASE: gadget: add property_bag() and create_properties() UI: b/preferencesdialog.vue: edit everything with Shift+Ctrl+Alt+Click [Close] UI: b/preferencesdialog.vue: fetch + edit only selected PCM + MIDI preferences UI: b/objecteditor.js: fix blurb and descr bubbles UI: index.html, eslintrc.js: allow _("for translation") markup UI: util.js: rename extended Property descr() (abbreviate) UI: b/choiceinput.js: treat choice property as string UI: b/preferencesdialog.vue: special case driver.pcm.devid UI: b/objecteditor.js: rename internal function on xprop UI: b/contextmenu.js: support focus_uri ASE: engine.cc: add preferences for up to 4 MIDI controllers ASE: engine.cc: cache PCM driver live listing for ca half a second ASE: engine: change PCM driver when preferences change ASE: engine.cc: add audio.synth_latency Preference ASE: driver*: allow to query all PcmConfig values from drivers ASE: api.hh, server: remove all old preference handling ASE: api.hh, server: add Server.list_preferences() ASE: properties: add Preference classes and majorly simplify Property impls * Remove obsolete structures and aux constructors * Add getter/setter lister for enumeration types * Add PropertyBag - a helper to simplify property registrations * Add small PropertyImpl based on ParameterProperty * Add generic Preference class, useful for static initialization * Remove property nick guessing * Add global Preference setting list based on Parameter * Implement saving/loading preferences from anklangrc * Auto save preference changes after maybe half a second * Ensure that Preference names follow NCName syntax ASE: defs.hh: add PropertyImpl ASE: api.hh: rename Property.descr() (abbreviate) ASE: api.hh, server: provide access_preference() instead of access_prefs() ASE: api.hh: add constexpr GUIONLY, STORAGE, STANDARD to avoid C++ SIOF ASE: main.cc: save/load preferences unless --norc is given ASE: processor: use Parameter instead of the old ParamInfo ASE: parameter: add Parameter, ParameterProperty and parameter_guess_nick() * Implement Parameter{} with Param{} as initializer * Add constrain, normalize and text conversions * Implement simple ParameterProperty abstract base class * Support callback function to query parameter choices * In set_value: constrain Value according to parameter range * Use variants for flexible initilizers * Treat choice parameters as text * Match choices via normalized Damerau-Levenshtein distance * Add parameter_guess_nick() (former on property_guess_nick). ASE: value.hh: add Value::is_string() ASE: object.cc: allow NCName as event detail, to support preference identifiers ASE: defs.hh: declare Preference ASE: strings: add kvpairs_search() ASE: strings: define and use ASE_STRING_SET_ASCII_ALNUM and _LOWER_ALNUM ASE: unicode.cc: add missing docs ASE: unicode: add string_to_ncname() and string_is_ncname() ASE: levenshtein: compute (un)restricted Damerau-Levenshtein string distances ASE: defs.hh: add F32EPS and F32MAX ASE: memory.hh: declare CStringS ASE: loop: add exec_once() ASE: cxxaux.hh: add ASE_ASSERT_ALWAYS() MISC: package.json.in: reduce wait delay for rebuilds Merge branch 'package-updates' # 2023-10-24 Tim Janik 1c7da51 * package-updates: MISC: package.json.in: update babel, eslint, rollup, electron, postcss, lit Major version updates: - electron-27.0.2 - icon-gen-4.0.0 - lit-3.0.0 - rollup-4.1.4 - postcss-lab-function-6.0.7 - puppeteer-core-21.4.0 MISC: package.json.in: update to vue-3.3.6 Merge branch 'pnpm' # 2023-10-24 Tim Janik f1b37e4 * pnpm: MISC: config-checks.mk: remove unused NPM_INSTALL Makefile.mk: save XNPM to defaults and use it to install node_modules/ MISC: config-checks.mk: check for pnpn, provide as $(XNPM) UI: Makefile.mk: fetch Lit version directly from node_modules/lit/package.json X11TEST: ereplay.cjs: set timeout to 2500 to allow click durations of 2200ms Merge branch 'bun' # 2023-10-24 Tim Janik 63e4292 * bun: Makefile.mk: fix up sharp and electron installations with bun At the moment, we need to call the postinstall scripts manually, see: https://github.com/oven-sh/bun/pull/5077 MISC: config-checks.mk: support bun 1.0.0 as package manager Merge branch 'g++-bun-pnpm-ci' # 2023-10-27 Tim Janik 042fd7a * g++-bun-pnpm-ci: GITHUB: workflows/testing.yml: test Arch builds with g++ MISC: Dockerfile.arch: provide pnpm as JS package manager MISC: Dockerfile.arch: update build comments MISC: Dockerfile.focal: provide bun as JS package manager MISC: cirun: defer check for docker-buildx-plugin until we actually need it Makefile.mk: guard against `prefix := / / ` etc which will confuse `rm -rf` EXTERNAL: websocketpp: update zaphoyd/websocketpp to 2022-05-24 18:42:50 2022 -0500 git -C external/websocketpp/ checkout b9aeec6eaf3d5610503439b4fae3581d9aff08e8 This includes fixes applied after version 0.8.2, in particular it allows g++ to build the sources with C++20 enabled. See: https://github.com/zaphoyd/websocketpp/issues/991 Merge branch 'npm-updates' # 2023-11-01 Tim Janik 8d56822 * npm-updates: MISC: package.json.in: update various minor versions Makefile.mk: allow $NPM_INSTALL overrides via config-defaults.mk This allowes e.g.: NPM_INSTALL = pnpm install --prefer-offline Merge branch 'constrain-parameters' # 2023-11-01 Tim Janik fff51b9 * constrain-parameters: UI: b/databubble.js: fix assertion ASE: processor.cc: use parameter->dconstrain() ASE: parameter: add dconstrain() to convert to double and constrain ASE: processor.cc: use Parameter::construct_hints() ASE: parameter: export construct_hints(), always use "stepped" hint for bools UI: b/propinput.js: give toggles preference over choices ASE: processor.cc: remove unused choices from boolean param ASE: serialize.cc: call jsonvalue_to_string() directly ASE: jsonapi.cc: call jsonobject_to_string() directly JSONIPC: jsonipc.hh: always write null instead of NAN, ±Inf Remove JsonWriteFlags from the (template) API. JSONIPC: Makefile: fix include path to external/rapidjson/ EXTERNAL: rapidjson: update Tencent/rapidjson to 2023-09-28 11:36:59 +0200 git -C external/rapidjson checkout f9d53419e912910fd8fa57d5705fa41425428c35 Among other changes, this provides kWriteNanAndInfNullFlag. ASE: parameter: value_from_text(): yield integers for text inputs of choices Merge branch 'swesterfeld-blepsynth-sallen-key-filter', closes #10 # 2023-11-01 Tim Janik 441cbca * swesterfeld-blepsynth-sallen-key-filter: ASE: resampler2: remove, superseded by pandaresampler DEVICES: blepsynth/blepsynth.cc: reorder parameter groups DEVICES: blepsynth/Makefile.mk: include external/pandaresampler/lib EXTERNAL: pandaresampler: add swesterfeld/pandaresampler commit from 2023-02-14 10:18:45 git submodule add --name pandaresampler https://github.com/swesterfeld/pandaresampler.git external/pandaresampler git -C external/pandaresampler checkout 29097dc786b6d75a9deb12e70ec8960a78f7f8f5 DEVICES: blepsynth: update LadderVCF with drive/reso boost DEVICES: blepsynth: optimize filter code if freq/reso/drive are constant DEVICES: blepsynth: update LadderVCF, setup cutoff frequency range DEVICES: blepsynth: add latency compensation for LadderVCF DEVICES: blepsynth: update LadderVCF to version from dsp-research - oversample LadderVCF with factor 4, too DEVICES: blepsynth: compensate for SKFilter FIR oversampling delay DEVICES: blepsynth: reset filter state on filter type change DEVICES: blepsynth: reset SKFilter state if filter mode changes DEVICES: blepsynth: make cutoff parameter log-scaled DEVICES: blepsynth: rename vcf_ to ladder_filter_; minor cleanups DEVICES: blepsynth: implement midi velocity handling and add master gain DEVICES: blepsynth: smooth drive / reso input for Sallen-Key Filter DEVICES: blepsynth: add Sallen-Key Filter ">Merge branch 'release-fixes' # 2023-09-08 Tim Janik d8465fd * release-fixes: MISC: mknews.sh: print latest NEWS.md version with `misc/mknews.sh --version` GITHUB: workflows/release.yml: set prerelease:false for annotated tags Fix actions/checkout@v3 and actions/checkout@v4 messing up the annotation of the currently fetched tag, even with fetch-depth:0, see: actions/checkout#290 MISC: mknews.sh: for release tags, copy news section from NEWS.md Merge branch 'ci-fixes' # 2023-09-10 Tim Janik 9a7e628 * ci-fixes: MISC: mkassets.sh: remove unused file generations MISC: dbuild.sh: delete, now unused MISC: cirun.sh: add missing arg to help MISC: publish.sh: remove --draft MISC: publish.sh: determine version from tarball, show progress MISC: publish.sh: use assets/ directory contents if present GITHUB: workflows/testing.yml: use download-artifact@v3 to fetch release assets GITHUB: workflows/testing.yml: make sure to generate PDF docs early on GITHUB: workflows/testing.yml: provide GH_TOKEN for gh in publish.sh GITHUB: workflows/testing.yml: first build docs, then upload docs/ artifact GITHUB: workflows/testing.yml: fix Release-Upload deps, avoid skipped jobs GITHUB: workflows/testing.yml: allow skipped jobs in Ping-IRC GITHUB: workflows/testing.yml: use github expression for negating if GITHUB: workflows/testing.yml: escape exclamation mark for yaml GITHUB: workflows/testing.yml: skip Focal-Clang-Tidy for release tags GITHUB: workflows/testing.yml: uplaod releases via misc/publish.sh GITHUB: workflows/release.yml: remove, releases moved into testing.yml MISC: publish.sh

Stargate is an all-in-one DAW and plugin suite

Updated: 02 Nov, 2023
Installation and troubleshooting guides

Download the Stargate DAW sample pack

Changelog
  • Windows, M1 Mac: Improved UI performance, reduced UI process CPU usage,
    faster start up times
  • AppImage: Better compatibility on some systems
  • Item Editor: New menu action: 'Open Plugin Rack For Item'
  • Project Save As Dialog: Add label explaining how it works
  • macOS: Fix hint box references to CTRL hotkeys that should be CMD
Checksums

Optionally, you can generate a sha256sum of the downloaded file and verify
that it matches this signature.

ed471ad52fc7dfe560edaf50ec9b0cbf9f4535b521297e8f6ef597ab131089f5 stargate-23.11.1-1.x86_64.rpm 579e9a09854856758f01a3484d43f8c7de9bd3bbea9cdba4b32095509d8d3774 stargate-23.11.1-amd64.deb ab03bf4bb9c70961d6b4fc25404a535f408554dca4d51970473d268d36318df4 StargateDAW-23.11.1-linux-x86_64.AppImage 15d3daf44672009d335d774870936e5191c0f68d9257e9e9528639edb03d9bb4 StargateDAW-23.11.1-win64-installer.exe 06cbbfe86d2791c22729653d17dab1a1da3bbc9b7bfd641445d6045d2725385d StargateDAW-23.11.1-macos-intel-x86_64.dmg d68a8bf3b762d2f42ca45b56972f4641ec3fb8a28f65f4ed86c47e81b23d94db StargateDAW-23.11.1-macos-m1-arm64.dmg

Gyroflow can stabilize your video using gyroscope and accelerometer motion data

Updated: 02 Nov, 2023

✨ Improvements

  • Added a very basic way to stabilize files without gyro data. Simply load the video without gyro data, load lens profile and click "Autosync". It should analyze the video using optical flow and use that as gyro data. Note that this is not a proper feature yet. May work for simple cases, so it's there, but will probably fail for more tricky movements.
  • Added grid guide (right click on the video preview).
  • Updated timeline scrolling/scaling behavior on macOS (by @pacoccino)
  • Added support for Senseflow device data (by @HiDream)
  • Added a way to clear trim range (C shortcut)
  • Added a way to disable lens profile updates. You can now delete lens profiles you won't use and make the startup faster. Then place noupdate file in the lens profile directory
  • Relaxed H.264 resolution restriction allowing to render vertical 2160x3840
  • Added "Created at" to Video information panel
  • Updated macOS icon

🐛 Bug fixes

  • Fixed crash when opening multiple BRAW files
  • Fixed BRAW timeline scrubbing
  • Fixed BRAW preview with OpenCL
  • Fixed rendering on older devices
  • Fixed background color in rendered file
  • Fixed AppImage "Permission denied" error
  • Fixed rendering crash with Intel on Windows
  • Fixed queue progress indicator in some cases

PipeWire is a server and user space API to deal with multimedia pipelines.

Updated: 02 Nov, 2023

0.3.84

RTcmix is an digital signal processing and sound synthesis language

Updated: 01 Nov, 2023

Includes several years of work to expand the MinC parser, improve error handling, handle 64-bit mode for multiple platforms, add additional instruments and utility commands.

JackTrip is a Linux, Mac OSX, or Windows multi-machine audio system used for network music performance over the Internet.

Updated: 31 Oct, 2023

What's Changed

Fasttracker II clone for Windows/macOS/Linux

Updated: 30 Oct, 2023
  • Sample editor: Shift + mouse-wheel = scroll sample data view
  • Windows/macOS: Updated SDL to v2.28.4

ProTracker 2 clone for Windows/macOS/Linux

Updated: 30 Oct, 2023

Some window event handling changes

ChucK is a programming language for real-time sound synthesis and music creation

Updated: 30 Oct, 2023

chuck-1.5.1.8 release

Pure data is an open source visual programming language

Updated: 30 Oct, 2023

version number to 0.54-1

Schism Tracker is a free and open-source reimplementation of Impulse Tracker

Updated: 29 Oct, 2023

Summary of changes since the 20230906 release:

  • Fixed so, so, so many OpenMPT test cases, which can (and will) break some older modules
  • Remove many old flags that, generally, aren't very useful
  • Allow samples headers in IMF files with magic bytes other than 'IS10'
  • Fix crash on OS X (and maybe others?) where Schism would crash upon attempting to open an instrument as a sample library
  • Remove OS X-specific hotkey stuff that made schism extremely difficult to work with

Anklang, a digital audio synthesis application for live creation and composition

Updated: 27 Oct, 2023

Anklang 0.2.0.nightly2310272019

Development version - may contain bugs or compatibility issues.

=0.13.1 have problems with python-3.8 on focal. MISC: Dockerfile.focal: install pandoc-3.1.6.2 Using pandoc-3.1.7 seems to have issues with PDF generation, anchors in section titles cause an error and SVG images are not found. .gitignore: minor addition MISC: Dockerfile.focal: add clang-17 aliases MISC: Dockerfile.focal: provide xetex, poxy and clang++-17 GITHUB: workflows/release.yml: upload draft releases for CI tests GITHUB: workflows/release.yml: cache focal docker builds with buildx GITHUB: workflows/testing.yml: fix comment GITHUB: workflows/testing.yml: cache arch docker builds with buildx GITHUB: workflows/testing.yml: cache lunar and jammy docker builds with buildx Merge branch 'cirun-docker-caching' - let cirun handle image build and caching # 2023-09-17 Tim Janik 00c0537 * cirun-docker-caching: GITHUB: workflows/testing.yml: use separate steps for docker image builds GITHUB: workflows/testing.yml: make use of cirun which handles docker builds * workflows/testing.yml: use misc/cirun -u 1000 to fix ownership * workflows/testing.yml: fix CIMAKE for Focal-Clang-Tidy * workflows/testing.yml: move nproc out of env variables MISC: cirun.sh: remove, use simpler cirun MISC: gh_delete_assets.sh: remove old helper MISC: Dockerfile.lunar: remove old file MISC: docker_*: remove old helpers MISC: cirun: add docker build, run, chown and caching MISC: cirun: add script to run commands in dockerized environments GITHUB: workflows/testing.yml: use buildx with selective caching GITHUB: workflows/testing.yml: configure and use buildx with selective caching GITHUB: workflows/testing.yml: remove unused actions/upload-artifact GITHUB: workflows/testing.yml: split asset builds into separate job MISC: cirun.sh: add --build, note that --check includes --build MISC: mkassets.sh: fix outdated globs Merge branch 'thin-lto' - improve LTO builds # 2023-09-17 Tim Janik 0e21fc8 * thin-lto: ASE: main.cc: add missing formats to WAV output help MISC: config-uname.mk: when using LTO, enable Thin LTO with clang Thin LTO can result in smaller binaries and better performance. Merge branch 'use-git-submodule' # 2023-09-21 Tim Janik 22cf347 * use-git-submodule: DOC: copyright.ini: apply MPL-2.0 to .gitmodules MISC: Makefile.mk: directly create and reference .dlcache/ for mkassets.sh MISC: Makefile.mk: mkassets: download builds tools before misc/mkassets.sh GITHUB: workflows/testing.yml: use `make mkassets` for release builds .gitignore: ignore .submodule-stamp UI: global.scss, index.html: move AnklangIcons to assets/ UI: Makefile.mk: copy anklangicons-*.tgz files to assets, remove download EXTERNAL: blobs4anklang: add tim-janik/blobs4anklang commit from 2023-09-21 21:04:16 git -C external/blobs4anklang/ checkout 7b0a4a68a1e9efbe68fc9761bef080995f4b4d6b UI: global.scss, index.html: move fork-awesome to assets/ UI: Makefile.mk: copy node_modules/fork-awesome to assets, remove download MISC: package.json.in: install fork-awesome@1.2.0 UI: Makefile.mk: use blobs4anklang/fonts/InterVariable.woff2, remove download EXTERNAL: blobs4anklang: add tim-janik/blobs4anklang commit from 2023-09-21 18:23:36 git submodule add --name blobs4anklang https://github.com/tim-janik/blobs4anklang.git external/blobs4anklang git -C external/blobs4anklang/ checkout 8da35f3914b9668bacc6755a8051a17051b07c3a Makefile.mk: skip `git submodule` in tarball builds Makefile.mk: dist: exclude unused external subdirs from tarball Makefile.mk: include submodule archives in dist tarball ASE: Makefile.mk: use blake3 submodule, remove download rule ASE: compress.cc: use external/blake3/c/blake3.h EXTERNAL: blake3: add BLAKE3-team/BLAKE3 version 1.3.1 git submodule add --name blake3 https://github.com/BLAKE3-team/BLAKE3.git external/blake3 git -C external/blake3/ checkout 1.3.1 ASE: Makefile.mk: use websocketpp submodule, remove download rule EXTERNAL: websocketpp: add zaphoyd/websocketpp version 0.8.2 git submodule add --name websocketpp https://github.com/zaphoyd/websocketpp.git external/websocketpp git -C external/websocketpp/ checkout 0.8.2 ASE: Makefile.mk: use clap submodule, remove download rule EXTERNAL: clap: add free-audio/clap version 1.1.1 git submodule add --name clap https://github.com/free-audio/clap.git external/clap git -C external/clap/ checkout 1.1.1 ASE: Makefile.mk: use rapidjson submodule, remove download rule EXTERNAL: rapidjson: add Tencent/rapidjson commit from 2022-05-24 10:03:13 git submodule add --name rapidjson https://github.com/Tencent/rapidjson.git external/rapidjson git checkout 232389d4f1012dddec4ef84861face2d2ba85709 Makefile.mk: update all submodules before building sources Makefile.mk: remove external/ subdir from ls-tree.lst MISC: mkcopyright.py: ignore dirs passed from `git ls-tree` on the CLI ASE: storage.cc: adjust old link to zlib-ng/minizip-ng/issues/433 ASE: minizip: build against external/minizip-ng/ ASE: Makefile.mk: use minizip-ng submodule, remove download rule EXTERNAL: minizip-ng: add zlib-ng/minizip-ng version 2.9.0 git submodule add --name minizip-ng https://github.com/zlib-ng/minizip-ng.git external/minizip-ng .gitignore: remove entries of files the build is not generating Merge branch 'bug-fixes' # 2023-09-23 Tim Janik e9015b9 * bug-fixes: GITHUB: workflows/testing.yml: upload dist tarball as isolated smaller artefact GITHUB: workflows/testing.yml: upgrade to actions/upload-artifact@v3.1.3 MISC: *.sh: use '#!/usr/bin/env bash' for bash scripts, fixes #17 Merge branch 'fix-warnings' # 2023-09-29 Tim Janik 9c1a062 * fix-warnings: ASE: track.cc: fix signedness ASE: utils.cc: cosmetic change ASE: project.cc: cosmetic change ASE: nativedevice.cc: fix signedness ASE: midilib.cc: fix signedness ASE: midievent.cc: cosmetic change ASE: internal.hh: cosmetic change ASE: inifile.cc: fix signedness ASE: engine.cc: cosmetic change ASE: compress.cc: fix write check signedness ASE: combo: fix insert position signedness ASE: clapplugin.cc: cosmetic change ASE: device.cc: remove unused code ASE: blob.cc: cosmetic fix MISC: Makefile.mk: clang-tidy: fix missing includes ASE: clapplugin.cc: cosmetic fix ASE: loop.cc: fix typo Merge branch 'main-rt-jobs' # 2023-09-30 Tim Janik a3f8f29 * main-rt-jobs: ASE: main.cc: fit one RtCallJob into a cache line This becomes possible with RtCall allocating just 4 pointer sizes. Since Loft allocates at cache line boundaries only, this essentially halves the size of an RtCallJob allocation. ASE: callback: shrink struct RtCall by a pointer ASE: loft: fix and test LoftPtr actually running ~T ASE: engine.hh: add comment about main_rt_jobs ASE: main.cc: turn debugging code into real job_queue_tests ASE: main: main_rt_jobs: add main_loop callback queue without invoking malloc() ASE: callback: RtCall: wrap simple callback pointers, without using malloc ASE: cxxaux.hh: add unalias_ptr<> helper ASE: callback.cc: add a small callback list test ASE: callback: add CallbackList - reentrant cb list with configurable arguments ASE: callback: move JobQueue implementation here Merge branch 'websocket-fix' # 2023-10-01 Tim Janik a5f9ca9 * websocket-fix: ASE: jsonapi.cc: cache socket nickname for use during errors ASE: websocket.cc: avoid exceptions in boost::asio socket.remote_endpoint() ASE: callback.hh: remove (sync) return value handling in JobQueue ASE: jsonapi.cc: wait for main loop callback completion via semaphore Merge branch 'audio-engine-job-cleanups' # 2023-10-01 Tim Janik 8067acc * audio-engine-job-cleanups: ASE: engine.hh: document engine lifetime ASE: engine: remove BorrowedPtr, simplify EngineJobImpl ASE: clapplugin.cc: use main_rt_jobs queue to delete events from audio_thread ASE: clapplugin.cc: rename ClapAudioProcessor ASE: project.cc: do not (auto) destroy all projects during atexit ASE: main.cc: shutdown: unset engine project and handle main loop callbacks ASE: engine: make transport a reference, move job queues into AudioEngine ASE: engine: rename AudioEngineThread Merge branch 'c++20' # 2023-10-10 Tim Janik 3a7c2d3 * c++20: MISC: mkAppImage.sh: fix $ORIGIN in AnklangSynthEngine-fma, add jackdriver.so MISC: Dockerfile.focal: install latest poxy (again) MISC: Dockerfile.focal: provide libstdc++-10-dev and a recent castxml MISC: config-uname.mk: optimize with clang -march=x86-64-v3 on modern platforms Clang chokes on '-march=haswell -mno-hle', so we use '-march=x86-64-v3' which is close to Haswell, the clang docs say: -march=x86-64: CMOV, CMPXCHG8B, FPU, FXSR, MMX, FXSR, SCE, SSE, SSE2 -march=x86-64-v2: (close to Nehalem) CMPXCHG16B, LAHF-SAHF, POPCNT, SSE3, SSE4.1, SSE4.2, SSSE3 -march=x86-64-v3: (close to Haswell) AVX, AVX2, BMI1, BMI2, F16C, FMA, LZCNT, MOVBE, XSAVE -march=x86-64-v4: AVX512F, AVX512BW, AVX512CD, AVX512DQ, AVX512VL MISC: mkassets.sh: adopt compiler config and fix make V=1 * Support make with V=1 during asset builds * Copy compiler config from config-defaults.mk for mkassets Makefile.mk: ignore leading spaces in config-defaults.mk ASE: properties.hh, processor.hh: remove unused (and conflicting) GroupId ASE: memory.cc: test CString operators ASE: memory.hh: CString: provide operator== and operator<=> to disambiguate JSONIPC: cxxjip.py: switch from C++17 to C++20 README.md, *.mk: switch from C++17 to C++20 ASE: memory.hh: always provide ctor for Block initialization Merge branch 'preferences' and live PCM driver updates # 2023-10-16 Tim Janik c7ece44 * preferences: UI: util.js: call prop->ident() ASE: shorten Parameter method ident() ASE: strings: add fallback to string_option_find(), remove string_option_get() ASE: testing.cc: use string_option_find_value() ASE: processor.cc: use string_option_find() ASE: cxxaux.cc: use ase_fatal_warnings ASE: main: remove feature toggles, use ase_fatal_warnings ASE: utils: export ase_fatal_warnings ASE: utils.cc: base debug key checks on string_option_find_value() ASE: strings: base option search on string_option_find_value() (without malloc) ASE: project: create_properties: use property_bag() and Prop ASE: clapdevice.cc: use parameter_guess_nick() ASE: gadget: add property_bag() and create_properties() UI: b/preferencesdialog.vue: edit everything with Shift+Ctrl+Alt+Click [Close] UI: b/preferencesdialog.vue: fetch + edit only selected PCM + MIDI preferences UI: b/objecteditor.js: fix blurb and descr bubbles UI: index.html, eslintrc.js: allow _("for translation") markup UI: util.js: rename extended Property descr() (abbreviate) UI: b/choiceinput.js: treat choice property as string UI: b/preferencesdialog.vue: special case driver.pcm.devid UI: b/objecteditor.js: rename internal function on xprop UI: b/contextmenu.js: support focus_uri ASE: engine.cc: add preferences for up to 4 MIDI controllers ASE: engine.cc: cache PCM driver live listing for ca half a second ASE: engine: change PCM driver when preferences change ASE: engine.cc: add audio.synth_latency Preference ASE: driver*: allow to query all PcmConfig values from drivers ASE: api.hh, server: remove all old preference handling ASE: api.hh, server: add Server.list_preferences() ASE: properties: add Preference classes and majorly simplify Property impls * Remove obsolete structures and aux constructors * Add getter/setter lister for enumeration types * Add PropertyBag - a helper to simplify property registrations * Add small PropertyImpl based on ParameterProperty * Add generic Preference class, useful for static initialization * Remove property nick guessing * Add global Preference setting list based on Parameter * Implement saving/loading preferences from anklangrc * Auto save preference changes after maybe half a second * Ensure that Preference names follow NCName syntax ASE: defs.hh: add PropertyImpl ASE: api.hh: rename Property.descr() (abbreviate) ASE: api.hh, server: provide access_preference() instead of access_prefs() ASE: api.hh: add constexpr GUIONLY, STORAGE, STANDARD to avoid C++ SIOF ASE: main.cc: save/load preferences unless --norc is given ASE: processor: use Parameter instead of the old ParamInfo ASE: parameter: add Parameter, ParameterProperty and parameter_guess_nick() * Implement Parameter{} with Param{} as initializer * Add constrain, normalize and text conversions * Implement simple ParameterProperty abstract base class * Support callback function to query parameter choices * In set_value: constrain Value according to parameter range * Use variants for flexible initilizers * Treat choice parameters as text * Match choices via normalized Damerau-Levenshtein distance * Add parameter_guess_nick() (former on property_guess_nick). ASE: value.hh: add Value::is_string() ASE: object.cc: allow NCName as event detail, to support preference identifiers ASE: defs.hh: declare Preference ASE: strings: add kvpairs_search() ASE: strings: define and use ASE_STRING_SET_ASCII_ALNUM and _LOWER_ALNUM ASE: unicode.cc: add missing docs ASE: unicode: add string_to_ncname() and string_is_ncname() ASE: levenshtein: compute (un)restricted Damerau-Levenshtein string distances ASE: defs.hh: add F32EPS and F32MAX ASE: memory.hh: declare CStringS ASE: loop: add exec_once() ASE: cxxaux.hh: add ASE_ASSERT_ALWAYS() MISC: package.json.in: reduce wait delay for rebuilds Merge branch 'package-updates' # 2023-10-24 Tim Janik 1c7da51 * package-updates: MISC: package.json.in: update babel, eslint, rollup, electron, postcss, lit Major version updates: - electron-27.0.2 - icon-gen-4.0.0 - lit-3.0.0 - rollup-4.1.4 - postcss-lab-function-6.0.7 - puppeteer-core-21.4.0 MISC: package.json.in: update to vue-3.3.6 Merge branch 'pnpm' # 2023-10-24 Tim Janik f1b37e4 * pnpm: MISC: config-checks.mk: remove unused NPM_INSTALL Makefile.mk: save XNPM to defaults and use it to install node_modules/ MISC: config-checks.mk: check for pnpn, provide as $(XNPM) UI: Makefile.mk: fetch Lit version directly from node_modules/lit/package.json X11TEST: ereplay.cjs: set timeout to 2500 to allow click durations of 2200ms Merge branch 'bun' # 2023-10-24 Tim Janik 63e4292 * bun: Makefile.mk: fix up sharp and electron installations with bun At the moment, we need to call the postinstall scripts manually, see: https://github.com/oven-sh/bun/pull/5077 MISC: config-checks.mk: support bun 1.0.0 as package manager Merge branch 'g++-bun-pnpm-ci' # 2023-10-27 Tim Janik 042fd7a * g++-bun-pnpm-ci: GITHUB: workflows/testing.yml: test Arch builds with g++ MISC: Dockerfile.arch: provide pnpm as JS package manager MISC: Dockerfile.arch: update build comments MISC: Dockerfile.focal: provide bun as JS package manager MISC: cirun: defer check for docker-buildx-plugin until we actually need it Makefile.mk: guard against `prefix := / / ` etc which will confuse `rm -rf` EXTERNAL: websocketpp: update zaphoyd/websocketpp to 2022-05-24 18:42:50 2022 -0500 git -C external/websocketpp/ checkout b9aeec6eaf3d5610503439b4fae3581d9aff08e8 This includes fixes applied after version 0.8.2, in particular it allows g++ to build the sources with C++20 enabled. See: https://github.com/zaphoyd/websocketpp/issues/991 ">Merge branch 'release-fixes' # 2023-09-08 Tim Janik d8465fd * release-fixes: MISC: mknews.sh: print latest NEWS.md version with `misc/mknews.sh --version` GITHUB: workflows/release.yml: set prerelease:false for annotated tags Fix actions/checkout@v3 and actions/checkout@v4 messing up the annotation of the currently fetched tag, even with fetch-depth:0, see: actions/checkout#290 MISC: mknews.sh: for release tags, copy news section from NEWS.md Merge branch 'ci-fixes' # 2023-09-10 Tim Janik 9a7e628 * ci-fixes: MISC: mkassets.sh: remove unused file generations MISC: dbuild.sh: delete, now unused MISC: cirun.sh: add missing arg to help MISC: publish.sh: remove --draft MISC: publish.sh: determine version from tarball, show progress MISC: publish.sh: use assets/ directory contents if present GITHUB: workflows/testing.yml: use download-artifact@v3 to fetch release assets GITHUB: workflows/testing.yml: make sure to generate PDF docs early on GITHUB: workflows/testing.yml: provide GH_TOKEN for gh in publish.sh GITHUB: workflows/testing.yml: first build docs, then upload docs/ artifact GITHUB: workflows/testing.yml: fix Release-Upload deps, avoid skipped jobs GITHUB: workflows/testing.yml: allow skipped jobs in Ping-IRC GITHUB: workflows/testing.yml: use github expression for negating if GITHUB: workflows/testing.yml: escape exclamation mark for yaml GITHUB: workflows/testing.yml: skip Focal-Clang-Tidy for release tags GITHUB: workflows/testing.yml: uplaod releases via misc/publish.sh GITHUB: workflows/release.yml: remove, releases moved into testing.yml MISC: publish.sh

CHOW Tape Model is a physical model of an analog tape machine

Updated: 26 Oct, 2023

Release version 2.11.3. Updates include:

  • AAX: added support for ARM Macs.
  • Added "RK" preset pack.
  • Fixed issues with "Wow" processing at higher sample rates.
  • Fixed "Mix Group" being reset with preset changes.
  • Improved factory preset level normalization.
  • CLAP: Fixed UI scaling on Windows.
  • LV2: Changed channel configuration to only support stereo I/O.

Seq66 is a grid style MIDI looper that, a Qt 5 reboot of seq24/sequencer64

Updated: 26 Oct, 2023
  • Issue #117 Option to close pattern windows with esc key if enabled via a 'usr' option.
  • Issue #118 Made virtual ports ports enabled via an option.
  • Issue #119 "Quantized Record Active does not work" fixed. Live note/drum-mapping also fixed.
  • Fixed an egregious error in drawing notes in drum mode.
  • Fixed error in moving notes at PPQN != 192.
  • Fixed bug preventing a song with triggers stopping playback at end of song. Fixes related to playlist-handling.
  • Implemented drag-and-drop of one MIDI file onto the Live grid.
  • Added the export of most project configuration files to another directory.
  • Multiple tempo events can be drawn in a line in data pane and can be dragged up/down to change the tempo value.
  • If double-click enabled, can open/create a pattern in the song editor.
  • Many improvements and fixes to the Mutes tab.
  • Added a "grid mode" to toggle mutes by clicking in the Live Grid. The new default mute-group-selection mode keystroke is "_".
  • Opening the pattern editor reflects the recording mode and live pattern alteration selection (e.g. quantization).
  • The main time display works better with high PPQN.
  • Now scrolls automatically in time and note value to show the first notes in a pattern.
  • Live-grid record-mode

rtpmidid allows you to share ALSA sequencer devices on the network using RTP MIDI

Updated: 24 Oct, 2023

Version 23.10 Beta 1

Cardinal is a virtual Eurorack modular synthesizer platform

Updated: 24 Oct, 2023

This is mostly a maintenance update, focused primarily on bug fixes

  • Fix clipboard (regression in 23.09)
  • Fix initial OpenGL state for some systems
  • Fix macOS horizontal scroll
  • Fix state save/restore with non-english locales
  • Fix "user dir" on Windows, was causing settings persistence to fail
  • Set main variant as synth type
  • Set X11 window icon for standalone
  • Update to latest Carla and DPF (also updating pugl)

module changes/updates:

  • Update nonlinearcircuits

Pure data is an open source visual programming language

Updated: 24 Oct, 2023

version to 0.51-1test1

Pure data is an open source visual programming language

Updated: 24 Oct, 2023

Merge branch 'master' into develop

Audacity is a free, easy-to-use, multi-track audio editor and recorder for Windows, macOS, GNU/Linux and other operating systems

Updated: 23 Oct, 2023

Audacity 3.4 adds a musical view, time stretching and a new exporter.

Major changes

  • Music workflows
    Audacity now features several music related features, such as switching between hh:mm:ss time and Beats & Measures, and time-stretching clips to align them to a song's tempo.
  • Time stretching
    Hold Alt (macOS: Option) while hovering over the top third of a clip edge to stretch it.
  • New exporter
    Audacity now features a new export window with easier access to options such as sample rate and custom mapping (for 5.1 or 7.1 audio). Additionally, the "Browse" button uses the native file browser now!

Other changes

  • For MP3, Audacity now always uses Joint Stereo mode, which always delivers the best possible quality.
  • #4720 Simplified pasting logic.
  • Simplified stereo tracks. Left and right channels now always have synchronized clip starts and ends, and the same sample rate in both channels.
  • #5014 Added cursors trimming and stretching left and right, and changed the I-beam cursor to be less similar to either.
  • #4448 When importing audio, the project sample rate no longer changes.
  • #5204 The spectrogram colors are now perceptually uniform, and the colormap has gotten a name: Roseus. It also can be used for dataviz outside of Audacity

Lilv is a C library (with Python bindings) for simple use of LV2 plugins in applications

Updated: 22 Oct, 2023

Lilv 0.24.22

RaySession is a GNU/Linux session manager for audio programs, using a varient of NSM

Updated: 22 Oct, 2023

v0.14.2 Minor bug fix release, probably the last of the year.

BugFix:

  • Top left Favorites button was not working, template were listed, but nothing happened when clicking on it
  • fix a possible ray-alsapatch crash
  • some widgets were not locked in client properties dialog when it is launched for a template preview

Change:

  • client full rename now restarts the client or make it reload its project if it is already started

Templates:

  • add Ardour8 template

ChucK is a programming language for real-time sound synthesis and music creation

Updated: 20 Oct, 2023

chuck-1.5.1.7 release

PipeWire is a server and user space API to deal with multimedia pipelines.

Updated: 19 Oct, 2023

0.3.83

Ardour is a hard disk recorder and digital audio workstation application that runs on Linux, macOS, FreeBSD and Windows

Updated: 18 Oct, 2023

This is Ardour 8.1

Anklang, a digital audio synthesis application for live creation and composition

Updated: 16 Oct, 2023

Anklang 0.2.0.nightly2310161007

Development version - may contain bugs or compatibility issues.

=0.13.1 have problems with python-3.8 on focal. MISC: Dockerfile.focal: install pandoc-3.1.6.2 Using pandoc-3.1.7 seems to have issues with PDF generation, anchors in section titles cause an error and SVG images are not found. .gitignore: minor addition MISC: Dockerfile.focal: add clang-17 aliases MISC: Dockerfile.focal: provide xetex, poxy and clang++-17 GITHUB: workflows/release.yml: upload draft releases for CI tests GITHUB: workflows/release.yml: cache focal docker builds with buildx GITHUB: workflows/testing.yml: fix comment GITHUB: workflows/testing.yml: cache arch docker builds with buildx GITHUB: workflows/testing.yml: cache lunar and jammy docker builds with buildx Merge branch 'cirun-docker-caching' - let cirun handle image build and caching # 2023-09-17 Tim Janik 00c0537 * cirun-docker-caching: GITHUB: workflows/testing.yml: use separate steps for docker image builds GITHUB: workflows/testing.yml: make use of cirun which handles docker builds * workflows/testing.yml: use misc/cirun -u 1000 to fix ownership * workflows/testing.yml: fix CIMAKE for Focal-Clang-Tidy * workflows/testing.yml: move nproc out of env variables MISC: cirun.sh: remove, use simpler cirun MISC: gh_delete_assets.sh: remove old helper MISC: Dockerfile.lunar: remove old file MISC: docker_*: remove old helpers MISC: cirun: add docker build, run, chown and caching MISC: cirun: add script to run commands in dockerized environments GITHUB: workflows/testing.yml: use buildx with selective caching GITHUB: workflows/testing.yml: configure and use buildx with selective caching GITHUB: workflows/testing.yml: remove unused actions/upload-artifact GITHUB: workflows/testing.yml: split asset builds into separate job MISC: cirun.sh: add --build, note that --check includes --build MISC: mkassets.sh: fix outdated globs Merge branch 'thin-lto' - improve LTO builds # 2023-09-17 Tim Janik 0e21fc8 * thin-lto: ASE: main.cc: add missing formats to WAV output help MISC: config-uname.mk: when using LTO, enable Thin LTO with clang Thin LTO can result in smaller binaries and better performance. Merge branch 'use-git-submodule' # 2023-09-21 Tim Janik 22cf347 * use-git-submodule: DOC: copyright.ini: apply MPL-2.0 to .gitmodules MISC: Makefile.mk: directly create and reference .dlcache/ for mkassets.sh MISC: Makefile.mk: mkassets: download builds tools before misc/mkassets.sh GITHUB: workflows/testing.yml: use `make mkassets` for release builds .gitignore: ignore .submodule-stamp UI: global.scss, index.html: move AnklangIcons to assets/ UI: Makefile.mk: copy anklangicons-*.tgz files to assets, remove download EXTERNAL: blobs4anklang: add tim-janik/blobs4anklang commit from 2023-09-21 21:04:16 git -C external/blobs4anklang/ checkout 7b0a4a68a1e9efbe68fc9761bef080995f4b4d6b UI: global.scss, index.html: move fork-awesome to assets/ UI: Makefile.mk: copy node_modules/fork-awesome to assets, remove download MISC: package.json.in: install fork-awesome@1.2.0 UI: Makefile.mk: use blobs4anklang/fonts/InterVariable.woff2, remove download EXTERNAL: blobs4anklang: add tim-janik/blobs4anklang commit from 2023-09-21 18:23:36 git submodule add --name blobs4anklang https://github.com/tim-janik/blobs4anklang.git external/blobs4anklang git -C external/blobs4anklang/ checkout 8da35f3914b9668bacc6755a8051a17051b07c3a Makefile.mk: skip `git submodule` in tarball builds Makefile.mk: dist: exclude unused external subdirs from tarball Makefile.mk: include submodule archives in dist tarball ASE: Makefile.mk: use blake3 submodule, remove download rule ASE: compress.cc: use external/blake3/c/blake3.h EXTERNAL: blake3: add BLAKE3-team/BLAKE3 version 1.3.1 git submodule add --name blake3 https://github.com/BLAKE3-team/BLAKE3.git external/blake3 git -C external/blake3/ checkout 1.3.1 ASE: Makefile.mk: use websocketpp submodule, remove download rule EXTERNAL: websocketpp: add zaphoyd/websocketpp version 0.8.2 git submodule add --name websocketpp https://github.com/zaphoyd/websocketpp.git external/websocketpp git -C external/websocketpp/ checkout 0.8.2 ASE: Makefile.mk: use clap submodule, remove download rule EXTERNAL: clap: add free-audio/clap version 1.1.1 git submodule add --name clap https://github.com/free-audio/clap.git external/clap git -C external/clap/ checkout 1.1.1 ASE: Makefile.mk: use rapidjson submodule, remove download rule EXTERNAL: rapidjson: add Tencent/rapidjson commit from 2022-05-24 10:03:13 git submodule add --name rapidjson https://github.com/Tencent/rapidjson.git external/rapidjson git checkout 232389d4f1012dddec4ef84861face2d2ba85709 Makefile.mk: update all submodules before building sources Makefile.mk: remove external/ subdir from ls-tree.lst MISC: mkcopyright.py: ignore dirs passed from `git ls-tree` on the CLI ASE: storage.cc: adjust old link to zlib-ng/minizip-ng/issues/433 ASE: minizip: build against external/minizip-ng/ ASE: Makefile.mk: use minizip-ng submodule, remove download rule EXTERNAL: minizip-ng: add zlib-ng/minizip-ng version 2.9.0 git submodule add --name minizip-ng https://github.com/zlib-ng/minizip-ng.git external/minizip-ng .gitignore: remove entries of files the build is not generating Merge branch 'bug-fixes' # 2023-09-23 Tim Janik e9015b9 * bug-fixes: GITHUB: workflows/testing.yml: upload dist tarball as isolated smaller artefact GITHUB: workflows/testing.yml: upgrade to actions/upload-artifact@v3.1.3 MISC: *.sh: use '#!/usr/bin/env bash' for bash scripts, fixes #17 Merge branch 'fix-warnings' # 2023-09-29 Tim Janik 9c1a062 * fix-warnings: ASE: track.cc: fix signedness ASE: utils.cc: cosmetic change ASE: project.cc: cosmetic change ASE: nativedevice.cc: fix signedness ASE: midilib.cc: fix signedness ASE: midievent.cc: cosmetic change ASE: internal.hh: cosmetic change ASE: inifile.cc: fix signedness ASE: engine.cc: cosmetic change ASE: compress.cc: fix write check signedness ASE: combo: fix insert position signedness ASE: clapplugin.cc: cosmetic change ASE: device.cc: remove unused code ASE: blob.cc: cosmetic fix MISC: Makefile.mk: clang-tidy: fix missing includes ASE: clapplugin.cc: cosmetic fix ASE: loop.cc: fix typo Merge branch 'main-rt-jobs' # 2023-09-30 Tim Janik a3f8f29 * main-rt-jobs: ASE: main.cc: fit one RtCallJob into a cache line This becomes possible with RtCall allocating just 4 pointer sizes. Since Loft allocates at cache line boundaries only, this essentially halves the size of an RtCallJob allocation. ASE: callback: shrink struct RtCall by a pointer ASE: loft: fix and test LoftPtr actually running ~T ASE: engine.hh: add comment about main_rt_jobs ASE: main.cc: turn debugging code into real job_queue_tests ASE: main: main_rt_jobs: add main_loop callback queue without invoking malloc() ASE: callback: RtCall: wrap simple callback pointers, without using malloc ASE: cxxaux.hh: add unalias_ptr<> helper ASE: callback.cc: add a small callback list test ASE: callback: add CallbackList - reentrant cb list with configurable arguments ASE: callback: move JobQueue implementation here Merge branch 'websocket-fix' # 2023-10-01 Tim Janik a5f9ca9 * websocket-fix: ASE: jsonapi.cc: cache socket nickname for use during errors ASE: websocket.cc: avoid exceptions in boost::asio socket.remote_endpoint() ASE: callback.hh: remove (sync) return value handling in JobQueue ASE: jsonapi.cc: wait for main loop callback completion via semaphore Merge branch 'audio-engine-job-cleanups' # 2023-10-01 Tim Janik 8067acc * audio-engine-job-cleanups: ASE: engine.hh: document engine lifetime ASE: engine: remove BorrowedPtr, simplify EngineJobImpl ASE: clapplugin.cc: use main_rt_jobs queue to delete events from audio_thread ASE: clapplugin.cc: rename ClapAudioProcessor ASE: project.cc: do not (auto) destroy all projects during atexit ASE: main.cc: shutdown: unset engine project and handle main loop callbacks ASE: engine: make transport a reference, move job queues into AudioEngine ASE: engine: rename AudioEngineThread Merge branch 'c++20' # 2023-10-10 Tim Janik 3a7c2d3 * c++20: MISC: mkAppImage.sh: fix $ORIGIN in AnklangSynthEngine-fma, add jackdriver.so MISC: Dockerfile.focal: install latest poxy (again) MISC: Dockerfile.focal: provide libstdc++-10-dev and a recent castxml MISC: config-uname.mk: optimize with clang -march=x86-64-v3 on modern platforms Clang chokes on '-march=haswell -mno-hle', so we use '-march=x86-64-v3' which is close to Haswell, the clang docs say: -march=x86-64: CMOV, CMPXCHG8B, FPU, FXSR, MMX, FXSR, SCE, SSE, SSE2 -march=x86-64-v2: (close to Nehalem) CMPXCHG16B, LAHF-SAHF, POPCNT, SSE3, SSE4.1, SSE4.2, SSSE3 -march=x86-64-v3: (close to Haswell) AVX, AVX2, BMI1, BMI2, F16C, FMA, LZCNT, MOVBE, XSAVE -march=x86-64-v4: AVX512F, AVX512BW, AVX512CD, AVX512DQ, AVX512VL MISC: mkassets.sh: adopt compiler config and fix make V=1 * Support make with V=1 during asset builds * Copy compiler config from config-defaults.mk for mkassets Makefile.mk: ignore leading spaces in config-defaults.mk ASE: properties.hh, processor.hh: remove unused (and conflicting) GroupId ASE: memory.cc: test CString operators ASE: memory.hh: CString: provide operator== and operator<=> to disambiguate JSONIPC: cxxjip.py: switch from C++17 to C++20 README.md, *.mk: switch from C++17 to C++20 ASE: memory.hh: always provide ctor for Block initialization Merge branch 'preferences' and live PCM driver updates # 2023-10-16 Tim Janik c7ece44 * preferences: UI: util.js: call prop->ident() ASE: shorten Parameter method ident() ASE: strings: add fallback to string_option_find(), remove string_option_get() ASE: testing.cc: use string_option_find_value() ASE: processor.cc: use string_option_find() ASE: cxxaux.cc: use ase_fatal_warnings ASE: main: remove feature toggles, use ase_fatal_warnings ASE: utils: export ase_fatal_warnings ASE: utils.cc: base debug key checks on string_option_find_value() ASE: strings: base option search on string_option_find_value() (without malloc) ASE: project: create_properties: use property_bag() and Prop ASE: clapdevice.cc: use parameter_guess_nick() ASE: gadget: add property_bag() and create_properties() UI: b/preferencesdialog.vue: edit everything with Shift+Ctrl+Alt+Click [Close] UI: b/preferencesdialog.vue: fetch + edit only selected PCM + MIDI preferences UI: b/objecteditor.js: fix blurb and descr bubbles UI: index.html, eslintrc.js: allow _("for translation") markup UI: util.js: rename extended Property descr() (abbreviate) UI: b/choiceinput.js: treat choice property as string UI: b/preferencesdialog.vue: special case driver.pcm.devid UI: b/objecteditor.js: rename internal function on xprop UI: b/contextmenu.js: support focus_uri ASE: engine.cc: add preferences for up to 4 MIDI controllers ASE: engine.cc: cache PCM driver live listing for ca half a second ASE: engine: change PCM driver when preferences change ASE: engine.cc: add audio.synth_latency Preference ASE: driver*: allow to query all PcmConfig values from drivers ASE: api.hh, server: remove all old preference handling ASE: api.hh, server: add Server.list_preferences() ASE: properties: add Preference classes and majorly simplify Property impls * Remove obsolete structures and aux constructors * Add getter/setter lister for enumeration types * Add PropertyBag - a helper to simplify property registrations * Add small PropertyImpl based on ParameterProperty * Add generic Preference class, useful for static initialization * Remove property nick guessing * Add global Preference setting list based on Parameter * Implement saving/loading preferences from anklangrc * Auto save preference changes after maybe half a second * Ensure that Preference names follow NCName syntax ASE: defs.hh: add PropertyImpl ASE: api.hh: rename Property.descr() (abbreviate) ASE: api.hh, server: provide access_preference() instead of access_prefs() ASE: api.hh: add constexpr GUIONLY, STORAGE, STANDARD to avoid C++ SIOF ASE: main.cc: save/load preferences unless --norc is given ASE: processor: use Parameter instead of the old ParamInfo ASE: parameter: add Parameter, ParameterProperty and parameter_guess_nick() * Implement Parameter{} with Param{} as initializer * Add constrain, normalize and text conversions * Implement simple ParameterProperty abstract base class * Support callback function to query parameter choices * In set_value: constrain Value according to parameter range * Use variants for flexible initilizers * Treat choice parameters as text * Match choices via normalized Damerau-Levenshtein distance * Add parameter_guess_nick() (former on property_guess_nick). ASE: value.hh: add Value::is_string() ASE: object.cc: allow NCName as event detail, to support preference identifiers ASE: defs.hh: declare Preference ASE: strings: add kvpairs_search() ASE: strings: define and use ASE_STRING_SET_ASCII_ALNUM and _LOWER_ALNUM ASE: unicode.cc: add missing docs ASE: unicode: add string_to_ncname() and string_is_ncname() ASE: levenshtein: compute (un)restricted Damerau-Levenshtein string distances ASE: defs.hh: add F32EPS and F32MAX ASE: memory.hh: declare CStringS ASE: loop: add exec_once() ASE: cxxaux.hh: add ASE_ASSERT_ALWAYS() MISC: package.json.in: reduce wait delay for rebuilds ">Merge branch 'release-fixes' # 2023-09-08 Tim Janik d8465fd * release-fixes: MISC: mknews.sh: print latest NEWS.md version with `misc/mknews.sh --version` GITHUB: workflows/release.yml: set prerelease:false for annotated tags Fix actions/checkout@v3 and actions/checkout@v4 messing up the annotation of the currently fetched tag, even with fetch-depth:0, see: actions/checkout#290 MISC: mknews.sh: for release tags, copy news section from NEWS.md Merge branch 'ci-fixes' # 2023-09-10 Tim Janik 9a7e628 * ci-fixes: MISC: mkassets.sh: remove unused file generations MISC: dbuild.sh: delete, now unused MISC: cirun.sh: add missing arg to help MISC: publish.sh: remove --draft MISC: publish.sh: determine version from tarball, show progress MISC: publish.sh: use assets/ directory contents if present GITHUB: workflows/testing.yml: use download-artifact@v3 to fetch release assets GITHUB: workflows/testing.yml: make sure to generate PDF docs early on GITHUB: workflows/testing.yml: provide GH_TOKEN for gh in publish.sh GITHUB: workflows/testing.yml: first build docs, then upload docs/ artifact GITHUB: workflows/testing.yml: fix Release-Upload deps, avoid skipped jobs GITHUB: workflows/testing.yml: allow skipped jobs in Ping-IRC GITHUB: workflows/testing.yml: use github expression for negating if GITHUB: workflows/testing.yml: escape exclamation mark for yaml GITHUB: workflows/testing.yml: skip Focal-Clang-Tidy for release tags GITHUB: workflows/testing.yml: uplaod releases via misc/publish.sh GITHUB: workflows/release.yml: remove, releases moved into testing.yml MISC: publish.sh

Giada is an open source, minimalistic and hardcore music production tool. Designed for DJs, live performers and electronic music

Updated: 14 Oct, 2023

1st bugfix release for version 0.25 Echidna.

Changelog:

  • Enabled realtime scheduling in audio callback (#68)
  • Input audio meter is now affected by the current input volume value (#239)
  • Improved file name validation when saving projects and samples (#641 )
  • Fix compilation with format-security compiler flags (#447)
  • Disable metronome when recording in free-loop-length mode (#514)
  • Improved robustness of audio channel selection when changing audio devices in the configuration panel
  • Upgrade libsndfile library to version 1.2.0
  • Upgrade nlohmann-json library to version 3.11.2
  • Upgrade fmt library to version 10.0.0
  • Lots of code refactoring and internal cleanups

PipeWire is a server and user space API to deal with multimedia pipelines.

Updated: 13 Oct, 2023

0.3.82

by KDE

Kdenlive is video and audio editing software with GPU rendering support. Great variety of video filters available.

Updated: 12 Oct, 2023

Create tag for 23.08.2

MusicBrainz Picard is a cross-platform application written in Python and is the MusicBrainz music tagger

Updated: 12 Oct, 2023
Bugfixes
  • PICARD-2768 - Series relationships are not loaded for standalone recordings
  • PICARD-2774 - Error: 255 is not a valid Id3ImageType
  • PICARD-2775 - Disable Qt WebP plugin for Windows and macOS binary builds to mitigate libwebp vulnerability (CVE-2023-4863)
  • PICARD-2776 - Track metadata compare ignores video flag check if there is no release
Improvements
  • PICARD-2769 - If a tag got unset by scripting display a file's original tag value in the columns

ChucK is a programming language for real-time sound synthesis and music creation

Updated: 12 Oct, 2023

chuck-1.5.1.6 release

Anklang, a digital audio synthesis application for live creation and composition

Updated: 10 Oct, 2023

Anklang 0.2.0.nightly2310101358

Development version - may contain bugs or compatibility issues.

=0.13.1 have problems with python-3.8 on focal. MISC: Dockerfile.focal: install pandoc-3.1.6.2 Using pandoc-3.1.7 seems to have issues with PDF generation, anchors in section titles cause an error and SVG images are not found. .gitignore: minor addition MISC: Dockerfile.focal: add clang-17 aliases MISC: Dockerfile.focal: provide xetex, poxy and clang++-17 GITHUB: workflows/release.yml: upload draft releases for CI tests GITHUB: workflows/release.yml: cache focal docker builds with buildx GITHUB: workflows/testing.yml: fix comment GITHUB: workflows/testing.yml: cache arch docker builds with buildx GITHUB: workflows/testing.yml: cache lunar and jammy docker builds with buildx Merge branch 'cirun-docker-caching' - let cirun handle image build and caching # 2023-09-17 Tim Janik 00c0537 * cirun-docker-caching: GITHUB: workflows/testing.yml: use separate steps for docker image builds GITHUB: workflows/testing.yml: make use of cirun which handles docker builds * workflows/testing.yml: use misc/cirun -u 1000 to fix ownership * workflows/testing.yml: fix CIMAKE for Focal-Clang-Tidy * workflows/testing.yml: move nproc out of env variables MISC: cirun.sh: remove, use simpler cirun MISC: gh_delete_assets.sh: remove old helper MISC: Dockerfile.lunar: remove old file MISC: docker_*: remove old helpers MISC: cirun: add docker build, run, chown and caching MISC: cirun: add script to run commands in dockerized environments GITHUB: workflows/testing.yml: use buildx with selective caching GITHUB: workflows/testing.yml: configure and use buildx with selective caching GITHUB: workflows/testing.yml: remove unused actions/upload-artifact GITHUB: workflows/testing.yml: split asset builds into separate job MISC: cirun.sh: add --build, note that --check includes --build MISC: mkassets.sh: fix outdated globs Merge branch 'thin-lto' - improve LTO builds # 2023-09-17 Tim Janik 0e21fc8 * thin-lto: ASE: main.cc: add missing formats to WAV output help MISC: config-uname.mk: when using LTO, enable Thin LTO with clang Thin LTO can result in smaller binaries and better performance. Merge branch 'use-git-submodule' # 2023-09-21 Tim Janik 22cf347 * use-git-submodule: DOC: copyright.ini: apply MPL-2.0 to .gitmodules MISC: Makefile.mk: directly create and reference .dlcache/ for mkassets.sh MISC: Makefile.mk: mkassets: download builds tools before misc/mkassets.sh GITHUB: workflows/testing.yml: use `make mkassets` for release builds .gitignore: ignore .submodule-stamp UI: global.scss, index.html: move AnklangIcons to assets/ UI: Makefile.mk: copy anklangicons-*.tgz files to assets, remove download EXTERNAL: blobs4anklang: add tim-janik/blobs4anklang commit from 2023-09-21 21:04:16 git -C external/blobs4anklang/ checkout 7b0a4a68a1e9efbe68fc9761bef080995f4b4d6b UI: global.scss, index.html: move fork-awesome to assets/ UI: Makefile.mk: copy node_modules/fork-awesome to assets, remove download MISC: package.json.in: install fork-awesome@1.2.0 UI: Makefile.mk: use blobs4anklang/fonts/InterVariable.woff2, remove download EXTERNAL: blobs4anklang: add tim-janik/blobs4anklang commit from 2023-09-21 18:23:36 git submodule add --name blobs4anklang https://github.com/tim-janik/blobs4anklang.git external/blobs4anklang git -C external/blobs4anklang/ checkout 8da35f3914b9668bacc6755a8051a17051b07c3a Makefile.mk: skip `git submodule` in tarball builds Makefile.mk: dist: exclude unused external subdirs from tarball Makefile.mk: include submodule archives in dist tarball ASE: Makefile.mk: use blake3 submodule, remove download rule ASE: compress.cc: use external/blake3/c/blake3.h EXTERNAL: blake3: add BLAKE3-team/BLAKE3 version 1.3.1 git submodule add --name blake3 https://github.com/BLAKE3-team/BLAKE3.git external/blake3 git -C external/blake3/ checkout 1.3.1 ASE: Makefile.mk: use websocketpp submodule, remove download rule EXTERNAL: websocketpp: add zaphoyd/websocketpp version 0.8.2 git submodule add --name websocketpp https://github.com/zaphoyd/websocketpp.git external/websocketpp git -C external/websocketpp/ checkout 0.8.2 ASE: Makefile.mk: use clap submodule, remove download rule EXTERNAL: clap: add free-audio/clap version 1.1.1 git submodule add --name clap https://github.com/free-audio/clap.git external/clap git -C external/clap/ checkout 1.1.1 ASE: Makefile.mk: use rapidjson submodule, remove download rule EXTERNAL: rapidjson: add Tencent/rapidjson commit from 2022-05-24 10:03:13 git submodule add --name rapidjson https://github.com/Tencent/rapidjson.git external/rapidjson git checkout 232389d4f1012dddec4ef84861face2d2ba85709 Makefile.mk: update all submodules before building sources Makefile.mk: remove external/ subdir from ls-tree.lst MISC: mkcopyright.py: ignore dirs passed from `git ls-tree` on the CLI ASE: storage.cc: adjust old link to zlib-ng/minizip-ng/issues/433 ASE: minizip: build against external/minizip-ng/ ASE: Makefile.mk: use minizip-ng submodule, remove download rule EXTERNAL: minizip-ng: add zlib-ng/minizip-ng version 2.9.0 git submodule add --name minizip-ng https://github.com/zlib-ng/minizip-ng.git external/minizip-ng .gitignore: remove entries of files the build is not generating Merge branch 'bug-fixes' # 2023-09-23 Tim Janik e9015b9 * bug-fixes: GITHUB: workflows/testing.yml: upload dist tarball as isolated smaller artefact GITHUB: workflows/testing.yml: upgrade to actions/upload-artifact@v3.1.3 MISC: *.sh: use '#!/usr/bin/env bash' for bash scripts, fixes #17 Merge branch 'fix-warnings' # 2023-09-29 Tim Janik 9c1a062 * fix-warnings: ASE: track.cc: fix signedness ASE: utils.cc: cosmetic change ASE: project.cc: cosmetic change ASE: nativedevice.cc: fix signedness ASE: midilib.cc: fix signedness ASE: midievent.cc: cosmetic change ASE: internal.hh: cosmetic change ASE: inifile.cc: fix signedness ASE: engine.cc: cosmetic change ASE: compress.cc: fix write check signedness ASE: combo: fix insert position signedness ASE: clapplugin.cc: cosmetic change ASE: device.cc: remove unused code ASE: blob.cc: cosmetic fix MISC: Makefile.mk: clang-tidy: fix missing includes ASE: clapplugin.cc: cosmetic fix ASE: loop.cc: fix typo Merge branch 'main-rt-jobs' # 2023-09-30 Tim Janik a3f8f29 * main-rt-jobs: ASE: main.cc: fit one RtCallJob into a cache line This becomes possible with RtCall allocating just 4 pointer sizes. Since Loft allocates at cache line boundaries only, this essentially halves the size of an RtCallJob allocation. ASE: callback: shrink struct RtCall by a pointer ASE: loft: fix and test LoftPtr actually running ~T ASE: engine.hh: add comment about main_rt_jobs ASE: main.cc: turn debugging code into real job_queue_tests ASE: main: main_rt_jobs: add main_loop callback queue without invoking malloc() ASE: callback: RtCall: wrap simple callback pointers, without using malloc ASE: cxxaux.hh: add unalias_ptr<> helper ASE: callback.cc: add a small callback list test ASE: callback: add CallbackList - reentrant cb list with configurable arguments ASE: callback: move JobQueue implementation here Merge branch 'websocket-fix' # 2023-10-01 Tim Janik a5f9ca9 * websocket-fix: ASE: jsonapi.cc: cache socket nickname for use during errors ASE: websocket.cc: avoid exceptions in boost::asio socket.remote_endpoint() ASE: callback.hh: remove (sync) return value handling in JobQueue ASE: jsonapi.cc: wait for main loop callback completion via semaphore Merge branch 'audio-engine-job-cleanups' # 2023-10-01 Tim Janik 8067acc * audio-engine-job-cleanups: ASE: engine.hh: document engine lifetime ASE: engine: remove BorrowedPtr, simplify EngineJobImpl ASE: clapplugin.cc: use main_rt_jobs queue to delete events from audio_thread ASE: clapplugin.cc: rename ClapAudioProcessor ASE: project.cc: do not (auto) destroy all projects during atexit ASE: main.cc: shutdown: unset engine project and handle main loop callbacks ASE: engine: make transport a reference, move job queues into AudioEngine ASE: engine: rename AudioEngineThread Merge branch 'c++20' # 2023-10-10 Tim Janik 3a7c2d3 * c++20: MISC: mkAppImage.sh: fix $ORIGIN in AnklangSynthEngine-fma, add jackdriver.so MISC: Dockerfile.focal: install latest poxy (again) MISC: Dockerfile.focal: provide libstdc++-10-dev and a recent castxml MISC: config-uname.mk: optimize with clang -march=x86-64-v3 on modern platforms Clang chokes on '-march=haswell -mno-hle', so we use '-march=x86-64-v3' which is close to Haswell, the clang docs say: -march=x86-64: CMOV, CMPXCHG8B, FPU, FXSR, MMX, FXSR, SCE, SSE, SSE2 -march=x86-64-v2: (close to Nehalem) CMPXCHG16B, LAHF-SAHF, POPCNT, SSE3, SSE4.1, SSE4.2, SSSE3 -march=x86-64-v3: (close to Haswell) AVX, AVX2, BMI1, BMI2, F16C, FMA, LZCNT, MOVBE, XSAVE -march=x86-64-v4: AVX512F, AVX512BW, AVX512CD, AVX512DQ, AVX512VL MISC: mkassets.sh: adopt compiler config and fix make V=1 * Support make with V=1 during asset builds * Copy compiler config from config-defaults.mk for mkassets Makefile.mk: ignore leading spaces in config-defaults.mk ASE: properties.hh, processor.hh: remove unused (and conflicting) GroupId ASE: memory.cc: test CString operators ASE: memory.hh: CString: provide operator== and operator<=> to disambiguate JSONIPC: cxxjip.py: switch from C++17 to C++20 README.md, *.mk: switch from C++17 to C++20 ASE: memory.hh: always provide ctor for Block initialization ">Merge branch 'release-fixes' # 2023-09-08 Tim Janik d8465fd * release-fixes: MISC: mknews.sh: print latest NEWS.md version with `misc/mknews.sh --version` GITHUB: workflows/release.yml: set prerelease:false for annotated tags Fix actions/checkout@v3 and actions/checkout@v4 messing up the annotation of the currently fetched tag, even with fetch-depth:0, see: actions/checkout#290 MISC: mknews.sh: for release tags, copy news section from NEWS.md Merge branch 'ci-fixes' # 2023-09-10 Tim Janik 9a7e628 * ci-fixes: MISC: mkassets.sh: remove unused file generations MISC: dbuild.sh: delete, now unused MISC: cirun.sh: add missing arg to help MISC: publish.sh: remove --draft MISC: publish.sh: determine version from tarball, show progress MISC: publish.sh: use assets/ directory contents if present GITHUB: workflows/testing.yml: use download-artifact@v3 to fetch release assets GITHUB: workflows/testing.yml: make sure to generate PDF docs early on GITHUB: workflows/testing.yml: provide GH_TOKEN for gh in publish.sh GITHUB: workflows/testing.yml: first build docs, then upload docs/ artifact GITHUB: workflows/testing.yml: fix Release-Upload deps, avoid skipped jobs GITHUB: workflows/testing.yml: allow skipped jobs in Ping-IRC GITHUB: workflows/testing.yml: use github expression for negating if GITHUB: workflows/testing.yml: escape exclamation mark for yaml GITHUB: workflows/testing.yml: skip Focal-Clang-Tidy for release tags GITHUB: workflows/testing.yml: uplaod releases via misc/publish.sh GITHUB: workflows/release.yml: remove, releases moved into testing.yml MISC: publish.sh

ChucK is a programming language for real-time sound synthesis and music creation

Updated: 09 Oct, 2023

chuck-1.5.1.5 release

Ardour is a hard disk recorder and digital audio workstation application that runs on Linux, macOS, FreeBSD and Windows

Updated: 07 Oct, 2023

This is Ardour 8.0

LilyPond is a music engraving program, devoted to producing high-quality sheet music

Updated: 07 Oct, 2023

LilyPond 2.25.9

Fasttracker II clone for Windows/macOS/Linux

Updated: 07 Oct, 2023

Update ft2_header.h

PipeWire is a server and user space API to deal with multimedia pipelines.

Updated: 06 Oct, 2023

0.3.81

Fasttracker II clone for Windows/macOS/Linux

Updated: 04 Oct, 2023
  • CTRL+A/ALT+A keybindings were swapped (thanks to MIDRA2ADVANCE for telling me)

Ardour is a hard disk recorder and digital audio workstation application that runs on Linux, macOS, FreeBSD and Windows

Updated: 03 Oct, 2023

this is Ardour 8.0-rc3

Fasttracker II clone for Windows/macOS/Linux

Updated: 01 Oct, 2023
  • Bugfix: Shrink Pattern ("Srnk.") could lead to a pattern length of 0
  • Better variable sanitation for some pattern editing routines, may (?) prevent some rare crashes
  • CTRL+F5 (Paste Pattern) had wrong button names in its message box when asking to adjust the pattern length after pasting
  • Changed the above message box text to be easier to understand
  • Removed audio dithering for 16-bit audio bit depth mode. It seemed to be wrongly implemented anyway
  • Some small changes done to the about screen
  • Windows/macOS: Updated SDL to v2.28.3
  • Code cleanup

Anklang, a digital audio synthesis application for live creation and composition

Updated: 01 Oct, 2023

Anklang 0.2.0.nightly2310010229

Development version - may contain bugs or compatibility issues.

=0.13.1 have problems with python-3.8 on focal. MISC: Dockerfile.focal: install pandoc-3.1.6.2 Using pandoc-3.1.7 seems to have issues with PDF generation, anchors in section titles cause an error and SVG images are not found. .gitignore: minor addition MISC: Dockerfile.focal: add clang-17 aliases MISC: Dockerfile.focal: provide xetex, poxy and clang++-17 GITHUB: workflows/release.yml: upload draft releases for CI tests GITHUB: workflows/release.yml: cache focal docker builds with buildx GITHUB: workflows/testing.yml: fix comment GITHUB: workflows/testing.yml: cache arch docker builds with buildx GITHUB: workflows/testing.yml: cache lunar and jammy docker builds with buildx Merge branch 'cirun-docker-caching' - let cirun handle image build and caching # 2023-09-17 Tim Janik 00c0537 * cirun-docker-caching: GITHUB: workflows/testing.yml: use separate steps for docker image builds GITHUB: workflows/testing.yml: make use of cirun which handles docker builds * workflows/testing.yml: use misc/cirun -u 1000 to fix ownership * workflows/testing.yml: fix CIMAKE for Focal-Clang-Tidy * workflows/testing.yml: move nproc out of env variables MISC: cirun.sh: remove, use simpler cirun MISC: gh_delete_assets.sh: remove old helper MISC: Dockerfile.lunar: remove old file MISC: docker_*: remove old helpers MISC: cirun: add docker build, run, chown and caching MISC: cirun: add script to run commands in dockerized environments GITHUB: workflows/testing.yml: use buildx with selective caching GITHUB: workflows/testing.yml: configure and use buildx with selective caching GITHUB: workflows/testing.yml: remove unused actions/upload-artifact GITHUB: workflows/testing.yml: split asset builds into separate job MISC: cirun.sh: add --build, note that --check includes --build MISC: mkassets.sh: fix outdated globs Merge branch 'thin-lto' - improve LTO builds # 2023-09-17 Tim Janik 0e21fc8 * thin-lto: ASE: main.cc: add missing formats to WAV output help MISC: config-uname.mk: when using LTO, enable Thin LTO with clang Thin LTO can result in smaller binaries and better performance. Merge branch 'use-git-submodule' # 2023-09-21 Tim Janik 22cf347 * use-git-submodule: DOC: copyright.ini: apply MPL-2.0 to .gitmodules MISC: Makefile.mk: directly create and reference .dlcache/ for mkassets.sh MISC: Makefile.mk: mkassets: download builds tools before misc/mkassets.sh GITHUB: workflows/testing.yml: use `make mkassets` for release builds .gitignore: ignore .submodule-stamp UI: global.scss, index.html: move AnklangIcons to assets/ UI: Makefile.mk: copy anklangicons-*.tgz files to assets, remove download EXTERNAL: blobs4anklang: add tim-janik/blobs4anklang commit from 2023-09-21 21:04:16 git -C external/blobs4anklang/ checkout 7b0a4a68a1e9efbe68fc9761bef080995f4b4d6b UI: global.scss, index.html: move fork-awesome to assets/ UI: Makefile.mk: copy node_modules/fork-awesome to assets, remove download MISC: package.json.in: install fork-awesome@1.2.0 UI: Makefile.mk: use blobs4anklang/fonts/InterVariable.woff2, remove download EXTERNAL: blobs4anklang: add tim-janik/blobs4anklang commit from 2023-09-21 18:23:36 git submodule add --name blobs4anklang https://github.com/tim-janik/blobs4anklang.git external/blobs4anklang git -C external/blobs4anklang/ checkout 8da35f3914b9668bacc6755a8051a17051b07c3a Makefile.mk: skip `git submodule` in tarball builds Makefile.mk: dist: exclude unused external subdirs from tarball Makefile.mk: include submodule archives in dist tarball ASE: Makefile.mk: use blake3 submodule, remove download rule ASE: compress.cc: use external/blake3/c/blake3.h EXTERNAL: blake3: add BLAKE3-team/BLAKE3 version 1.3.1 git submodule add --name blake3 https://github.com/BLAKE3-team/BLAKE3.git external/blake3 git -C external/blake3/ checkout 1.3.1 ASE: Makefile.mk: use websocketpp submodule, remove download rule EXTERNAL: websocketpp: add zaphoyd/websocketpp version 0.8.2 git submodule add --name websocketpp https://github.com/zaphoyd/websocketpp.git external/websocketpp git -C external/websocketpp/ checkout 0.8.2 ASE: Makefile.mk: use clap submodule, remove download rule EXTERNAL: clap: add free-audio/clap version 1.1.1 git submodule add --name clap https://github.com/free-audio/clap.git external/clap git -C external/clap/ checkout 1.1.1 ASE: Makefile.mk: use rapidjson submodule, remove download rule EXTERNAL: rapidjson: add Tencent/rapidjson commit from 2022-05-24 10:03:13 git submodule add --name rapidjson https://github.com/Tencent/rapidjson.git external/rapidjson git checkout 232389d4f1012dddec4ef84861face2d2ba85709 Makefile.mk: update all submodules before building sources Makefile.mk: remove external/ subdir from ls-tree.lst MISC: mkcopyright.py: ignore dirs passed from `git ls-tree` on the CLI ASE: storage.cc: adjust old link to zlib-ng/minizip-ng/issues/433 ASE: minizip: build against external/minizip-ng/ ASE: Makefile.mk: use minizip-ng submodule, remove download rule EXTERNAL: minizip-ng: add zlib-ng/minizip-ng version 2.9.0 git submodule add --name minizip-ng https://github.com/zlib-ng/minizip-ng.git external/minizip-ng .gitignore: remove entries of files the build is not generating Merge branch 'bug-fixes' # 2023-09-23 Tim Janik e9015b9 * bug-fixes: GITHUB: workflows/testing.yml: upload dist tarball as isolated smaller artefact GITHUB: workflows/testing.yml: upgrade to actions/upload-artifact@v3.1.3 MISC: *.sh: use '#!/usr/bin/env bash' for bash scripts, fixes #17 Merge branch 'fix-warnings' # 2023-09-29 Tim Janik 9c1a062 * fix-warnings: ASE: track.cc: fix signedness ASE: utils.cc: cosmetic change ASE: project.cc: cosmetic change ASE: nativedevice.cc: fix signedness ASE: midilib.cc: fix signedness ASE: midievent.cc: cosmetic change ASE: internal.hh: cosmetic change ASE: inifile.cc: fix signedness ASE: engine.cc: cosmetic change ASE: compress.cc: fix write check signedness ASE: combo: fix insert position signedness ASE: clapplugin.cc: cosmetic change ASE: device.cc: remove unused code ASE: blob.cc: cosmetic fix MISC: Makefile.mk: clang-tidy: fix missing includes ASE: clapplugin.cc: cosmetic fix ASE: loop.cc: fix typo Merge branch 'main-rt-jobs' # 2023-09-30 Tim Janik a3f8f29 * main-rt-jobs: ASE: main.cc: fit one RtCallJob into a cache line This becomes possible with RtCall allocating just 4 pointer sizes. Since Loft allocates at cache line boundaries only, this essentially halves the size of an RtCallJob allocation. ASE: callback: shrink struct RtCall by a pointer ASE: loft: fix and test LoftPtr actually running ~T ASE: engine.hh: add comment about main_rt_jobs ASE: main.cc: turn debugging code into real job_queue_tests ASE: main: main_rt_jobs: add main_loop callback queue without invoking malloc() ASE: callback: RtCall: wrap simple callback pointers, without using malloc ASE: cxxaux.hh: add unalias_ptr<> helper ASE: callback.cc: add a small callback list test ASE: callback: add CallbackList - reentrant cb list with configurable arguments ASE: callback: move JobQueue implementation here Merge branch 'websocket-fix' # 2023-10-01 Tim Janik a5f9ca9 * websocket-fix: ASE: jsonapi.cc: cache socket nickname for use during errors ASE: websocket.cc: avoid exceptions in boost::asio socket.remote_endpoint() ASE: callback.hh: remove (sync) return value handling in JobQueue ASE: jsonapi.cc: wait for main loop callback completion via semaphore Merge branch 'audio-engine-job-cleanups' # 2023-10-01 Tim Janik 8067acc * audio-engine-job-cleanups: ASE: engine.hh: document engine lifetime ASE: engine: remove BorrowedPtr, simplify EngineJobImpl ASE: clapplugin.cc: use main_rt_jobs queue to delete events from audio_thread ASE: clapplugin.cc: rename ClapAudioProcessor ASE: project.cc: do not (auto) destroy all projects during atexit ASE: main.cc: shutdown: unset engine project and handle main loop callbacks ASE: engine: make transport a reference, move job queues into AudioEngine ASE: engine: rename AudioEngineThread ">Merge branch 'release-fixes' # 2023-09-08 Tim Janik d8465fd * release-fixes: MISC: mknews.sh: print latest NEWS.md version with `misc/mknews.sh --version` GITHUB: workflows/release.yml: set prerelease:false for annotated tags Fix actions/checkout@v3 and actions/checkout@v4 messing up the annotation of the currently fetched tag, even with fetch-depth:0, see: actions/checkout#290 MISC: mknews.sh: for release tags, copy news section from NEWS.md Merge branch 'ci-fixes' # 2023-09-10 Tim Janik 9a7e628 * ci-fixes: MISC: mkassets.sh: remove unused file generations MISC: dbuild.sh: delete, now unused MISC: cirun.sh: add missing arg to help MISC: publish.sh: remove --draft MISC: publish.sh: determine version from tarball, show progress MISC: publish.sh: use assets/ directory contents if present GITHUB: workflows/testing.yml: use download-artifact@v3 to fetch release assets GITHUB: workflows/testing.yml: make sure to generate PDF docs early on GITHUB: workflows/testing.yml: provide GH_TOKEN for gh in publish.sh GITHUB: workflows/testing.yml: first build docs, then upload docs/ artifact GITHUB: workflows/testing.yml: fix Release-Upload deps, avoid skipped jobs GITHUB: workflows/testing.yml: allow skipped jobs in Ping-IRC GITHUB: workflows/testing.yml: use github expression for negating if GITHUB: workflows/testing.yml: escape exclamation mark for yaml GITHUB: workflows/testing.yml: skip Focal-Clang-Tidy for release tags GITHUB: workflows/testing.yml: uplaod releases via misc/publish.sh GITHUB: workflows/release.yml: remove, releases moved into testing.yml MISC: publish.sh

Fully-featured audio plugin host, with support for many audio drivers, plugin and sound bank formats.

Updated: 30 Sep, 2023
  • Allow configuration of Carla client name when headless (via CARLA_CLIENT_NAME env var)
  • Fix save missing LV2 files
  • Fix some wine bridge details

openFrameworks is an open source toolkit designed for creative coding

Updated: 30 Sep, 2023

update pg

Ardour is a hard disk recorder and digital audio workstation application that runs on Linux, macOS, FreeBSD and Windows

Updated: 27 Sep, 2023

this is Ardour 8.0-rc2

MusicBrainz Picard is a cross-platform application written in Python and is the MusicBrainz music tagger

Updated: 26 Sep, 2023

Bugfixes

  • PICARD-2748 - KeyError when saving options with removed profile
  • PICARD-2749 - Python 3.12: AttributeError: 'PathFinder' object has no attribute 'find_module'
  • PICARD-2751 - The plugin system uses deprecated APIs, incompatible with Python 3.12
  • PICARD-2754 - Picard crashes in non-existing working directory on start
  • PICARD-2756 - Windows long path support does not work for network drives
  • PICARD-2762 - Linux packaged version does not show the "check for new plugins" option setting
  • PICARD-2764 - Attached profiles dialog does not display on option sub-pages

New Features

  • PICARD-2757 - Add command-line option --audit making use of sys.addaudithook()

Tasks

  • PICARD-2690 - Move locale name translations into separate translation resource
  • PICARD-2731 - Move translations to Weblate

Improvements

  • PICARD-1377 - New icons for plugin options
  • PICARD-2717 - Starting a second instance with no commands should change to the running instance
  • PICARD-2740 - Improve SSL error logging
  • PICARD-2746 - Localize XDG desktop file
  • PICARD-2760 - Windows: Timestamp the code signed packages

Ardour is a hard disk recorder and digital audio workstation application that runs on Linux, macOS, FreeBSD and Windows

Updated: 25 Sep, 2023

This is Ardour 8.0-rc1

MusE is a MIDI/Audio sequencer with recording and editing capabilities and aims to be a complete multitrack virtual studio

Updated: 24 Sep, 2023

A quick fix release:

  • Fix issue 1247: Fix compilation without MODULES_BUILD_STATIC=1
  • Fixed issue 1243: Slow startup
  • Fixed missing simpledrums MESS synth

For the complete list of changes see:
https://github.com/muse-sequencer/muse/blob/4.2.1/src/ChangeLog

The homepage:
https://muse-sequencer.github.io/
Download:
https://github.com/muse-sequencer/muse/releases/download/4.2.1/muse-4.2.1.tar.gz
https://github.com/muse-sequencer/muse/releases/download/4.2.1/MusE-4.2.1-x86_64.AppImage
Demos page:
https://github.com/muse-sequencer/muse/wiki/Demos
Forum:
https://linuxmusicians.com/viewforum.php?f=61

Seq66 is a grid style MIDI looper that, a Qt 5 reboot of seq24/sequencer64

Updated: 24 Sep, 2023

Many fixes and a couple features as described in RELNOTES for 0.99.9.

RaySession is a GNU/Linux session manager for audio programs, using a varient of NSM

Updated: 23 Sep, 2023

Important Bug Fix Release

Major Fixes:

  • Some client project files were not renamed at session duplicate (and certainly when creating a session from user template)
  • ray-jackpatch and ray-alsapatch various problems that involve loss of connections
  • "Optional-gui states" option was not working at all
  • typo: replace 'identifiant' with 'identifier' in english version

Minor fixes in patchbay (all theses bugs did already existed in v0.13.1)

  • 'navigation on borders' option state was not restored at startup
  • Drag with middle click wrongly activate 'navigation on borders'
  • Shift + Mouse wheel for horizontal scrolling was not working

Anklang, a digital audio synthesis application for live creation and composition

Updated: 21 Sep, 2023

Anklang 0.2.0.nightly2309212136

Development version - may contain bugs or compatibility issues.

=0.13.1 have problems with python-3.8 on focal. MISC: Dockerfile.focal: install pandoc-3.1.6.2 Using pandoc-3.1.7 seems to have issues with PDF generation, anchors in section titles cause an error and SVG images are not found. .gitignore: minor addition MISC: Dockerfile.focal: add clang-17 aliases MISC: Dockerfile.focal: provide xetex, poxy and clang++-17 GITHUB: workflows/release.yml: upload draft releases for CI tests GITHUB: workflows/release.yml: cache focal docker builds with buildx GITHUB: workflows/testing.yml: fix comment GITHUB: workflows/testing.yml: cache arch docker builds with buildx GITHUB: workflows/testing.yml: cache lunar and jammy docker builds with buildx Merge branch 'cirun-docker-caching' - let cirun handle image build and caching # 2023-09-17 Tim Janik 00c0537 * cirun-docker-caching: GITHUB: workflows/testing.yml: use separate steps for docker image builds GITHUB: workflows/testing.yml: make use of cirun which handles docker builds * workflows/testing.yml: use misc/cirun -u 1000 to fix ownership * workflows/testing.yml: fix CIMAKE for Focal-Clang-Tidy * workflows/testing.yml: move nproc out of env variables MISC: cirun.sh: remove, use simpler cirun MISC: gh_delete_assets.sh: remove old helper MISC: Dockerfile.lunar: remove old file MISC: docker_*: remove old helpers MISC: cirun: add docker build, run, chown and caching MISC: cirun: add script to run commands in dockerized environments GITHUB: workflows/testing.yml: use buildx with selective caching GITHUB: workflows/testing.yml: configure and use buildx with selective caching GITHUB: workflows/testing.yml: remove unused actions/upload-artifact GITHUB: workflows/testing.yml: split asset builds into separate job MISC: cirun.sh: add --build, note that --check includes --build MISC: mkassets.sh: fix outdated globs Merge branch 'thin-lto' - improve LTO builds # 2023-09-17 Tim Janik 0e21fc8 * thin-lto: ASE: main.cc: add missing formats to WAV output help MISC: config-uname.mk: when using LTO, enable Thin LTO with clang Thin LTO can result in smaller binaries and better performance. Merge branch 'use-git-submodule' # 2023-09-21 Tim Janik 22cf347 * use-git-submodule: DOC: copyright.ini: apply MPL-2.0 to .gitmodules MISC: Makefile.mk: directly create and reference .dlcache/ for mkassets.sh MISC: Makefile.mk: mkassets: download builds tools before misc/mkassets.sh GITHUB: workflows/testing.yml: use `make mkassets` for release builds .gitignore: ignore .submodule-stamp UI: global.scss, index.html: move AnklangIcons to assets/ UI: Makefile.mk: copy anklangicons-*.tgz files to assets, remove download EXTERNAL: blobs4anklang: add tim-janik/blobs4anklang commit from 2023-09-21 21:04:16 git -C external/blobs4anklang/ checkout 7b0a4a68a1e9efbe68fc9761bef080995f4b4d6b UI: global.scss, index.html: move fork-awesome to assets/ UI: Makefile.mk: copy node_modules/fork-awesome to assets, remove download MISC: package.json.in: install fork-awesome@1.2.0 UI: Makefile.mk: use blobs4anklang/fonts/InterVariable.woff2, remove download EXTERNAL: blobs4anklang: add tim-janik/blobs4anklang commit from 2023-09-21 18:23:36 git submodule add --name blobs4anklang https://github.com/tim-janik/blobs4anklang.git external/blobs4anklang git -C external/blobs4anklang/ checkout 8da35f3914b9668bacc6755a8051a17051b07c3a Makefile.mk: skip `git submodule` in tarball builds Makefile.mk: dist: exclude unused external subdirs from tarball Makefile.mk: include submodule archives in dist tarball ASE: Makefile.mk: use blake3 submodule, remove download rule ASE: compress.cc: use external/blake3/c/blake3.h EXTERNAL: blake3: add BLAKE3-team/BLAKE3 version 1.3.1 git submodule add --name blake3 https://github.com/BLAKE3-team/BLAKE3.git external/blake3 git -C external/blake3/ checkout 1.3.1 ASE: Makefile.mk: use websocketpp submodule, remove download rule EXTERNAL: websocketpp: add zaphoyd/websocketpp version 0.8.2 git submodule add --name websocketpp https://github.com/zaphoyd/websocketpp.git external/websocketpp git -C external/websocketpp/ checkout 0.8.2 ASE: Makefile.mk: use clap submodule, remove download rule EXTERNAL: clap: add free-audio/clap version 1.1.1 git submodule add --name clap https://github.com/free-audio/clap.git external/clap git -C external/clap/ checkout 1.1.1 ASE: Makefile.mk: use rapidjson submodule, remove download rule EXTERNAL: rapidjson: add Tencent/rapidjson commit from 2022-05-24 10:03:13 git submodule add --name rapidjson https://github.com/Tencent/rapidjson.git external/rapidjson git checkout 232389d4f1012dddec4ef84861face2d2ba85709 Makefile.mk: update all submodules before building sources Makefile.mk: remove external/ subdir from ls-tree.lst MISC: mkcopyright.py: ignore dirs passed from `git ls-tree` on the CLI ASE: storage.cc: adjust old link to zlib-ng/minizip-ng/issues/433 ASE: minizip: build against external/minizip-ng/ ASE: Makefile.mk: use minizip-ng submodule, remove download rule EXTERNAL: minizip-ng: add zlib-ng/minizip-ng version 2.9.0 git submodule add --name minizip-ng https://github.com/zlib-ng/minizip-ng.git external/minizip-ng .gitignore: remove entries of files the build is not generating ">Merge branch 'release-fixes' # 2023-09-08 Tim Janik d8465fd * release-fixes: MISC: mknews.sh: print latest NEWS.md version with `misc/mknews.sh --version` GITHUB: workflows/release.yml: set prerelease:false for annotated tags Fix actions/checkout@v3 and actions/checkout@v4 messing up the annotation of the currently fetched tag, even with fetch-depth:0, see: actions/checkout#290 MISC: mknews.sh: for release tags, copy news section from NEWS.md Merge branch 'ci-fixes' # 2023-09-10 Tim Janik 9a7e628 * ci-fixes: MISC: mkassets.sh: remove unused file generations MISC: dbuild.sh: delete, now unused MISC: cirun.sh: add missing arg to help MISC: publish.sh: remove --draft MISC: publish.sh: determine version from tarball, show progress MISC: publish.sh: use assets/ directory contents if present GITHUB: workflows/testing.yml: use download-artifact@v3 to fetch release assets GITHUB: workflows/testing.yml: make sure to generate PDF docs early on GITHUB: workflows/testing.yml: provide GH_TOKEN for gh in publish.sh GITHUB: workflows/testing.yml: first build docs, then upload docs/ artifact GITHUB: workflows/testing.yml: fix Release-Upload deps, avoid skipped jobs GITHUB: workflows/testing.yml: allow skipped jobs in Ping-IRC GITHUB: workflows/testing.yml: use github expression for negating if GITHUB: workflows/testing.yml: escape exclamation mark for yaml GITHUB: workflows/testing.yml: skip Focal-Clang-Tidy for release tags GITHUB: workflows/testing.yml: uplaod releases via misc/publish.sh GITHUB: workflows/release.yml: remove, releases moved into testing.yml MISC: publish.sh

MIDIVisualizer is a small cross-platform MIDI visualizer, written in C++/OpenGL.

Updated: 20 Sep, 2023

This is a minor release.

Features:

  • Ability to have the background texture scrolling horizontally or vertically

Improvements:

  • Enable Apple Silicon native support on macOS build (#145)

Fixes:

  • Reset window size and position when restarting MIDIVisualizer if the window was minimized or crashed before (should help #148).

Thank you for using MIDIVisualizer!

Zrythm is a featureful and easy to use DAW, written in C using the GTK+3 toolkit.

Updated: 18 Sep, 2023

Cardinal is a virtual Eurorack modular synthesizer platform

Updated: 17 Sep, 2023
  • Add OSC Remote control (see docs/OSC-REMOTE-CONTROL.md)
  • Do not try to save and load module info per project, its a global setting since 22.07
  • Fix a few missing details in macOS app bundles
  • Fix Cardinal Mini window title after loading patches
  • Fix crash when pressing F9 (used internally for generating screenshots)
  • Fix crash when window creation fails (e.g. running headless)
  • Fix headless build when OpenGL is available (but unused since it is headless)
  • Fix stuck notes in CardinalNative MIDI handling
  • Fix VST2 parameter changes
  • Proper handling of XDG_DOCUMENTS_DIR
  • Switch to regular/initial welcome patch for web/wasm builds

Modules related changes:

  • Add EnigmaCurry
  • Audio File Player: Fix resampled playback for some files, many CPU optimizations
  • Ildaeil: Add bridge reload button, in case hosted plugin crashes or times out
  • Ildaeil: List Windows plugins under Linux
  • Update unless_modules

NOTE: Cardinal has its own website now, living at cardinal.kx.studio with the online/wasm version still accessible by clicking "Try Live".

Anklang, a digital audio synthesis application for live creation and composition

Updated: 17 Sep, 2023

Anklang 0.2.0.nightly2309170055

Development version - may contain bugs or compatibility issues.

=0.13.1 have problems with python-3.8 on focal. MISC: Dockerfile.focal: install pandoc-3.1.6.2 Using pandoc-3.1.7 seems to have issues with PDF generation, anchors in section titles cause an error and SVG images are not found. .gitignore: minor addition MISC: Dockerfile.focal: add clang-17 aliases MISC: Dockerfile.focal: provide xetex, poxy and clang++-17 GITHUB: workflows/release.yml: upload draft releases for CI tests GITHUB: workflows/release.yml: cache focal docker builds with buildx GITHUB: workflows/testing.yml: fix comment GITHUB: workflows/testing.yml: cache arch docker builds with buildx GITHUB: workflows/testing.yml: cache lunar and jammy docker builds with buildx Merge branch 'cirun-docker-caching' - let cirun handle image build and caching # 2023-09-17 Tim Janik 00c0537 * cirun-docker-caching: GITHUB: workflows/testing.yml: use separate steps for docker image builds GITHUB: workflows/testing.yml: make use of cirun which handles docker builds * workflows/testing.yml: use misc/cirun -u 1000 to fix ownership * workflows/testing.yml: fix CIMAKE for Focal-Clang-Tidy * workflows/testing.yml: move nproc out of env variables MISC: cirun.sh: remove, use simpler cirun MISC: gh_delete_assets.sh: remove old helper MISC: Dockerfile.lunar: remove old file MISC: docker_*: remove old helpers MISC: cirun: add docker build, run, chown and caching MISC: cirun: add script to run commands in dockerized environments GITHUB: workflows/testing.yml: use buildx with selective caching GITHUB: workflows/testing.yml: configure and use buildx with selective caching GITHUB: workflows/testing.yml: remove unused actions/upload-artifact GITHUB: workflows/testing.yml: split asset builds into separate job MISC: cirun.sh: add --build, note that --check includes --build MISC: mkassets.sh: fix outdated globs Merge branch 'thin-lto' - improve LTO builds # 2023-09-17 Tim Janik 0e21fc8 * thin-lto: ASE: main.cc: add missing formats to WAV output help MISC: config-uname.mk: when using LTO, enable Thin LTO with clang Thin LTO can result in smaller binaries and better performance. ">Merge branch 'release-fixes' # 2023-09-08 Tim Janik d8465fd * release-fixes: MISC: mknews.sh: print latest NEWS.md version with `misc/mknews.sh --version` GITHUB: workflows/release.yml: set prerelease:false for annotated tags Fix actions/checkout@v3 and actions/checkout@v4 messing up the annotation of the currently fetched tag, even with fetch-depth:0, see: actions/checkout#290 MISC: mknews.sh: for release tags, copy news section from NEWS.md Merge branch 'ci-fixes' # 2023-09-10 Tim Janik 9a7e628 * ci-fixes: MISC: mkassets.sh: remove unused file generations MISC: dbuild.sh: delete, now unused MISC: cirun.sh: add missing arg to help MISC: publish.sh: remove --draft MISC: publish.sh: determine version from tarball, show progress MISC: publish.sh: use assets/ directory contents if present GITHUB: workflows/testing.yml: use download-artifact@v3 to fetch release assets GITHUB: workflows/testing.yml: make sure to generate PDF docs early on GITHUB: workflows/testing.yml: provide GH_TOKEN for gh in publish.sh GITHUB: workflows/testing.yml: first build docs, then upload docs/ artifact GITHUB: workflows/testing.yml: fix Release-Upload deps, avoid skipped jobs GITHUB: workflows/testing.yml: allow skipped jobs in Ping-IRC GITHUB: workflows/testing.yml: use github expression for negating if GITHUB: workflows/testing.yml: escape exclamation mark for yaml GITHUB: workflows/testing.yml: skip Focal-Clang-Tidy for release tags GITHUB: workflows/testing.yml: uplaod releases via misc/publish.sh GITHUB: workflows/release.yml: remove, releases moved into testing.yml MISC: publish.sh

LilyPond is a music engraving program, devoted to producing high-quality sheet music

Updated: 16 Sep, 2023

LilyPond 2.25.8

Functional programming language for signal processing and sound synthesis

Updated: 14 Sep, 2023
No content.

fil4.lv2 aka x42-eq is a 4 Band Parametric EQ

Updated: 14 Sep, 2023

update man page for v0.8.8

PipeWire is a server and user space API to deal with multimedia pipelines.

Updated: 14 Sep, 2023

0.3.80

MusicBrainz Picard is a cross-platform application written in Python and is the MusicBrainz music tagger

Updated: 12 Sep, 2023

Bugfixes

  • PICARD-2700 - Content of series variables gets duplicated on each refresh
  • PICARD-2712 - "00" is always stripped from DATE tag on save
  • PICARD-2722 - Windows version can crash on exit and prevent restart of Picard
  • PICARD-2724 - Crash in track search dialog if artist name translation is enabled
  • PICARD-2733 - Crash when saving files with UI language set to Finnish
  • PICARD-2736 - Windows: SSL errors if conflicting libssl is installed system wide

Tasks

  • PICARD-2752 - Include resource/images in source archive

Improvements

  • PICARD-2720 - Linux: Allow opening new instance via XDG desktop entry application action

synthv1 is an old-school all-digital 4-oscillator subtractive polyphonic synthesizer with stereo fx

Updated: 12 Sep, 2023

An End-of-Summer'23 Release.

Zrythm is a featureful and easy to use DAW, written in C using the GTK+3 toolkit.

Updated: 12 Sep, 2023

Stargate is an all-in-one DAW and plugin suite

Updated: 11 Sep, 2023
Installation and troubleshooting guides

Download the Stargate DAW sample pack

Changelog
  • Item Editor: Fix solo and loop resetting after an editing action
  • Item Editor: Clear solo and loop on closing a project
    Fixes a bug where the looped region markers overwrite the previous
    region markers if the project is closed while item editor loop or solo
    engaged.
Checksums

Optionally, you can generate a sha256sum of the downloaded file and verify
that it matches this signature.

cbda1d457a7565ed77cda76168f604df0062f23dea76281a7221cd78da540c24 stargate-23.09.1-1.x86_64.rpm 697462d0c3ae743ac6ea3c6d07cf79a6d00c57f630adc67118ca8e85bdc5103e stargate-23.09.1-amd64.deb 708c221142ec94d7d07a9317c9f7f1d1dd2b03afeaf8d763f36f5134fb19ce98 StargateDAW-23.09.1-linux-x86_64.AppImage 0342f50070a70ee4e60530989f9c70d103bf192fd48bed34a3d0a6a72f474227 StargateDAW-23.09.1-win64-installer.exe 02bea26606ab96e062be9816866159f0ed20521a3b27502731ce0b5aafcf9f8c StargateDAW-23.09.1-macos-intel-x86_64.dmg ba326e7d9f70fc8f23f4e94a50e159c3670e43da60ba6e775d7e8540534516a2 StargateDAW-23.09.1-macos-m1-arm64.dmg

Blue is a music composition environment for Csound, written in Java

Updated: 10 Sep, 2023

[2.9.1] - 2023-09-10

FIX

  • Issues #758 - fixed issues with selection of JMask, Tracker, and other objects
    due to issue with implementing equals()

Zrythm is a featureful and easy to use DAW, written in C using the GTK+3 toolkit.

Updated: 10 Sep, 2023