31 lines
2.4 KiB
Plaintext
31 lines
2.4 KiB
Plaintext
// The NotePath object contains, for each note, all possible playable locations on the fretboard
|
|
// we will use NotePath to build a TabEntry for which all notes can be played (ie) No two notes
|
|
// should be playable on the same string. Also, we would like to minimize the fret distance
|
|
// between playable notes. We need to do this because the fretboard is tuned in fourths, except
|
|
// for the fifth string which is tuned in third. The point is that for a given midi note (pitch)
|
|
// there are overlapping locations on the fretboard where the note can be played. This is not
|
|
// a problem with the keyboard because, theoretically, the entire keyboarded can be voiced
|
|
// at once. The fretboard is different. If we voice a note on the first string at the fifth
|
|
// fret, we cannot at the same time, voice a note on the first string at the fourth fret.
|
|
// Along the same lines, if we build a TabEntry that contains a voicing on the first string
|
|
// at the fifth fret, it is illegal to add another entry to the tab that voices a note on
|
|
// the first string at the sixth fret. Allowing this would nullify the previous TabEntry.
|
|
//
|
|
// The other objective is to handle the fret-range problem. In building the optimal path,
|
|
// we would like to overcome the problem wherebye, for instance, a note is voiced on the
|
|
// first string at the fifth fret and, in overcoming the voicing of a competing note on the
|
|
// first string at say the fourth fret, we might arbitrarily choose to voice a note that
|
|
// cannot possibly be played by an individual because the note poses an expansive fret
|
|
// traveral. This should be overcome by choosing a NotePath space that minimizes the
|
|
// distance requried to play the desired notes. This alone should alleviate the problem.
|
|
//
|
|
// There is a third problem which address how many notes are voiced simultaneously.
|
|
// This problem also revolves around the mechanical differences between instruments
|
|
// used to create MIDI files, and the guitar. For instance, the keyboard is capable
|
|
// of simultaneously voicing all 188 keys. In other words, a chord can be build on
|
|
// the keyboard that repeats the root, third, and fifth, many times (ie) ten notes
|
|
// played sumultaneously (eleven if the pianist uses his toe). We need to limit the
|
|
// number of simultaneous voices for the guitar to six. We do not want to exclude
|
|
// important notes in the elimination process. We would also like to retain key
|
|
// note pitches in order to reproduce the original sound as accurately as possible.
|