#include #include #include #include // Pitch array for translation to standard guitar tuning unsigned char Note::pitchArray[Note::Octaves][Note::NotesPerOctave]= { {0,1,2,3,4,5,6,7,8,9,10,11}, {12,13,14,15,16,17,18,19,20,21,22,23}, {24,25,26,27,28,29,30,31,32,33,34,35}, {36,37,38,39,40,41,42,43,44,45,46,47}, {48,49,50,51,52,53,54,55,56,57,58,59}, {60,61,62,63,64,65,66,67,68,69,70,71}, {72,73,74,75,76,77,78,79,80,81,82,83}, {84,85,86,87,88,89,90,91,92,93,94,95}, {96,97,98,99,100,101,102,103,104,105,106,107}, {108,109,110,111,112,113,114,115,116,117,118,119}, {120,121,122,123,124,125,126,127,0,1,2,3} }; /* Increments the current note 1/2 step * @param None * @return None */ const Note &Note::operator++() { mNote++; if(mNote>B) { mNote=C; mOctave++; } return *this; } /* Decrements the current note 1/2 step * @param None * @return None */ const Note &Note::operator--() { mNote--; if(mNoteB) { mNote=C+(mNote-B)-1; mOctave++; } return *this; } /* Decrements a Step from the current note * @param step - step decrement */ const Note &Note::operator-=(Step step) { if(HalfStep==step)return --(*this); mNote-=step; if(mNote