Все - вроде понял в чем дело и дело вовсе не в скрипте, как мне кажется.
У тебя наверное включен экшен "Options: Correct overlapping notes while editing", это он и режет твои ноты. Отключи его и все ноты останутся на месте.
скопируй руками все миди айтемы на отдельный трек, выдели их и запусти экшен Item: Glue items. Потому что в скрипте клеит именно этот экшен.
Если вручную так же пропадут ноты, то это значит с экшеном что то не так и нужно писать разрабам.
Нет... все таки у меня какая та муть..Сейчас сохранил эти миди.Полностью затер портейбл,накатил чистый.Закинул в проект,там склеились правильно.Но что же тогда может быть,если "overlap" отключен..
Удивительно,но когда выставил на всех выделенных айтемах "Items Always Mix",склеилось правильно ,как на чистом конфиге!Но не следить же за этим постоянно?Я вообще не понимаю зачем мне это надо если честно,просто выясняю суть))
Скажите, а возможно ли сделать переключение треков через Ttrack list в midi редакторе? Хотелось бы не покидать эту рабочую зону и переходить на другую дорожку при необходимости. Меняются только item'ы. Жизненно необходима такая фича)
Но таким способом сам трек не выделяется или у меня что то не так работает? У меня трек отображается слева, как в лоджике, и находясь в midi редакторе и используя такой вариант переключения трек не меняется.
Скажите, а возможно ли сделать переключение треков через Ttrack list в midi редакторе? Хотелось бы не покидать эту рабочую зону и переходить на другую дорожку при необходимости. Меняются только item'ы. Жизненно необходима такая фича)
Могу предложить следующий вариант. В разделе main action list - на экшн SWS: Select only track(s) with selected item(s) назначит хоткей. Потом в разделе midi editor action list этот же хоткей добавить к Misc: Pass through key to main window. Выделив в track list нужный айтем жать этот хоткей.
@BRG, но у меня стойкое ощущение, что если бы знать, для чего нужна эта фича, то можно было бы найти более простое решение. По сути, можно, не выходя из миди редактора, работать со всеми миди айтемами. Проблемно только между тейками переключаться. Открыть инструмент, не выходя из миди эдитора - тоже можно. Зачем выделять трек, на котором находится айтем, в котором производятся действия? Понятно, что для каких-то дальнейших действий. И тоже, при каких именно условиях должен выделиться трек, когда айтем выделен, или когда он просто готов к редактированию? То есть его миди ноты.
@Archie's, при схеме отображения микшера, которую использует @BRG, (а-ля Лоджик) нужно чтоб при работе с атемом конкретного трека этот трек становился видимым в окне микшера, а там он ОДИН.
Тут поможет только постоянно висящий в фоне скрипт, который следит за состоянием аранжировки.
@Aleksandr Oleynik, пока не посмотрел, но просто интересно, понял я или нет. Вот так надо?
А не... У меня тут проблемка получилась... Трек то выделяется, но, почему-то в микшере не изменяется. Думаю, из-за того, что в этот момент активен миди эдитор, а не главное окно...
Вот почти получилось))))) В TCP выделение меняется, но в микшере - нет. Уже выше написал, что видимо из-за того, что главное окно не активно. Пока не знаю как выйти из положения. Это уже только к Archie`s.
@Archie's, Не получается скрипт завести, вот такую ошибку выбивает Archie_Track; selected tracks (popup menu).lua:121: attempt to call a nil value (field 'JS_Mouse_GetState')
Там просто модификатор мыши настроен, чтобы при шифте у меня, например, двойной щелчёк левой по неактивной ноте. делает её активной, и весь тот тейк, но не выделяет айтем. А выделение трека от активного тейка я уже доделал. Жаль, что в микшере выделенный трек не подставляется на нужное место при этом. Так вопрос был бы решён.
Я просто взял Archie скрипт, который открывает инструмент из миди эдитора и переделал, чтобы он не открывал инструмент, а выделял этот трек, и тоже посадил его на модификатор. Одним действием переходишь в другой айтем, другим выделяешь трек, на котором этот айтем находится.
Если что, вот такой код у меня получился. На всякий случай. Понятно, что тут не всё правильно.
Код:
local function No_Undo()end; local function no_undo()reaper.defer(No_Undo)end
-----------------------------------------------------------------------------
local MidiEditor = reaper.MIDIEditor_GetActive()
if not MidiEditor then no_undo() return end
local Take = reaper.MIDIEditor_GetTake(MidiEditor)
if not Take then no_undo() return end
local Take_Track = reaper.GetMediaItemTake_Track(Take)
if Take_Track then
reaper.Main_OnCommand(40297,0)
reaper.SetTrackSelected( Take_Track, true )
end
Не получается скрипт завести, вот такую ошибку выбивает Archie_Track; selected tracks (popup menu).lua:121: attempt to call a nil value (field 'JS_Mouse_GetState')