Skip to content

Releases: swesterfeld/spectmorph

SpectMorph 0.6.1

01 Nov 20:51
Compare
Choose a tag to compare

SpectMorph 0.6.1

Instrument Editor

  • Support click & drag sample to scroll & zoom (#22).
  • Support stereo to mono conversion when loading stereo samples (#14).
  • Add manual volume editing / normalization.
  • Implement automatic selection triggered by midi.

New instruments

  • Bass Flute
  • Soprano Saxophone
  • Clarinet, Bass Clarinet
  • Tenor Trombone
  • Viola, Double Bass
  • Make samples and meta information for standard instruments available on github.

Improvements

  • Support multiple banks for WavSources / instrument editor.
  • Avoid allocations in DSP thread to be hard RT capable.
  • Allow overriding analysis parameter for frame stepping to get higher time resolution.

Fixes

  • Make UI work properly in Ableton Live (and possibly other hosts) on macOS.
  • Fix UI scaling problem on M1 macOS builds.
  • Fix crash if instrument editor is closed without any samples.
  • Fix cases of undefined behaviour.
  • Fix timing problems for long notes, reproduce long WavSource notes with exact tempo.
  • Fix use-after-free for outdated control events.
  • Fix freetype related memory leak.

SpectMorph 0.6.0

18 May 14:01
Compare
Choose a tag to compare

New features

  • New, more flexible modulation system
  • Added filter with different filter modes
  • Provide visual feedback for modulated properties
  • Provide signed .pkg installers for macOS (Intel and ARM)

CLAP Plugin

  • Provide CLAP Plugin
  • Support for per-voice modulation
  • Support timestamped modulation/automation events

LV2 Plugin

  • Support LV2 on all platforms
  • Fix crashes triggered by Carla (absolute_path/abstract_path returning NULL)
  • Support newer LV2 development headers

Minor Changes

  • Support "Velocity" as modulation source
  • Make pitch bend range configurable
  • New Presets with filter: "Cheese Cake Bass", "Liquid Silver"
  • Sort midi events by timestamp to workaround Bitwig bug
  • Sliders now support shift+drag for fine editing
  • Support for Apple Silicon
  • Avoid crashes if XOpenIM / XCreateIC return NULL (#15).
  • Fix statically linked plugin data directory location (works in flatpak apps now).
  • Add dockerized MXE builds for windows, bump compiler version to gcc-12.
  • Bump minimum C++ standard to C++17
  • Fix build on RISC-V (#13)
  • Use GitHub CI for Linux, macOS and Windows
  • Change license from "LGPL v3 or later" to "LGPL v2.1 or later".
  • Minor fixes and cleanups

Internals: Properties

  • Add generic property handling
  • Simplify load/save/gui for properties
  • Support modulatable properties using ModulationList
  • Add gui for editing property value and ModulationList
  • MorphPlan is no longer ref-counted, just one instance per Project
  • Introduced MorphOperatorConfig objects for cleaner/faster parameter updates

Internals: Filter

  • Add two filter types: "Ladder" and "Sallen-Key" filter to output operator
  • Integrated PandaResampler for SIMD 4x filter oversampling
  • Support modulation with high time resolution for filter

Internals: UI Toolkit

  • Support multiple update regions in UI toolkit
  • Optimize drawing for UI toolkit
  • Support "software sprites" for efficient visual feedback
  • Map Ctrl+Left Click to Right Click on macOS

Internals: Optimizations

  • Pass wav set pointers (instead of strings) to morph linear/grid/source.
  • Avoid fmod() for phase truncation.
  • Build using -ffast-math
  • NotifyBuffer: fast dsp thread -> ui thread notifications (no malloc in dsp thread)
  • Avoid allocations in dsp thread in many cases (retrigger, noise decoder process)
  • Support optimized SIMD code on ARM (Apple Silicon), code from Peter Johnson (#11)