Дератизация — комплексные меры по уничтожению грызунов (крыс, мышей, полёвок и др.).
Wiki
Продолжаем разговор, начатый вот тут.
Когда я впервые познакомился с программой Ableton Live, то был просто потрясен тем бесконечным количеством возможностей, которые она предоставляет диджею. Однако мой щенячий восторг слега поутих, когда я обнаружил, что некоторыми функциями Ableton невозможно управлять с помощью MIDI-контроллера. Особенно бесила меня необходимость использования мыши для выбора и загрузки треков из браузера (в Тракторе, например, такой проблемы вообще нет).
Кто-то махнул бы на такой пустяк рукой, но я, к сожалению, страдаю перфекционизмом в терминальной стадии и не мог смириться с тем, что во время сета нужно хвататься попеременно то за MIDI-контроллер, то за мышь.
Все, что здесь написано, стоило мне в свое время недели бессонных ночей, проведенных за чтением километровых веток иностранных форумов, просмотром всевозможных обучающих видео и постановкой экспериментов с применением индукции, дедукции, экстраполяции, научного планирования и научного тыка. Тишина этих ночей неоднократно нарушалась криками отчаяния «Блин, да как же это сделать-то?!» а также (гораздо реже) удивленными возгласами «Твою ж мать! Работает!». В ходе экспериментов ни один MIDI-контроллер не пострадал, хотя пару раз очень хотелось схватить молоток.
Весьма вероятно, что описанные здесь решения покажутся многим громоздкими и неуклюжими; я буду безмерно благодарен, если кто-нибудь сможет предложить более изящный подход (могу даже дать наводку; сам я, увы, не силен в подобных технологиях). Тем не менее, все нижеприведенные алгоритмы являются полностью функциональными и ими совершенно спокойно можно пользоваться для практической работы.
Курц: Они говорили тебе, что мои методы – это методы сумасшедшего?
Уилард: А я вообще не вижу никаких методов, сэр.
Из фильма Apocalypse Now
К сожалению, организовать полностью безмышевое управление Аблетоном посредством исключительно самого Аблетона невозможно (во всяком случае, мне такой способ неизвестен; большие надежды возлагаю на AKAI APC 40, но на момент написания статьи он до Москвы еще не доехал ). Нам понадобятся еще две утилиты:
MIDI Yoke. Бесплатная программка, создающая в системе виртуальные MIDI-порты.
Bome’s MIDI Translator (Далее – BMT). Эта софтина умеет преобразовывать клавиатурные команды и MIDI-сообщения практически во все, что угодно – другие MIDI-сообщения, клавиатурные макрокоманды, движения мыши и так далее. Программа очень хорошая, но, к сожалению, платная и недешевая – версия Pro, которой пользуюсь я, стоит около 80 долларов. Однако если для Ваших целей сойдет и несколько урезанная версия Classiс, то ее можно лицензировать на совершенно законных основаниях, просто послав автору программы открытку (бумажную, а не то, что Вы подумали;) ).
Кроме того, нам понадобится какой-нибудь MIDI-контроллер (на первых порах можно обойтись и клавиатурой компьютера, но об этом чуть позже). Для «пробы пера» подойдет любой. Если говорить о практическом применении, то свое внимание следует обратить на контроллеры с большим количеством кнопочных, ползунковых и поворотных регуляторов, а вот jog dials будут практически бесполезны.
Из контроллеров начального уровня отлично подойдет Trigger Finger от M-Audio. Из более дорогих – AKAI MPD 24 или MPD 32. Из топовых моделей — все семейство Xone от Allen & Heath.
Ну а когда в продаже, наконец, появится давно ожидаемый AKAI APC 40, тогда проблема выбора, скорее всего, исчезнет. Возможно, тогда и весь этот текст окажется устаревшим.
Полностью безмышевое управление Аблетоном (в том варианте, в котором оно известно мне) возможно благодаря тому, что в нем есть Самая Главная Клавиатурная Команда.
Я обнаружил ее совершенно случайно. Ну, не совсем случайно – у меня есть дурная (а иногда и просто опасная для жизни) привычка тыкать во все кнопки подряд и смотреть, что произойдет — читать мануалы мне обычно лень. Впрочем, в данном случае мануал было читать совершенно бесполезно, так эта команда является недокументированной. Почему разработчики не сочли нужным напечатать ее 48-м кеглем на первой странице руководства пользователя – искренне не понимаю. Исправляю их ошибку:

Итак, что же делает эта мега-команда? В режиме Session View она переносит текущий фокус в одну из трех зон: Browser, Mixer Drop Area и Clip View/Track View.
Следует обратить особое внимание на то, как это команда работает в Mixer Drop Area: в зависимости от того, где именно стоял фокус (была ли выделена вся зона в целом, был ли выделена одна из сцен/треков или один из клипов), для гарантированного перехода из Mixer Drop Area «по горизонтали» (то есть в Browser) требуется двукратное повторение команды, а «по вертикали» (в Clip View/Track view) – троекратное; последовательность Alt (Up); Alt (Left) всегда переносит фокус в Browser, где бы до этого фокус ни находился.
Возможно, я не очень понятно объяснил, но когда Вы попробуете эту команду на практике, то сразу все поймете.
Мега-команда не работает в одном-единственном случае – если Вы выделили перед этим Loop Brace (вернее, работать-то работает, но результат получается не тот, который нужно). Впрочем, насколько мне известно, Loop Brace можно выделить только мышью, а мышь мы решили не трогать. Если Вы все же решите подстелить соломки и в этом месте, то в соответствующие скрипты необходимо будет добавить две команды – выключения и повторного включения петли, при этом выделение Loop Brace снимается.
Все остальные используемые клавиатурные команды являются совершенно тривиальными.

Общая логика работы описываемой конструкции такова:
1. MIDI-контроллер посылает MIDI-сообщение
2. BMT получает MIDI-сообщение
3.В зависимости от наличия данного сообщения в темплейте BMT либо посылает в AL клавиатурную (макро)команду, либо пропускает MIDI-сообщение, используя для этого порт, созданный MIDI Yoke.
4. Ableton live получает MIDI-сообщение или клавиатурную (макро)команду.
Предвидя возможный вопрос, отвечаю: MIDI Yoke нужен, без него система не работает.
СОЗДАНИЕ ТЕМПЛЕЙТА В BMT
1. В меню MIDI In выбираем наш MIDI-контроллер, в MIDI-out – любой из портов MIDI Yoke.
2. В меню Options ставим галочку MIDI Thru, иначе BMT будет перехватывать вообще все MIDI-сообщения с MIDI-контроллера, в том числе и не прописанные в темплейте.
3. Cоздаем новый пресет.

4. Cоздаем новый транслятор и даем ему какое-нибудь понятное Вам название.

5. Щелкаем правой кнопкой мыши по созданному транслятору, выбираем Edit и переходим в закладку Incoming.

6. Ставим галочку Capture MIDI и нажимаем выбранную кнопку на MIDI-контроллере.

Если Вы видите несколько перехваченных MIDI-сообщений (как на картинке выше), то иногда работает первое, а иногда — последнее. Почему – не знаю, если есть тут специалисты по протоколу MIDI – объясните, плиз.
7. Переходим в закладку Outgoing и выбираем из выпадающего меню Key Stroke Emulation.

8. Дальше начинается самое веселое – запись скрипта «вживую», и, отчасти, «вслепую» — соответствующее окошко в BMT очень небольшое. Делается это очень просто – последовательно нажимаете клавиши (или сочетания клавиш), а BMT это фиксирует.

Естественно, перед тем, как записывать сложный скрипт в BMT, нужно его пошагово пройти в Ableton Live и, возможно, записать на бумажку. Если записанный в BMT скрипт по каким-то причинам не работает, то для поиска ошибки его можно выделить мышью и скопировать в какой-нибудь текстовый редактор.
Вопрос: Можно ли использовать в качестве триггеров не MIDI-сообщения, а клавиатурные команды?
Ответ: Можно, но следует учитывать следующее:
— Для этого нужен BMT версии Pro, стоящей денег.
— В реальной работе хороший MIDI-контроллер гораздо удобнее клавиатуры ноутбука (кнопки больше, расположены на большем расстоянии друг от друга, есть подсветка).
— Выбранные клавиатурные команды не должны использоваться в качестве прошитых команд Ableton live (а их довольно много – см. мануал), иначе может получиться совсем не то, что задумано.
— При записи скриптов нужно отключать текущий пресет в BMT; в противном случае Вы рискуете получить серию вложенных друг в друга макрокоманд, в которых потом без пол-литра будет не разобраться.
Полный листинг скриптов, которые я использую в своем рабочем темплейте, вместе с комментариями займет не один десяток страниц. Однако все они являются совершенно однотипными, и, поняв логику одного, вы без труда напишете все остальные
Alt (Up)
Alt (Left)
// Переносим фокус в браузер.
Up или Down или Left или Right или Page up или Page Down или Home или End
// Можно, я не буду это расписывать?:)
// В данном скрипте используется горячая клавиша (Hot Key), назначенная в Ableton на
// выделение трека целиком.
Alt (Up)
Alt (Left)
// Переносим фокус в браузер. Данные команды добавлены «на всякий случай» — если Вы
// выбрали файл *.als, а потом случайно перенесли фокус из браузера куда-то еще.
Ctrl (C )
// Копируем файл *.als
Hot Key
// Выделяем трек. Фокус при этом переносится в Track View.
Alt (Up)
// Переходим в Mixer Drop Area.
Сtrl (Home)
// Переходим на первый слот выделенного трека (Page Up в данном случае не всегда
// работает так, как нужно).
Up
Down
// Выполняем проверку, что мы действительно попали на первый слот трека, а не выделили весь трек
// целиком (такое случается в некоторых ситуациях).
Shift (Page Down )
// Выделяем все слоты на треке
Delete
// Удаляем все клипы с трека
Page Up
// Переходим на первый слот
Ctrl (V )
// Вставляем клипы файла *.als
Page Up
// Переходим на первый слот
Вопрос: MIDI-контроллер, транслятор MIDI-сообщений, виртуальные MIDI-порты, клавиатурные макрокоманды…. Все это сильно напоминает бородатый анекдот:
«Уважаемые пассажиры, на борту нашего суперлайнера Boeing-7777 есть 2 теннисных корта, 3 бассейна, 6 парикмахерских, 18 ресторанов и 9 дискотек. А теперь, пожалуйста, пристегнитесь покрепче, сейчас мы со всей этой хернёй попробуем взлететь».
Насколько стабильно работает такая громоздкая конструкция?
Ответ: Будучи однажды отлаженной, система работает на удивление стабильно, если в ходе ее эксплуатации не наступать на широко распространенный в России сельскохозяйственный инвентарь, который называется…
Грабли №1. Русскаярулетка раскладка.
При включенной русской раскладке BMT честно эмулирует нажатия букаф рускава йазыка, которые Аблетон не воспринимает совсем, категорически и ни в каком виде. Лично у меня на ноутбуке русская раскладка ликвидирована, как класс. Рекомендую поступить так же.
Грабли №2. ПРИВЕТ, ПАДРУШКА!!!
Когда я впервые наступил на эти грабли, то чуть не двинулся рассудком, пытаясь найти причину частичного отказа только что безупречно работавшей системы; а когда через полчаса сообразил, в чем дело, то от злости на самого себя чуть не разбил ноутбук о голову.
Да, Вы догадались правильно — Аблетон различает строчные и прописные буквы, так что при нажатом Caps Lock все макрокоманды выполняются чуть более, чем наполовину. Как бороться – сами знаете.
Грабли №3. Враг с тысячей лиц.
Называющаяся у разных производителей по-разному кнопка, включающая на ноутбуках альтернативную раскладку (обычно эмулирующую цифровой блок клавиатуры). Как и в двух предыдущих случаях, ее нажатие может привести к частичному отказу системы. Обычно можно отключить.
Ну, вот, пожалуй, и вся премудрость. Вопросы, критика и примеры собственных интересных скриптов категорически приветствуются.
Пользуясьслужебным положением случаем, сообщаю, что в настоящее время открыта свободная регистрация на администрируемом мной портале beatsfactory.net. Welcome!
Wiki
Продолжаем разговор, начатый вот тут.
Когда я впервые познакомился с программой Ableton Live, то был просто потрясен тем бесконечным количеством возможностей, которые она предоставляет диджею. Однако мой щенячий восторг слега поутих, когда я обнаружил, что некоторыми функциями Ableton невозможно управлять с помощью MIDI-контроллера. Особенно бесила меня необходимость использования мыши для выбора и загрузки треков из браузера (в Тракторе, например, такой проблемы вообще нет).
Кто-то махнул бы на такой пустяк рукой, но я, к сожалению, страдаю перфекционизмом в терминальной стадии и не мог смириться с тем, что во время сета нужно хвататься попеременно то за MIDI-контроллер, то за мышь.
Все, что здесь написано, стоило мне в свое время недели бессонных ночей, проведенных за чтением километровых веток иностранных форумов, просмотром всевозможных обучающих видео и постановкой экспериментов с применением индукции, дедукции, экстраполяции, научного планирования и научного тыка. Тишина этих ночей неоднократно нарушалась криками отчаяния «Блин, да как же это сделать-то?!» а также (гораздо реже) удивленными возгласами «Твою ж мать! Работает!». В ходе экспериментов ни один MIDI-контроллер не пострадал, хотя пару раз очень хотелось схватить молоток.
Весьма вероятно, что описанные здесь решения покажутся многим громоздкими и неуклюжими; я буду безмерно благодарен, если кто-нибудь сможет предложить более изящный подход (могу даже дать наводку; сам я, увы, не силен в подобных технологиях). Тем не менее, все нижеприведенные алгоритмы являются полностью функциональными и ими совершенно спокойно можно пользоваться для практической работы.
1. МАТЕРИАЛЫ И МЕТОДЫ
Курц: Они говорили тебе, что мои методы – это методы сумасшедшего?
Уилард: А я вообще не вижу никаких методов, сэр.
Из фильма Apocalypse Now
1.1 МАТЕРИАЛЫ
К сожалению, организовать полностью безмышевое управление Аблетоном посредством исключительно самого Аблетона невозможно (во всяком случае, мне такой способ неизвестен; большие надежды возлагаю на AKAI APC 40, но на момент написания статьи он до Москвы еще не доехал ). Нам понадобятся еще две утилиты:
MIDI Yoke. Бесплатная программка, создающая в системе виртуальные MIDI-порты.
Bome’s MIDI Translator (Далее – BMT). Эта софтина умеет преобразовывать клавиатурные команды и MIDI-сообщения практически во все, что угодно – другие MIDI-сообщения, клавиатурные макрокоманды, движения мыши и так далее. Программа очень хорошая, но, к сожалению, платная и недешевая – версия Pro, которой пользуюсь я, стоит около 80 долларов. Однако если для Ваших целей сойдет и несколько урезанная версия Classiс, то ее можно лицензировать на совершенно законных основаниях, просто послав автору программы открытку (бумажную, а не то, что Вы подумали;) ).
Кроме того, нам понадобится какой-нибудь MIDI-контроллер (на первых порах можно обойтись и клавиатурой компьютера, но об этом чуть позже). Для «пробы пера» подойдет любой. Если говорить о практическом применении, то свое внимание следует обратить на контроллеры с большим количеством кнопочных, ползунковых и поворотных регуляторов, а вот jog dials будут практически бесполезны.
Из контроллеров начального уровня отлично подойдет Trigger Finger от M-Audio. Из более дорогих – AKAI MPD 24 или MPD 32. Из топовых моделей — все семейство Xone от Allen & Heath.
Ну а когда в продаже, наконец, появится давно ожидаемый AKAI APC 40, тогда проблема выбора, скорее всего, исчезнет. Возможно, тогда и весь этот текст окажется устаревшим.
1.2 МЕТОДЫ
Полностью безмышевое управление Аблетоном (в том варианте, в котором оно известно мне) возможно благодаря тому, что в нем есть Самая Главная Клавиатурная Команда.
Я обнаружил ее совершенно случайно. Ну, не совсем случайно – у меня есть дурная (а иногда и просто опасная для жизни) привычка тыкать во все кнопки подряд и смотреть, что произойдет — читать мануалы мне обычно лень. Впрочем, в данном случае мануал было читать совершенно бесполезно, так эта команда является недокументированной. Почему разработчики не сочли нужным напечатать ее 48-м кеглем на первой странице руководства пользователя – искренне не понимаю. Исправляю их ошибку:

Итак, что же делает эта мега-команда? В режиме Session View она переносит текущий фокус в одну из трех зон: Browser, Mixer Drop Area и Clip View/Track View.
Следует обратить особое внимание на то, как это команда работает в Mixer Drop Area: в зависимости от того, где именно стоял фокус (была ли выделена вся зона в целом, был ли выделена одна из сцен/треков или один из клипов), для гарантированного перехода из Mixer Drop Area «по горизонтали» (то есть в Browser) требуется двукратное повторение команды, а «по вертикали» (в Clip View/Track view) – троекратное; последовательность Alt (Up); Alt (Left) всегда переносит фокус в Browser, где бы до этого фокус ни находился.
Возможно, я не очень понятно объяснил, но когда Вы попробуете эту команду на практике, то сразу все поймете.
Мега-команда не работает в одном-единственном случае – если Вы выделили перед этим Loop Brace (вернее, работать-то работает, но результат получается не тот, который нужно). Впрочем, насколько мне известно, Loop Brace можно выделить только мышью, а мышь мы решили не трогать. Если Вы все же решите подстелить соломки и в этом месте, то в соответствующие скрипты необходимо будет добавить две команды – выключения и повторного включения петли, при этом выделение Loop Brace снимается.
Все остальные используемые клавиатурные команды являются совершенно тривиальными.
2.МОДЕЛЬ ДЛЯ СБОРКИ

Общая логика работы описываемой конструкции такова:
1. MIDI-контроллер посылает MIDI-сообщение
2. BMT получает MIDI-сообщение
3.В зависимости от наличия данного сообщения в темплейте BMT либо посылает в AL клавиатурную (макро)команду, либо пропускает MIDI-сообщение, используя для этого порт, созданный MIDI Yoke.
4. Ableton live получает MIDI-сообщение или клавиатурную (макро)команду.
Предвидя возможный вопрос, отвечаю: MIDI Yoke нужен, без него система не работает.
СОЗДАНИЕ ТЕМПЛЕЙТА В BMT
1. В меню MIDI In выбираем наш MIDI-контроллер, в MIDI-out – любой из портов MIDI Yoke.
2. В меню Options ставим галочку MIDI Thru, иначе BMT будет перехватывать вообще все MIDI-сообщения с MIDI-контроллера, в том числе и не прописанные в темплейте.
3. Cоздаем новый пресет.

4. Cоздаем новый транслятор и даем ему какое-нибудь понятное Вам название.

5. Щелкаем правой кнопкой мыши по созданному транслятору, выбираем Edit и переходим в закладку Incoming.

6. Ставим галочку Capture MIDI и нажимаем выбранную кнопку на MIDI-контроллере.

Если Вы видите несколько перехваченных MIDI-сообщений (как на картинке выше), то иногда работает первое, а иногда — последнее. Почему – не знаю, если есть тут специалисты по протоколу MIDI – объясните, плиз.
7. Переходим в закладку Outgoing и выбираем из выпадающего меню Key Stroke Emulation.

8. Дальше начинается самое веселое – запись скрипта «вживую», и, отчасти, «вслепую» — соответствующее окошко в BMT очень небольшое. Делается это очень просто – последовательно нажимаете клавиши (или сочетания клавиш), а BMT это фиксирует.

Естественно, перед тем, как записывать сложный скрипт в BMT, нужно его пошагово пройти в Ableton Live и, возможно, записать на бумажку. Если записанный в BMT скрипт по каким-то причинам не работает, то для поиска ошибки его можно выделить мышью и скопировать в какой-нибудь текстовый редактор.
Вопрос: Можно ли использовать в качестве триггеров не MIDI-сообщения, а клавиатурные команды?
Ответ: Можно, но следует учитывать следующее:
— Для этого нужен BMT версии Pro, стоящей денег.
— В реальной работе хороший MIDI-контроллер гораздо удобнее клавиатуры ноутбука (кнопки больше, расположены на большем расстоянии друг от друга, есть подсветка).
— Выбранные клавиатурные команды не должны использоваться в качестве прошитых команд Ableton live (а их довольно много – см. мануал), иначе может получиться совсем не то, что задумано.
— При записи скриптов нужно отключать текущий пресет в BMT; в противном случае Вы рискуете получить серию вложенных друг в друга макрокоманд, в которых потом без пол-литра будет не разобраться.
3. ПРИМЕРЫ СКРИПТОВ
Полный листинг скриптов, которые я использую в своем рабочем темплейте, вместе с комментариями займет не один десяток страниц. Однако все они являются совершенно однотипными, и, поняв логику одного, вы без труда напишете все остальные
3.1 Скрипты для навигации в браузере
Alt (Up)
Alt (Left)
// Переносим фокус в браузер.
Up или Down или Left или Right или Page up или Page Down или Home или End
// Можно, я не буду это расписывать?:)
3.2 Скрипт для загрузки файла *.als (или *.wav) на аудиодорожку
// В данном скрипте используется горячая клавиша (Hot Key), назначенная в Ableton на
// выделение трека целиком.
Alt (Up)
Alt (Left)
// Переносим фокус в браузер. Данные команды добавлены «на всякий случай» — если Вы
// выбрали файл *.als, а потом случайно перенесли фокус из браузера куда-то еще.
Ctrl (C )
// Копируем файл *.als
Hot Key
// Выделяем трек. Фокус при этом переносится в Track View.
Alt (Up)
// Переходим в Mixer Drop Area.
Сtrl (Home)
// Переходим на первый слот выделенного трека (Page Up в данном случае не всегда
// работает так, как нужно).
Up
Down
// Выполняем проверку, что мы действительно попали на первый слот трека, а не выделили весь трек
// целиком (такое случается в некоторых ситуациях).
Shift (Page Down )
// Выделяем все слоты на треке
Delete
// Удаляем все клипы с трека
Page Up
// Переходим на первый слот
Ctrl (V )
// Вставляем клипы файла *.als
Page Up
// Переходим на первый слот
Вопрос: MIDI-контроллер, транслятор MIDI-сообщений, виртуальные MIDI-порты, клавиатурные макрокоманды…. Все это сильно напоминает бородатый анекдот:
«Уважаемые пассажиры, на борту нашего суперлайнера Boeing-7777 есть 2 теннисных корта, 3 бассейна, 6 парикмахерских, 18 ресторанов и 9 дискотек. А теперь, пожалуйста, пристегнитесь покрепче, сейчас мы со всей этой хернёй попробуем взлететь».
Насколько стабильно работает такая громоздкая конструкция?
Ответ: Будучи однажды отлаженной, система работает на удивление стабильно, если в ходе ее эксплуатации не наступать на широко распространенный в России сельскохозяйственный инвентарь, который называется…
4. ГРАБЛИ
Грабли №1. Русская
При включенной русской раскладке BMT честно эмулирует нажатия букаф рускава йазыка, которые Аблетон не воспринимает совсем, категорически и ни в каком виде. Лично у меня на ноутбуке русская раскладка ликвидирована, как класс. Рекомендую поступить так же.
Грабли №2. ПРИВЕТ, ПАДРУШКА!!!
Когда я впервые наступил на эти грабли, то чуть не двинулся рассудком, пытаясь найти причину частичного отказа только что безупречно работавшей системы; а когда через полчаса сообразил, в чем дело, то от злости на самого себя чуть не разбил ноутбук о голову.
Да, Вы догадались правильно — Аблетон различает строчные и прописные буквы, так что при нажатом Caps Lock все макрокоманды выполняются чуть более, чем наполовину. Как бороться – сами знаете.
Грабли №3. Враг с тысячей лиц.
Называющаяся у разных производителей по-разному кнопка, включающая на ноутбуках альтернативную раскладку (обычно эмулирующую цифровой блок клавиатуры). Как и в двух предыдущих случаях, ее нажатие может привести к частичному отказу системы. Обычно можно отключить.
Ну, вот, пожалуй, и вся премудрость. Вопросы, критика и примеры собственных интересных скриптов категорически приветствуются.
Пользуясь