Как мы вошли в Топ-10 крупнейших мобильных издателей мира?
Узнайте из видео!
Смотреть

Создаём саундтрек для игры одной кнопкой при помощи нейросети

Без мам, пап и Кевина МакЛауда.

В закладки
Аудио

Скучное вступление, не осилил

Сегодня нейросети становятся всё более популярными, постепенно превращаясь в новый тренд. Они используются для перевода текстов, обработки фотографий, а теперь ещё и в эротической индустрии.

Заинтересовавшись данной тематикой (нейросетей!), я провёл небольшое исследование на тему применения подобных технологий обычным пользователем с целью создания собственного продукта. В моём случае — музыкальных композиций.

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

Превзойти Моцарта у меня, увы, не получилось, но к бюджетным композиторам я теперь уже точно обращаться не буду. Потому что денег нет уже даже на них. А использование нейросетей давайте обсудим ниже ^~^.

Киберпанк наступил

Создание игр — процесс комплексный. Не мне писать о том, что знает каждый разработчик. Арт, музыка, звук, дизайн, код… Если арт игры можно стилизовать, а код написать плохой, потому что всё равно никто не увидит, то вот с музыкальной составляющей халтура не прокатит.

И что же мне делать?

Здесь на помощь приходит композитор, работающий с вами в одной команде. А…а если такого нет? Да и команды тоже… Ну, тогда можно тратить часы на поиск хорошей музыки с лицензией Creative Commons на специальных сайтах. Третьего варианта нет.

Но что если он всё-таки есть?

Не хочу искать. Ни композитора, ни хорошие подходящие треки. Хочу всё нажатием одной кнопки — и чтобы бесплатно и без копирайта!

Желание исполнено

Отсутствие подписки на канал этого парня приравнивается к преступлению против развития нейронных сетей и будет соответствующе наказано после восстания машин

Достаточно популярный YouTube-канал CodeParade, посвящённый разработке нейросетей и другим крайне интересным экспериментам, связанным с программированием, опубликовал в открытый доступ небольшую утилиту под названием Neural Composer.

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

Хм, а описание звучит неплохо! Надеюсь, музыка тоже?

Выше представлен небольшой отрывок, сгенерированный при помощи Neural Composer. Через FL Studio был заменён инструмент и произведён экспорт в .mp3. Используется в одном из моих *бесчисленных* проектов

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

Хочу так же

Для слабонервных доступна более короткая версия инструкции.

Уже загрузили Neural Composer? Нет?! Тогда вперёд на GitHub.

Загрузите утилиту, а затем распакуйте полученный архив *куда-нибудь*, желательно в пустую папку. Запустите файл «NeuralComposer.exe». Нажмите любую кнопку. Начните вертеть все рычажки, что видите, как ненормальный или будто бы у вас начался приступ какой-нибудь тропической болезни.

Краткий тур по Neural Composer. Это не таймлапс

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

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

Есть возможность поменять инструмент, выбрав нужный на нижней панели справа, а также настроить громкость некоторых нот, скорость и громкость всего трека.

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

Про тайну глубокого смысла за ними я так и не узнал, поэтому единственным вариантом выбора нужного слайдера остаётся один — какой цвет Вам больше понравится.

Как только Вы решили, что всё — нажмите на клавишу «M» чтобы сохранить созданную композицию в формате MIDI. Ещё можно получить .wav-файл, только на этот раз нажав на «W». Файл будет сохранён в папке с программой.

Я решил продолжить работу, используя MIDI-файл, так как его довольно просто редактировать через приложения для работы с музыкой. А именно этим мы сейчас и займёмся, кстати.

Вы и вправду надеялись не увидеть этот логотип в статье про создание музыки?

Прослушав полученный MIDI-файл может показаться, будто… Ну, ладно, не буду выражаться нецензурно, но… Короче говоря, всё как-то не очень. Но нам так и нужно, ведь сейчас у нас появится очень хорошая возможность сделать всё ещё хуже!

Для базовой обработки композиции не потребуется музыкальное образование или 10 лет опыта работы в уличном оркестре. Ими вы можете воспользоваться и самостоятельно, при наличии таковых, конечно. Сейчас нужен только палец, да доступ в интернет. Может быть, ещё и FL Studio.

Давайте импортируем MIDI-файл нашей композиции (File → Open) и заменим его инструмент (ЛКМ → MIDITrack). Можно воспользоваться встроенными, но там всё как-то скучновато, поэтому я бы загрузил плагины от DSK. Мало того, что они работают, так ещё и бесплатны!

Успокойтесь, я и сам ничего не понимаю!

После этого можно экспортировать трек в любой желаемый формат (File → Export) и вставить в игру. Ну или в мусорную корзину. Всё в ваших руках, в конце концов. На этом опыт работы с нейросетями можно посчитать успешно полученным. Используйте его во благо! Ой, кстати, а нейросеть-то можно тренировать самостоятельно ( ͡° ͜ʖ ͡°).

Хочу по-другому

Помните ту часть статьи, в которой я упомянул слово «исследование» и словосочетание «большое количество доступных решений»? Лично я — нет. Спасибо за прочтение, всем до свидания.

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

AIVA находится в стадии бета-тестирования и предлагает возможность создания музыкальных произведений в различных жанрах при помощи «искусственного интеллекта», однако только по выбору из заранее представленных пресетов. Большая часть функций либо платная, либо попросту недоступна. И даже та, которую разработчики на собственном сайте показывают, блин!

Качество композиций получается гораздо более высоким, нежели у Neural Composer. Спрашивается, зачем я всё это про него писал тогда…

Ах да, так тут же есть целая пачка фатальных (в контексте данной статьи, прошу заметить) недостатков. Из них следует выделить однообразность.

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

В итоге получается, что среди малого количества представленных решений Neural Composer является наиболее подходящим вариантом. Или нет, может я просто гуглил плохо ¯\_(ツ)_/¯

Конец

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

Котики. Котики. Автор: Я!!!

Ещё можете заценить мою игру про котиков и самостоятельно найти в ней трек, который я сгенерировал описанным способом! А вы думали я просто так тут распылялся? Ха-ха!

В любом случае, большое спасибо за прочтение моей писанины! Надеюсь, что мне удалось справиться с целью поделиться интересной информацией про музыкальные эксперименты. Хотя бы частично!

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

#нейросети #музыка

Материал дополнен редакцией

Материал опубликован пользователем. Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Александр Чтописатьвфамилии", "author_type": "self", "tags": ["\u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0438","\u043c\u0443\u0437\u044b\u043a\u0430"], "comments": 38, "likes": 159, "favorites": 339, "is_advertisement": false, "subsite_label": "gamedev", "id": 56785, "is_wide": false, "is_ugc": true, "date": "Sun, 30 Jun 2019 19:34:19 +0300" }
{ "id": 56785, "author_id": 142707, "diff_limit": 1000, "urls": {"diff":"\/comments\/56785\/get","add":"\/comments\/56785\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/56785"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 64954, "last_count_and_date": null }
38 комментариев

Популярные

По порядку

Написать комментарий...
12

Всегда доставляло когда нейронки стараются распихать во все щели. Будто на 1 кодера по 5 журналистов/маркетологов/сойбоев
Ну обучают ваши нейронки через заднее место. Все приведенные отрывки звучат как куски за 5 минут на коленке. Они даже близко не помогают для композиторов. Написание музыки это не перебирание аккордов наугад. Алло!

Ответить
3

Это же просто эксперимент одного кодера, который с помощью нейронок делает всякие весёлые штуки :D

Понятно, что о промышленных масштабах речи не идёт. Но то что у себя на домашнем компьютере можно такую вещь сделать и получить хоть какой-то результат — уже ведь неплохо!

Ответить
2

>эксперимент одного кодера

да если бы одного.
хоть какой то результат я смог бы получить собрав базу готовых патернов и при генерации просто перемешивал бы их. и в итоге результат вышел бы еще лучше.
какой смысл в этих нейронках то?

Ответить
5

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

Ответить
2

Жду генераторы метальчика и репчика...

Ответить
20

прямая трансляция из ада

Ответить
1

Это изумительно и прекрасно.

Ответить
0

Неплохо, ржачно, но прикольно, ссылочку сохранил, спасибо 😃

Ответить
2

Вот, кста, есть неплохое https://djen.co/

Ответить
5

В связи с упоминанием генеративной музыки, не могу не скинуть сюда ссылку на Mubert: https://play.google.com/store/apps/details?id=com.jellyworkz.mubert

Ответить
3

Увы, но там тупая генерация аранжировки из написанных лупов.

Ответить
0

Я не понял, музыка получается без авторских прав?

Ответить
14

Не будь так наивен. Все права на всю музыку во вселенной принадлежат Юрию Лозе.

Ответить
2

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

Ответить
0

Любая нейросеть - это чей-то мозг... или кусок мозга. вот этому мозгу и принадлежит авторское право на его же генеративную музыку. )))

Ответить
0

Юридически нет, это программы и авторских прав у них быть не может. Гипотетическая близость нейросетей и мозгов хоть в каком-то приближении — вопрос открытый.

Ответить
3

На данном этапе зучит всё равно хуже, чем какой-нибудь cgMusic. Композитор, да и просто мало-мальски грамотный музыкант за 10 минут на коленке сделает лучше (также, много - не значит хорошо. Часто достаточно лупа из 4 тактов)

Ответить
3

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

Ответить
3

Я бы сказал так. Если бы ты лично потратил по 3-5 минут на каждый отрывок, который скинул, у тебя бы получилось в разы лучше. А то, что вышло, это как ебалом упасть на клавиатуру поудачней, не сломав гармонии.

Ответить
2

Ещё слишком рано для получения желаемого. ) Годков через десять наверное с полноценной нейронной халявой проблем не будет.

Ответить
2

я дочитал и вступил в группу -мне полагается бонус(кроме нервного срыва)?

Ответить
2

Поклацал, послушал. Пока далеко это от музыки или саундтрека (как заявлено) для любой игры.

Ответить
0

Файл сохранять нужно, он только тогда дорабатывается нейросетью

Ответить
1

Иногда прога хорошо генерит. Порой прямо в тайминг попадает, когда надо.

Ответить
1

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

Но за ссылки спасибо.

Ответить
1

Написано живо и здорово :) пару раз смеялся в голос

Ответить
1

Сырой мидяшник звучит как музыкальная шкатулка. Напомнило конкретный саундтрек.

Ответить
1

Нельзя без МакЛауда, нельзя

Ответить
0

MuseNet лучше

Ответить
0

Как здесь удалить комментарий

Ответить
0

для друга спрашиваю
потому что MuseNet всё-таки лучше

Ответить
0

Ну, вообще музыку можно вытянуть практически из любого звука и любого интрумента, ик стати, музыку можно тоже стилизовать, не только арт, и с какой то тарабарзины что выдал мне этот нейроновый композитор, немного добавить аранжеровки и можно вытянуть нечто похожее на музыку котору. можно использовать в какой то экшн сцены, вот я например на основе мелодики этого компоузера накидал за три минуты фрагментик.
https://soundcloud.com/mrdarko/neural

Ответить
0

Спасибо, ты напомнил мне что нужно нафармить опенсорсной музыки, но Neural Composer мне не совсем подходит, так что я продолжу аутировать с Trick Composer.

Ответить
0

И где код? Пишешь статью давай ссылку на Гит :)

Ответить
0

Прямой эфир

{ "remaining": "WzAsMSwyLDMsNCw1LDYsNyw4LDld" } [ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjog" } } }, { "id": 10, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-250597-0", "render_to": "inpage_VI-250597-0-1134314964", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=clmf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudo", "p2": "ftjf" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvc" } } } ]
Игру с лучшим стелсом никто не заметил
Подписаться на push-уведомления