The authored data at one lane and step coordinate.
More...
#include <step_player.hpp>
The authored data at one lane and step coordinate.
gate_percent scales the step interval into the note's held portion. tie extends a still-sounding note of the same pitch instead of retriggering it; slide lets a sounding note of a different pitch overlap the new attack by one tick so a downstream voice can glide. Both are continuity policies over gate and pitch, not separate event kinds.
◆ operator<=>()
| auto pulp::midi::StepPlayerStep::operator<=> |
( |
const StepPlayerStep & | | ) |
const |
|
constexprdefault |
◆ gate_percent
| std::uint8_t pulp::midi::StepPlayerStep::gate_percent = 100 |
◆ on
| bool pulp::midi::StepPlayerStep::on = false |
◆ pitch_offset
| std::int8_t pulp::midi::StepPlayerStep::pitch_offset = 0 |
◆ probability_percent
| std::uint8_t pulp::midi::StepPlayerStep::probability_percent = 100 |
◆ ratchet_count
| std::uint8_t pulp::midi::StepPlayerStep::ratchet_count = 1 |
◆ slide
| bool pulp::midi::StepPlayerStep::slide = false |
◆ tie
| bool pulp::midi::StepPlayerStep::tie = false |
◆ timing_offset_ticks
| std::int32_t pulp::midi::StepPlayerStep::timing_offset_ticks = 0 |
Micro-timing nudge in ticks, applied to this step's hits and to their releases together so the gate length is preserved.
This is what lets a caller place a hit off the grid. Swing, a groove table and a per-step nudge are all deterministic functions of the step's position, so a caller folds them into one offset and the kernel keeps owning the clocks, the sounding-note ledger and the releases. Without it a caller wanting swing has to run its own scheduler, which is the duplication this kernel exists to remove.
Negative values pull a step toward the preceding grid line. The kernel admits the step from its authored grid coordinate, so the result is independent of callback boundaries. An offset that would cross the preceding grid line is refused when the step is authored.
A nudge is held inside the step's own interval at fire time, so it can never reach the next step's grid position and the sequence cannot be reordered against itself.
◆ velocity
| std::uint8_t pulp::midi::StepPlayerStep::velocity = 100 |
The documentation for this struct was generated from the following file: