-- Скрипт для изменения тона MIDI-айтемов и высоты звука аудио-айтемов при вращении колеса мыши function pitchMIDIItems(direction) local midiUpCommandID = reaper.NamedCommandLookup("_FNG_MIDI_UP_SEMI") local midiDownCommandID = reaper.NamedCommandLookup("_FNG_MIDI_DN_SEMI") if direction > 0 then reaper.Main_OnCommand(midiUpCommandID, 0) elseif direction < 0 then reaper.Main_OnCommand(midiDownCommandID, 0) end end function pitchAudioItems(direction) local pitchUpCommandID = reaper.NamedCommandLookup("40204") -- SWS: Pitch all takes up one semitone local pitchDownCommandID = reaper.NamedCommandLookup("40205") -- SWS: Pitch all takes down one semitone if direction > 0 then reaper.Main_OnCommand(pitchUpCommandID, 0) elseif direction < 0 then reaper.Main_OnCommand(pitchDownCommandID, 0) end end -- Получаем направление вращения колеса мыши local _, _, _, _, _, _, wheelDelta = reaper.get_action_context() -- Определяем, является ли активный элемент MIDI local activeItem = reaper.GetSelectedMediaItem(0, 0) local isMIDIItem = false if activeItem then local take = reaper.GetActiveTake(activeItem) if take and reaper.TakeIsMIDI(take) then isMIDIItem = true end end -- Вызываем соответствующую функцию в зависимости от типа элемента if isMIDIItem then pitchMIDIItems(wheelDelta) else pitchAudioItems(wheelDelta) end reaper.UpdateArrange()