Loading...
Searching...
No Matches
Classes |
Public Types |
Public Member Functions |
Static Public Member Functions |
Public Attributes |
List of all members
Nodes::MidiUtil::Node Struct Reference
Classes | |
| struct | Note |
Public Types | |
| using | tick = halp::tick_flicks |
Public Member Functions | |
| halp_meta (name, "Midi scale") halp_meta(c_name | |
| MidiScale | halp_meta (category, "Midi") halp_meta(author |
| MidiScale ossia score | halp_meta (manual_url, "https://ossia.io/score-docs/processes/midi-utilities.html#midi-scale") halp_meta(description |
| MidiScale ossia score Maps a midi input to a given scale | halp_meta (uuid, "06b33b83-bb67-4f7a-9980-f5d66e4266c5") struct |
| Node () | |
| The map never allocates on the audio thread. | |
| void | start (int chan, int pitch, int vel, int64_t ts) |
| void | stop (int chan, int pitch, int vel, int64_t ts) |
| void | exec (const scale_array &scale, int transp) |
| void | update (const scale_array &scale, int transp) |
| Moves the held keys to their notes in the new scale / transposition. | |
| void | release_channel (int chan) |
| void | operator() (const tick &tk) |
Static Public Member Functions | |
| static uint16_t | key (int chan, int pitch) noexcept |
| static std::optional< uint8_t > | map_note (const scale_array &scale, int pitch, int transp) noexcept |
Public Attributes | ||
| inputs | ||
| struct { | ||
| midi_out midi | ||
| } | outputs | |
| ossia::flat_map< uint16_t, Note > | map | |
| Held input keys (see key()) and the output note each plays. | ||
| std::array< std::array< uint8_t, 128 >, 17 > | playing {} | |
| std::string | scale {} | |
| int | base {} | |
| int | transpose {} | |
Member Function Documentation
◆ release_channel()
On all notes / sound off: forget the channel's held keys, or a later scale change would restart their notes.
Member Data Documentation
◆ playing
| std::array<std::array<uint8_t, 128>, 17> Nodes::MidiUtil::Node::playing {} |
Held keys per output note: two keys can map to the same scale note, which must only stop with the last one.
The documentation for this struct was generated from the following file: