diff --git a/Sources/VLModel.cpp b/Sources/VLModel.cpp index 4790305..5b5c715 100644 --- a/Sources/VLModel.cpp +++ b/Sources/VLModel.cpp @@ -1122,6 +1122,15 @@ bool VLSong::IsNonEmpty() const void VLSong::Transpose(int semi) { + for (size_t measure=0; measurefPitch, semi); + TransposePinned(i->fRootPitch, semi); + } + } for (int pass=0; pass<2 && semi;) { int8_t low = 127; int8_t high = 0; @@ -1138,21 +1147,12 @@ void VLSong::Transpose(int semi) } } if (low < VLNote::kMiddleC-6 && high < VLNote::kMiddleC+7) - semi += 12; // Transpose an Octave up + semi = 12; // Transpose an Octave up else if (low > VLNote::kMiddleC+7 && high > VLNote::kMiddleC+16) - semi -= 12; // Transpose an Octave down + semi = -12; // Transpose an Octave down else break; // Looks like we're done } - for (size_t measure=0; measurefPitch, semi); - TransposePinned(i->fRootPitch, semi); - } - } } size_t VLSong::CountStanzas() const