Куток

Fang
Fang

Додано

Система процедурної генерації музики

Привіт Куток!

Мене звуть Філ, і я з радістю представляю вам мій дебютний пост тут.

Спеціально для цього випадку я хочу розповісти про початок розробки мого нового проєкту, який я задумав ще у 2015 році і завжди вважав його своїм магнум опусом. Ви, напевно, здогадалися з заголовку, що цей проєкт стосується процедурної генерації музики.

Приклад створеної композиції

На жаль, це моя не перша спроба реалізації цієї ідеї. Навіть не п'ята. Я брався за цей проєкт десь десять разів, але завжди щось заважало. Зазвичай, це був мій самодіагностований синдром дефіциту уваги :)

Що воно буде робити?

  • генерувати композиції як обмеженного хронометражу так і "нескінченні" у реальному часі
  • міксувати необмеженну кількість музикальніх жанрів в одній композиції
  • рендерити звук у файл
  • рендерити звук в рантаймі одразу в колонки

Сфери застосування:

  1. Ідеально підходить для ігор жанру "тайкун", де гравець уособлює починаючого музиканта.
  2. Динамічне підлаштування музичного супроводу під події в грі у реальному часі. Уявіть гру у жанрі горор, де музика не просто перемикається між треками, а прямо реагує на події.
  3. У форматі standalone редактора. Генерація унікальної музики для власних комерційних проєктів.
  4. У форматі standalone плеєра. Наприклад мобільного.

Чому не штучний інтелект?

Сьогодні, коли більшість новин в IT галузі присвячені штучному інтелекту, створення системи процедурної генерації музики може здатися відсталим. Я частково приймаю це, проте перевагою процедурної генерації залишається абсолютна свобода в комерційному використанні.

Що вже зроблено?

Простий синтезатор
Простий синтезатор
Цей синтезатор використовує готові семпли, тому сам по собі він звукову хвилю не синтезує. Але робить з семплами різні трансформації. Такі як зміну тональності (pitch), нормалізацію, тощо.

Редактор нотних патернів
Редактор нотних патернів
Ви можете задатися питанням "А чи не повинна система сама генерувати ці ноти?". Редактор нотних патернів, також відомий як "Piano Roll", є корисним інструментом у випадку, коли ці патерни не використовуються напряму у сгенерованнії композиції, але можуть використовуватись у процесі генерації музики. Це додатковий спосіб описувати правила та залежності у майбутніх композиціях.

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

Майбутні плани:

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

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

Код системи розробляється таким чином, щоб його можна було використовувати окремо в інших проєктах, можливо, навіть постачатись як окремий пакет для Unity.

P.S.

  1. Потрібна ваша допомога у створенні компактної та оригінальної назви для системи процедурної генерації музики. Інакше ви не залишите мені вибору і її вигадає ChatGPT.
  2. У наступному звіті я додам аудіо-файли з прикладами генерації музики.

Топ коментарі (0)

Куток

Підписуйтеся на наші соціальні мережі:
Telegram
Twitter
Facebook


Тепер у нас також є Youtube канал!