diff --git a/Fingers/MediaItemCommands.cpp b/Fingers/MediaItemCommands.cpp index 5c37d220d..6c08255ee 100644 --- a/Fingers/MediaItemCommands.cpp +++ b/Fingers/MediaItemCommands.cpp @@ -10,6 +10,9 @@ #include "RprTrack.h" #include "RprMidiTake.h" +// #865, for SNM_GetIntConfigVar() +#include "SnM\SnM_Misc.h" + void CmdCleanItemLengths(int flag, void *data); void CmdLegatoItemLengths(int flag, void *data); void CmdMoveItemsToEditCursor(int flag, void *data); @@ -300,6 +303,9 @@ void CmdSetItemNameMidi::doCommand(int flag) return; } + // #865 + int octOffset = SNM_GetIntConfigVar("midioctoffs", 666); // returns errvalue (666) if failed + for (int i = 0; i < ctr->size(); i++) { if (!ctr->getAt(i).getActiveTake().isMIDI()) @@ -311,6 +317,14 @@ void CmdSetItemNameMidi::doCommand(int flag) if (midiItem.countNotes() > 0) { int pitch = midiItem.getNoteAt(0)->getPitch(); + + // #865 + if (octOffset != 666) { + pitch = pitch + (12 * (octOffset - 1)); + // midioctoffs value in reaper.ini and value set in REAPER prefs differ by -1 + // e.g. in reaper.ini: midioctoffs = 0 => offset set in REAPER prefs = -1 + } + static const char* noteNames[] = {"C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B"}; int nameIndex = pitch % 12; diff --git a/whatsnew.txt b/whatsnew.txt index 775abab68..0957125be 100644 --- a/whatsnew.txt +++ b/whatsnew.txt @@ -1,4 +1,5 @@ Fixes: ++Issue 865: Fix SWS/FNG: Set selected MIDI items name to first note - Ignores MIDI Octave Name Display Offset +Issue 860: Fix automation item removed after SWS/wol: Set selected envelope height... actions !v2.9.4 pre-release build (April 6, 2017)