Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
pulp::midi::MpeNoteState Struct Reference

Per-note state maintained by MpeVoiceTracker. More...

#include <mpe_voice_tracker.hpp>

Public Attributes

bool active = false
uint8_t channel = 0
 MPE member channel the note lives on.
uint8_t note = 0
 MIDI note number (0-127).
uint8_t velocity = 0
 Note-on velocity (0-127).
float pitch_bend_semitones = 0.0f
 Current per-note pitch bend in semitones.
float pressure = 0.0f
 Channel pressure (0..1).
float timbre = 0.0f
 CC 74 (0..1); same value as slide.
MpeNoteGeneration note_id = 0
 Monotonic generation assigned on note-on (never 0).
bool is_upper_zone = false
 true if this note lives in the upper zone
bool detached = false
 True after a UMP Per-Note Management message with the "detach controllers" flag landed on this note: subsequent channel-level controller updates (pitch bend, pressure, CC74 on the member channel) no longer write into this note.

Detailed Description

Per-note state maintained by MpeVoiceTracker.

Expression values are normalized:

  • pitch_bend_semitones — absolute bend in semitones (member range applied)
  • pressure — 0..1 from channel pressure (Dx status)
  • timbre — 0..1 from CC 74 (aliased as slide)

Member Data Documentation

◆ active

bool pulp::midi::MpeNoteState::active = false

◆ channel

uint8_t pulp::midi::MpeNoteState::channel = 0

MPE member channel the note lives on.

◆ detached

bool pulp::midi::MpeNoteState::detached = false

True after a UMP Per-Note Management message with the "detach controllers" flag landed on this note: subsequent channel-level controller updates (pitch bend, pressure, CC74 on the member channel) no longer write into this note.

Per-note targeted messages (status 0x60 / 0x00 / 0x10) still apply. Cleared when the slot is reused for a fresh note-on (retrigger included).

◆ is_upper_zone

bool pulp::midi::MpeNoteState::is_upper_zone = false

true if this note lives in the upper zone

◆ note

uint8_t pulp::midi::MpeNoteState::note = 0

MIDI note number (0-127).

◆ note_id

MpeNoteGeneration pulp::midi::MpeNoteState::note_id = 0

Monotonic generation assigned on note-on (never 0).

◆ pitch_bend_semitones

float pulp::midi::MpeNoteState::pitch_bend_semitones = 0.0f

Current per-note pitch bend in semitones.

◆ pressure

float pulp::midi::MpeNoteState::pressure = 0.0f

Channel pressure (0..1).

◆ timbre

float pulp::midi::MpeNoteState::timbre = 0.0f

CC 74 (0..1); same value as slide.

◆ velocity

uint8_t pulp::midi::MpeNoteState::velocity = 0

Note-on velocity (0-127).


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