Нет, трим все равно не даст при перемещении не резать, только если отключать трим.Можно сделать что бы левый (не выделенный) айтем не обрезался, а был просто как бы замьютирован под правым? А обрезался он только тогда, когда я его выделю? Ну и он уже как "Мастер" становиться, а правый/не выделенный теперь тоже не должен обрезаться под левым?
local function SetToggleButtonOnOff(numb);
local _,_,sec,cmd,_,_,_ = reaper.get_action_context();
reaper.SetToggleCommandState(sec,cmd,numb or 0);
reaper.RefreshToolbar2(sec,cmd);
end;
local Tog,bla,bla2;
local function loop();
local GetState = reaper.JS_Mouse_GetState(127);
if GetState&8 == 8 then;
bla2 = nil;
if not bla then;
bla = true;
Tog = reaper.GetToggleCommandStateEx(0,41117);
if Tog > 0 then
reaper.Main_OnCommand(41117,0);
end;
end;
else;
bla = nil;
if not bla2 then;
bla2 = true;
if Tog and Tog > 0 then;
Tog = reaper.GetToggleCommandStateEx(0,41117);
if Tog >= 0 then;
reaper.Main_OnCommand(41117,0);
end;
end;
end;
end;
reaper.defer(loop);
end;
loop();
SetToggleButtonOnOff(1);
reaper.atexit(function()SetToggleButtonOnOff(0)end);
local function SetToggleButtonOnOff(numb);
local _,_,sec,cmd,_,_,_ = reaper.get_action_context();
reaper.SetToggleCommandState(sec,cmd,numb or 0);
reaper.RefreshToolbar2(sec,cmd);
end;
local Tog,bla,bla2;
local function loop();
local GetState = reaper.JS_Mouse_GetState(127);
if GetState&8 == 8 then;
bla2 = nil;
if not bla then;
bla = true;
Tog = reaper.GetToggleCommandStateEx(0,41117);
if Tog > 0 then
reaper.Main_OnCommand(41117,0);
end;
end;
else;
bla = nil;
if not bla2 then;
bla2 = true;
if Tog and Tog > 0 then;
Tog = reaper.GetToggleCommandStateEx(0,41117);
if Tog == 0 then;
reaper.Main_OnCommand(41117,0);
end;
end;
end;
end;
reaper.defer(loop);
end;
loop();
SetToggleButtonOnOff(1);
reaper.atexit(function()SetToggleButtonOnOff(0)end);
А если в настройках проекта установить это ?но звучат оба айтема и я ничего путного не слышу, а только два одновременно звучащих айтема...
Можно - но немного костыльно это мне кажется будет работать.А можно сделать так: я с тримом двигаю правый айтем (в лево), слушаю, но когда хочу его двигать назад (в право), то левый айтем (обрезанный), как бы привязывается к правому, и раздвигается вслед за ним? То есть пустоты не будет...
local function SetToggleButtonOnOff(numb);
local _,_,sec,cmd,_,_,_ = reaper.get_action_context();
reaper.SetToggleCommandState(sec,cmd,numb or 0);
reaper.RefreshToolbar2(sec,cmd);
end;
local function loop();
x,y = reaper.GetMousePosition();
item,take = reaper.GetItemFromPoint(x,y,true);
if item then
GetState = reaper.JS_Mouse_GetState(1)&1;
if GetState == 0 then;
t={}
pos = reaper.GetMediaItemInfo_Value(item,'D_POSITION');
tr = reaper.GetMediaItemInfo_Value(item,'P_TRACK');
CountTrItem = reaper.CountTrackMediaItems(tr);
for i = 1,CountTrItem do
it2 = reaper.GetTrackMediaItem(tr,i-1)
pos2 = reaper.GetMediaItemInfo_Value(it2,'D_POSITION');
len2 = reaper.GetMediaItemInfo_Value(it2,'D_LENGTH');
if pos2+len2 == pos then
t[#t+1]= it2
end
end
else
if #t > 0 then;
pos = reaper.GetMediaItemInfo_Value(item,'D_POSITION');
for i = 1,#t do
pos3 = reaper.GetMediaItemInfo_Value(t[i],'D_POSITION');
len3 = reaper.GetMediaItemInfo_Value(t[i],'D_LENGTH');
newLen = pos-pos3
reaper.SetMediaItemInfo_Value(t[i],'D_LENGTH',newLen);
end
end
end;
end;
reaper.defer(loop);
end;
loop();
SetToggleButtonOnOff(1);
reaper.atexit(function()SetToggleButtonOnOff(0)end);
Так я же для этого сделал удобный скрипт.Мне для концертных плейбеков, песни переключать.
Это точно. Даже почитать Форум и проверить как работает уже кем то написанное не каждый хочет/может.и в итоге как говорится никому не нужно.
Да, я написал ему. Он просто щас очень занят и как бы проблемы эти решаться по ходу не скоро... А работать то с комфортом хочется уже вчера) А существующий mpl RegionManager поправить нельзя? Типа без доступа к его библиотекам никак?@Hobot, На данный скрипт потребуется очень много времени и сил, (потому что у меня нет ни каких заготовок GUI), к сожалению у меня в данный момент нету столько времени.
Да и к тому же для чего делать то что уже есть ?
Так вы обратитесь к Михаилу на прямую, что бы он исправил это, что то может и исправит. Или посмотрите на скрипт @Aleksandr Oleynik.
Да и вообще что касается GUI в рипере, то я за эти скрипты не берусь, потому что писать всё гуи с нуля, как по мне, то это мартышкин труд, который не грамма на ценится. Ну а писать свою библиотеку - это очень сложно и долго (для меня по крайней мере) и в итоге как говорится никому не нужно.
Прошу прощения, что не видел! Очень очень крутой скрипт, но есть несколько нюансов про которые я в той ветке и написал. Спасибо!Так я же для этого сделал удобный скрипт.
Рипер для плэйбэков
Script: CS_GoToTime.lua@Archie's, доброго времени!
Такой вот вопрос: существует ли такой скрипт или экшен, в который я могу забить время (минуты/секунды), шлёп - и курсор оказывается в этом месте?
Да нет. Это не то... Точнее то, но там очень "странно" надо время вводить. Почему то задом наперёд Сначала секунды, потом минуты - короче меня это не ускорило, а затормозило... Короче: баня, а через дорогу - раздевалкаScript: CS_GoToTime.lua
Нормально там всё вводится. В значениях, которые на тайм лайне в данный момент. Вводится всё обычно, цифры просто по мере ввода сдвигаются влево.Да нет. Это не то... Точнее то, но там очень "странно" надо время вводить. Почему то задом наперёд Сначала секунды, потом минуты - короче меня это не ускорило, а затормозило... Короче: баня, а через дорогу - раздевалка
Вот то что надо!
Добавил - параметр "Previous_input", по умолчанию отключен в скрипте.@Archie's, а самое крутое было бы если последний набор сохранялся. Переместил, после набора, курсор в другое место, вызвал скрипт, и уже без набора жмёшь Enter и он на прежнем месте...
Будем считать что 10 часовой трек мы делать не будем, а разобьём его по 5 часов. При редактировании таких проектов (более 10 часов), я бы так и поступил. Такой проект очень медленно ворочается, да просто смысла нет в нём. Всегда потом можно соединить@smrz1, Смотри, ты хочешь избавится от разделителей чисел. Хорошо, а как скрипту понимать тогда, где какие числа? Допустим где минуты, где секунды, часы и т.д. ? Хорошо, можно ориентироваться так: Первая цифра - это часы, вторая, третья - это минуты,четвертая пятая - это секунды ,ну и остальные - это миллисекунды. А если нужно прыгнуть на десятый час, то как тут быть? Скрипт уже этого не поймет, и подумает что ты ввел 1 час, а не десять часов.