Помогите создать экшн / кастом экшн / скрипт

Тема в разделе "Reaper", создана пользователем @Michael, 2 авг 2015.

  1. belovw

    belovw Well-Known Member

    Регистрация:
    22 апр 2009
    Сообщения:
    5.058
    Симпатии:
    3.256
    Род занятий:
    Звукорежиссура
    Адрес:
    RK Almaty
    action: Go to end of time selection
    action: Go to end of loop
    _____________________

    script by me2beats: Move cursor to nearest grid division
    _____________________

    Поиском бьётся за 10 минут. С вас Коньяк. ))
     
  2. Maestro Sound

    Maestro Sound Active Member

    Регистрация:
    1 ноя 2007
    Сообщения:
    426
    Симпатии:
    33
    @CerberPic,
    С Folder треками не работает
     
  3. Death Buster

    Death Buster Member

    Регистрация:
    28 сен 2012
    Сообщения:
    61
    Симпатии:
    4
    Пол:
    Мужской
    Род занятий:
    Звукорежиссура. Аранжировка. Запись.
    Адрес:
    Санкт-Петербург
    Экшены типа "Go to" перебрасывают play cursor и при использовании кастом экшна, в котором присутствует такое действие проигрывание трека скачет туда-сюда, что вовсе не желательно в моем случае(

    Есть Script: me2beats_Move cursor to start of loop.lua
    он работает как нужно, но нет такого же, чтобы перемещал в конец!(

    Может кто подскажет, как можно скорректировать существующий вышеупомянутый скрипт?
     
  4. Buyan

    Buyan Member

    Регистрация:
    19 апр 2016
    Сообщения:
    80
    Симпатии:
    12
    Пол:
    Мужской
    Род занятий:
    Хобби: Гитара, Флейта, Звукорежиссура.
    Адрес:
    Белая Церковь
    @CerberPic, Я вот тоже озадачился проблемой фризинга, интересная тема.

    Опишите детально пожалуйста, что делает ваш скрипт, в чем его особенность?

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

    Я скрипты в рипер изучаю недавно, мало понимаю, но предыдущий опыт подсказывает, что должно быть какое-то простое и оригинальное решение. Например, в lua вроде есть возможность выполнять внешние приложения, точно не знаю работает-ли это в окружении рипера. Если да, т с файлами можно делать все что угодно посредством командной строки. Но важно понимать на каком этапе возникают проблемы с кириллицей. Если есть возможность запустить например внешний батник, то ему можно передать имена в бинарном виде, а там преобразовать их и произвести необходимые операции. Ну в общем ход мыслей ясен...
     
    Последнее редактирование: 12 дек 2017
  5. Слава

    Слава Member

    Регистрация:
    22 ноя 2006
    Сообщения:
    65
    Симпатии:
    19
    А мне они (пресеты) и не только для обучения пригодятся. Да и не только мне, полагаю :)
     
  6. Buyan

    Buyan Member

    Регистрация:
    19 апр 2016
    Сообщения:
    80
    Симпатии:
    12
    Пол:
    Мужской
    Род занятий:
    Хобби: Гитара, Флейта, Звукорежиссура.
    Адрес:
    Белая Церковь
    Вопрос знающим людям. Использую данные экшены:
    SWS/BR: Move closest grid line to mouse cursor (perform until shortcut released)
    SWS/BR: Move closest measure grid line to mouse cursor (perform until shortcut released)
    SWS/BR: Move closest tempo marker to mouse cursor (perform until shortcut released)

    Но они некорректно работают если маркеры имеют свойство Gradually transition tempo to next marker.
    Возможно-ли с помощью скриптов воссоздать аналогичные этим экшенам действия?
    Если да, то подскажите пожалуйста в какую сторону копать. Я пока не нашел API для позиций темпо-маркеров.
     
  7. Aleksandr Oleynik

    Aleksandr Oleynik Well-Known Member

    Регистрация:
    16 янв 2007
    Сообщения:
    15.857
    Симпатии:
    8.357
    Пол:
    Мужской
    Адрес:
    Киев
    @Buyan, есть они в API -
    TempoTimeSigMarker
     
    Buyan нравится это.
  8. Buyan

    Buyan Member

    Регистрация:
    19 апр 2016
    Сообщения:
    80
    Симпатии:
    12
    Пол:
    Мужской
    Род занятий:
    Хобби: Гитара, Флейта, Звукорежиссура.
    Адрес:
    Белая Церковь
    @Aleksandr Oleynik, Спасибо! А я искал по запросу TempoMarker и ничего.
    Правда алгоритм вырисовывается не для начального уровня, с позицией мыши работать придется. Боюсь, что так сходу может оказаться и не по зубам мне такая задача. Хотя с другой стороны вопрос наболевший, да и начинать как-то нужно, с чего-то интересного, учится решать наболевшие проблемы)
     
  9. Aleksandr Oleynik

    Aleksandr Oleynik Well-Known Member

    Регистрация:
    16 янв 2007
    Сообщения:
    15.857
    Симпатии:
    8.357
    Пол:
    Мужской
    Адрес:
    Киев
    Начинайте, помогу.
     
    Buyan нравится это.
  10. CerberPic

    CerberPic Member

    Регистрация:
    17 фев 2017
    Сообщения:
    69
    Симпатии:
    20
    Пол:
    Мужской
    Да, фолдеры-то я не учёл. Теперь всё должно работать (обе версии во вложении).

    Ну, значит, первая, оригинальная версия делает следующее:
    • При запуске скрипта проверяет, зафрижен трек или нет. Если нет, то выдаёт запрос на желаемое количество каналов. Для моно фриза нужно ввести 1, для стерео - 2 и для многоканального - 3.
    • При запуске для зафриженного трека спрашивает, хотите ли вы разморозить его. Если не хотите размораживать, а хотите заморозить повторно, нужно нажать "Нет". Если передумали вообще что-либо делать, жмите "Отмена". При разморозке файлы фриза с диска удаляются в корзину.
    • Если исходник был удалён или переименован, рипер оповестит об этом при загрузке проекта. Но если один из исходников каким-то образом потерялся во время работы (до закрытия проекта), скрипт при запуске сообщит об этом. (Этот момент не очень корректно отрабатывается при многократном фризе - скрипт ссылается только на первоначальный исходник).
    Вторая версия (та, что no dialog, stereo only) сделана по просьбе @Maestro Sound и работает попеременно - фриз/анфриз. Повторная заморозка не происходит, фризятся треки в стерео. Никаких запросов не выдаётся, это более быстрый вариант.
    Я говорил на эту тему с Михаилом. Он сказал, что удалять при помощи экшна от SWS предпочтительнее, чем командной строкой. Хотя бы потому что там учтены все варианты - вывод в оффлайн, удаление в корзину... Я пробовал оба метода, проблемы с кириллицей возникают в обоих случаях, SWS при этом ещё выдаёт уведомление о том, что файл не был удалён. Вообще работа с консолью посредством lua в рипере организована как-то кривовато, как мне показалось.
    Внешний батник - отдельный исполняемый процесс, отдельный файл, который нужно будет скачивать пользователю для того, чтобы опробовать скрипт, класть в определённую директорию... И неизвестно, к каким дополнительным траблам может привести такой метод. Вопрос: зачем всё это, если можно просто избегать кириллицы в путях?
     

    Вложения:

    Последнее редактирование: 13 дек 2017
    Maestro Sound нравится это.
  11. Maestro Sound

    Maestro Sound Active Member

    Регистрация:
    1 ноя 2007
    Сообщения:
    426
    Симпатии:
    33
    @CerberPic, Спасиб

    Я себе сделал все три версии
     
  12. Buyan

    Buyan Member

    Регистрация:
    19 апр 2016
    Сообщения:
    80
    Симпатии:
    12
    Пол:
    Мужской
    Род занятий:
    Хобби: Гитара, Флейта, Звукорежиссура.
    Адрес:
    Белая Церковь
    @CerberPic, Спасибо за описание. Интересно.

    В разумных пределах все может вмещаться в одну командную строку. При необходимости все дополнительные файлы генерируются скриптом и им-же удаляются.

    Как минимум работать будет только на Windows, а это уже немаленькое ограничение.

    Еще со времен MS-DOS привык избегать пробелов и кириллицы)
     
    CerberPic нравится это.
  13. Maestro Sound

    Maestro Sound Active Member

    Регистрация:
    1 ноя 2007
    Сообщения:
    426
    Симпатии:
    33
    Подскажите пожалуйста API для перемещения выделенного трека на последний по списку
     
  14. Aleksandr Oleynik

    Aleksandr Oleynik Well-Known Member

    Регистрация:
    16 янв 2007
    Сообщения:
    15.857
    Симпатии:
    8.357
    Пол:
    Мужской
    Адрес:
    Киев
    Нет такого.
    На перемещение треков, FX-ов нет ни API ни Экшинов ни стандартных команд.
     
  15. Buyan

    Buyan Member

    Регистрация:
    19 апр 2016
    Сообщения:
    80
    Симпатии:
    12
    Пол:
    Мужской
    Род занятий:
    Хобби: Гитара, Флейта, Звукорежиссура.
    Адрес:
    Белая Церковь
    Спасибо! Уже начал осваивать потихоньку. Закончил эксперименты с курсором, перехожу к маркерам.
    К стати вопрос мучающий меня с самого начала - Скрипт должен работать циклически пока нажата клавиша. Имеется-ли такая возможность, опрашивать состояние какой-либо клавиши? Хотя нет, неудобно... Как принято реализовывать подобного рода вещи?
    Сейчас я по удержанию назначенной клавиши получаю позицию мыши, просто посредством многократного запуска скрипта. Чего в принципе может оказаться и достаточно для данного рода задачи.

    Ух... страшно. Все те административные скрипты, которые я когда-либо писал, детский сад по сравнению с этим. Никогда не доводилось работать с мышкой, позициями, интерфейсами и прочем. Но при этом до ужаса интересно.
     
  16. Maestro Sound

    Maestro Sound Active Member

    Регистрация:
    1 ноя 2007
    Сообщения:
    426
    Симпатии:
    33
    Приехали!!!....... а говорили что скриптом все можно:)
     
  17. Aleksandr Oleynik

    Aleksandr Oleynik Well-Known Member

    Регистрация:
    16 янв 2007
    Сообщения:
    15.857
    Симпатии:
    8.357
    Пол:
    Мужской
    Адрес:
    Киев
    @Buyan, опишите подробнее что должен скрипт делать.
    В общих чертах есть два типпа скриптов - разово срабатывающих и с дефером.
    Те, что разово срабатывают, они просто что-то делают в зависимости от конкретной ситуации при их срабатывании - т.е. - опрасили Рипер по нужным параметрам и в зависимости от их состояния что-то сделали.
    С дефером - работает либо пока его не остановит пользователь, либо пока не наступит какое то событие.
    Ну вот собственно работающий скрипт и ждет всяких событий и на них реагирует.
    --- добавлено 13 дек 2017 ---
    Можно. Вы же не об этом спросили, а об API.
    API такого нет, но это не значит что само действие нельзя сделать.
     
  18. Buyan

    Buyan Member

    Регистрация:
    19 апр 2016
    Сообщения:
    80
    Симпатии:
    12
    Пол:
    Мужской
    Род занятий:
    Хобби: Гитара, Флейта, Звукорежиссура.
    Адрес:
    Белая Церковь
    Я выше приводил пример какие экшены мне нужно заменить скриптом. Подробно, сам пока не понимаю до конца алгоритма. прежде чем составлять алгоритм, нужно знать возможности среды в которой предполагается реализация. В моем случае изучение данной среды происходит параллельно с разработкой алгоритма. Учусь на предмете, так-сказать.
    Но если кратко, то скрипт должен менять позицию ближайшей к курсору линии сетки, создавать там темпо-маркер, перемещать его в зависимости от позиции курсора, не изменяя при этом позиции соседних маркеров. Пока я предполагаю, что требуемую операцию вполне возможно решить за один проход(один запуск скрипта), а требуемую процедуру (последовательность операций), можно осуществить многократным запуском скрипта при удержании клавиши.
    Про дефер интересно.
    Как происходит механизм остановки скрипта пользователем? Как это событие определяется в скрипте? Скрипт-же не принимает параметры, что-бы создавать разные кнопки с командами запуска-остановки например. Предполагаю, что останавливать можно по событию повторного запуска. Или есть механизм принудительной остановки скрипта из вне в рипере?
    --- добавлено 13 дек 2017 ---
    @Aleksandr Oleynik, Спасибо!
     
  19. Maestro Sound

    Maestro Sound Active Member

    Регистрация:
    1 ноя 2007
    Сообщения:
    426
    Симпатии:
    33
    @Aleksandr Oleynik, По Вашему скрипту Bypass Fx (Vsti)

    в строке reaper.TrackFX_SetEnabled(track, i-1, 1 ) -- Unbypass FX
    reaper.TrackFX_SetEnabled(track, i-1, 0 ) -- Bypass FX
    мне нужно поменять что бы удалял Vsti какой сюда Api вставить?
     
  20. Aleksandr Oleynik

    Aleksandr Oleynik Well-Known Member

    Регистрация:
    16 янв 2007
    Сообщения:
    15.857
    Симпатии:
    8.357
    Пол:
    Мужской
    Адрес:
    Киев
    Очень просто - ещё раз "запускаете" скрипт или нажимаете его кнопку на тулбаре.
    Один раз клацнули по скрипту - он работает, второй - он перестал работать. Для визуального подтверждения того, что скрипт работает - сделали "светящуюся" во время работы кнопку (програмно сделали).
    --- добавлено 13 дек 2017 ---
    Так это не работает - нужно менять условия - т.е. синтаксис.

    И, кстати, ни разу не искал удаление - похоже и нет, нужно подумать
    Через чанк нужно удалять
     
    Последнее редактирование: 13 дек 2017
    Buyan нравится это.
  21. Maestro Sound

    Maestro Sound Active Member

    Регистрация:
    1 ноя 2007
    Сообщения:
    426
    Симпатии:
    33
    Если не трудно сделайте скрипт по Вашему скрипту
    Bypass all FX (except VSTi) for all tracks.lua

    Только вместо всех треков, задать "выделенные треки" и не байпасить fx а удалять только Vsti (без функции он офф). Это нужно для Рендера именно Vsti и дальнейшего его удаления не затрагивая FX. ЕСЛИ ИНТЕРЕСНО МОГУ ЗАДАТЬ ПОЛНУЮ КАРТИНУ ЗАДУМКИ ДЛЯ ЦЕЛЬНОГО СКРИПТА render Vsti
    --- добавлено 13 дек 2017 ---
    Я так и понял я то по условиям вывел только "выделенные треки" и начал клеить с
    reaper.SNM_MoveOrRemoveTrackFX и скрипт как бы без ошибок но реакции "0"
    --- добавлено 13 дек 2017 ---
    И посмотрите пожалуйста возможность перемещения выделенного трека последним по списку. Такого скрипта я не у кого не встретил. Последним в папке - да а вот вообще последним нету
     
    Последнее редактирование: 13 дек 2017
  22. Aleksandr Oleynik

    Aleksandr Oleynik Well-Known Member

    Регистрация:
    16 янв 2007
    Сообщения:
    15.857
    Симпатии:
    8.357
    Пол:
    Мужской
    Адрес:
    Киев
    Все перемещения делаются через удаление и создание нового в новом месте - так что....
    --- добавлено 13 дек 2017 ---
    Так ставьте msg() и контролируйте что не так.
    В API же написано что он делает -
    fxId: fx index in chain or -1 for the selected fx. what: 0 to remove, -1 to move fx up in chain, 1 to move fx down in chain.
    --- добавлено 13 дек 2017 ---
    Так этот скрипт ни чего общего с уже сделанным иметь не будет. Его с нуля делать нужно и через чанк.
    Не знаю когда смогу, сейчас время есть урывками, а тут денёк плотный нужен.
     
    Последнее редактирование: 13 дек 2017
    Maestro Sound нравится это.
  23. Nordum

    Nordum Active Member

    Регистрация:
    28 окт 2016
    Сообщения:
    112
    Симпатии:
    27
    Пол:
    Мужской
    Род занятий:
    SD, CG, BB, GG.
    @CerberPic, Вторая версия (та, что no dialog, stereo only) так же удаляет исходники с диска?
     
  24. Maestro Sound

    Maestro Sound Active Member

    Регистрация:
    1 ноя 2007
    Сообщения:
    426
    Симпатии:
    33
    удаляет Freeze sources file
     
  25. CerberPic

    CerberPic Member

    Регистрация:
    17 фев 2017
    Сообщения:
    69
    Симпатии:
    20
    Пол:
    Мужской
  26. Maestro Sound

    Maestro Sound Active Member

    Регистрация:
    1 ноя 2007
    Сообщения:
    426
    Симпатии:
    33
    ДА Но без использованием АPI с использованием smart-freez и без него штатным экшином
     
  27. CerberPic

    CerberPic Member

    Регистрация:
    17 фев 2017
    Сообщения:
    69
    Симпатии:
    20
    Пол:
    Мужской
    @Maestro Sound, можно в скрипте просто поменять строку (встречается 2 раза)
    PHP:
    reaper.Main_OnCommand(412230) -- freeze to stereo
    на
    PHP:
    reaper.Main_OnCommand(reaper.NamedCommandLookup("_xxx"), 0)
    где xxx - id скрипта Freeze only instruments
     
  28. Maestro Sound

    Maestro Sound Active Member

    Регистрация:
    1 ноя 2007
    Сообщения:
    426
    Симпатии:
    33
    gen_Freeze selected tracks(only instruments).lua ????
     
  29. Buyan

    Buyan Member

    Регистрация:
    19 апр 2016
    Сообщения:
    80
    Симпатии:
    12
    Пол:
    Мужской
    Род занятий:
    Хобби: Гитара, Флейта, Звукорежиссура.
    Адрес:
    Белая Церковь
    То есть скрипт останавливается принудительно из вне? По ходу возникает вопрос - как происходит такая остановка? То есть, если допустим сценарий не циклический и он еще в процессе исполнения, то повторный запуск прерывает исполнение? Или если сценарий циклический, то повторный вызов прерывает цикл, или ждет завершения периода цикла и только потом прерывает исполнение? Или остановка скрипта посредством повторного запуска распространяется только на дефер, а "разово срабатывающий" скрипт выполнится до конца? (последнее важно понимать, так-как я пока посредством удержания клавиши циклически запускаю скрипт. Мне важно знать, что будет если повторный запуск произойдет раньше завершения, когда скрипт будет потяжелее и ли у кого-то комп по слабее. Сейчас- то все работает вроде таким образом в тестовом режиме.)

    И по ходу возникает еще куча вопросов, но наверное неразумно их здесь все задавать, по крайней мере те, которые можно решить самостоятельно. Вот спустя пару часов и могу уже работать с таблицами и массивами:)
     
  30. Maestro Sound

    Maestro Sound Active Member

    Регистрация:
    1 ноя 2007
    Сообщения:
    426
    Симпатии:
    33
    ТОЖЕ ВАРИАНТ . Благодарю..Просто у меня при вставке простых экшинов и частичным использованием API можно фризить и анфризить треки выделенные скопом
     
  31. Aleksandr Oleynik

    Aleksandr Oleynik Well-Known Member

    Регистрация:
    16 янв 2007
    Сообщения:
    15.857
    Симпатии:
    8.357
    Пол:
    Мужской
    Адрес:
    Киев
    Сценарий в любом случаи циклический - дефер это цикл 32-34 раза в секунду, а какой нибудь for - миллион циклов в секунду.
    Любой цикл перед прекращением работы скрипта будет завершён
    --- добавлено 13 дек 2017 ---
    Мне кажется, что это плохой вариант.
    Лучше сделать условие, например - запустили скрипт и он в дефере крутится пока что-то не будет выполненно, а потом остановится сам по себе.
     
  32. Buyan

    Buyan Member

    Регистрация:
    19 апр 2016
    Сообщения:
    80
    Симпатии:
    12
    Пол:
    Мужской
    Род занятий:
    Хобби: Гитара, Флейта, Звукорежиссура.
    Адрес:
    Белая Церковь
    Вот и я тоже сомневаюсь. Но пока в тестовом режиме использую, для пошаговой отладки удобно, потом нужно будет что-то думать. Пока пытаюсь бороться с маркерами, экспериментирую с параметрами функции reaper.SetTempoTimeSigMarker . Плохо, что нету более детального описания API.
     
  33. Aleksandr Oleynik

    Aleksandr Oleynik Well-Known Member

    Регистрация:
    16 янв 2007
    Сообщения:
    15.857
    Симпатии:
    8.357
    Пол:
    Мужской
    Адрес:
    Киев
    Это главная проблема в написании скриптов.
    И если функция редко кем используемая, то и референсные скрипты не найдёшь, чтоб подсмотреть.
     
  34. Buyan

    Buyan Member

    Регистрация:
    19 апр 2016
    Сообщения:
    80
    Симпатии:
    12
    Пол:
    Мужской
    Род занятий:
    Хобби: Гитара, Флейта, Звукорежиссура.
    Адрес:
    Белая Церковь
    Пока этим и занимаюсь, но пока безуспешно. Еще использую метод научно-аналитического тыка. Изматывающее занятие, но результат какой-ни-какой, а есть.
     
  35. Aleksandr Oleynik

    Aleksandr Oleynik Well-Known Member

    Регистрация:
    16 янв 2007
    Сообщения:
    15.857
    Симпатии:
    8.357
    Пол:
    Мужской
    Адрес:
    Киев
    Что я делаю, когда совсем не понятно что отдаёт конкретный параметр в функции -
    считываю вначале все параметры в разных ситуациях -
    PHP:
    ----------------------------------------------------------------------------------------------------
    local msg = function(Mreaper.ShowConsoleMsg(tostring(M).."\n"end
    ----------------------------------------------------------------------------------------------------
    retvaltimeposOutmeasureposOutbeatposOutbpmOuttimesig_numOuttimesig_denomOutlineartempoOut reaper.GetTempoTimeSigMarker0)
    msg("retval  : "..retval)
    msg("timeposOut  : "..timeposOut)
    msg("measureposOut  : "..measureposOut)
    msg("beatposOut  : "..beatposOut)
    msg("bpmOut  : "..bpmOut)
    msg("timesig_numOut  : "..timesig_numOut)
    msg("lineartempoOut  : "..lineartempoOut)
    И изучаю значения,
    тогда становится понятно что ставить в reaper.SetTempoTimeSigMarker
     
    Последнее редактирование: 13 дек 2017
  36. Buyan

    Buyan Member

    Регистрация:
    19 апр 2016
    Сообщения:
    80
    Симпатии:
    12
    Пол:
    Мужской
    Род занятий:
    Хобби: Гитара, Флейта, Звукорежиссура.
    Адрес:
    Белая Церковь
    @Aleksandr Oleynik
    Да, я считываю с помощью GetTempoTimeSigMarker, потом попробовал изменить некоторые параметры (позицию и bpm) маркера с помощью SetTempoTimeSigMarker и ничего не произошло. Параллельно по синтаксису читаю мануалы. В общем многозадачные процессы в голове. Немного устал уже) Нужно переключится.
     
  37. Ortseam

    Ortseam Well-Known Member

    Регистрация:
    27 фев 2006
    Сообщения:
    1.631
    Симпатии:
    872
    Пол:
    Мужской
    Адрес:
    Ruthenia Nigra
    Доброго времени!

    Есть ли скрипт, "притормаживающий" обновление графики в главном окне Рипера?

    Объясню свою нужду.

    У меня в custom actions есть последовательности, где меняется time selection, клонируются и потом уничтожаются айтемы и т.д. При исполнении этих custom actions интерфейс отрабатывает в бешеном темпе все это графически, что неприятно для глаз и вообще "некашерно" как-то.

    До последней версии проблема решалась выбором "lazy update" в настройках графики. При ее выборе графика в ходе исполнения custom actions не отрабатывалась. В последней версии эта настройка была убрана разработчиком.

    Ищу альтернативное решение. Если бы был скрипт, замедляющий или приостанавливающий прорисовку (и обратный, восстанавливающий ее) можно было бы ставить эту пару в начале и конце последовательности команд custom actions. И таким образом избежать отображения всего, что между.

    Собственно, весь вопрос ))
     
  38. Aleksandr Oleynik

    Aleksandr Oleynik Well-Known Member

    Регистрация:
    16 янв 2007
    Сообщения:
    15.857
    Симпатии:
    8.357
    Пол:
    Мужской
    Адрес:
    Киев
    Андрей, я о таком не слышал.
     
  39. @Michael

    @Michael Well-Known Member

    Регистрация:
    14 дек 2010
    Сообщения:
    795
    Симпатии:
    1.220
    Пол:
    Мужской
    Адрес:
    Орёл / Москва
  40. Ortseam

    Ortseam Well-Known Member

    Регистрация:
    27 фев 2006
    Сообщения:
    1.631
    Симпатии:
    872
    Пол:
    Мужской
    Адрес:
    Ruthenia Nigra
    @@Michael, that's it! many thanks dude!!
     
  41. Buyan

    Buyan Member

    Регистрация:
    19 апр 2016
    Сообщения:
    80
    Симпатии:
    12
    Пол:
    Мужской
    Род занятий:
    Хобби: Гитара, Флейта, Звукорежиссура.
    Адрес:
    Белая Церковь
    Маркер теперь перемещается за курсором мыши. Детская радость:)

    PHP:
    --MAIN--------------------------------------------------------------------

    local MousPos reaper.BR_PositionAtMouseCursor)
    if 
    MousPos ~= -1 then
      local Shift_Pos 
    MousPos+0.4
      local tsm 
    reaper.FindTempoTimeSigMarker(0,Shift_Pos)
      if 
    tsm then
          local retval
    timeposOutmeasureposOutbeatposOutbpmOuttimesig_numOuttimesig_denomOutlineartempoOut reaper.GetTempoTimeSigMarker0tsm )
          
    reaper.SetTempoTimeSigMarker0tsmMousPosmeasureposOutbeatposOutbpmOuttimesig_numOuttimesig_denomOutlineartempoOut )
      
    end
    end
    ----------------------------------------------------
    reaper.UpdateTimeline()
     
    Aleksandr Oleynik нравится это.
  42. Aleksandr Oleynik

    Aleksandr Oleynik Well-Known Member

    Регистрация:
    16 янв 2007
    Сообщения:
    15.857
    Симпатии:
    8.357
    Пол:
    Мужской
    Адрес:
    Киев
    А радость всегда Детская! :)
     
    Buyan нравится это.
  43. CerberPic

    CerberPic Member

    Регистрация:
    17 фев 2017
    Сообщения:
    69
    Симпатии:
    20
    Пол:
    Мужской
    Как в миди редакторе получить ноту, стоящую под эдит курсором?
     
  44. vitalker

    vitalker Well-Known Member

    Регистрация:
    8 окт 2013
    Сообщения:
    2.881
    Симпатии:
    1.083
    Адрес:
    Гродно
    @CerberPic, что значит получить?
     
    Aleksandr Oleynik нравится это.
  45. CerberPic

    CerberPic Member

    Регистрация:
    17 фев 2017
    Сообщения:
    69
    Симпатии:
    20
    Пол:
    Мужской
    @vitalker, нужна функция, которая бы вернула ноту, стоящую под курсором. Но, похоже, нет такой.
    Более того, нет даже такой функции как CountSelectedMIDINotes. Вот как быть, если мне нужно просчитать только выделенные ноты?..
     
    Последнее редактирование: 14 дек 2017
  46. vitalker

    vitalker Well-Known Member

    Регистрация:
    8 окт 2013
    Сообщения:
    2.881
    Симпатии:
    1.083
    Адрес:
    Гродно
    @CerberPic, так может просто выделить её?
     
  47. @Michael

    @Michael Well-Known Member

    Регистрация:
    14 дек 2010
    Сообщения:
    795
    Симпатии:
    1.220
    Пол:
    Мужской
    Адрес:
    Орёл / Москва
    Последнее редактирование: 14 дек 2017
    CerberPic нравится это.
  48. Maestro Sound

    Maestro Sound Active Member

    Регистрация:
    1 ноя 2007
    Сообщения:
    426
    Симпатии:
    33
    Где его скачать? ни в одном рипрезитории его не нашел. !!!SimpleComp1-3(RMS stereo).rar что делать с текстом? Сорри
     
  49. Maestro Sound

    Maestro Sound Active Member

    Регистрация:
    1 ноя 2007
    Сообщения:
    426
    Симпатии:
    33
    @EUGEN27771,
    @EUGEN27771, А что с этим где его брать и куда ставить?
     
  50. Buyan

    Buyan Member

    Регистрация:
    19 апр 2016
    Сообщения:
    80
    Симпатии:
    12
    Пол:
    Мужской
    Род занятий:
    Хобби: Гитара, Флейта, Звукорежиссура.
    Адрес:
    Белая Церковь
    - импортировать как JS-плагин. Тестировать и сравнивать с ReaComp.
     

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