Skip to content

SpectMorph 1.0.0-beta1

Pre-release
Pre-release
Compare
Choose a tag to compare
@swesterfeld swesterfeld released this 26 Jun 19:45
· 14 commits to master since this release

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 outputs to be able to implement stereo support later on.
  • Add fast vectorizable log2 approximation (based on Tims version from Anklang).
  • Phases in LiveDecoder, IFFTSynth: change from float to uint for performance reasons.
  • Various minor performance optimizations.
  • Minor LV2 meta data updates (port groups, avoid port resizing extension).
  • Use newer compilers: g++-14 for windows, g++-13 for static linux plugins.
  • Support automatically downloading instruments from configure.
  • Avoid using std::mutex in hard RT code.

Internals: Minor Changes

  • Refactoring:
    • Deduplicate morphing code from MorphGrid and MorphLinear.
    • Use shared pointers for GenericIn/GenericOut classes (RAII).
    • Get rid of sm_clamp / sm_bound (-> std::clamp).
  • Improve CI support (use debug-cxx, asan, ubsan, test static build, avoid fftw planning).
  • Add post install test which tests audio output for all presets after installation.
  • Validate LV2 feature arrays.
  • Support user defined scripts in testmidisynth test.
  • Improve error messages for preset loader.
  • Build cleanups: remove libbse code, simplify Qt build (remove smsampleedit).
  • Update CLAP version to 1.2.1.