Идея предельно проста: играть на MIDI-контроллерах так, как это делается на бас-гитаре. Изначально в уме у меня была моя MIDI-гитара, которой я пользуюсь скорее как тач-панелью с гитарной раскладкой, но практически никогда не использую “струны”, и это для левой руки, чтобы зажимать ноты и аккорды. Конечно, это можно делать и на обычных клавишах. Под правой рукой пады или обычная MIDI-клавиатура для того, чтобы на определённых триггерных нотах высекать звук. То есть левой рукой я жму что угодно и это не зазвучит, пока я не нажму одну определённую клавишу правой рукой. Затем идея дополнилась ещё несколькими триггерными нотами для того, чтобы давать ровные очереди нот с разной длительностью.
Да, кое-что в итоге получилось, но было это непросто, да и не так, чтоб уж очень. Далее я просто оставлю копии постов из канала в Telegram.
Important
Я лежал, ничего не подозревая, и тут вдруг в голову мне упала идея. На клавишах не то, чтобы очень удобно играть что-то пулемётное, а если это аккорды, то тем более. Ещё более неудобно, если эти аккорды постоянно меняются. Это всё то, что легко и постоянно делают гитаристы с медиатором, а басисты иногда и пальцами. Естественно, это же легко делать и палочками, но я сейчас не об ударных.
Так вот, вздумалось мне, что можно намутить такой патчик на Pure Data, чтобы по MIDI Ch.1
в него входили собственно ноты, но не звучали. По MIDI Ch.2
на одной ноте (у меня это Korg NanoPAD) можно было настукивать пальцами собственно “Note on / Note off”, чтобы ноты звучали, и примерно как если играешь на басухе. Ну и пара галочек, которые к выбранным нотам добавляют +7
и +12
(то есть квинту и октаву, чтобы powerchord). Затем мысль развилась, так как на NanoPAD’е много кнопок и можно, например, сделать рядом не просто “Note on / Note off”, а пулемётную очередь 16-ми нотами, триолями, квинтолями, хотя для этого надо, чтобы патч откуда-то брал определённый BPM.
Тяжёлые металлы на клавишах, да? Неплохо же? Может быть и не на клавишах, а на MIDI-гитарке, которой я очень даже активно пользуюсь, но практически всегда как некой панелью с гитарной раскладкой и играю на ней тачем, а не как на гитаре.
Так как из всех вариантов Pure Data я выбрал PlugData, можно намутить готовый VST-плагин и использовать его потом в любимой DAW, так что наверняка и какая-то возможность получать BPM извне там тоже есть. Может быть.
В общем-то звучит несложно, а если учесть всё, что я видел собранного на Pure Data, определённо точно возможно. И я взялся, тут же разбив мизинец об невозможность четко указать любой MIDI-канал на свой вкус, потому что notein
не имеет никаких входов и канал можно разве что захардкодить в сам объект. Как вариант, можно отказаться от использования разных MIDI-каналов и использовать для “высекания” какую-нибудь самую-самую нижнюю октаву, обычно в игре не используемую и многие инструменты просто не покрывают её своим диапазоном. Опять же, тут надо намутить какой-то фильтр, чтобы четко указывать эти ноты и чтобы они точно не издавали звуков, если что вдруг.
В общем, на сегодня энтузиазм мой точно улетучился, но осталась вот эта идея. Я пока положу её тут. Либо до следующего раза, когда мне хватит живости и упорства, либо, кто знает, её подберёт кто-то другой и сделает лучше.
Important
Powerchords я сделал без труда, а вот с простым разделением MIDI-сигнала, где мне нужно использовать velocity от одной не звучащей ноты для других нот, чтобы они прозвучали, вообще непросто получается. Я много всего пробовал. Я пробовал весь день. Может быть я наткнулся на какие-то баги, может ограничения программы, а куда вероятнее мои личные ограничения и я не вижу простого и прекрасного решения перед самым моим носом. Что я точно могу сейчас сделать, после почти что дня, проведённого в PlugData, так это показать простую схему, на которой изображено то, чего я пытаюсь добиться. Это действительно выглядит предельно просто и если бы только кто-то подсказал мне…
Important
Прошлой ночью я решил поставить Max. Это, если что, более матёрый продукт изначально от того же разработчика, что и Pure Data, и прежде он больше был известен под названием Max/MSP. Не пользовался я им уже лет 8, но примерно знал, чего ожидать. Так вот, с удивлением обнаружил, что PlugData, в котором я пытался собрать эту свою штуку прежде, настолько хорошо копирует его, что я в общем-то ничего нового не получил. И да, я начал собираться с ноля, советовался с двума нейросетями, как бы они ни уводили иногда мимо, и собрал… нет, не то я собрал, но что точно эта штука делает — MIDI-нота 12 является гейтом для остальных нот и остальные ноты не звучат, когда она не зажата. Мне же нужно, чтобы она была не гейтом, а триггером для них: допустим, держу я мажорное трезвучие от До одной рукой и как бы я ни тыкал, оно не звучит, а вот если я буду его держать и отбивать морзянкой по ноте 12 (тоже До почти в самом низу, что и не важно), то и аккорд будет звучать морзянкой. Вот что мне нужно. А ещё она всё равно издаёт звук, чего быть не должно. В общем-то собрал, работает, да вообще не то. А был ли смысл Max? Да не особо, так как PlugData практически такой же. Продолжаю пытаться.