Loading...
Searching...
No Matches
Nodes::Quantifier::v2::Node Struct Reference

Classes

struct  Clock
 
struct  Note
 
struct  Pending
 
struct  Running
 

Public Types

using tick = halp::tick_flicks
 

Public Member Functions

 halp_meta (name, "Midi quantify") halp_meta(c_name
 
Quantifier halp_meta (category, "Midi") halp_meta(manual_url
 
Quantifier ossia score halp_meta (description, "Quantifies a MIDI input") halp_meta(uuid
 
void prepare (halp::setup s)
 
void set_clock (const halp::tick_musical &tk) noexcept
 
bool musical (bool sync) const noexcept
 
double frames_per_unit (bool sync) const noexcept
 
double to_unit (int64_t frame, bool sync) const noexcept
 
int64_t to_frame (double unit, bool sync) const noexcept
 
double length (float seconds, bool sync) const noexcept
 A time chooser's value, which is in seconds even when synced.
 
int64_t start_of (int64_t at) const noexcept
 When a note played at at starts.
 
int64_t end_of (int64_t start) const noexcept
 When a note starting at start ends, or -1 for its note-off.
 
void note_off (const Note &n, int64_t at, int64_t pos)
 
void release_all (int64_t at, int64_t pos)
 
void operator() (const tick &tk)
 

Public Attributes

Quantifier https: halp_meta(author
 
struct { 
 
   halp::midi_bus<"in", libremidi::message >   midi 
 
   halp::time_chooser<"Grid", halp::range{0., 4., 0.125}>   grid 
 Notes start on this grid; 0 lets them through as they come.
 
   halp::hslider_f32<"Tightness", halp::range{0.f, 1.f, 0.8f}>   tightness 
 
   halp::enum_t< NoteLength, "Length">   length 
 
   halp::time_chooser<"Duration", halp::range{0., 8., 0.25}>   duration 
 The length of a note, or the grid its end falls on.
 
} inputs 
 
struct { 
 
   midi_out   midi 
 
} outputs 
 
std::vector< Pending > pending
 
std::vector< Running > running
 
int64_t last_end {-1}
 
halp::setup setup
 
struct Nodes::Quantifier::v2::Node::Clock clock
 

Member Function Documentation

◆ release_all()

void Nodes::Quantifier::v2::Node::release_all ( int64_t  at,
int64_t  pos 
)
inline

Every sounding note off, at at, and nothing waits any more: a jump in time, a restart.

Member Data Documentation

◆ tightness

halp::hslider_f32<"Tightness", halp::range{0.f, 1.f, 0.8f}> Nodes::Quantifier::v2::Node::tightness

1: a note always waits for the next grid point. Lower: a note played just after a grid point – by up to (1 - tightness) of half a step – counts as on time, and starts at once.


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