|
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 |