Генерация музыки в реальном времени



    «Как автоматизировать сочинение музыки?» — этот вопрос тревожит умы музыкантов еще со времен средневековья. Кеплер превращал траектории движения планет в музыку; Моцарт и его современники изобрели игру в «музыкальные кости» — они броском кубиков выбирали из большой таблицы такты и составляли из них менуэты. Но только с появлением компьютеров алгоритмическая генерация музыки получила настоящее развитие. Теория вероятности, марковские цепи, искусственные нейронные сети — все это стало инструментами создания музыки.

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

    Будем считать, что со вступлением покончено и перейдем сразу к моей работе. Я начал увлекаться генерацией музыки пару лет назад и выбрал эту тему в качестве своей магистерской работы на мехмате ЮФУ.
    Тема моей диссертации звучит страшно: «Инкрементная генерация музыкальных произведений на основе динамических паттернов.» В переводе на русский: генерация музыки в реальном времени с использованием изменяющихся паттернов.

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

    Постановка задачи

    Я поставил перед собой задачу написать генератор музыки, который бы мог делать следующее:
    • Генерировать благозвучные мелодии;
    • Гармонизировать мелодию, согласно правилам гармонии;
    • Генерировать аккомпанемент по имеющимся аккордам;
    • Все вышеперечисленное делать в реальном времени (т.е. на лету, такт за тактом);
    • И при этом позволять вмешиваться в процесс генерации (менять инструменты, тональность, высоты нот и т.д.);
    • Ну и опционально: выводить все это в виде нот, сохранять в midi и mp3.


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

    Пример генерируемой музыки


    Используемые инструменты

    Разрабатывал я все на языке Java, для которого есть замечательная музыкальная библиотека jMusic, уже содержащая музыкальные примитивы, вроде ноты, фразы или партии, а также имеющая инструменты работы с MIDI. Для воспроизведения звука использовался синтезатор Gervill, входящий в состав JDK 1.7 и позволяющий воспроизводить музыку с использованием внешних звуковых банок в формате .sf2. Также была использована библиотечка JAVE (Java Audio Video Encoder) — которая пережимает захваченное wav-аудио в компактный mp3.

    Структура генератора



    Тут все, вроде, очевидно. Модель упрощенная и не претендует на универсальность, но основные структурные единицы музыкального произведения демонстрирует наглядно.



    Условно можно разбить весь процесс генерации на три этапа: генерация основной мелодии, гармонизация ее и, наконец, генерация второстепенных голосов по этой гармонии. Полученный музыкальный такт проигрывается и генерация продолжается. Рассмотрим модули по отдельности:

    Модуль основной мелодии

    Это самый сложный из модулей. Он, собственно, генерирует мелодии. Отчасти рандомно, отчасти обдуманно — для этого используются паттерны. Паттерн в данном контексте — последовательность из двух или более нот (или более мелких паттернов), имеющих относительную длительность, не привязанная к какой-либо тональности или аккорду. То есть паттерн — это то, как могут быть связаны друг с другом ноты. Простейшие из паттернов имеют следующий вид:



    У Баха некоторые из произведений очень легко описываются одинаковыми паттернами, например, вот эта прелюдия в до-миноре имеет один и тот же паттерн (меняется только аккорд, по которому идет движение)



    Повторю еще раз: паттерн — это не абсолютные ноты, это лишь отношение между нотами. «Вторая нота выше предыдущей на полтона», или «вторая нота отстоит от первой на три ступени текущей тональности», или «вторая нота является следующей нотой по текущему аккорду» (т.е. для до-мажорного аккорда вслед за «до» прозвучит «ми»).

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



    Построение ведется в три этапа.
    1. Построение каркаса из простейших паттернов.
    2. Замена некоторых из нот паттернами более мелкой длительности (с сохранением движения в сторону следующей ноты)
    3. Внесение финальных коррективов и добавление украшений (форшлагов и трелей)


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

    Модуль гармонизации

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

    Таким образом, необходимо задачу упростить и сделать реализуемой за разумные сроки. Так что введем ряд ограничений: во-первых гармонизировать будем только трезвучиями (никаких септ- и нонаккордов, пока что), во-вторых пренебрежём несколькими правилами касательно уменьшенных аккордов, которые могут затруднять жизнь, и в-третьих — сделаем обязательным движение к доминанте в конце 4 такта и к тонике в конце 8-го. Чтобы у слушателя возникало ощущение завершенности.



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

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

    Модуль генерации второстепенных аккордов



    Работа этого модуля довольно проста: он берет аккордовую сетку и, подставляя простейшие паттерны, генерирует простенькие второстепенные голоса. За основу берутся ноты, входящие в состав аккорда, и таким образом гарантируется гармоничность. Аккомпанемент — это то, что обычно играется в левой руке у фортепиано, либо стандартный перебор у гитары. По сути — тоже набор паттернов, только более мелкой длительности.

    Воспроизведение

    Когда все сгенерировано — полученная партитура поступает в распоряжение всех плееров: один выводит это в виде звука, другой рисует ноты, а третий — пишет в файл. Чтобы гениальное произведение не пропало!

    Пользовательский интерфейс



    Пользовательский интерфейс позволяет задавать параметры как до, так и во время самой генерации (изменения вступят в силу уже в следующем такте). Можно менять инструменты, их роли (мелодия/второстепенный голос/аккомпанемент), громкость, октаву и так далее. Также можно регулировать общий темп и громкость произведения, его тональность и частоту появления украшений. Это такой дирижерский пульт для виртуального ансамбля.

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

    ОБНОВЛЕНИЕ 02.07.2013

    Мне поступили многочисленные просьбы поделиться программой или исходниками. Так вот, тут ситуация такая: я ближайшие пару месяцев планирую внедрить в программу новые возможности, значительно улучшить алгоритм генерации и сделать еще несколько плюшек. После этого я, скорее всего, создам проект на github'е, где и можно будет взять исходники и саму программу. По этому поводу, видимо, будет еще отдельный пост на Хабре.

    Еще меня часто просили дать почитать целиком магистерскую диссертацию — что я с радостью и делаю. Полный текст моей работы доступен вот здесь: http://armaxis.ru/files/MusicGenerator.pdf. Также я выложил презентацию, что демонстрировал на защите, где освещаются основные моменты программы.

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

    ОБНОВЛЕНИЕ 04.10.2013
    Выложил исходники проекта на Github.
    Присоединяйтесь к разработке! =) https://github.com/Armaxis/jmg
    Метки:
    Поделиться публикацией
    Реклама помогает поддерживать и развивать наши сервисы

    Подробнее
    Реклама
    Комментарии 193
    • +3
      Выглядит — и звучит — здорово, но хотелось бы, конечно, повозиться с работающей программой.
      Я в музыке пользователь, никак не создатель, но мне кажется, что это весьма полезно. Для каких-нибудь инди-разработчиков игр или кинематографистов так вообще клад.
      • +14
        У меня была идея оформить это в виде библиотеки, которая позволит разработчикам игр на лету генерировать необходимый саундтрек: спокойную музыку или наоборот, ритмичную, боевую.
        • НЛО прилетело и опубликовало эту надпись здесь
          • 0
            В какой-нибудь игрушке навроде Arcanum такая музыка фоном просто на ура бы пошла :)
            • 0
              Отличная идея! Думаю, даже за деньги будет пользоваться спросом.
          • +26
            Супер! Дайте сам софт пощупать, пожалуйста.
            • +20
              Супер. Это пока лучшее, что я слышал из автогенерируемой музыки.
              • 0
                Сосредоточились только на классической музыке?
                • –16
                  И правильно. Начинать нужно с азов :)
                  • +14
                    А разве классическая музыка проще какой-нибудь современной поп-музыки?
                    • +11
                      она интереснее, чем туц туц туц туц
                      • +4
                        более того, автогенерируемая музыка из поста сама по себе лучше чем все известные туц-туц подобные
                      • –6
                        А разве классическая музыка проще какой-нибудь современной поп-музыки?


                        Дело не в простоте. Есть базовые знания, и в музыке классика является как раз такой базой, на которой уже потом строится современная музыка.
                        • +14
                          Бугога, простите.
                          Как раз современная музыка наглядно демонстрирует самые что ни на есть примитивы композиторского искусства.
                          • +24
                            Современная поп-музыка — это набор квадратов с затертыми до дыр последовательностями аккордов. Ее даже описывать лень.
                            • 0
                              Бугога, простите.
                              Как раз современная музыка наглядно демонстрирует самые что ни на есть примитивы композиторского искусства.

                              Ничего удивительного. Большинство современных музыкантов не имеют профессионального музыкального образования. Результат, как говорится, налицо.
                              • +22
                                Кстати, тут всё забито мифами. Многими ненавистную попсу играют очень даже матёрые и с хорошим образованием люди. Просто есть одна маааааленькая тонкость — пипл хавает, извините, дерьмо. Классика, ничего тут не поделаешь, как и джаз, блюз, старый хороший рок и много другой интересной и приятной музыки не кушается
                                • 0
                                  Вот только непонятно, почему «матёрые» музыканты не делают за совесть «чуток лучше, чем дерьмо. до сих пор дерьмо, но более изящное». Я так понимаю, что кроме уровня «матёрый» у таких ничего-то в душе и нет.
                                  • +2
                                    Все дело в том, что им продюсер не разрешает играть что-то сложнее Am Dm Em, а то 14-летние девочки не поймут. А дома можешь играть хоть триолями теппингом в ритме 200, всем пофиг. Правда, до сих пор не понятно, зачем в поп группы набирают проф музыкантов, когда тоже самое сможет сыграть Вася из соседнего подъезда, и горааааздо дешевле.
                                    • 0
                                      Бред. Хорошую попсу сделать очень сложно. Иначе где наши Грэми? И где еще сотня авторов не хуже Земфиры?
                                      • +3
                                        Дело не в сложности сыграть, а в сложности придумать. А придумывают совсем другие люди. Играть её обычно реально не трудно, если есть чувство ритма
                                    • +2
                                      Правда, до сих пор не понятно, зачем в поп группы набирают проф музыкантов, когда тоже самое сможет сыграть Вася из соседнего подъезда, и горааааздо дешевле.

                                      Тоже задавался этим вопросом и не так давно получил возможный ответ на него. Студийный формат попсы не предполагает длинных сольных партий, зато на концертах хорошим музыкантам часто дают играть. Возьмите любой концерт Земфиры(хотя у нее и в студийках все хорошо), либо вот, к примеру:
                                      www.youtube.com/watch?v=t3DsYfmLBrk&feature=player_embedded#t=492s
                                      • 0
                                        Ну вот разве что только для таких моментов, хотя я не думаю что у каждой поп-группы есть в программе такой выход музыкантов, где каждый может показать за что им платят деньги)

                                        p.s.: что-то в ответах на мой комментарий зачастила Земфира. Я что-то пропустил, или она заслужила статус крутой русской попсы? (сам я слушаю только тяжелый метал, поэтому не в теме)
                                        • 0
                                          Ну, не попсы, как заметили ниже, но не суть.
                                          Вы знаете, тоже ее не слушал совсем(и тоже довольно долго сидел на тяжелом метале :) ), но недавно открыл. Точнее, мне открыли. Да, музыка местами довольно девочковая, особенно первые альбомы, но она на порядок интереснее всего остального, что я слышал из русской современной музыки. Не говоря уже о том, что крутят по телекам…
                                          Все имхо, никого не хотел обидеть.
                                          • 0
                                            Да она вроде с самого первого альбома стала крутой русской попсой (попса — популярная музыка, без отсылок к качеству).
                                          • 0
                                            Извините, а с каких пор Земфира стала попсой?
                                            • +3
                                              Хотел указать, что у Земфиры на концертах играют музыку и случайно назвал попсой. Каюсь.
                                              • 0
                                                Попса попсе рознь на самом. Попса очень даже качественная бывает. А грань между попсой и поп-роком ооооочень тонкая. Потому называние земфиры или би-2 поп-музыкой не думаю, что должно вызывать у кого-то бурные эмоции.
                                            • +3
                                              Правда, до сих пор не понятно, зачем в поп группы набирают проф музыкантов, когда тоже самое сможет сыграть Вася из соседнего подъезда, и горааааздо дешевле.

                                              А вот это тоже очередной миф. Вася, если он не имеет особых музыкальных талантов и опыта, никогда не сыграет так, как играют профессиональные музыканты. Даже чтобы три аккорда сыграть правильно, нужно иметь за плечами опыт и понимать, что значит это самое «правильно». Или вы думаете, продюсеры по простоте душевной тратят лишние деньги на зарплату профессионалам?
                                              • –2
                                                Я не уверен, что полностью отдавал себе отчёт, в том что я написал. Конечно Васи не смогут всего этого. И если клавишник кричит «переходи на ля минор!» то Вася серьёзно облажается, в отличии от профессионального музыканта.
                                                • 0
                                                  Да даже если Вася и перейдет на ля минор. Даже если он знает, каким ладом какой аккорд в этом ля миноре обыгрывается. Все это еще не дает гарантии, что Васино исполнение будет обладать всеми характеристиками, необходимыми для создания у слушателей чувства эйфории.
                                                  Я не беру в расчет совсем уж откровенную говно-попсу. Но если говорить о поп-музыке качественной, то все именно так на мой взгляд.
                                              • 0
                                                +1 К текстам песен это, думаю, тоже относится. Слушаешь порой радио и офигиваешь, как надо не любить музыку, чтоб писать такие тексты к ней, или наоборор )
                                                • +1
                                                  А дома можешь играть хоть триолями теппингом в ритме 200, всем пофиг

                                                  Никогда не понимал ценности в «теппинге в ритме 200». По моему мнению, всякие Ингви Малмстины — это ещё хуже современной попсы, так как и там и там нету новизны, идеи и постоянная самоповторяемость, так у Ингви ещё и вменяемая мелодика отсутствует. Техника ради техники. Взять за пример как он своей гитарой кавер на Dream On испортил. По-моему, настоящее мастерство композитора в том, чтобы сыграть медленно и так, чтобы зацепило.
                                                  • 0
                                                    Не знаю ни одного имени и названия, из тех что вы упомянули, но полностью с вами согласен. Мой пример был неудачным.
                                                    • 0
                                                      Yngwie Malmsteen — один из основных и первых «быстрых» гитаристов, который «гоняет» по гамам туда-сюда. Вместе с Dio они сделали кавер на песню Dream On, которая исполняется Aerosmith в оригинале и если Дио сделал её феноменально, то игра Ингви — это пример того, как можно испортить шикарную песню бездарностью композитора, который вставил свои паскудные 32-тые, которые совершенно не подходят по настроению.

                                                      Извините за фейковые «клипы» на ЮТубе, важна только музыка)
                                                      • 0
                                                        Имхо, нельзя так категорично. Мальмстин местами вполне музыкален. Просто в своей нише. У него много слушабельных своих вещей, в том числе много переложений классики на электрогитару. Вспомнился также довольно интересный кавер. Имхо, неправильно смешивать человека с де##мом за стиль.

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

                                                        • 0
                                                          Ну я критикую скорее не его, а именно этот стиль. У того же Michael Angelo Batio есть довольно мелодичная и приятная тема No Boundaries, но опять же, если убрать эти безумные 32-ые, то получилась бы действительно музыка, а не спорт.
                                                        • 0
                                                          А мне оба варианта понравились. Да и вообще стиль Yngwie нравится, это дело вкуса
                                                  • 0
                                                    Ну а кто вам сказал, что они не играют что-то другое? У них же не один коллектив. Просто на чём-то же ещё надо и зарабатывать, чтобы прокормить себя, семью, купить струны, поменять весло.

                                                    З, Ы. Разработчиков же не судят за то, что они занимаются неинтересными проектами, но которые приносят деньги — это работа. Вот и у музыкантов работа.
                                                    • 0
                                                      Вот только непонятно, почему «матёрые» музыканты не делают за совесть «чуток лучше, чем дерьмо. до сих пор дерьмо, но более изящное». Я так понимаю, что кроме уровня «матёрый» у таких ничего-то в душе и нет.

                                                      Сам в попсу не изучал подробно, но на лурке пишут интересную вещь:
                                                      Гармонии представляют собой либо тупой набор из трёх блатных (блюзовых, руки бы им поотбивать), либо шизофреническую кашу из всяких септов, малых, нонаккордов. Яркий пример последнего тяжёлого случая — кучерявый Леонид Агутин.

                                                      Так что всякое можно найти)
                                                    • +3
                                                      Кстати, тут всё забито мифами. Многими ненавистную попсу играют очень даже матёрые и с хорошим образованием люди.

                                                      Ну, вы возмите современную эстраду и просто в процентном отношении посмотрите, сколько среди исполнителей и музыкантов профессионалов. Даже среди западных классиков рока таковых явное меньшинство. И среди наших — тоже. Я учился в музучилище Чайковского, в Свердловске. Со мной учились только Алик Потапкин — барабанщик из «Натилуса» и один год учёбы осилил Глеб Самойлов — басист из «Агаты Кристи» (но он даже в музыкальной школе не учился). А, ну, ещё Александр Пантыкин из «Урфин Джюса». Учился ещё со мной в одно время Лёва Шутылёв (малоизвестная группа «Флаг», в «Агате» тоже поиграл немного), но он погиб в 1992. Вот и всё, собственно. Это те, кто имел хоть какое-то профессиональное образование из Свердловского рока (я имею в виду именно те группы, что получили известность в более-менее широких кругах) того времени.
                                                      • 0
                                                        Арефьева Ольга вроде это училище закончила.
                                                        • +2
                                                          Арефьева Ольга вроде это училище закончила.

                                                          Да, училась. Она поступила в 1985, я как раз в армию ушёл.

                                                          Кстати, вспомнил ещё одну легендарную личность. В нашем училище учился Владимир Мулявин — «Песняры» :)

                                                          Он про своё училище не забыл. В начале 1985 года, если не ошибаюсь, они приезжали в Свердловск с гастролями. Я сидел в фойе, ждал очередную лекцию, тут подкатывает Мулявин на большом туристическом автобусе, заходит в училище и предлагает всем желающим прямо сейчас проехать к ним на репетицию. Нас, естественно, долго уговаривать не нужно было — забили на лекции и в автобус :)
                                                          Посидели в зале, послушали репетицию, а после неё все полезли на сцену знакомиться с аппаратурой :)
                                                          Весело было…
                                                          • 0
                                                            О, какие молодцы) Ну по вашим воспоминаниям как раз впечатление может сложиться обратное: что эстрадные музыканты очень даже тесно связаны были с проф. образованием :)
                                                    • НЛО прилетело и опубликовало эту надпись здесь
                                                      • +1
                                                        Многие это по пальцам (покалеченой) руки пересчитать. Остальных же не счесть.
                                                        • +6
                                                          Не нужно путать отсутствие классического музыкального образования с отсутствием музыкальной образованности. Многие так называемые самоучки выросли в определенной музыкальной среде, которая и позволила им получить образованность без образования. Плюс должна быть необыкновенная вовлеченность, должно проводиться много работы над собой. У кого-то это, может, и происходит неосознанно, но так или иначе происходит. Так что не нужно обманываться убеждениями о том, что человек, ничего не шарящий в музыке, вдруг внезапно сам по себе становится гением.
                                                      • +1
                                                        Ой, да уж ладно.

                                                        Во-первых музыки современной навалом разной, в том числе — и с хитрыми всякими гармониями.
                                                        Во-вторых сложная гармония — это не такой уж это и матан, лепить ее несложно научиться. Просто завернуть что-то сложнее C/Am/F/G — это не самоцель
                                                        В-третьих — современная музыка часто весьма сложна со звукоинженерной точки зрения.
                                                    • –6
                                                      Возможно, дело в том, что классическая музыка это фиксированный набор инструментов, без доп. эффектов и потому с ней работать проще, чем с бесчисленными вариациями компьютерных эффектов, пусть даже наложенных на простую мелодию.
                                                      • +7
                                                        Возможно, дело в том, что классическая музыка это фиксированный набор инструментов, без доп. эффектов и потому с ней работать проще, чем с бесчисленными вариациями компьютерных эффектов, пусть даже наложенных на простую мелодию.

                                                        В классике всё на порядок сложнее. Поверьте. Я могу сочинять лёгкую музыку, пусть плохую — но могу. Хоть сейчас вот сяду за синтезатор и за вечер накатаю что-нибудь. А вот классику не смогу. Там уровень сложности выше гораздо.
                                                        • 0
                                                          Фиксированный? Что, правда?

                                                          (вы про, скажем, миксты ничего не слышали?)
                                                          • 0
                                                            А какой набор инструментов в классике не фиксированный?
                                                            А что такое микст в музыке?

                                                            Для себя интересуюсь :)
                                                            • +2
                                                              Начинать надо с вопроса «какой — фиксированный».

                                                              Микст — это тембр, получаемый при звучании двух различных инструментов в унисон (например — валторны и кларнета).
                                                        • +1
                                                          Классическую музыку проще генерировать, потому что она ориентирована прежде всего на содержание, описываемое midi, а правила очень четко формализованы. Саунд уже хрен сгенерируешь, а современная музыка на 99% состоит из саунда, поэтому генератор разнообразной современной музыки не напишешь. Это как сравнивать автогенератор текстур с фотошопом — во втором случае человек потребуется.
                                                          • +1
                                                            А что мешает написать генератор, который midi будет скармливать секвенсеру и дальше уже там навешивать в автоматическом режиме спецэффекты и прочие красоты?
                                                            • 0
                                                              То-то электронные музыканты днями подбирают правильный звук для какого-либо синта. ;) Подобрать нормально звучащие вместе инструменты и фильтры, в принципе, возможно, но это будет именно что набор. А вот сделать генератор, способный понимать, будет ли вот такой звук приятно звучать или нет — к такой задаче я даже не знаю, как подступиться.
                                                              • 0
                                                                Зависит от того, какой стиль вы хотите получить.
                                                                1. Есть стили, в которых специально написанный под трек генератор может быть основной музыки: idm, дрон-эмбиент. То есть это уже делается. Но там этот генератор очень узкоспециализированный и будет рожать одинаковое. Не думаю, что можно написать генератор генераторов — как без человека понять, что хорошо звучит, а что нет?
                                                                2. Стили, имеющие в своей основе брейкбит, сводятся не к «midi+эффекты», а «сэмплы+эффекты» (смотрите jimpavloff prodigy ableton на ютубе, если не видели), а автонарезчик сэмплов это что-то нереальное.
                                                                3. Из того, что вы предлагаете, можно получить выхолощенный транс.

                                                                Но даже этот выхолощенный транс потребует доработки напильником — сведения. Формализованная теория сведения отсутствует. Вы этот вопрос с «классикой» обходите прописанным выбором инструментов и правилами аранжировки, но формальных правил сведения 5 случайных звуков нет — зачастую нужно и аранжировку подстраивать.
                                                                • 0
                                                                  Даже если забыть для простоты про мастеринг, все равно остается вопрос того, как вообще создать звук с нуля для каждого из синтов. Крутить рандомно ручки генераторов, выбирать случайный пресет — ну… на таком точно далеко не получится уехать.

                                                                  В общем, тут уже проблема в «создании инструмента», в отличие от просто выбора одного из готовых инструментов в живой музыке.
                                                                  • 0
                                                                    Формализованная теория сведения отсутствует.

                                                                    Более того, даже крутые профессионалы с огромным опытом придерживаются прямо противоположных мнений в вопросам сведения, начиная от того, играть ли под метроном, заканчивая тем, «подтягивать» ли вокал.
                                                                  • 0
                                                                    И, кстати.

                                                                    image
                                                                    • 0
                                                                      Какая-то гомосексуально-ориентированная программа. Сплошь Gay в гармониях)
                                                                      • 0
                                                                        Это такой юмор «для тех, кто в теме», стеб над музыкой, выходящей на конкретном лейбле (Anjunabeats). :) И программы этой, естественно, не существует.

                                                                        А gay тут — синоним cheesy (вот, блин, прекрасно знаю, что означает, а по-русски выразить не могу).
                                                                        • 0
                                                                          а по подробнее о стебе?
                                                                          • 0
                                                                            Ну, речь о том, что музыка неоригинальна, треки похожи друг на друга и ничего, кроме шаблонщины, на лейбл не подписывают.
                                                          • +3
                                                            Эмм, а ничего, что в вашем аккомпанементе (дважды) нарушены правила академической гармонии?

                                                            Уж при гармонизации трезвучиями-то можно было таких вещей избегать?
                                                            • 0
                                                              (хотя нет, не прав, как раз при гармонизации трезвучиями это сложнее, потому что возможностей меньше)
                                                              • 0
                                                                В каком конкретно случае идет нарушение?
                                                                • +1
                                                                  У вас третий и четвертый аккорды всеми голосами идут вниз.
                                                                  • 0
                                                                    Отлов параллельного движения, равно как мелодические и гармонические соединения я не реализовывал — это можно реализовать в случае если предвидится именно 4 голоса, но их может быть и 1 и 10 — тут уже такое не отловишь.
                                                                    А еще там могут быть параллельные квинты, да.
                                                                    • +2
                                                                      Ну и о каких тогда «правилах гармонии» вы говорите? У вас самые основы не выдерживаются.

                                                                      Ну и да, отловить параллельное движение можно для любого числа голосов.
                                                                      • 0
                                                                        Вы имеете в виду, что нужно группировать по типу голоса (бас\тенор\альт\сопрано) и так гармонизировать?
                                                                        • +1
                                                                          Я имею в виду, что надо проверять правила голосоведения для всех голосов (вне зависимости от того, сколько их).
                                                                          • 0
                                                                            Для реализации корректного голосоведения уйдет гораздо больше времени. Я же писал, что использую упрощенную модель.

                                                                            Вообще, правильно было бы гармонизировать не просто потактово, а гармоническими функциями. А это уже совсем другого уровня подход.
                                                                            • +2
                                                                              Что в вашей «упрощенной» модели вообще осталось?

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

                                                                                В реальном мире так импровизировать может только крутой джаз-бэнд, играющий вместе уже много лет. И то, они буду придерживаться каких-то заранее проработанных схем. А вот заставить импровизировать на лету даже банальный квартет хоть даже и с параллельными движениями — это задача, на мой взгляд, труднорешаемая.
                                                                                • 0
                                                                                  Вы не ответили на мой вопрос: какие правила у вас остались.

                                                                                  (ну и да, у вас ошибки гармонизации в одном инструменте, не между ними)
                                                                                  • 0
                                                                                    Все забываю сказать.

                                                                                    Из того, что вы пишете ("[пианист] сидит, импровизирует, придумывает мелодию. Пианист образованный, поэтому левой рукой он тут же подбирает аккорды без явных гармонических лаж.") видно, что вы не понимаете, как устроена «импровизация» в классико-романтической школе. Отсюда и вырастают все ваши последующие ошибки.

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

                                                                                    А еще неплохо бы все-таки разделять гармонические голоса и подголоски (не обязательно в целом, достаточно в каждый конкретный момент понимать, что есть что.
                                                                      • +1
                                                                        У вас третий и четвертый аккорды всеми голосами идут вниз.

                                                                        :)

                                                                        Это не криминал — надо смотреть по обстоятельствам. Мне когда-то преподаватель по гармонии тоже сказал про параллельные аккорды и их недопустимость. Я ему тут же сыграл довольно симпатичную и благозвучную последовательность из исключительно параллельных септаккордов. Посмеялись вместе.
                                                                        • 0
                                                                          Очевидно, это вопрос выбранной гармонической системы. Какие-то это допускают, какие-то — нет. Автор тут претендует на классико-романтическую гармонию, в ней такого нельзя.
                                                                          • 0
                                                                            Вопрос от не очень глубоко посвященных, но интересующихся: параллельные аккорды это что?
                                                                            • 0
                                                                              Это когда при переходе от одного аккорда к другому все голоса идут в одну сторону (вверх или вниз).
                                                                              • 0
                                                                                Типа ход G-F — это неправильно?
                                                                                • 0
                                                                                  Типа ход G-F — это неправильно?

                                                                                  В любую сторону — не имеет значения. См. здесь.
                                                                                  • 0
                                                                                    Вопрос поставлен некорректно.

                                                                                    То, что написано — это ход либо двух нот (тогда мы его не обсуждаем), либо двух аккордов (но тогда не указано расположение каждого аккорда, и мы можем повести как «правильно», так и «неправильно»).

                                                                                    Но по факту, основная ошибка состоит в том, что не указана система, в рамках которой мы рассматриваем «правильно» и «неправильно». В классико-романтической гармонии переход из (тесного) трезвучия на F в (тесное) трезвучие на G — не принят.

                                                                                    Но никому в академической теории не придет в голову так ставить вопрос.

                                                                                    (и при этом вполне очевидно, что распространненость этого хода в эстрадной музыке как бы намекает нам на то, что нормы там иные совершенно)
                                                                                    • 0
                                                                                      Приходится задавать некорректные вопросы, очень уж вы лаконичны. Спасибо.
                                                                                      А ход этот из блюза очевидно.
                                                                                      • 0
                                                                                        А ход этот из блюза очевидно.

                                                                                        Ну, ничего «очевидного» в этом нет — только один из вариантов. Я могу еще парочку назвать, не особо напрягаясь.
                                                                                    • +1
                                                                                      Если разговор про гитару — попробуй переход с F на баре, на G — без баре. Оно немного плавнее звучит. Но и оба два на баре — тоже ок. Плохо, если вообще все аккорды так играть.
                                                                                • 0
                                                                                  Мне когда-то преподаватель по гармонии тоже сказал про параллельные аккорды и их недопустимость.

                                                                                  Можно поподробнее?
                                                                                  • 0
                                                                                    Можно поподробнее?

                                                                                    Хм… Если вкратце, то по классическим канонам нельзя, чтобы все четыре ноты аккорда шли в одну сторону. Как минимум одна из них должна идти в противоположную. Также смежное правило по поводу параллельных интервалов, особенно квинт. Тоже было очень нежелательно (хотя местами даже Моцарт втихаря параллелил :) ).
                                                                                  • 0
                                                                                    Да, и параллельные квинты низя-низя, и много еще чего :) Действительно, это все лишь правила, рамки, в которые заставляли вписываться нас, обучающихся, чтобы пройти полностью весь необходимый путь в верном направлении. Gradus ad Parnassum, так сказать. Особенно непросто было, когда мы проходили курс полифонии с достаточно жесткими правилам, ну, возможно вы знаете о чем я, и на все наши инсинуации на тему «А вот у Палестрины там же было и так и так» нам отвечали просто: «низя!». А потом уже, когда курс закончился, наша замечательная преподаватель сказала, что «для того, чтобы нарушать правила, сначала нужно их понять и научиться с ними работать в совершенстве, плюс это тот самый путь логического развития дисциплины, который каждый должен пройти, чтобы познать все от начала и до конца». И была полностью права.
                                                                                    Ну да ладно, что-то я заностальгировался :)
                                                                            • +1
                                                                              Собственно, мне кажется, что у вас проблема где-то на уровне постановки задачи. Давайте начнем с простого: музыку какого стиля вы хотите генерировать?
                                                                              • +1
                                                                                Классического, что-то среднее между барокко и романтизмом.
                                                                                Но параллельно буду заводить базы для более простых случаев — легкий фолк, чиллаут, электронная музыка.
                                                                                • 0
                                                                                  Эмм, а ничего, что между барокко и романтизмом нет вообще ничего среднего?

                                                                                  А если вы говорите о музыке венского классицизма, так для нее принципиально не возможна композиция «на лету, такт за тактом», это опусная культура, там структура в том или ином виде определяется заранее.

                                                                                  (соответственно, и вам нужно «сочинять» от крупного к мелкому, а не наоборот)
                                                                                  • 0
                                                                                    Архитектонически — да. Но тут простым генератором уже не обойтись. Гармонически — были достаточно известные и структурированные правила, под которые никто не мешает мимикрировать.

                                                                                    Вообще, результат генератора у меня вызывает больше ассоциаций с академической музыкой (современных композиторов) или некий такой гиперструктурированный пуантилизм, чтоль, всплывает в замутненном понедельником сознании :)

                                                                                    Вот как хороший пример можно ознакомиться с Fur Alina Арво Пярта. Замечательное произведение, само по себе, очень атмосферное и глубокое. И такую штуку можно соорудить с помощью компьютерной генерации: выстраиваем архитектоническую структуру, генерируем наборы паттернов, определяем звукоряд и выстраиваем гармонико-обертональные отношения, задаем правила для rubato относительно структуры фразы и вперед. Оно, конечно, очень упрощенно, но в общем и целом как-то так.
                                                                                    • 0
                                                                                      Гармонически — были достаточно известные и структурированные правила, под которые никто не мешает мимикрировать.

                                                                                      Не вопрос. Просто я эти правила воспринимаю «снаружи внутрь», и поэтому и считаю, что потактово это делать нельзя.

                                                                                      Вот как хороший пример можно ознакомиться с Fur Alina Арво Пярта. Замечательное произведение, само по себе, очень атмосферное и глубокое.

                                                                                      (у меня есть нездоровое ощущение, что я знаю Алину, Fur которая это написано. В смысле лично знаю.)

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

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

                                                                                      (я Пярту «никогда не прощу» виолончельный концерт. Настолько острого и яркого ощущения упавшего на меня с восемнадцатого этажа мешка со строительным мусором на меня еще ничто не производило.)
                                                                                      • 0
                                                                                        (у меня есть нездоровое ощущение, что я знаю Алину, Fur которая это написано. В смысле лично знаю.)

                                                                                        Ого!

                                                                                        Вопрос только в том, хочу ли я это слушать заодно.

                                                                                        Ну это, в общем-то, уже вопрос вообще необходимости генератора и направления его применения. А так, получиться должно, по идее, очень похоже :)

                                                                                        (я Пярту «никогда не прощу» виолончельный концерт. Настолько острого и яркого ощущения упавшего на меня с восемнадцатого этажа мешка со строительным мусором на меня еще ничто не производило.)

                                                                                        Он такой, да :)
                                                                                      • 0
                                                                                        У меня тоже сложилось впечатление похожести на академическую музыку двадцатого века)) хотя я её совсем плохо знаю. Пойду Пярта послушаю хоть тогда, а то Шёнберг для сравнения как-то совсем не подошёл :)
                                                                                • –13
                                                                                  Знаете что? Измените набор инструментов, поиграйтесь с настройками — и получится что-то потрясающее, как в видео
                                                                                  Скрытый текст

                                                                                  • –2
                                                                                    Тоже о дабстепе подумал :)
                                                                                    • –2
                                                                                      Клип бы посмотрели перед тем, как минусовать. Шикарный экшн (%.
                                                                                    • +1
                                                                                      Ничего не понял, но выглядит здорово xD
                                                                                      • +14
                                                                                        Производители сериалов заинтересовались бы вашей программой )
                                                                                        • +2
                                                                                          Как то так для мыльных опер музыка и делается
                                                                                          • +3
                                                                                            А еще для супермаркетов)
                                                                                            • 0
                                                                                              Ага, даже был термин «fusik» — фоновая музыка. Лифты, супермаркеты, туалеты и т.п.
                                                                                              • 0
                                                                                                Мьюзак — название такой музыки. Является торговой маркой, которая принадлежит одной из компаний, производящей ее.
                                                                                                • 0
                                                                                                  Одной из моих идей по-прежнему остается генерация Меблировочной музыки =)
                                                                                            • +27
                                                                                              Вы отличный математик. В то же время, из того что я услышал — вам ОЧЕНЬ не хватает музыкального опыта и ПОНИМАНИЯ (не просто знания) музыкальной теории. Есть очень много моментов, которые ваш алгоритм не учитывает. И я думаю, что лишь по той причине, что вы сами о них пока не имеете представления.

                                                                                              Освойте какой-нибудь инструмент, играйте в группе, сочиняйте музыку, много слушайте и анализируйте гармонии, мелодии, ритмические паттерны каждого элемента. Попытайтесь понять, почему одна музыка звучит хорошо и фирмово, а другая — так себе. Услышьте, какие гармонические ходы звучат «выигрышно», а какие «колхозно». И тогда, возможно, в одной голове соединятся «физика и лирика» и вы сможете написать алгоритм, который не будет в середине такта брать диссонирующие интервалы, которые «не в тему», будет чаще повторять какие-то куски в пределах композиции (не секрет, что полный рандом, без повторений, человеком не запоминается и такая композиция не будет хорошо звучать). Изучите структуры популярных песен.

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

                                                                                              P.S.: Для чистоты исходных данных следует исключить из прослушивания на ближайшие годы полностью блатняк и электронику. Там правила построения гармонии намного проще, чем в других стилях музыки — они лишь достаточно примитивный частный случай более сложных вещей.
                                                                                              • +20
                                                                                                А я думаю, для такой работы необходим напарник — музыкант с профильным образованием.
                                                                                                • 0
                                                                                                  Совсем недавно я тоже занимался проблемой, но подошёл со стороны поиска хорошо звучащей гармонии. Собрал базу 5-символьных последовательностей аккордов внутри тональности, генетическим алгоритмом формировал наиболее успешные длинные гармонические последовательности. На днях выложу отдельной статьёй все наработки. Тоже на Java. Можно попробовать объединить подходы =)

                                                                                                  Не нашёл ссылки на исходные коды, кстати.
                                                                                                  • 0
                                                                                                    Собрал базу 5-символьных последовательностей аккордов внутри тональности

                                                                                                    Все украдено до вас: TSDT.
                                                                                                    • 0
                                                                                                      Глупость. Не надоест слушать лишь I — IV — V — I? Кроме того, как уже упоминалось, задача не столь проста. Интересно, какова оптимальная длина для корректной оценки последовательности.
                                                                                                      • 0
                                                                                                        Глупо считать, что TSDT — это I-IV-V-I.

                                                                                                        (ну и нет, не надоедает… двести лет не надоедало же как-то)
                                                                                                        • 0
                                                                                                          Тогда теряется весь смысл Вашего поста. T-S-D-T мой алгоритм тоже юзает (потому что юзер обычно его высоко оценивает). Но, кроме того, мой вариант может различать инверсии, изменённую линию баса и т.п.
                                                                                                          • 0
                                                                                                            Вы, похоже, не понимаете, как устроена функциональная гармония.
                                                                                                            • 0
                                                                                                              Нет, это вы думаете, что я не понимаю, именно поэтому написали «Все украдено до вас: TSDT». И продолжаете упорствовать.
                                                                                                              • 0
                                                                                                                Если бы вы понимали, вы бы не писали, что TSDT эквивалентно I-IV-V-I.

                                                                                                                Ну и да, что такое «инверсия» в рамках функциональной гармонии?
                                                                                                                • 0
                                                                                                                  Если бы вы понимали, вы бы не писали, что TSDT эквивалентно I-IV-V-I.
                                                                                                                  TSDT — это дословно тоника, субдоминанта, доминанта, тоника. То есть I, IV, V и I ступени соответственно. И кто тут чего не понимает?
                                                                                                                  Ну и да, что такое «инверсия» в рамках функциональной гармонии?
                                                                                                                  А где я сказал, что остаюсь строго в рамках функциональной гармонии? Моя софтина направлена на написание гитарной музыки.
                                                                                                                  • 0
                                                                                                                    TSDT — это дословно тоника, субдоминанта, доминанта, тоника. То есть I, IV, V и I ступени соответственно. И кто тут чего не понимает?

                                                                                                                    Я же говорю — вы не понимаете, что такое фукнциональная гармония. TSDT — это аккорды тонической, субдоминантовой и доминантовой функций соответственно. Аккордом, скажем, субдоминантовой функции выступает далеко не только аккорд четвертой ступени (с остальными функциями аналогично).

                                                                                                                    Типичный пример (один из вариантов фригийского оборота): T T2 Sp7 D7>7,>5,>3 D7

                                                                                                                    (кстати, тут как раз в третьем шаге прекрасно видно мощь функциональной системы. Можно было бы написать S91, и из записи все равно будет видно, что мы находимся в субдоминантовой зоне.)
                                                                                                                    • 0
                                                                                                                      Нет, это вы не понимаете, что аббревиатура TSDT как таковая не означает функциональной гармонии. Я что, по запаху должен был догадаться? Не, я понимаю, когда очень хочется выставить окружающих идиотами, только так и надо делать — говорить намёками. А потом «Ну я же намекал! Ну тупыыые!».
                                                                                                                      • 0
                                                                                                                        Как раз ее-то она и означает, потому что TSD — это функции.

                                                                                                                        Ну и да, аккорды внутри тональности — это функциональная система, потому что у вас тональность функционального типа (ну не верю я в том, что вы используете тональные системы с индексом Ф-), а про них вы написали с самого начала. Я скорее поверю, что у вас там не тональность, а лад, но тогда так и надо писать.

                                                                                                                        Честное слово, музыкальная теория — очень, очень полезная штука.
                                                                                                                        • 0
                                                                                                                          Как раз ее-то она и означает, потому что TSD — это функции.
                                                                                                                          Где это значение зафиксировано? Она означает ровно одно: тонику, доминанту, субдоминанту, тонику. И ничего больше, что бы вы себе не нафантазировали.
                                                                                                                          Честное слово, музыкальная теория — очень, очень полезная штука.
                                                                                                                          А кто спорит? Но от этого мой алгоритм хуже не стал.
                                                                                                                          Я скорее поверю, что у вас там не тональность, а лад, но тогда так и надо писать.
                                                                                                                          Да я сразу хотел исправить, да на хабре очень жёстко с этим делом.
                                                                                                                          • 0
                                                                                                                            Тоника, субдоминанта и доминанта — это (в гармонии) функции. Ну вот данность такая.

                                                                                                                            Вот вам цитата из вики (Холопов, извините, дома):

                                                                                                                            В гармонии субдоминантой также называют трезвучие, построенное на IV ступени, и другие аккорды, имеющие ту же гармоническую функцию.
                                                                                                                            [...]
                                                                                                                            Понятие гармонической функции субдоминанты (а не только отдельного аккорда) как и обозначение S (а также D и Т для доминанты и тоники) предложены Х. Риманом.
                                                                                                                            • 0
                                                                                                                              В гармонии субдоминантой также называют
                                                                                                                              также
                                                                                                                              Про то и речь. Точнее бы сформулировали своё первоначальное утверждение — к Вам бы вопросов не было.

                                                                                                                              А на упрёк в том, что ту же задачу можно решить с т.з. обыкновенной гармонии, и по этому вопросу написано много трудов, я не спорю. Можно. Но у меня такой задачи не было.
                                                                                                                              • 0
                                                                                                                                Про то и речь.

                                                                                                                                Ох. Я так и знал знал, что надо комментировать. «Также» — это в дополнение к «ступени в ладу». В гармонии субдоминантой ничего, кроме функции не называют.

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

                                                                                                                                Ну то есть не вы написали: «подошёл со стороны поиска хорошо звучащей гармонии»? И слово «тональность» тоже вы употребили — а это уже очень конкретный контекст.

                                                                                                                                Так что… «Точнее бы сформулировали своё первоначальное утверждение — к Вам бы вопросов не было.»
                                                                                                        • 0
                                                                                                          Не надоест. Даже частный случай, I — IV — V — I, не надоест. Вон — блатняк и попса, и их засилье повсюду, увы… Тут какая-то психоакустическая хитрость есть, т.к. моск наш, действительно, оценивает эту последовательность как завершенную и притягательную. К стати, это само по себе тоже очень интересный вопрос.
                                                                                                          • 0
                                                                                                            Em-C-G-D — это что?
                                                                                                            • 0
                                                                                                              Последовательность аккордов вне контекста.
                                                                                                  • +11
                                                                                                    МЕГА-круто!

                                                                                                    Есть 2 идеи развития!
                                                                                                    1. Онлайн-сервис генерации с публикацией всего нагенерированного под свободной лицензией — привет копирастам!
                                                                                                    2. Онлайн-сервис с выставлением оценок и генетическим алгоритмом саморазвития…
                                                                                                    • +1
                                                                                                      Спасибо!
                                                                                                      Над первым я уже думаю, а вот второе… пока не знаю.
                                                                                                      • +4
                                                                                                        Если довести до ума — получится обалденная вещь с очень ясной схемой монетизации. Есть куча мест, где постоянно нужна фоновая музыка — торговые центры, рестораны, фойе кинотеатров, магазины и т.п. Художественная ценность этой музыки как правило второстепенна — он служит лишь чтобы заглушать шум и заполнять пустоту. Можно было бы сделать сервис, который бы в режиме 24\7 гнал несколько каналов музыки в разных темпах и стилях, а подписку на него сделать в несколько раз дешевле чем типовая лицензия от копирастов на право играть определённый трэк-лист.

                                                                                                        Причём генерировать музыку можно будет не только в полностью автоматическом, но и в полуавтоматическом режиме — уже сейчас есть сервисы для совместных онлайн-репетиций или импровизаций. Можно позволить любому желающему подмешивать в микс свои лупы, с помощью краудсорсинга отбирать наиболее удачные, а с музыкантами и лучшими «критиками» делиться прибылью.
                                                                                                      • 0
                                                                                                        3. Алгоритм, получающий на вход в режиме реального времени данные с нейрокомпьютерного интерфейса, датчиков на теле, камеры для анализа эмоций на лице и т.п. Чтобы музыка автоматически подстраивалась под текущее настроение.
                                                                                                        • 0
                                                                                                          Проще сделать нейроинтерфейс который будет различать удовольствие-неудовольствие при прослушивании. И соответственно обучать генератор.
                                                                                                          • 0
                                                                                                            Именно это я и имел в виду.
                                                                                                            • 0
                                                                                                              Только не стоит забывать, что человек сам по себе есть такой нейроинтерфейс, который, в свою очередь, обучается получать удовольствие при прослушивании :)

                                                                                                            • 0
                                                                                                              В процессе. Как нейроинтерфейс приедет, посмотрим, что из этого получится.
                                                                                                          • +1
                                                                                                            установите системный «Look and Feel', чего вы юзаете дефолтный допотопный? одной строчкой делается…
                                                                                                            • +6
                                                                                                              По олдскулу же. Я вообще программу на маке чаще демонстрировал — там все няшнее.
                                                                                                            • 0
                                                                                                              Круто. А что если в качестве входных сигналов использовать не пользовательский ввод, а подготовленный видеоряд…
                                                                                                              • +4
                                                                                                                Мое мнение — музыка, это как язык. Ноты — это запись языка.

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

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

                                                                                                                Поэтому, думается мне, создать генератор в реальном времени — действительно, дело выдающееся и достойное признания и похвалы. Но пока не создан аналог человеческого мозга, не разгадана научным образом механика творчества от и до, любые попытки автоматизировать то, что еще не разложено по полочкам, будут обречены на провал и сводиться лишь к применение вероятностных подходов с использованием обратной связи от живого мозга для отсечения фигни.
                                                                                                                • +5
                                                                                                                  Автор, где учился? Я 4 года отучился в Гнесинке, пишу на java. Вроде неплохо знаю гармонию. Какова цель программы?
                                                                                                                  • +7
                                                                                                                    Автор, где учился? Я 5 лет отучился в МГУ, играю на fatar. Вроде неплохо знаю алгоритмы. Какова цель комментария?

                                                                                                                    p.s. Простите, не удержался %P
                                                                                                                    • +3
                                                                                                                      6 лет мехмата ЮФУ, 5 лет детской музыкальной школы (поступил в 18 лет, кстати), играю на фортепиано и немного на флейтах. Вроде неплохо знаю программирование. Цель программы — написать нечто, что сможет писать приятную на слух музыку, чтобы можно было включать и наслаждаться.
                                                                                                                      • –1
                                                                                                                        Я вам искренне рекомендую получить хотя бы училищное образование в области теории музыки, прежде чем браться за такие проекты.
                                                                                                                        • +1
                                                                                                                          Как хорошо, что демосценеры не слушали таких, как вы ;)
                                                                                                                          • 0
                                                                                                                            А что, демосценеры пишут музыку в классико-романтической эстетике?
                                                                                                                            • 0
                                                                                                                              Демосценеры открывают свои компьютеры и пишут приятную на слух музыку, чтобы можно было включать и наслаждаться. Это часто включает в себя разработку собственных (программных) музыкальных инструментов, экономных способов цифрового кодирования и воспроизведения музыки, в т.ч. на ограниченной аппаратуре.

                                                                                                                              Эстетика варьируется.

                                                                                                                              Наличие музыкального образования… ну вы поняли ;)
                                                                                                                              • 0
                                                                                                                                (насчет наслаждаться — вопрос открытый, прямо скажем)

                                                                                                                                Если бы автор топика ставил свою задачу таким образом — вопросов бы не было. Но он явно говорит о классико-романтической гармонии.
                                                                                                                                • 0
                                                                                                                                  Ну конкретно в этом комментарии он писал лишь о приятной на слух музыке ;)

                                                                                                                                  Насчет наслаждаться — это вопрос прямо скажем вкусов. Кстати, в этой хотя и молодой области уже тоже есть своя классика ;)

                                                                                                                                  По существу же не могу с вами не согласиться ;), ибо сам довольно долго пробавлялся «музыкальным программированием», составлением аранжировок и даже гармонизацией, но серьезные подвижки появились лишь с началом систематических занятий по теории музыки и гармонии.
                                                                                                                                  • 0
                                                                                                                                    Ну, это же не единственный комментарий.

                                                                                                                                    Вот цитата из поста:
                                                                                                                                    Гармонизировать мелодию, согласно правилам гармонии;


                                                                                                                                    А вот ответ на мое уточнение о рамках:
                                                                                                                                    Классического [стиля], что-то среднее между барокко и романтизмом.


                                                                                                                                    Я с этого вопроса специально начал, чтобы не троллить человека тем, чего он не хотел.
                                                                                                                            • 0
                                                                                                                              Зря вы так. По моему мнению, самая достойная музыка получается именно у демосценеров/мюзикмейкеров, которые имеют хоть какое-то, но профобразование. Ну, за редким исключением. Остальное — иногда красиво, но в целом — шелуха.
                                                                                                                      • 0
                                                                                                                        Спасибо!
                                                                                                                        Отличная статья, отличные примеры. Хотелось бы программу =)
                                                                                                                        Тема очень интересна.

                                                                                                                        Работаю в Finale, также просто интересуюсь музыкой как хобби.
                                                                                                                        • 0
                                                                                                                          Круто! Есть еще пару примеров записей послушать?
                                                                                                                          • +5
                                                                                                                            Спасибо! Есть еще сделанная в прошлом месяце демо-запись.
                                                                                                                            • 0
                                                                                                                              В какие-то моменты напоминает импровизации Марселя Дюпре. Но зато вокруг этих моментов…
                                                                                                                          • +1
                                                                                                                            Вот я долго думал и до сих пор не понял: а зачем генерацию в реальном времени?
                                                                                                                            Почему не плагин для редактора?
                                                                                                                          • +1
                                                                                                                            Это всё прекрасно, но музыка по своей сути есть один из способов передачи человеческих эмоций, переживаний. Какие эмоции у генератора случайных чисел?
                                                                                                                          • +1
                                                                                                                            Скажите, я правильно понял, что вы сначала генерируете мелодию, а потом под неё подбираете трезвучия? Я не пробовал писать подобный софт, но я бы, наверное, пробовал делать наоборот: сначала гармония, а затем мелодия в рамках гармонии.

                                                                                                                            (Не скажу, что у меня много музыкального образования, поэтому просто интересно ваше мнение на этот счёт.)
                                                                                                                            • 0
                                                                                                                              Да, сначала мелодия, а потом гармония.

                                                                                                                              До этого я работал над другими алгоритмами генерации, и в том числе у меня был как раз описанный вами: где сперва создавалась гармония, а потом под нее подбирались ноты. Такой подход проще, но теряется сама суть композиции — основа произведения это мелодия, а то как вы ее гармонизируете, это уже второе дело. Композитор (чаще всего) сперва сочиняет именно мелодию, а потом уже гармонизирует ее и подбирает аккомпанемент. Подход наоборот приемлем, например, для сочинения современной поп-музыки или минималистической музыки (привет Глассу, Кейджу и Райху).
                                                                                                                              • 0
                                                                                                                                Основа произведения — не мелодия. Опираясь на мелодию, нельзя написать ничего сложнее песенной формы.
                                                                                                                                • 0
                                                                                                                                  Я думаю, что правильнее всего было бы идти тремя путями: архитектоническим — создавать форму и структуры в рамках формы, гармоническим — собственно, укрупненный план и мелкие паттерны и, собственно, мелодическим. Что-то относительно чего-то должно быть завязано, как, например, гармоническая часть генератора должна частично или полностью базироваться на результатах архитектонической генерации. Возможно что-то типа миксера с использованием нейропроцессора или нечеткой логики.
                                                                                                                                  В общем, очень отдаленно, но у меня в голове именно какая-то такая модель смутно выплывает. Может, я и не прав.