MIDI note delay / echo. More...
#include <note_delay.hpp>
Public Member Functions | |
| constexpr auto | operator<=> (const NoteDelaySpec &) const =default |
Public Attributes | |
| NoteDelaySync | sync = NoteDelaySync::Division |
| timebase::TickDuration | interval {timebase::kTicksPerQuarter / 4} |
| std::int64_t | milliseconds = 250 |
| std::uint8_t | repeats = 0 |
| std::uint8_t | gate_percent = 0 |
| Gate length for generated echoes as a percentage of their delay stride. | |
| std::uint8_t | velocity_decay_percent = 70 |
| std::int8_t | transpose_semitones = 0 |
MIDI note delay / echo.
The authored note passes through untouched and each repeat is an additional scheduled note, so the kernel is a send rather than a replacement. A repeat carries a decayed velocity and an optional cumulative transposition.
repeats == 0 is the declared bypass: the stream passes through unchanged and the kernel owns nothing.
|
constexprdefault |
| std::uint8_t pulp::midi::NoteDelaySpec::gate_percent = 0 |
Gate length for generated echoes as a percentage of their delay stride.
Zero preserves the original source-held gate policy: the authored release determines each echo's length. Values 1..100 make the gate authorable and keep it independent of the source note's release.
| timebase::TickDuration pulp::midi::NoteDelaySpec::interval {timebase::kTicksPerQuarter / 4} |
| std::int64_t pulp::midi::NoteDelaySpec::milliseconds = 250 |
| std::uint8_t pulp::midi::NoteDelaySpec::repeats = 0 |
| NoteDelaySync pulp::midi::NoteDelaySpec::sync = NoteDelaySync::Division |
| std::int8_t pulp::midi::NoteDelaySpec::transpose_semitones = 0 |
| std::uint8_t pulp::midi::NoteDelaySpec::velocity_decay_percent = 70 |