Anklang 0.3.0 Introduction Video

Anklang is a digital audio synthesis application for live creation and composition of music. It runs on Linux and is Free Software.

I’ve created a small YouTube Video for the latest 0.3.0 release. You can watch this if you are curious about how Anklang looks and feels like.

Besides some cleanups and bugfixes, the 0.3.0 release contains

  • a new SFZ based sampler device called LiquidSFZ, which also supports Hydrogen drumkits
  • a new Saturation device
  • improvements to the BlepSynth device (our two oscillator subtractive synth)
  • various UI improvements

The full list of changes and the release itself can be found on the GitHub Release Page.

SpectMorph 1.0.0-beta1

A new version, SpectMorph 1.0.0-beta1 is available at www.spectmorph.org.

The new features of this release are described in a YouTube Tutorial.

SpectMorph (CLAP/LV2/VST plugin, JACK) is able to morph between samples of musical instruments. A standard set of instruments is shipped with SpectMorph, and an instrument editor is available to create user defined instruments from user samples.

The first lines of code for SpectMorph were written in 2009. I also worked full time on SpectMorph for my university thesis. There were many incremental improvements over the years, so at this point, the next stable release of SpectMorph will be 1.0.0. I’d like SpectMorph-1.0.0 to be as stable as possible, so if you test the beta1 version and have any issues with it, please let me know.

In this release, two formant preserving algorithms for repitching vocals were added to the WavSource operator. This means that for user defined vocal instruments, good sound quality over a large midi note range is possible with only a single sample as base. Also with these algorithms enabled, portamento will dynamically adjust the spectral envelope, which means that it sounds more natural.

There are a lot of instruments which have good sound quality only for a certain pitch range. For instance, a trumpet will sound great for high notes, but for low notes, a tenor trombone or bass trombone sounds better. The same is true for bass, tenor and soprano voices. A new KeyTrack operator was added to handle these cases by combining multiple instruments by midi note range. Note that this is not a simple key split, because slopes can be used to morph between the instruments for seamless transitions.

Finally, SpectMorph now supports arbitrary user defined curves. A new Envelope operator was added for modulation envelopes with user defined curves, and the LFO operator also supports them.

If you are interested in a detailed list of changes, you can look at the NEWS file.

If you are interested in even more details, some SpectMorph related issues were discussed in the regular Anklang/SpectMorph developer meetings.

PandaResampler 0.2.0 has been released


This is a header only library for C++ which implements fast factor 2, 4 or 8 upsampling and downsampling based on SSE instructions. I’ve developed the code for my DSP code in Anklang and SpectMorph.

It might be useful for you if you have some DSP loop which needs to be oversampled to avoid aliasing.

This is the initial public announcement of the library, please let me know if you have questions or need clarification in the API documentation.

SpectMorph 0.6.1 released

A new version, SpectMorph 0.6.1 is available at www.spectmorph.org.

SpectMorph (CLAP/LV2/VST plugin, JACK) is able to morph between samples of musical instruments. A standard set of instruments is shipped with SpectMorph, and an instrument editor is available to create user defined instruments from user samples.

The instrument editor was improved, the main change is that the volume of the individual samples that are part of an instrument can now be adjusted individually in the new “volume editor” if automatic volume normalization doesn’t work as expected. There were also some smaller usability improvement for the instrument editor.

One limitation of the previous releases of SpectMorph was that there was a fixed set of 128 user defined instruments. To overcome this limitation user defined instruments are organized in banks now, so you can have an unlimited number of banks each containing 128 instruments.

New standard instruments were added, namely Bass Flute, Soprano Saxophone, Clarinet, Bass Clarinet, Tenor Trombone, Viola and Double Bass. The samples and meta information for standard instruments are now available on github.

The code is now hard RT capable, every call of malloc() in the DSP thread was refactored and removed. Finally, a few UI problems on macOS were fixed.

A full list of all changes can be found here.

Anklang 0.2.0 released

Anklang is a digital audio synthesis application for live creation and composition of music. It runs on Linux and is Free Software.

The 0.2.0 release improves audio synthesis capabilities, user interface, documentation, performance, packaging, and testing. We support new CLAP (draft) extensions, non-linear mappings for BlepSynth ADSR times, a Jack PCM driver, context help via F1 key, and improved note editing in the piano roll.

Anklang is different than many other DAWs because of its UI/Core design: The real-time sound engine is implemented in C++ but the user interface runs in Electronjs, Firefox or Chrome. So it is using C++ for the DSP code, but its UI is implemented based on web technologies.

At this point in development, this is a preview for curious users and developers and shows that the basic technologies we’re using really work to create a DAW.

For more information, see

SpectMorph 0.6.0 released

A new version, SpectMorph 0.6.0 is available at www.spectmorph.org.

SpectMorph (CLAP/LV2/VST plugin, JACK) is able to morph between samples of musical instruments. A standard set of instruments is shipped with SpectMorph, and an instrument editor is available to create user defined instruments from user samples.

This release took quite a bit of development time, because multiple related features were added, which resulted in lots of changes to the codebase. The main new features are

  • SpectMorph now provides a CLAP plugin.
  • A filter with different filter modes was added.
  • A new, more flexible modulation system was added.
  • SpectMorph now provides visual feedback for modulated parameters.

For macOS, there are now signed installers with support for Intel and ARM.

To see how to use the new possibilities, I recommend this video:

A full list of all changes can be found here.

liquidsfz-0.3.2

The main goal of liquidsfz is to implement a library that supports playing .sfz files and is easy to integrate into other projects. We also provide a JACK client and a LV2 plugin.

A new version, liquidsfz-0.3.2 is now available.

This release fixes a crash triggered by Carla while saving without path. It also allows for overlapping notes during sustain, which makes sustain sound more realistic. A precompiled windows LV2 binary is now available.

For a list of changes, see the github release.

liquidsfz 0.3.1

The main goal of liquidsfz is to implement a library that supports playing .sfz files and is easy to integrate into other projects. We also provide a JACK client and a LV2 plugin.

This week, liquidsfz-0.3.0 was released, and liquidsfz-0.3.1 which fixes some problematic bugs in 0.3.0.

The most important changes are:

The sound quality was improved. CPUs are getting faster every year, and systems which have multiple cores are increasingly common. So instead of trying to be ultra fast when playing samples, liquidsfz now provides good quality by default (and it has two lower quality modes if you really need maximum efficiency).

We load samples on demand now, only preloading the start of every sample. This reduces the startup time and memory usage for large sample sets.

For .sfz files which do not define CC7 (Volume) and CC10 (Pan) liquidsfz now provides default behaviour for these CCs (#30).

The license is now MPL2 which is a bit less restrictive than our previous license (LGPL).

The full list of changes is in the NEWS file.

liquidsfz 0.2.3

The main goal of liquidsfz is to implement a library that supports playing .sfz files and is easy to integrate into other projects. We also provide a JACK client and a LV2 plugin.

A new release of liquidsfz is now available (under LGPL2.1+):

This release adds support for LFOs (both SFZ1 and SFZ2 style). Typical use cases for LFOs are vibrato and tremolo, and the set of opcodes we now support should be enough for many .sfz files which need these features.

To further improve compatibility with existing .sfz files, the preprocessor (#include/#define handling) was improved and support for curve sections and the related opcodes was added.

The full list of changes is in the NEWS files.

liquidsfz 0.2.2

The main goal of liquidsfz is to implement a library that supports playing .sfz files and is easy to integrate into other projects. We also provide a JACK client and a LV2 plugin.

A new release of liquidsfz is now available (under LGPL2.1+):

This release adds SFZ style filters, which means fil_type, cutoff, resonance and a lot of other new opcodes are now supported. All SFZ1 filter types are implemented, and a few SFZ2 filter types (lpf_4p, lpf_6p, hpf_4p, hpf_6p), as well as a filter envelope.

The other bigger change is that the LV2 plugin now reports the supported controllers, the names of the controllers, the names of key switches and the names of the keys to the host using a midnam file. For Ardour6 for instance this means that the names of the keys are shown, as well as the names of the supported controllers, which makes sfzs with exported CCs a lot more usable.

The hydrogen loader also passes this information, so for instance you will see that note 36 is called “Kick” in the loaded hydrogen drumkit.

The full list of changes is in the NEWS files.