Skip to content

innermost47/raveMorph

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RaveMorph

A JUCE instrument plugin (VST3 + Standalone) that morphs between two sounds in the latent space of a RAVE model. Tempo-synced, MIDI-gated, with stereo width and dry/wet — all parameters are host-automatable / MIDI-mappable.

Features

  • RAVE model combo box — scans a folder created on first launch (<Documents>/RaveMorph/Models). Drop your .ts models there and hit Rescan.
  • Sound A / B — load two audio files (wav/aiff/flac), summed to mono.
  • BPM sync (optional) — detects each source's tempo (MiniBPM) and stretches it to the project BPM (Signalsmith Stretch) before encoding. Detected BPM is shown and manually editable per source (needed for ambient/drone material where detection is unreliable).
  • Morph A-B (xfade) — RAVE latent interpolation (slerp). MIDI-mappable.
  • Width (wide) — stereo widener (opposed detune). MIDI-mappable.
  • Dry/Wet (mix) — 0 = raw (tempo-aligned) sources crossfaded, 1 = RAVE morph. MIDI-mappable.
  • MIDI gate — any held note plays; no notes = silence (~5 ms anti-click fade).
  • State — model, sample paths, manual BPMs and sync state are saved.

Build

CMake ≥ 3.22, C++17. JUCE, LibTorch, MiniBPM and Signalsmith Stretch are all fetched automatically.

cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release --parallel

Options: -DLIBTORCH_VERSION=..., -DLIBTORCH_LOCAL=/path/to/libtorch, -DRAVEMORPH_USE_TORCH=OFF. CI builds Windows/macOS/Linux via GitHub Actions.

Dependency licenses

  • JUCE — GPL or commercial.
  • LibTorch — BSD.
  • MiniBPM — GPL (copyleft; OK for an AGPL-3.0 non-commercial project; no App Store distribution without a commercial license).
  • Signalsmith Stretch — MIT.
  • RAVE models — CC-BY-NC (non-commercial). Not bundled: users supply their own.

Intended as a free, copyleft (AGPL-3.0) project.

Notes

  • Stretching happens before RAVE encoding (offline, on load). Changing the project BPM live triggers a re-stretch + re-encode (costly; debounce for real use).
  • Signalsmith sounds best for modest stretch ratios (~0.75x–1.5x).
  • MiniBPM may pick the wrong tempo octave — hence the manual override.
  • Internal resampling is linear (fine for a POC).

Windows users: add <your-build-folder>\_deps\libtorch-src\lib to your system PATH environment variable so the standalone and DAW can locate LibTorch's DLLs at runtime (e.g. C:\Users\you\source\repos\raveMorph\build\_deps\libtorch-src\lib).

About

Free, open-source JUCE plugin that morphs between two sounds in the latent space of a RAVE neural model, with tempo sync, MIDI gate and stereo width. Built for experimental producers who want to explore unconventional textures.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors