Entries Tagged 'Audio' ↓

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.

liquidsfz 0.2.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.

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

New opcodes, offset / offset_random / offset_ccN / offset_onccN were added, in order to be able to properly support more .sfz files.

Hydrogen drumkits can now be loaded transparently by loading the drumkit.xml file. We try to map hydrogen features to sfz features. For many drumkits liquidsfz should replay the drumkit identically like hydrogen would. But not all hydrogen features are mapped (for instance hydrogens randomized sample selection is not, so drumkits that use it don’t sound entierly correct). Fortunately most drumkits either sound great or at least usable even without all features hydrogen itself has.

The liquidsfz JACK client is now interactive, so users can type commands like noteon 0 60 127 which would create a note on event for note 60. I use this very heavily for debugging, since using a full DAW like Ardour is quite slow compared to typing a few commands or making a script which can be executed using source somefile as liquidsfz command.

I’d like to summarize everything else as: many small improvements have been made, a few of them requested from the community. This includes better API documentation and a few API additions, a global sample cache to optimize memory usage in some situations, support for shared libraries and lots of other fixes, which should make everything a little bit better for many users.

The full list of changes is in the NEWS files.

SpectMorph 0.5.2 released

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

SpectMorph (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.

With this release, the SpectMorph LFO can be synchronized with the song tempo. This allows morphing frequency to be specified as note length (for instance quarter notes). As a related new feature, the playback speed of samples (user defined instruments) can be controlled using automation/LFOs, so it is possible to time-stretch a sample as needed to be synchronized to the song tempo. To see how to use the new possibilities, I recommend these tutorials:

A full list of all changes can be found here.

And finally here is a new piece of music made with SpectMorph: