Драм-машина на нейронної мережі

У даній статті мені хочеться розповісти про своєму алгоритмі драм-машини на базі нейронної мережі.
Драм-машина призначена для створення і редагування повторюваних ударних музичних фрагментів.
Класичним прикладом драм машини є драм-машини від кампанії Roland (TR-808 і TR-909).

Класичні драм машини засновані на принципі покрокового програмування і включають в себе секвенсор, за допомогою якого можна зробити цифровий запис аранжування, тобто запрограмувати інструментальну п'єсу.
Альтернативним підходом до програмування послідовності ударів є нейромережевої підхід.
В даному випадку драм машина використовує нейронну мережу для отримання повторюваних ударів.


Алгоритм роботи нейронної драм-машини
Ритмічні партії ударів виходять після налаштування нейронної мережі:
визначення класів нейронів і розташуванні їх у мережі з принципом впливу.
Так пропонується використовувати нейрони затримки і звичайні нейрони.
Звичайні нейрони мають порогові рівні. Так якщо пороговий рівень має значення 3, то після 3-х вхідних сигналів даний нейрон спрацює і передасть сигнал далі по мережі у відповідності з принципом активності.
Даний принцип визначає, що нейрони можуть мати дві ролі — бути як активними (впливають — передавати сигнал), так і пасивними (приймають сигнал).
Нейрони затримки також мають пороговий рівень, який є інтервалом часу, по закінченню якого після надходження вхідного сигналу спрацьовує нейрон затримки. Інтервал часу в даному випадку вимірюється в тактах роботи нейронної драм машини.
Також вводиться третій вид нейронів — нейрони пейсмейкери. Вони також мають пороговий рівень, який вимірюється в тактах роботи драм-машини та визначає період їх спрацьовування.

Побудова керуючої нейронної мережі слід починати з включення в мережу нейронів пейсмейкеров. Вони є завжди тільки активними. Після них в мережу можуть вбудовуватися звичайні нейрони і нейрони затримки.

Вихідні сигнали всіх нейронів мають одиничну величину. При поширенні сигналів від пейсмейкеров до кінцевих нейронів в моменти активації нейронів відтворюється відповідні нейронів семпли.

Програмна реалізація
У ролі семплів можуть виступати довільні звуки, наприклад гітара або барабани.
Тому кожному нейрону призначається звуковий фрагмент з файлу.

Також налаштовуються пріоритети звучання нейронів. Це необхідно, щоб виключити накладення семплів один на одного. Також відтворення семпла нейрона можна відключати або змінити його гучність. Це актуально в тому випадку, якщо потрібно створити частина керуючої нейронної мережі, в той час як кінцеві пасивні нейрони будуть відтворювати звук.

Після налаштування мережі визначається величина одиниці часу, або швидкість тактів драм машини.

Програму під Windows можна завантажити за адресою: тут.

У програмі щоб встановити або видалити зв'язок потрібно вибрати активний вузол, якшо по ньому,
і затиснувши клавішу Z клікнути на пасивний вузол.

Приклади роботи
Нейромережевої принцип програмування послідовності ударів дозволяє отримувати часом цікаві патерни.

Приклади використання таких патернів після невеликої обробки можна послухати у таких треках:
тут і тут.

Приклад роботи драм-машини можна поспостерігати на наступному відео:
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.