Расширение для REAPER

Версия: 3.1.0.32 17.06.2024
Скачать (WIN32) Скачать (WIN64)

Общие сведения

Целью данной главы является дать пользователям начальное представление о внутреннем устройстве расширения. Здесь же мы кратко расскажем о разработчике «Уха» и принципах, которыми он руководствуется в работе над своим проектом.

Разработчиком проекта является Иван Себекин, создатель reaEar1, а также создатель его предшественника reaAccess. Не смотря на то, что сохранилось название от старого проекта, нынешний продукт таит в себе принципиальные отличия и улучшения. Главным образом это стало возможным благодаря тому, что новое «Ухо» было написано практически с полного нуля, без какой бы то ни было ориентации на предшествующие плагины и, их исходные тексты.

Написано настоящее расширение в среде codeTyphon и собрано посредством компилятора free pascal. Портирование REAPER SDK на язык программирования pascal осуществлено в конце 2019 года автором расширения, тогда же началась работа и над самим проектом. Основным инновационным решением нового «Уха» стало алгоритмическое построение его внутренних механизмов. Расширение функционирует благодаря скриптам, которые можно добавлять, удалять или изменять в реальном времени, без непосредственного участия главного разработчика. Каждая команда «Уха», каждая озвучка штатных команд REAPER или команд сторонних расширений, каждый внедрённый с «Ухом» диалог - это отдельный скрипт, который доступен конечному пользователю как для корректировки, так и просто для изучения. Подобный подход позволяет не только ощутимо ускорить и максимально упростить процесс добавления новых функций в плагин, но и привлечь к данному процессу любое количество сторонних разработчиков.

Второй принципиальной задачей было добиться универсальности нового расширения. Результатом этого стали: и мультиязычность, и мультираскладочность, и потенциальная мультиплатформенность «Уха». Интерфейс расширение очень легко может быть переведён на множество других языков. В рамках одного экземпляра REAPER в связке с «Ухом» можно одновременно использовать несколько клавиатурных раскладок, а можно дополнительно заняться созданием своей собственной раскладки. В последствии расширение может быть портировано на любые платформы, поддерживаемые кроссплатформенным компилятором FPC: и macOS, и Linux, и даже Android.

Также автором уделяется огромное внимание оптимизации всех внутренних алгоритмов расширения, что делает его не только конкурентоспособным среди родственных проектов, но зачастую и превосходящим их по ряду параметров, в том числе скорости и стабильности работы. Если добавить к этому ещё и скрупулёзное отношение автора к качеству озвучки тех или иных команд, стремление к практическому удобству конечного пользователя, изящное преодоление любых препятствий, возникающих на пути незрячих музыкантов, аранжировщиков, звукорежиссёров и так далее, то мы получим без лишнего преувеличения действительно достойный продукт, равноценных аналогов которому просто на рынке в настоящее время не существует!

Компоненты «Уха»

«Ухо» состоит из следующих компонентов:

  • непосредственный плагин, динамически подключаемая библиотека reaper_ear.dll, расположенная по пути REAPER/Plugins;
  • компоненты расширения, расположенные по пути REAPER/Ear.

Компоненты расширения в свою очередь состоят из следующих частей:

  • REAPER/Ear/algorithms - алгоритмы, обеспечивающие работу расширения, реализующие как озвучку тех или иных команд REAPER, так и функциональность расширения в целом. Данная часть компонентов «Ухо» используется в режиме разработчика. Из содержимого папки algorithms компилируется конечный бинарный файл REAPER/Ear/ear.algorithms, на базе которого расширение работает в обычном пользовательском режиме. Алгоритмы - это прежде всего ear-скрипты, по синтаксису напоминающие C++, хотя в некоторых случаях для написания «ушных» скриптов можно использовать pascal-, java- и basic-подобный синтаксис. Для функционирования расширения в обычном пользовательском режиме эта часть компонентов не нужна.
  • REAPER/Ear/configurations - - часть, содержащая все конфигурации расширения.
  • REAPER/Ear/documentations - документация и различные справки по расширению.
  • REAPER/Ear/keymaps - автоматически обновляемые клавиатурные раскладки REAPER, идущие в составе расширения и разрабатываемые, как правило, сторонними разработчиками, активно использующими REAPER на практике. По-умолчанию данные раскладки постоянно синхронизируются у всех пользователей, как только разработчики внесут в них какие-либо изменения. Автоматическую синхронизацию раскладок возможно отключить. Здесь же хранится локальная раскладка.
  • REAPER/Ear/languages - локализационные файлы расширения.
  • REAPER/Ear/changes - история изменений расширения.

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

К режиму разработчика имеют доступ абсолютно все пользователи зарегистрированного экземпляра расширения. Наличествует возможность включения для того или иного пользователя особого статуса, благодаря которому все внесённые им изменения или дополнения в определённые области «ушных» алгоритмов будут тут же синхронизированы у всех пользователей. Таким образом, чаще всего новый функционал расширения доставляется до конечного пользователя без глобального обновления исполняемых файлов, а работать над этим новым функционалом может любое количество людей.

Мы не станем в рамках данной главы подробно описывать режим разработчика, но, чтобы дать примерное представление о принципах его работы, кратко опишем последовательность действий, которая необходима для озвучивания той или иной новой команды:

  • Включите режим разработчика:
    • Ctrl+Shift+Win+K
    ;
  • Включите режим перехвата команд:
    • Ctrl+K
    ;
  • Выполните ту команду, озвучить которую необходимо.

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

Например, для того, чтобы озвучить тот или иной штатный переключатель (тогл) REAPER, в его скрипте достаточно написать:
say.toggle(self);

После внесения тех или иных изменений, алгоритмы необходимо перезагрузить:

  • Ctrl+K 3 нажатия
и в случае отсутствия ошибок, данные изменения незамедлительно вступят в силу.

Абсолютно все созданные на сегодняшний день скрипты доступны в исходниках, и каждый желающий может на них взглянуть, обратившись к алгоритмической части компонентов «Уха». В данной части Вы также отыщете мультипрессинговые назначения, раздел с циклическими переключателями, а также глобальные модули, в которых реализованы все виртуальные «ушные» диалоги, такие как:

  • инспектор пиков;
  • редактор параметров трека;
  • редактор параметров клипа;
  • редактор маршрутизации;
  • редактор эффектов и их параметров;
  • продвинутый поиск по трекам и клипам;
  • и так далее...

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

Устройство «уха» таково, что оно позволяет посредством всё тех же скриптов озвучивать или каким-либо образом корректировать не только штатные команды REAPER, но и команды любых других сторонних расширений. Таким образом, разработчик «Уха» уделяет огромное внимание известному в кругах продвинутых пользователей REAPER, расширению SWS, регулярно озвучивая его команды. В связи с этим, настоятельно рекомендуется использовать «Ухо» именно в связке с SWS, хотя конечно же практически всё будет прекрасно функционировать и без него.

Более подробно о режиме разработчика Вы можете прочитать в соответствующем разделе нашей документации.