Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
stretch_preset.hpp File Reference

A shareable fine-tune layer ON TOP of OfflineStretch — it does NOT fork the core engine. More...

#include <pulp/signal/offline_stretch.hpp>
#include <sstream>
#include <string>

Go to the source code of this file.

Classes

struct  pulp::signal::StretchPreset
 The tunable subset of OfflineStretchOptions that defines a "character preset". More...

Namespaces

namespace  pulp
namespace  pulp::signal

Functions

const char * pulp::signal::to_string (StretchCharacter c)
bool pulp::signal::character_from_string (const std::string &s, StretchCharacter &out)
StretchPreset pulp::signal::capture_preset (const OfflineStretchOptions &o, const std::string &name="untitled")
 Capture the preset-relevant fields FROM a configured OfflineStretchOptions.
void pulp::signal::apply_preset (OfflineStretchOptions &o, const StretchPreset &p)
 Apply a preset to options (only the preset-managed fields; ratio/pitch are the caller's, not the preset's).
std::string pulp::signal::preset_to_text (const StretchPreset &p)
bool pulp::signal::preset_from_text (const std::string &text, StretchPreset &out, std::string *err=nullptr)
 Parse a preset.

Detailed Description

A shareable fine-tune layer ON TOP of OfflineStretch — it does NOT fork the core engine.

A StretchPreset is a flat, human-editable spec of the tunable knobs (character mode, window/overlap, transient sensitivity, STN routing, relocation). It serializes to a tiny key = value text format so a user (or their agent) can save a render they like, override the out-of-box defaults per plugin, hand-edit it, and SHARE it ("I think this sounds better"). Apply it to an OfflineStretchOptions just before process().

Format (lines, # comments, order-independent, unknown keys ignored): name = My Tape Preset character = varispeed # clean | varispeed | phase_vocoder | granular fft_size = 0 # 0 = adaptive analysis_hop = 0 transient_sensitivity = 0 # 0 = engine default route_noise_stn = false relocate_transients = false