генератор музыки в майнкрафт
Music Maker Modэто качественный мод и он добавляет 13 музыкальных инструментов, которые можно сделать, и ещё один, который можно найти в сокровищнице. Поддержка мультиплеера, не читерные рецепты, нотные листы, в которой легко разобраться, совместимость с редстоуном.
Смысл такой: вы берёте нужный вам инструмент в руку, нажимаете правой кнопкой мыши по воздуху, и открывается необычный интерфейс с клавишами.
Удобнее всего играть музыку на клавиатуре:
Как можно понять из скриншота выше, для создания простой мелодии нужно просто немного потыкать нотки, выбирая их октаву (набор нот), и установить темп (скорость) трека. Нотные тетради можно подписывать, как книжки, чтобы их никто не сплагиатил.
Если вы прямо тащитесь от музыки, можете себе скрафтить метроном, чтобы тащиться ещё больше, он приятно тикает с выбранной вами скоростью. 😀
Можно сделать музыкальную шкатулку. В неё вставляется любой инструмент, которым она будет играть, а дальше она принимает нотные листы, как обычный инструмент. Активируется сигналом красного камня. После того, как музыка закончится, подаёт сигнал дальше. Об этом можно подробнее узнать в видео.
Кстати, рецепты очень простые, например, флейту можно сделать из трёх палок на верстаке. Можно наслаждаться музыкой чуть ли не с самого начала игры.
Музыкальный блок
Музыкальный блок настроен и проигрывает звук
Музыкальный блок, или нотный блок, (англ. Note Block) — блок, который был добавлен в версии Beta 1.2. Позволяет воспроизводить музыку, либо ноты в игре. При нажатии ПКМ меняется тональность звука, а при ЛКМ просто извлекается звук из блока. Звук инструмента, которым будет проигран звук, зависит от типа блока, над котором расположен музыкальный блок.
Содержание
Получение [ ]
Музыкальный блок эффективно добывается топором.
Блок | Музыкальный блок | |
---|---|---|
Прочность | 0.8 | |
Инструмент | ||
Время разрушения [FN 1] | ||
По умолчанию | 1.2 | |
Деревянный | 0.6 | |
Каменный | 0.3 | |
Железный | 0.2 | |
Алмазный | 0.15 | |
Незеритовый | 0.15 | |
Золотой | 0.1 |
Крафт [ ]
Создание музыки [ ]
Музыкальный блок не будет работать, если непосредственно над ним расположен другой блок. Музыкальный блок проигрывает звук при нажатии на нём ЛКМ или при действии схемы из красного камня на него.
Каждый раз, когда музыкальный блок проигрывает звук, из него сверху вылетает изображение ноты, цвет которой обозначает высоту проигранного звука.
Правый щелчок по музыкальному блоку увеличивает высоту звука на полтона; в общей сложности для проигрывания доступно 2 октавы. Диапазон звуков в одном блоке может меняться от F#3 до F#5 (часть Малой октавы, Первая октава и часть Второй октавы). После достижения максимальной высоты звука, повторное нажатие правой кнопкой приведёт к сбрасыванию высоты к значению F#3, как и уничтожение блока и его повторное размещение.
|
|
Числа на клавишах обозначают необходимое количество нажатий правой кнопки мыши на данном блоке, чтобы получить требуемую ноту. Цвет чисел соответствует цвету ноты, появляющейся над музыкальным блоком при проигрывании данного звука.
Инструмент, которым будет проигран звук, зависит от типа блока, на котором расположен музыкальный блок:
Блок | Музыкальный инструмент |
Деревянный: доски / сундук / верстак / проигрыватель … | Бас-гитара |
Песчаный: песок / красный песок / цемент / гравий | Малый барабан |
Стеклянный: стекло / окрашенное стекло / морской фонарь | Палочки |
Каменный: булыжник / обсидиан / кирпичный блок / адский камень … | Большой барабан |
Костяной блок | Ксилофон |
Золотой блок | Металлофон |
Глина | Флейта |
Плотный лёд | Колокольчик |
Шерсть | Гитара |
Железный блок | Железный ксилофон |
Песок душ | Коровий колокольчик |
Тыква | Диджериду |
Изумрудный блок | Аудиочип (битная музыка) |
Сноп сена | Банджо |
Светокамень | Звонкая арфа |
Другие блоки: земля / воздух / лазуритовый блок … | Пианино / арфа |
Проводка [ ]
Пример схемы с музыкальными блоками. При настройке 10-13-15-10-13-16-15-10-13-15-13-10 и включении начинает играть Smoke on the Water
Если подвести к блоку красный провод и активировать этот провод, то блок проиграет один звук, который вы установили ранее. Чтобы проигрывание звуков повторялось, можно использовать таймер из повторителей.
Автоматизация [ ]
Звуки [ ]
Звук | Субтитры | Источник | Описание | Идентификатор | Ключ субтитров | Громкость | Высота | Мин. дистанция |
---|---|---|---|---|---|---|---|---|
https://minecraft.fandom.com/ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Wood_dig1.ogg https://minecraft.fandom.com/ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Wood_dig2.ogg https://minecraft.fandom.com/ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Wood_dig3.ogg https://minecraft.fandom.com/ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Wood_dig4.ogg | Сломан блок | Блоки | Разрушение блока | block. wood. break | subtitles. block. generic. break | 1.0 | 0.8 | 16 |
https://minecraft.fandom.com/ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Wood_hit1.ogg https://minecraft.fandom.com/ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Wood_hit2.ogg https://minecraft.fandom.com/ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Wood_hit3.ogg https://minecraft.fandom.com/ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Wood_hit4.ogg https://minecraft.fandom.com/ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Wood_hit5.ogg https://minecraft.fandom.com/ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Wood_hit6.ogg | Нет [sound 1] | Блоки | Падение на блок с уроном от падения | block. wood. fall | Нет [sound 1] | 0.5 | 0.75 | 16 |
https://minecraft.fandom.com/ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Wood_hit1.ogg https://minecraft.fandom.com/ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Wood_hit2.ogg https://minecraft.fandom.com/ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Wood_hit3.ogg https://minecraft.fandom.com/ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Wood_hit4.ogg https://minecraft.fandom.com/ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Wood_hit5.ogg https://minecraft.fandom.com/ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Wood_hit6.ogg | Стук по блоку | Блоки | Добывание блока | block. wood. hit | subtitles. block. generic. hit | 0.25 | 0.5 | 16 |
https://minecraft.fandom.com/ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Wood_dig1.ogg https://minecraft.fandom.com/ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Wood_dig2.ogg https://minecraft.fandom.com/ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Wood_dig3.ogg https://minecraft.fandom.com/ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Wood_dig4.ogg | Блок размещён | Блоки | Размещение блока | block. wood. place | subtitles. block. generic. place | 1.0 | 0.8 | 16 |
https://minecraft.fandom.com/ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Wood_hit1.ogg https://minecraft.fandom.com/ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Wood_hit2.ogg https://minecraft.fandom.com/ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Wood_hit3.ogg https://minecraft.fandom.com/ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Wood_hit4.ogg https://minecraft.fandom.com/ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Wood_hit5.ogg https://minecraft.fandom.com/ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Wood_hit6.ogg | Шаги | Блоки | Ходьба по блоку | block. wood. step | subtitles. block. generic. footsteps | 0.15 | 1.0 | 16 |
Звук | Описание | Идентификатор | Громкость | Высота |
---|---|---|---|---|
? | Разрушение блока | dig. wood | ? | 0.8 |
? | Падение на блок с уроном от падения | fall. wood | ? | ? |
? | Добывание блока | hit. wood | ? | 0.5 |
? | Прыжки с блока | jump. wood | ? | ? |
? | Падение на блок без урона от падения | land. wood | ? | ? |
? | Ходьба по блоку | step. wood | ? | ? |
? | Размещение блока | use. wood | ? | 0.8 |
NBT данные [ ]
Проблемы [ ]
Отчёты об ошибках, связанных с «Музыкальный блок», поддерживаются в системе отслеживания ошибок Mojira. Сообщайте о найденных ошибках там (на английском языке).
В игре появятся различные музыкальные инструменты на которых вы сможете играть настоящую музыку, вы можете взять одну мелодию и разные инструменты и играть как группа, мод позволяет добавлять любые мелодии.
Данный мод не совсем музыкальный проигрыватель, он позволяет воспроизводить (создавать) музыку на разных музыкальных инструментах при помощи MML формата, это своеобразные ноты которые будет играть каждый инструмент.
Что бы играть музыку вы должны найти в интернете (или создать сами) MML код желаемой композиции, после чего скопировать его в игру, и можно играть.
Как пользоваться модом:
Создаем музыкальную бумагу.
Ищем в интернете MML коды песен, или берем их с этого сайта
Вот так выглядит код песни.
Открываем музыкальную бумагу на пкм.
Пишем название для данной бумаги, вставляем код во второе поле:
Слева мы можем выбрать инструмент и послушать как он будет звучать.
Сохраняем, создаем желаемый инструмент, жмем Shift+пкм, помещаем внутрь бумагу, держа в руках инструмент жмем пкм и игрок начинает играть эту песню.
Для игры в компании, вам нужно нажать на J и создать новую партию, после в нее могут присоединиться другие игроки, запуском и остановкой игры владеет создатель группы.
Музыка
В игре присутствует музыка, которая играет в Творческом режиме, Главном меню, Нижнем мире и в Крае. Также присутствует 14 пластинок со своими саундтреками, которые можно использовать в проигрывателе.
Большинство треков написал Даниэль Розенфельд, известный как C418. Также для версии 1.16 три новых трека для Нижнего мира и одна пластинка были написаны новым композитором — Леной Рейн.
Музыка может быть проиграна в игре с помощью команды /playsound ( )
Содержание
Треки [ ]
Музыка в обычном мире [ ]
Эти треки проигрываются в Обычном мире. После окончания прошлого трека, следующий начинает играть через случайное количество времени.
Название файла | Игровой процесс | Название трека |
---|---|---|
Calm 1 | Во всей игре | «Minecraft» |
Calm 2 | Во всей игре | «Clark» |
Calm 3 | Во всей игре | «Sweden» |
Creative 1 | В творческом режиме | «Biome Fest» |
Creative 2 | В творческом режиме | «Blind Spots» |
Creative 3 | В творческом режиме | «Haunt Muskie» |
Creative 4 | В творческом режиме | «Aria Math» |
Creative 5 | В творческом режиме | «Dreiton» |
Creative 6 | В творческом режиме | «Taswell» |
Hal 1 | Во всей игре | «Subwoofer Lullaby» |
Hal 2 | Во всей игре | «Living Mice» |
Hal 3 | Во всей игре | «Haggstrom» |
Hal 4 | Во всей игре | «Danny» |
Nuance 1 | Во всей игре | «Key» |
Piano 1 | Во всей игре | «Dry Hands» |
Piano 2 | Во всей игре | «Wet Hands» |
Piano 3 | Во всей игре | «Mice on Venus» |
Подводная музыка [ ]
Эти музыкальные треки проигрываются когда игрок полностью находится под водой или в любом речном или океаническом биоме. Следующий трек проигрывается через 10-20 минут после прошлого.
Название файла | Игровой процесс | Название трека | Часть трека |
---|---|---|---|
Axolotl | Под водой | «Axolotl» | https://minecraft.fandom.com/ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Axolotl.ogg |
Dragon Fish | Под водой | «Dragon Fish» | https://minecraft.fandom.com/ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Dragon_Fish.ogg |
Shuniji | Под водой | «Shuniji» | https://minecraft.fandom.com/ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Shuniji.ogg |
Музыка Нижнего мира [ ]
Эта музыка проигрывается, когда игрок находится в Нижнем мире.
Название файла | Игровой процесс | Название трека |
---|---|---|
Nether 1 | В Нижнем мире | «Concrete Halls» |
Nether 2 | В Нижнем мире | «Dead Voxel» |
Nether 3 | В Нижнем мире | «Warmth» |
Nether 4 | В Нижнем мире | «Ballad of the Cats» |
Rubedo | В Нижнем мире в биоме Пустоши | «Rubedo» |
Chrysopoeia | В Нижнем мире в биоме Багровый лес | «Chrysopoeia» |
So Below | В Нижнем мире в биомах Базальтовые дельты и Долина песка душ | «So Below» |
Музыка Края [ ]
Данные треки проигрываются когда игрок находится в Краю. Первый трек проигрывается только если Дракон Края ещё не побежден.
Название файла | Игровой процесс | Название трека |
---|---|---|
Boss | Битва с Драконом Края | — |
End | В Краю [1] | «The End» |
Другая музыка [ ]
Эти треки не присутствуют в самой игре, но проигрываются в меню и во время Поэмы Края.
Генерация музыки в реальном времени
«Как автоматизировать сочинение музыки?» — этот вопрос тревожит умы музыкантов еще со времен средневековья. Кеплер превращал траектории движения планет в музыку; Моцарт и его современники изобрели игру в «музыкальные кости» — они броском кубиков выбирали из большой таблицы такты и составляли из них менуэты. Но только с появлением компьютеров алгоритмическая генерация музыки получила настоящее развитие. Теория вероятности, марковские цепи, искусственные нейронные сети — все это стало инструментами создания музыки.
Разумеется, чисто математическая музыка редко когда оказывается благозвучной, несмотря на красоту математики как науки. Поэтому люди начали пытаться автоматизировать написание привычной, «классической» музыки. Выявить закономерности в произведениях, разложить музыку на «составляющие» и понять, почему та или иная комбинация нот вызывает у слушателя разные эмоции. Почему простое движение по гамме в разных контекстах воспринимается по-разному? Существует ли идеальное произведение? Твердых ответов на эти вопросы до сих пор нет — есть лишь философские размышления музыковедов да теоретиков. Но музыканты и математики по всему миру не сдаются и продолжают копать этот вопрос.
Будем считать, что со вступлением покончено и перейдем сразу к моей работе. Я начал увлекаться генерацией музыки пару лет назад и выбрал эту тему в качестве своей магистерской работы на мехмате ЮФУ.
Тема моей диссертации звучит страшно: «Инкрементная генерация музыкальных произведений на основе динамических паттернов.» В переводе на русский: генерация музыки в реальном времени с использованием изменяющихся паттернов.
К написанию данного поста меня сподвигла аналогичная работа, опубликованная вчера и личная просьба Vokabre осветить данный вопрос. Я постараюсь по минимуму использовать термины из теории музыки и рассказывать все простым языком, но иногда меня может заносить, так что заранее извиняюсь.
Постановка задачи
То есть, я хотел получить инструмент, который превращал бы пользователя одновременно в композитора и дирижера импровизирующего ансамбля: все играют складно, в гармонию, кто-то солирует, а остальные аккомпанируют и руководитель в любой момент может приказать кому-либо вступить в игру. Здорово же!
Пример генерируемой музыки
Используемые инструменты
Структура генератора
Тут все, вроде, очевидно. Модель упрощенная и не претендует на универсальность, но основные структурные единицы музыкального произведения демонстрирует наглядно.
Условно можно разбить весь процесс генерации на три этапа: генерация основной мелодии, гармонизация ее и, наконец, генерация второстепенных голосов по этой гармонии. Полученный музыкальный такт проигрывается и генерация продолжается. Рассмотрим модули по отдельности:
Модуль основной мелодии
Это самый сложный из модулей. Он, собственно, генерирует мелодии. Отчасти рандомно, отчасти обдуманно — для этого используются паттерны. Паттерн в данном контексте — последовательность из двух или более нот (или более мелких паттернов), имеющих относительную длительность, не привязанная к какой-либо тональности или аккорду. То есть паттерн — это то, как могут быть связаны друг с другом ноты. Простейшие из паттернов имеют следующий вид:
У Баха некоторые из произведений очень легко описываются одинаковыми паттернами, например, вот эта прелюдия в до-миноре имеет один и тот же паттерн (меняется только аккорд, по которому идет движение)
Повторю еще раз: паттерн — это не абсолютные ноты, это лишь отношение между нотами. «Вторая нота выше предыдущей на полтона», или «вторая нота отстоит от первой на три ступени текущей тональности», или «вторая нота является следующей нотой по текущему аккорду» (т.е. для до-мажорного аккорда вслед за «до» прозвучит «ми»).
Таким образом описываются все возможные отношение между двумя соседними нотами, принадлежащими одному мотиву. Создается база часто используемых в музыке паттернов и с их помощью строится основная мелодия.
В итоге мы получаем какую-нибудь мелодию. Она будет нашим мотивом на ближайшие четыре такта. В дальнейшем этот мотив либо повторится, но уже от другой ноты, либо будет слегка изменен, либо вовсе будет заменен на другой мотив — в зависимости от структуры текущего предложения.
Модуль гармонизации
Гармонизация мелодии — это задача достойная отдельного исследования. Ради программы, способной решить задачи по гармонии, студенты муз. колледжа готовы пойти на многое. Для них гармония — это что-то вроде синонима к слову «матан». И не зря — правил гармонии не так уж и много, но вот исключений из них очень много. Поэтому разработка алгоритма, который бы верно гармонизировал один такт с учетом предыдущих тактов, но без информации о последующих тактах может занять очень много времени. По правде говоря, у меня со знакомой-теоретиком музыки была даже дискуссия о существовании такого алгоритма.
Таким образом, необходимо задачу упростить и сделать реализуемой за разумные сроки. Так что введем ряд ограничений: во-первых гармонизировать будем только трезвучиями (никаких септ- и нонаккордов, пока что), во-вторых пренебрежём несколькими правилами касательно уменьшенных аккордов, которые могут затруднять жизнь, и в-третьих — сделаем обязательным движение к доминанте в конце 4 такта и к тонике в конце 8-го. Чтобы у слушателя возникало ощущение завершенности.
Вот так выглядит схема допустимости применения одних аккордов вслед за другими. Также есть еще несколько нюансов касательно переноса аккордов через тактовую черту и так далее, но их я опущу, чтобы не вдаваться в подробности.
Гармонизатор на входе получает такт с мелодией, и согласно имеющимся правилам гармонизирует ее, создавая сетку аккордов. Тут вступает в работу последний генерирующий модуль.
Модуль генерации второстепенных аккордов
Работа этого модуля довольно проста: он берет аккордовую сетку и, подставляя простейшие паттерны, генерирует простенькие второстепенные голоса. За основу берутся ноты, входящие в состав аккорда, и таким образом гарантируется гармоничность. Аккомпанемент — это то, что обычно играется в левой руке у фортепиано, либо стандартный перебор у гитары. По сути — тоже набор паттернов, только более мелкой длительности.
Воспроизведение
Когда все сгенерировано — полученная партитура поступает в распоряжение всех плееров: один выводит это в виде звука, другой рисует ноты, а третий — пишет в файл. Чтобы гениальное произведение не пропало!
Пользовательский интерфейс
Пользовательский интерфейс позволяет задавать параметры как до, так и во время самой генерации (изменения вступят в силу уже в следующем такте). Можно менять инструменты, их роли (мелодия/второстепенный голос/аккомпанемент), громкость, октаву и так далее. Также можно регулировать общий темп и громкость произведения, его тональность и частоту появления украшений. Это такой дирижерский пульт для виртуального ансамбля.
Программа по-прежнему находится в разработке и еще много чего будет добавлено. Модульная система позволяет улучшать отдельные компоненты, не ломая при этом другие.
Мне поступили многочисленные просьбы поделиться программой или исходниками. Так вот, тут ситуация такая: я ближайшие пару месяцев планирую внедрить в программу новые возможности, значительно улучшить алгоритм генерации и сделать еще несколько плюшек. После этого я, скорее всего, создам проект на github’е, где и можно будет взять исходники и саму программу. По этому поводу, видимо, будет еще отдельный пост на Хабре.
Еще меня часто просили дать почитать целиком магистерскую диссертацию — что я с радостью и делаю. Полный текст моей работы доступен вот здесь: http://armaxis.ru/files/MusicGenerator.pdf. Также я выложил презентацию, что демонстрировал на защите, где освещаются основные моменты программы.
Спасибо всем за столько активное обсуждение данной темы, я, право, и не ожидал такого!