Zrythm v2.0.0-alpha.1
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
zrythm::dsp::StretchOptions Struct Reference

Options governing a stretch operation. More...

#include <src/dsp/timestretch_engine.h>

Public Types

enum class  Algorithm : std::uint8_t { Beats , Monophonic , Polyphonic , Repitch }
 Material-aware timestretch algorithm. More...

Data Fields

Algorithm algorithm { Algorithm::Polyphonic }
bool preserve_formants { false }
 Preserve formants (only meaningful when algorithm is not Repitch).

Detailed Description

Options governing a stretch operation.

Definition at line 24 of file timestretch_engine.h.

Member Enumeration Documentation

◆ Algorithm

enum class zrythm::dsp::StretchOptions::Algorithm : std::uint8_t
strong

Material-aware timestretch algorithm.

  • Beats: rhythmic content (drums, percussion). Uses R2 engine with percussive detection and crisp transients.
  • Monophonic: solo voice / single melody. Uses R2 engine with soft detection and smooth transients.
  • Polyphonic: complex mixtures (default). Uses R3 (Finer) engine for highest quality.
  • Repitch: varispeed — pitch follows tempo (tape-style). Not yet implemented; RubberBand reports it as unsupported, so the NVI layer rejects requests for it. It will be provided by a future Resampler engine (TimeStretchEngineId::Resampler).

Definition at line 44 of file timestretch_engine.h.

Field Documentation

◆ algorithm

Algorithm zrythm::dsp::StretchOptions::algorithm { Algorithm::Polyphonic }

Definition at line 53 of file timestretch_engine.h.

◆ preserve_formants

bool zrythm::dsp::StretchOptions::preserve_formants { false }

Preserve formants (only meaningful when algorithm is not Repitch).

Definition at line 55 of file timestretch_engine.h.


The documentation for this struct was generated from the following file: