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

What a view asks to hear, in document terms only. More...

#include <sequencer_ui_host.hpp>

Public Member Functions

constexpr bool operator== (const AuditionRequest &) const =default

Public Attributes

timeline::ItemId track {}
 Track whose device chain should sound this.
timeline::ItemId item {}
 Content item the request came from, when there is one.
std::uint8_t pitch = 60
 Pitch, velocity, and channel exactly as timeline::NoteEvent spells them, so a request built from a note in the document needs no conversion and no second velocity scale.
std::uint16_t velocity = 0xffff
std::uint8_t channel = 0
timebase::TickDuration duration {}
 Zero requests a sustained audition, ended by end_audition().

Detailed Description

What a view asks to hear, in document terms only.

This is the piano-roll click, the keyboard press, the drag onto a new pitch. It says which note, how hard, and on whose behalf — never which device, voice, or graph node sounds it. Resolving track to something that makes noise is the host's whole job, and the reason the view does not need one.

Member Function Documentation

◆ operator==()

bool pulp::timeline_editor::AuditionRequest::operator== ( const AuditionRequest & ) const
constexprdefault

Member Data Documentation

◆ channel

std::uint8_t pulp::timeline_editor::AuditionRequest::channel = 0

◆ duration

timebase::TickDuration pulp::timeline_editor::AuditionRequest::duration {}

Zero requests a sustained audition, ended by end_audition().

Nonzero requests a one-shot of that musical length, which the host ends itself.

◆ item

timeline::ItemId pulp::timeline_editor::AuditionRequest::item {}

Content item the request came from, when there is one.

Carried so a host can apply the item's own transposition or channel mapping; a null id is a request that belongs to no item, such as a keyboard press.

◆ pitch

std::uint8_t pulp::timeline_editor::AuditionRequest::pitch = 60

Pitch, velocity, and channel exactly as timeline::NoteEvent spells them, so a request built from a note in the document needs no conversion and no second velocity scale.

Velocity is full-range: 0xffff is full scale.

◆ track

timeline::ItemId pulp::timeline_editor::AuditionRequest::track {}

Track whose device chain should sound this.

A null id asks the host to use its own default routing, which is what a host with a single instrument and no track model wants.

◆ velocity

std::uint16_t pulp::timeline_editor::AuditionRequest::velocity = 0xffff

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