XJ music engine
1.9.6
In-game runtime engine for XJ music.
|
#include <NotePicker.h>
Public Member Functions | |
NotePicker (const NoteRange &targetRange, const std::set< Note > &voicingNotes, bool seekInversions) | |
NotePicker (const NoteRange &targetRange, const std::vector< Note > &voicingNotes, bool seekInversions) | |
Note | pick (Note eventNote) |
NoteRange | getTargetRange () |
Note | removePicked (Note picked) |
Note | seekInversion (Note source, const NoteRange &range, const std::set< Note > &options) const |
Static Public Member Functions | |
static std::optional< Note > | pickRandom (std::set< Note > fromNotes) |
In order to pick exactly one optimal voicing note for each of the source event notes.
NotePicker::NotePicker | ( | const NoteRange & | targetRange, |
const std::set< Note > & | voicingNotes, | ||
bool | seekInversions | ||
) |
Build a NotePicker from the given optimal target range set
targetRange | optimally picks will be within |
voicingNotes | to pick from, at most once each |
seekInversions | whether to seek inversions |
NotePicker::NotePicker | ( | const NoteRange & | targetRange, |
const std::vector< Note > & | voicingNotes, | ||
bool | seekInversions | ||
) |
Build a NotePicker from the given optimal target range vector
targetRange | optimally picks will be within |
voicingNotes | to pick from, at most once each |
seekInversions | whether to seek inversions |
NoteRange NotePicker::getTargetRange | ( | ) |
Pick a random instrument note from the available notes in the voicing
Artist writing detail program expects 'X' note value to result in random selection from available Voicings https://github.com/xjmusic/xjmusic/issues/251
fromNotes | to pick from |
Pick a note, adding it to picked notes and removing it from voicing notes
picked | to pick |
Note NotePicker::seekInversion | ( | Note | source, |
const NoteRange & | range, | ||
const std::set< Note > & | options | ||
) | const |
Seek the inversion of the given note that is best contained within the given range
source | for which to seek inversion |
range | towards which seeking will optimize |
options | from which to select better notes |