Skip to content

SpectMorph 0.6.0

Compare
Choose a tag to compare
@swesterfeld swesterfeld released this 18 May 14:01
· 407 commits to master since this release

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)