Clock-divided note repeat / retrigger. More...
#include <note_repeat.hpp>
Public Member Functions | |
| constexpr auto | operator<=> (const NoteRepeatSpec &) const =default |
Public Attributes | |
| timebase::TickDuration | interval {timebase::kTicksPerQuarter / 4} |
| std::uint8_t | count = 1 |
| std::uint8_t | gate_percent = 50 |
| std::uint8_t | probability_percent = 100 |
| std::uint8_t | velocity_decay_percent = 100 |
| std::uint64_t | seed = 0 |
Clock-divided note repeat / retrigger.
An authored attack is consumed and re-emitted as up to count gated hits one interval apart, each hit carrying a decayed velocity and passing an independent probability draw. Releasing the key cancels the hits that have not started; a hit already sounding keeps its gate, so the kernel never truncates a note it already owns.
count <= 1 is the declared bypass: the input passes through unchanged and the kernel owns nothing.
|
constexprdefault |
| std::uint8_t pulp::midi::NoteRepeatSpec::count = 1 |
| std::uint8_t pulp::midi::NoteRepeatSpec::gate_percent = 50 |
| timebase::TickDuration pulp::midi::NoteRepeatSpec::interval {timebase::kTicksPerQuarter / 4} |
| std::uint8_t pulp::midi::NoteRepeatSpec::probability_percent = 100 |
| std::uint64_t pulp::midi::NoteRepeatSpec::seed = 0 |
| std::uint8_t pulp::midi::NoteRepeatSpec::velocity_decay_percent = 100 |