Loading...
Searching...
No Matches

Classes

struct  chan_info
 
struct  ins
 
struct  out_msg
 
struct  outs
 
struct  speed_hist
 
struct  synth_state
 
struct  timed_msg
 
struct  ui
 
struct  voice
 

Public Types

enum class  vstate : uint8_t { off , pending_on , sounding }
 
using track_record = PointTrackerBase< 3 >::track_record
 
using tick = halp::tick_musical
 

Public Member Functions

 halp_meta (name, "Entity To MIDI") halp_meta(c_name
 
avnd_entity_to_midi halp_meta (category, "Midi") halp_meta(author
 
avnd_entity_to_midi ossia team halp_meta (description, "Turn tracked entities (people, blobs, hands) into MIDI: each entity " "becomes one held MPE note whose pitch bend, pressure and timbre follow " "its motion for its whole lifetime. No note spam, no stuck notes.") halp_meta(uuid
 
avnd_entity_to_midi ossia team e977241d e316a1651b2e halp_flag (process_exec)
 
void prepare (halp::setup s)
 
void start ()
 
void stop ()
 
void pause ()
 
void resume ()
 
void transport (auto flicks)
 
void operator() (const halp::tick_musical &tk)
 
bool check_invariants (std::string *err=nullptr) const
 
int held_count () const noexcept
 
int outstanding () const noexcept
 
const std::vector< track_record > & parsed_entities () const noexcept
 
const ossia::flat_map< int, entity_descriptors > & descriptors () const noexcept
 

Public Attributes

struct avnd_tools::EntityToMidi::ins inputs
 
struct avnd_tools::EntityToMidi::outs outputs
 
ossia::flat_map< int, synth_statem_synth
 
std::vector< track_record > m_recs
 
ossia::flat_map< int, entity_descriptorsm_desc
 
bool tracks_dirty = false
 
bool panic_requested = false
 
std::vector< std::array< uint8_t, 3 > > last_direct_panic
 
ossia::exec_state_facade ossia_state
 
std::atomic< ossia::net::midi::midi_protocol * > midi_out {}
 

Static Public Attributes

static constexpr int k_max_voices = 16
 

Member Function Documentation

◆ descriptors()

const ossia::flat_map< int, entity_descriptors > & avnd_tools::EntityToMidi::descriptors ( ) const
inlinenoexcept

The analysis for the current frame, for tests: a descriptor that is subtly wrong still produces plausible MIDI, so asserting on the notes alone cannot tell a working mapping from a broken one.

◆ parsed_entities()

const std::vector< track_record > & avnd_tools::EntityToMidi::parsed_entities ( ) const
inlinenoexcept

The entities as decoded from the inlet, for tests: the decoding is where a source's data is either preserved or quietly lost, and asserting on the emitted MIDI alone cannot tell a dropped field from a deliberate one.

Member Data Documentation

◆ m_desc

ossia::flat_map<int, entity_descriptors> avnd_tools::EntityToMidi::m_desc

Per-entity analysis for the current frame, keyed by entity id so the mapping lookups can stay in terms of the record they already hold.


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