Помогите, кто-нибудь советом, пожалуйста. Есть начало скрипта. Вот код, с помощью которого я получаю высоту выделенных нот в миди эдиторе:
Код:
function Msg(param)
reaper.ShowConsoleMsg(tostring(param).."\n")
end
reaper.Undo_BeginBlock()
local hwnd = reaper.MIDIEditor_GetActive()
local take = reaper.MIDIEditor_GetTake(hwnd)
local retval, notecnt, _, _ = reaper.MIDI_CountEvts(take)
if notecnt > 0 then
for i = 0, notecnt-1 do
retval, sel, _, startpos, endpos, _, pitch, _ = reaper.MIDI_GetNote(take, i)
if sel then
Msg("Midi_note = "..pitch)
end
end
end
reaper.Undo_EndBlock("Get_midi_note", -1)
Выглядит это так:
Посмотреть вложение 197000
Вопрос вот в чём. Известен питч всех выделенных нот. Теперь нужно ввести определение, что если питч, например, 36 или 48 или 60( и так далее), то это C, а если питч 43 или 55 или 67 ( и так далее), то это E, (ну и по всем нотам). А дальше - если питч - С +E+G, то это С, а если D+F+A, то это Dmin, и так далее, то есть, в зависимости от того, в какой аккорд складываются выделенные ноты будет какое-то действие с различными вводными, в зависимости от аккорда.
Не могу понять, как написать такое условие. Подскажите, кто-нибудь))
Именно, как оформить, что С = 36 или 48 или 60 и так далее, а С (до мажор) = C+E+G.
Можно, в принципе и сразу, типа, если питч такой-то (перечислить все цифры всех возможных нот данного аккорда), то действие такое-то. Но это будет не совсем нормально для дальнейшей работы со скриптом.