Archie-reascript: обсуждение, пожелания, сообщения об ошибках.

Тема в разделе "Cockos Reaper", создана пользователем Archchie, 25 ноя 2018.

  1. YuriOl

    YuriOl Active Member

    Регистрация:
    6 май 2005
    Сообщения:
    617
    Симпатии:
    150
    Пол:
    Мужской
    Адрес:
    Луганск
    Где я это писал?
    Перестаньте писать ерунду!
     
  2. smrz1

    smrz1 Banned

    Регистрация:
    25 янв 2010
    Сообщения:
    908
    Симпатии:
    125
    @YuriOl, @Microtonic, вообще то мы в теме Archchie - где написано: обсуждение, пожелания...
    Microtonic высказал своё пожелание - всё в рамках темы... YuriOl - ответ или совет на вопрос, Archchie даст сам как автор скриптов и темы.
    Нужные кастомы не существуют - их сами создают - это другая тема, ну и Microtonic - YuriOl не писал, что скрипты не нужны, хотя совет его мне вообще не понятен и логика тоже.:eek:
    Если бы то что делают его скрипты, можно было бы сделать кастомом - давно бы сделали, только это вообще не так (хотя зачем я пишу очевидные вещи?).

    п. с. YuriOl, за долгое время я много чего от тебя полезного для себя узнал (спасибо тебе за это отдельное), но как то раньше не замечал за тобой такую нервозность - может случилось что?o_O Студия цела?;)
     
    Последнее редактирование: 13 май 2019 в 15:22
  3. YuriOl

    YuriOl Active Member

    Регистрация:
    6 май 2005
    Сообщения:
    617
    Симпатии:
    150
    Пол:
    Мужской
    Адрес:
    Луганск
    :) Слава Богу пока всё цело, но у на война... Живём пока одним днём, но с надеждой!!!
    Я имел в виду, что скрипты наверное тоже не стОит сильно перегружать - типа всё в одном флаконе, а то начнутся всякие сюрпризы типа фризов или ещё чего.. Может я и не прав, но лёгкость и стабильность сабжа как раз из-за краткости! имхо :)
     
    Archchie нравится это.
  4. Archchie

    Archchie Well-Known Member

    Регистрация:
    24 окт 2017
    Сообщения:
    635
    Симпатии:
    360
    Я когда первый раз рипер открыл, тоже не понял, что это за хренотень
    В принципе как описал @Microtonic, то это да, они визуально помогают ориентироваться, но - на начальном этапе, а как только становится много треков в папке, то они ну уж много места занимают и прям аж бесить начинают:mad:
    Короче я тоже не понимаю, для чего они нужны.

    Полностью согласен.

    @smrz1, @Microtonic, - @YuriOl, абсолютно прав!
    Вот вы даже на абсолютно ровном месте начали спорить, потому что @Microtonic, нужен горизонтальный скролл, а @YuriOl, не нужен.
    Небольшой пример в защиту @YuriOl:
    Вот есть например два скрипта "горизонтальный зум"- его используют например 100 человек и "вертикальный зум" - его например тоже использует 100 человек, уже 200 человек, и далее если кому то нужно и то - и то, то делают кастом, например 50 чел.
    Итог: Мы сделали добро 250 человекам!!!
    А если я добавлю в скрипт и то - и то, то скриптом будет пользоваться 50 человек, а те 200 перестанут, потому что им это не нужно, а редактируют скрипты, с типо настройками внутри два человека из двухста.:eek:
    Конечно я цифры преувеличил, но суть понятна.

    Это не плохо, а даже хорошо, когда все под свои нужды в одном...:)

    Это наоборот хорошо, когда вы пишете, что не надо этого делать или надо, потому как один человек попросил у меня исправить что то, я это исправил, а другим десяти это вообще не нужно было и они перестали использовать скрипт, а если бы все десять написали не делай этого, как это сделал @YuriOl, то я бы и не стал это исправлять, так как большая часть против, ну а если возможно, то просто бы добавил настроечку и показал, что нужно исправить и все остались бы довольны, как говорится и овцы целы и волки сыты.;)
    ------------------------
    @Microtonic,
    Archie_Var; Zoom TCP and Arrange to fit screen.lua
    Archie_Var; Zoom TCP or Arrange Depending on focus to fit screen.lua
     
    Последнее редактирование: 13 май 2019 в 16:03
  5. smrz1

    smrz1 Banned

    Регистрация:
    25 янв 2010
    Сообщения:
    908
    Симпатии:
    125
    @Archchie, Только что вопрос уже печатал: "ну если есть у тебя такой же скрипт по горизонтали то было бы здорово" и вот решение. Пока не решил как мне удобнее и полезнее в работе:
    Archie_Track; Zoom tracks in TCP to fit screen (Ctrl + Click save restore) и Script: Archie_Var; Zoom TCP or Arrange Depending on focus to fit screen.lua по отдельности
    или просто один Script: Archie_Var; Zoom TCP and Arrange to fit screen.lua - он удобен для возвращения в "исходную"... Это только в деле понять можно.

    п. с. Только что:
    вдруг Zoom TCP or Arrange Depending on focus to fit screen стал работать как Zoom tracks in TCP to fit screen (я имею в виду основную функцию - масштабировать треки по размеру экрана). Один в один. Но в начале Zoom TCP or Arrange Depending только аранж по горизонтали в экран ставил (вертикаль не трогал). Что могло случится?
    Правда я ещё использовал в тесте View: Restore previous zoom level, что бы на шаг назад окатываться (Ctrl+Z тут не помогает)
     
    Последнее редактирование: 13 май 2019 в 21:34
  6. smrz1

    smrz1 Banned

    Регистрация:
    25 янв 2010
    Сообщения:
    908
    Симпатии:
    125
    @Archchie, может это быть потому что у меня Reaper v.5.973? Но сначала то он работал! А потом перестал... Почему? В скрипте у тебя написано что нужен v.5.975... Там какая то принципиальная разница?
     
  7. smrz1

    smrz1 Banned

    Регистрация:
    25 янв 2010
    Сообщения:
    908
    Симпатии:
    125
    @YuriOl, тут я с тобой полностью согласен - многозадачность скрипта только путает (как минимум). Я о Zoom tracks in TCP to fit screen не знал и только вчера себе его поставил. Его функция - масштабировать треки по размеру экрана, вообще должна быть в штатных экшенах (имхо) и кстати, в этом скрипте, его запоминания - мне они не подошли... Использую View: Restore previous zoom level, он удобнее для меня, более понятен. Может просто не привык и не вижу в каких ситуациях это применять

    п. с. Дай Бог что бы с твоим домом и студией было бы всё в порядке:)... Мои предки мочили этих тварей, но видимо не домочили.:mad:
     
    YuriOl и Archchie нравится это.
  8. Archchie

    Archchie Well-Known Member

    Регистрация:
    24 окт 2017
    Сообщения:
    635
    Симпатии:
    360
    Это как???:eek:

    Вот тут специально не буду ничего говорить, а скажу - Прочти название скрипта и поймешь, а если не поймешь, то потом скажу. А то вы "молодой человек" обленились совсем, что даже лень прочесть названия скрипта!!!;):)
    Если бы была принципиальная разница, то скрипт бы выдал ошибку и не работал!

    Вот и я о том же;)

    А ты понял как оно работает? Я на прошлой странице @YuriOl объяснял как это работает, он тоже запутался, хоть и в скрипте и описание есть.
    Скрипт запоминает какое то определенное состояние и держит до тех пор, пока ты не захочешь восстановить, а "Restore previous zoom level" делает просто отмену, это совершенно разные функции.
    ----------------
    @Microtonic,
    Archie_Var; Zoom TCP and Arrange to fit screen.lua
    Archie_Var; Zoom TCP and Arrange to fit screen(Ctrl + Click save restore)Smart(`).lua
    Archie_Var; Zoom TCP or Arrange Depending on focus to fit screen.lua
    Archie_Var; Zoom TCP or Arrange Depending on focus to fit screen (Ctrl + Click save restore)Smart(`).lua
     
    Последнее редактирование: 13 май 2019 в 19:10
  9. YuriOl

    YuriOl Active Member

    Регистрация:
    6 май 2005
    Сообщения:
    617
    Симпатии:
    150
    Пол:
    Мужской
    Адрес:
    Луганск
    @Archchie, отличные скрипты сделал, особенно по зуму!!! Глаза и нервы теперь радуются! :) Дай Бог тебе здоровья! Одно только не пойму. Какого лешего это было не сделать в стоке?)
    Ты там на официальнике предложи свои идеи Джастину. Это заслуживает внимания, а от меня уважения!!!
    Скрипт - Script: Archie_Var; Zoom TCP and Arrange to fit screen.lua у тебя без скобочек в конце (`), хоть имеет настройки. Это ты забыл дописать в названии или это только обозначает расширенные возможности?
     
    Последнее редактирование: 13 май 2019 в 21:03
    Archchie нравится это.
  10. smrz1

    smrz1 Banned

    Регистрация:
    25 янв 2010
    Сообщения:
    908
    Симпатии:
    125
    Как ни странно - понял. По началу меня огорошило что при нажатии Сtrl+Скрипт изменённый зум сбрасывается по своему предназначению (все треки на весь экран), я не просто скрипт почитал (и толком ничего не понял), ещё и гифку посмотрел...

    Мне, почему то показалось, что основная его функция это запоминать позицию (Сtrl+Скрипт:rolleyes:) так как именно этого давно хотел, а View: Restore previous zoom level - это как Сtrl+Z - по шагу назад... А шагов может быть много.
    Но когда понял что основное это "все треки на весь экран" - всё стало ясно и понятно:)(именно это мне и понравилось). Сама идея Сtrl+Скрипт интересная, но восстанавливает только зум по высоте, а это всего одно движение скроллом, Сtrl+Shift+Скрипт - то же не сложно.

    Попробовал в быстрой работе - через 5 минут я уже был так далеко в своих действиях, что просто то что я запомнил через Сtrl+Скрипт - не имеет уже ни какой ценности - просто зум и всё! За 15 - 20 секунд я столько раз крутанул зумом что не сосчитать, в этом нет ничего важного - обычные движения.
    А вот время от времени оглядеться - тут Zoom tracks in TCP to fit screen - выше всех похвал. И тут же вернуться одним нажатием - экшен Restore previous zoom level. Всё просто и быстро. Для меня.
    (было бы круто, имхо, если бы скрипт работал так: шлеп по кнопке - треки на весь экран, шлеп ещё - вернулся назад, но кастом такой не получается).

    Другое дело, если бы был отдельный скрипт, который запоминал бы полостью позицию не только по вертикали, но и по горизонтали, курсору, активации трека и айтема - то есть, вернуться точно туда где был - это было бы просто супер! Навряд ли найдётся человек, реально работающий в DAW (не только в Рипере) который скажет что это ему не надо...

    Пока что, никаким Сtrl+Z, Restore previous zoom level и т. п. - этого не сделать:(. Ну разве что Save project:D - однако это всё шаги назад, а тут надо другое - вернуться на старое место не отменяя уже сделанного...
     
    Последнее редактирование: 13 май 2019 в 21:05
  11. YuriOl

    YuriOl Active Member

    Регистрация:
    6 май 2005
    Сообщения:
    617
    Симпатии:
    150
    Пол:
    Мужской
    Адрес:
    Луганск
    Сначала тоже так озадачился, но потом
    и я успокоился)) Всё логично! :)
     
    smrz1 нравится это.
  12. Microtonic

    Microtonic Любознательный

    Регистрация:
    21 сен 2008
    Сообщения:
    510
    Симпатии:
    111
    Пол:
    Мужской
    Адрес:
    Москва
    @Archchie, вот это я понимаю отзывчивость, это просто восхитительно. :) Обновил репозитории и тут такая радость под мой заказ. Благодарю. :) Вы Монстр! Надо однозначно донатить!

    К слову о скриптах. Если правильно понял, то:
    Этот скрипт Script: Archie_Var; Zoom TCP and Arrange to fit screen(Ctrl + Click save restore)Smart(`).lua
    работает, вне зависимости от того, где у нас фокусировка (TCP - выбрана дорожка) или в Аранжировке (выбраны айтемы, допустим). Будет делаться Зум по вертикали и Зум по горизонту в пределах лупа.

    Этот скрипт работает более хитро: Script: Archie_Var; Zoom TCP or Arrange Depending on focus to fit screen (Ctrl + Click save restore)Smart(`).lua
    Если фокусировка в TCP (допустим, выбраны дорожка), то будет работать только вертикальный зум, словно мы делаем прошлый скрипт - Script: Archie_Track; Zoom tracks in TCP to fit screen (Ctrl + Click save restore)Smart(`).lua
    Если фокусировка на аранжировке (допустим, выбраны айтемы), то у нас будет работать только горизонтальный зум в пределах границ лупа.

    - если нам нужно только расширить по вертикали - мы кликаем в TCP и запускаем скрипт.
    - если нам нужно только расширить по горизонтали - мы кликаем в аранжировку (выбираем любой айтем) и запускаем скрипта.

    P.S. за идею - отступов слева и справа, отдельное Спасибо! Для широкоформатных мониторов с диагональю 38 дюймов это очень актуально. ;)

    P.S.S. Script: Archie_Var; Zoom TCP or Arrange Depending on focus to fit screen (Ctrl + Click save restore)Smart(`).lua
    почему-то изначально, думал, что кликать мышкой не нужно, т.е. скрипт понимал бы где находится мышка: над TCP или над аранжировкой и уже по разному бы отрабатывал.
     
    Последнее редактирование: 13 май 2019 в 23:25
    Archchie и smrz1 нравится это.
  13. smrz1

    smrz1 Banned

    Регистрация:
    25 янв 2010
    Сообщения:
    908
    Симпатии:
    125
    Вот спасибо! А я так, почему то и не понял эту закономерность про горизонталь. По началу горизонталь работала, а потом вдруг "перешла" на вертикаль:eek:
    Всё думал - почему этот скрипт работает как Script: Archie_Track; Zoom tracks in TCP to fit screen. А ларчик просто открывался...:D
     
  14. Archchie

    Archchie Well-Known Member

    Регистрация:
    24 окт 2017
    Сообщения:
    635
    Симпатии:
    360
    Забыл дописать, Спасибо!
    Это удобно (как мне кажется) в таких ситуациях: Навел порядок, т.е. сделал треки каких надо размеров, что бы было удобно ориентироваться, одни по уже, другие по шире и сохранил с ctrl+click треки сохранились и забыл про это. Далее в процессе работы, через какое то время навел беспорядок, треки по растягивал, по изменял или сделал все одинаковые при помощи ctrl+колесо. И что бы вернуть порядок, то опять ctrl+скрипт и все порядочек восстановлен.
    Если понять о чем я говорю, то можно локом треков вообще не пользоваться, а обойтись одним этим сохранением.

    Не совсем понял, что ты имеешь в виду, но либо вот это: есть в стандартных экшенах "View: Toggle track zoom to maximum height",
    либо вот это: в скрипте можно отключить CTRL и будет скрипт работать как тогле: Сохранил-восстановил,Сохранил-восстановил и т.д. или постоянно запускай скрипт с зажатым ctrl и все.

    Archie_Var; Zoom TCP and Arrange to fit screen(Ctrl + Click save restore)Smart(`).lua
    А это разве не оно???
    ctrl + клик позиция сохранена, далее делай что хочешь, затем ctrl + клик и вернулся туда, где сохранился.

    Огромное Спасибо за донатик!!!

    Да и по вертикали и по горизонтали одновременно.
    Если лупа и тайм селекшена нету, то всю аранжировку(весь проект) будет зумить под размер монитора.

    Да абсолютно верно.
    Вот всю кантору спалили, я так хотел что бы @smrz1, сам догадался почему у него сначала горизонталь работала, а потом вертикаль стала, т.к. слова "Depending on focus" в скрипте сами за себя говорят.
    Да абсолютно верно.
    Выбирать айтем не обязательно, просто клик в районе аранжа и все.

    Нет, это же скрипт "В зависимости от фокуса", а не "Под курсором мыши".
    Но если хочешь, то могу переделать на "Под курсором мыши" и он будет понимать где курсор мыши находится, но минус этого будет в том, что ты не сможешь запустить этот скрипт из тулбара или экшен листа, его надо будет назначать только на шоткат .

    В скрипте же написано "Depending on focus - В зависимости от фокуса" уже должно быть понятно.
     
    YuriOl нравится это.
  15. smrz1

    smrz1 Banned

    Регистрация:
    25 янв 2010
    Сообщения:
    908
    Симпатии:
    125
    @Archchie, Тут, как обычно, нюанс по поводу:
    Выбрал вот этот скрипт (мне он оптимально подошёл) - Script: Archie_Var; Zoom TCP and Arrange to fit screen(Ctrl + Click save restore)Smart
    (`).lua
    Но при тестировании такая вещь проявилась - действие: Две папки Drum set и All Instruments.
    1) Применяю скрипт в формате Ctrl+Скрипт к папке Drum set. Закрываю папку
    2) Открываю папку All Instruments, меняю зум, жму Ctrl+Скрипт - все под-папки её становятся по факту разлоченными, но галка Lock track height
    стоит и скрипт включен. Ну и сам скрипт минимизирует треки, но под-папки не трогает (они не минимизируются). При скролле все работают как разлоченные (галки стоят)
    3) Закрываю папку All Instruments, открываю папку Drum set - там все папки залочены и правильно работают! Скрипт срабатывает и всё работает как
    надо.
    4) Если, после перезагрузки начать делать тоже самое, но с папки All Instruments, происходит тоже самое, но уже с папкой Drum set...
    5) Непонятно... Беда...:eek:
    Скрипт, приблизительно повторяет то что я написал:cool:
    Вот скрипт:
    1234.gif
     
    Последнее редактирование: 14 май 2019 в 11:30
  16. Archchie

    Archchie Well-Known Member

    Регистрация:
    24 окт 2017
    Сообщения:
    635
    Симпатии:
    360
    Я твои гифки вообще не понимаю, для чего на паузу то нажимать, я ориентируюсь по твоему курсору в гиф и по картинки, а ты его уводишь на паузу, и резко другая картинка, я же не экстрасенс, что бы знать, что ты там понажимал во время паузы, да и как мне повторить твои действия, если твои действия прыгают от одного до другова с отключением картинки.
    Лучше вообще гифки не делать, чем такие делать.
    Я кстати тебе уже не первый раз говорю про паузу в гифках.
    В следующий раз, прежде чем записывать гиф, Сосредоточься, Настройся, что бы не нажимать на паузу и начинай записывать и курсор желательно не когда не убирать за рамки гиф, с курсором у тебя в гиф вроде все в порядке, только перемещаешь иногда очень быстро.
    --------------
    Исправил!
     
  17. smrz1

    smrz1 Banned

    Регистрация:
    25 янв 2010
    Сообщения:
    908
    Симпатии:
    125
    @Archchie, Ты на сцене работал? Я это не переношу... Потому что у нас был классный друг звукорежиссёром, но звук настраивал мерзкий... И мне, перед концертом приходилось садиться за пульт и рулить звук... Вынуждено всё это было. До этого - армия и правой руке - звиздец с поздним рецедивом. Цела, но для ковыряния в носу - с гитарой - всё, кранты...

    Это было так давно что уже дети выросли. Звук - моя профессия, но кисть правая не даёт возможности делать быстрые и точные движения. Я даже на левую руку пытался переучиться - получилось, но так же по дурацки как и на вылеченной левой.

    Но я вроде словами всё описал по скрипту. С гифкой погорячился, буду иметь в виду,что без пауз:) , но будет медленно...
     
  18. Archchie

    Archchie Well-Known Member

    Регистрация:
    24 окт 2017
    Сообщения:
    635
    Симпатии:
    360
    Печалька:(
    Не знал! Извини!
    Тебе надо отдельный тачпад(как на ноуте, только для компа), что бы левой рукой управлять, по любому будет удобнее.
    Я вот даже представить не могу, как можно взять мышь в левую руку, мне от одной мысли неудобно становится, а на ноуте на тачпаде мне без разницы какой рукой управлять, я как левой, так и правой рукой управляю им, единственное что не удобно левой рукой, так это раздвигать пальцы, когда что то увеличиваешь.
    Вот я гиф со словами совместил и понял в чем проблема, а по отдельности не понял бы ничего.
    Пусть будет лучше медленнее но понятно, чем быстро или с паузами и не понятно. И медленнее даже лучше будет ориентироваться по гиф - что ты там делаешь.
     
  19. smrz1

    smrz1 Banned

    Регистрация:
    25 янв 2010
    Сообщения:
    908
    Симпатии:
    125
    @Archchie, Спасибо. Всё таки я правой работаю теперь, просто медленно... А объясняться удалённо всегда не просто - верхний/нижний - первый/последний;)
    Сегодня день такой странный:(. НО:rolleyes:;):)!!!
     
    Archchie нравится это.
  20. YuriOl

    YuriOl Active Member

    Регистрация:
    6 май 2005
    Сообщения:
    617
    Симпатии:
    150
    Пол:
    Мужской
    Адрес:
    Луганск
    @Archchie, а возможно сделать скрипт такой же как и Track: Lock/unlock track height, но чтобы на кнопке был виден статус. Залочен - горит, нет - не горит?
     
  21. Microtonic

    Microtonic Любознательный

    Регистрация:
    21 сен 2008
    Сообщения:
    510
    Симпатии:
    111
    Пол:
    Мужской
    Адрес:
    Москва
    @Archchie, возможно ли сделать так, чтобы при загрузке проекта, скрипт считывал положения Соло и Мьют.

    Скрипты серии: Script: Archie_Group; Toggle Solo Unsolo all tracks in group 01 (`).lua

    У меня сейчас работает так:
    1. Нажимаю кнопку скрипта на туллбаре, она горит, соло работает.
    2. Сохраняю проект.
    3. Закрываю Рипер.
    4. Открываю Рипер.
    5. Открываю проект.
    6. Кнопка скрипта на туллбаре не горит, но дорожка при этом у меня в режиме "Соло".

    - я ожидаю, что при загрузке проекта, кнопка на туллбаре будет "гореть", т.е. сообщать мне, что группа 1 у меня в положении Соло.
     
  22. Archchie

    Archchie Well-Known Member

    Регистрация:
    24 окт 2017
    Сообщения:
    635
    Симпатии:
    360
    Возможно!
    При выделении нескольких треков:
    1. При запуске скрипта если у нескольких треков включен лок, а у нескольких не включен, то:
    1.1 У невключенных включить, а у включенных выключить? так сказать местами поменять.
    1.2 Взять статус первого выделенного и применить ко всем остальным?
    1.3 Если есть хоть один включенный, то отключить?
    1.4 Если есть хоть один выключенный, то включить?
    1.5 Если ..........​
    2. Статус кнопки как подсвечивать?
    2.1 Если есть хоть один включенный то зажечь?
    2.2 Если есть хоть один выключенный то потушить?
    2.3 Взять статус первого выделенного и отталкиваться от него?
    2.4 или ........​
    ---------------------------

    К сожалению в рипере такой возможности нет, при перезагрузке рипера абсолютно все скрипты будут иметь статус off, рипер не умеет запоминать статус у скриптов, тут только один выход - добавить скрипт в автозагрузку, но если ты добавишь скрипт в авто загрузку, то произойдет следующее, если у тебя соло включено, то при загрузке рипера, авто запуск запустит скрипт и тем самым все соло отключит, то есть произойдет противоположное, тогда надо сделать кастом из двух одинаковых скриптов, что бы при авто запуске, если соло включено, то скрипт сначала отключит и тут же вторым действием включит.
    Но имей в виду, это будет корректно работать, если на всех треках в группе стоит или не стоит соло, а если ты включил соло скриптом и потом на каком либо треке снимешь соло, скрипт соответственно прекратит работу, и соло будет не на всей группе, так вот при перезагрузке произойдет следующее, скрипт сначала включит соло на всей группе и затем выключит соло на всей группе, т.е при авто запуске, если соло не на всей группе будет стоять, то остальные соло тоже слетят.
     
    YuriOl нравится это.
  23. YuriOl

    YuriOl Active Member

    Регистрация:
    6 май 2005
    Сообщения:
    617
    Симпатии:
    150
    Пол:
    Мужской
    Адрес:
    Луганск
    @Archchie, 1. - 1.3 Если есть хоть один включенный, то отключить.
    А подсветку наверное - 2.1 Если есть хоть один включенный то зажечь
    А вообще-то да, вариантов много, даже не подумал! :) И те и те могут понадобиться, но мною выбранные вроде как компромисс..)) Мне часто нажимая на один трек хочется видеть статус лока.
     
  24. Archchie

    Archchie Well-Known Member

    Регистрация:
    24 окт 2017
    Сообщения:
    635
    Симпатии:
    360
    1.-1.3; 2.1;
    PHP:




        
    --============== FUNCTION MODULE FUNCTION ========================= FUNCTION MODULE FUNCTION ============== FUNCTION MODULE FUNCTION ==============
        
    local Fun,Load,Arc reaper.GetResourcePath()..'/Scripts/Archie-ReaScripts/Functions'Load,Arc pcall(dofile,Fun..'/Arc_Function_lua.lua');--====
        if 
    not Load then reaper.RecursiveCreateDirectory(Fun,0);reaper.MB('Missing file / Отсутствует файл !\n\n'..Fun..'/Arc_Function_lua.lua',"Error",0);
        return 
    end; if not Arc.VersionArc_Function_lua("2.4.1",Fun,"")then Arc.no_undo() return end;--=====================================================
        --============== FUNCTION 
    MODULE FUNCTION ====================== FUNCTION MODULE FUNCTION ============== FUNCTION MODULE FUNCTION ==============
       
       
        
    Arc.HelpWindowWhenReRunning(2"Arc_Function_lua"false);
        
    local function main();
            
    local ProjectState2,Toggle2;
            
    local function loop();
                
    local ProjectState reaper.GetProjectStateChangeCount(0);
                if 
    ProjectState2 ~= ProjectState then;
                    
    ProjectState2 ProjectState;
                    -----------
                    
    local CountSelTrack reaper.CountSelectedTracks(0);
                    if 
    CountSelTrack == 0 then Toggle 0 end;
                    
    local Toggle;
                    for 
    1CountSelTrack do;
                        
    local SelTrack reaper.GetSelectedTrack(0,i-1);
                        
    local heightLock reaper.GetMediaTrackInfo_Value(SelTrack,"B_HEIGHTLOCK");
                        if 
    heightLock == 1 then Toggle break else Toggle 0 end;
                    
    end;
                    if 
    Toggle ~= Toggle2 then;
                        if 
    Toggle == 1 then;
                            
    Arc.SetToggleButtonOnOff(1); 
                        else;
                            
    Arc.SetToggleButtonOnOff(0); 
                        
    end;
                        
    Toggle2 Toggle;
                    
    end;
                    
    t=(or 0)+1;
                
    end;
                
    reaper.defer(loop);
            
    end;
           
            
    local TrLock;
            
    local CountSelTrack reaper.CountSelectedTracks(0);
            if 
    CountSelTrack 0 then;     
                for 
    1CountSelTrack do;
                    
    local SelTrack reaper.GetSelectedTrack(0,i-1);
                    
    local heightLock reaper.GetMediaTrackInfo_Value(SelTrack,"B_HEIGHTLOCK");
                    if 
    heightLock == 1 then TrLock true break end;
                
    end;
               
                if 
    TrLock then TrLock else TrLock 1 end;
                for 
    1CountSelTrack do;
                    
    local SelTrack reaper.GetSelectedTrack(0,i-1);
                    if 
    TrLock == 1 then;
                        
    local height reaper.GetMediaTrackInfo_Value(SelTrack,"I_HEIGHTOVERRIDE");
                        if 
    height == 0 then;
                            
    height reaper.GetMediaTrackInfo_Value(SelTrack,"I_WNDH");
                            if 
    height 24 then;
                                
    height nil;
                            
    end;
                        
    end;
                        if 
    height then;
                            
    reaper.SetMediaTrackInfo_Value(SelTrack,"I_HEIGHTOVERRIDE",height);
                            
    reaper.SetMediaTrackInfo_Value(SelTrack,"B_HEIGHTLOCK",1);
                        
    end;
                    else;
                        
    reaper.SetMediaTrackInfo_Value(SelTrack,"B_HEIGHTLOCK",0);
                    
    end;
                
    end
            
    end;
            
    loop();
        
    end;
        
    main();
    --------------------
    В реапаке:
    1. Берет статус последнего тронутого, если последний тронутый не выделенный, то берет статус первого выделенного и отталкивается от него.
    2. Подсветка так же, последний тронутый или первый выделенный. Если у этого трека включен лок то кнопка горит.
     
    Последнее редактирование: 17 май 2019 в 17:38
  25. YuriOl

    YuriOl Active Member

    Регистрация:
    6 май 2005
    Сообщения:
    617
    Симпатии:
    150
    Пол:
    Мужской
    Адрес:
    Луганск
    @Archchie, Спасибо! :)
    Закономерности не поймал пока, но иногда выскакивает такое предупреждение в обоих скриптах. Screenshot_1.png
    Не всегда.., но заметил это после того, как кликаю по пустой панели треков, чтобы снять выделения треков или после удаления трека. Всегда - при автозагрузке глобал. Без автозагрузки скрипта, кнопка на залоченных треках не светится, пока не запустишь скрипт.
    И ещё вопрос. В автозагрузку глобал можно только один скрипт загружать?
     
    Последнее редактирование: 17 май 2019 в 13:16
  26. Archchie

    Archchie Well-Known Member

    Регистрация:
    24 окт 2017
    Сообщения:
    635
    Симпатии:
    360
    Насчет ошибки понятно, попозже исправлю, пока что нет времени.
    Ай-я-я-й, а обманывать нехорошо.:) В скрипте, который в предыдущем сообщении, такой ошибки не может быть, т.к. там нету такой функции "IsTrackSelected" эта ошибка может быть только в одном скрипте, в том который в реапаке.
    Я же три сообщения выше объяснял об этом, в рипере невозможно сделать такое, рипер не умеет запоминать состояние скриптов.
    Да - но выход прост: Делаешь кастом и в автозагрузку добавляешь ид кастома, а в кастом уже пихаешь что хочешь.:eek:
     
  27. YuriOl

    YuriOl Active Member

    Регистрация:
    6 май 2005
    Сообщения:
    617
    Симпатии:
    150
    Пол:
    Мужской
    Адрес:
    Луганск
    Может остался из репака включенным... Я же сразу начал проверять всё и вся :) Может параллельно два работали, короче мог и прозевать))
    Сейчас ещё раз вдумчиво)) в загрузку кинул только 1.-1.3; 2.1; всё пока корректно загружается и работает!
    За совет спасибо! Аж стыдно, что я сам не догадался!:rolleyes:
     
    Archchie нравится это.
  28. Archchie

    Archchie Well-Known Member

    Регистрация:
    24 окт 2017
    Сообщения:
    635
    Симпатии:
    360
    @YuriOl, Исправил!
    Я по началу тоже не мог догадаться, вроде элементарная вещь, но на ум мне так и не пришла, пока мне @borisuperful, не подсказал, а когда он мне подсказал, то я так же - как и ты удивился тому, что я до этого не догадался.
     
    YuriOl нравится это.
  29. Supa75

    Supa75 Active Member

    Регистрация:
    21 мар 2017
    Сообщения:
    572
    Симпатии:
    134
    Пол:
    Мужской
    Адрес:
    Днепр, Украина
    @Archchie, не мог бы ты сделать скрипт-тоггл для Midi-Editor, чтобы включать-отключать остановку арранжа (автоскрол) при выделении какого-либо элемента? Чтобы он мог работать во время воспроизведения. Например идет воспроизведение - выделил какую-то ноту, скролл остановился, а при запуске скрипта область арранжа опять переклдючалась в место плей-курсора
     

Поделиться этой страницей