С опр. набором условий - можно. Уверен на 100%, что через какое-то время вопрос будет не смешным, а реальным.Новое
А можно скриптами миди треки писать. Запустил скрипт, он фанеру написал и инструменты выбрал и всё - можно петь!
Это я знаю, Скриптом как получить?Так ведь прямо в экшн листе@Archchie,
А по какому признаку вы хотите его получать и зачем?Это я знаю, Скриптом как получить?
function GetScriptNameByID(ID)
local fp, cont = reaper.GetResourcePath()..'/reaper-kb.ini'
local f = io.open(fp, 'a+')
if not f then return else cont = f:read('a') f:close() end
return cont:match(ID:match('[%a%d]+')..'%s"(.-)".-\n')
end
scriptname = GetScriptNameByID('_RS5a9b832ada3f7ee194cb55a9e2e504626cd6a546')
function GetIDByScriptName(scriptname)
local fp, cont = reaper.GetResourcePath()..'/reaper-kb.ini'
local f = io.open(fp, 'a+')
if not f then return else cont = f:read('a') f:close() end
scriptname = scriptname:gsub('Script:%s' ,''):gsub("[%(%)%.%%%+%-%*%?%[%]%^%$]", function(c) return "%" .. c end)
for line in cont:gmatch('[^\r\n]+') do if line:match(scriptname) then return line:match('RS[%a%d]+') end end
end
ID = GetIDByScriptName('Script: Argitoth_Select items with color of selected items.eel')
if update_gfx then -- cначала определяем триггер, по которому в какой-либо из буферов будет писаться графика
gfx.dest = 1 -- номер буфера 1..32 (кажется)
gfx.setimgdim(1, -1, -1) -- этим я сбрасываю графику внутри этого буфера, иначе она будет писаться поверх того, что уже есть
gfx.setimgdim(1, w, h) -- определяем размеры записываемой графики
gfx.a = 1
gfx.rect(0,0, w,h) -- рисуем что требуется
end
gfx.dest = -1 -- -1 - это основной слой
gfx.a = 1 -- альфа для буферов
gfx.blit(1, 1, 0, -- этим вытаскиваем первый буфер и сразу его переворачиваем/обрезаем/сжимаем при необходимости
0,0,w,h,
0,0,w,h,0,0)
function msg(m)
reaper.ShowConsoleMsg(tostring(m) .. "\n")
end
on=0
move=0
function main()
state = reaper.JS_Mouse_GetState(1)
if state > 0 then
if on==0 then x = reaper.GetMousePosition() end
x1 = reaper.GetMousePosition()
on=1
diff = (x1-x)*0.01
msg(diff)
--reaper.Main_OnCommand(1012, 0)
else
on=0
end
reaper.defer(main)
end
main()
и что бы когда мышка остановилась то остановить зум. И если опять начала движение не отпуская конопки то возбновить зум.
function msg(m)
reaper.ShowConsoleMsg(tostring(m) .. "\n")
end
on=0
move=0
function main()
if not bla then bla = 0 end
if not diff then diff = 0 end
state = reaper.JS_Mouse_GetState(1)
if state > 0 then
if on==0 then x = reaper.GetMousePosition() end
x1 = reaper.GetMousePosition()
on=1
diff = (x1-x)*0.01
msg(diff)
if diff ~= bla then
midieditor = reaper.MIDIEditor_GetActive()
if diff < bla then
--reaper.Main_OnCommand(1011, 0)
reaper.MIDIEditor_OnCommand( midieditor,1011)
else
--reaper.Main_OnCommand(1012, 0)
reaper.MIDIEditor_OnCommand( midieditor,1012)
end
bla = diff
end
else
on=0
diff=0
bla=0
end
reaper.defer(main)
end
main()