Практическое использование автогенерации музыки

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

    В данной статье описывается реализация авто-аккомпанимента для аккордовых прогрессий.

    Идея

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

    Реализация

    Как выглядит веб-версия можно посмотреть здесь:

    Как видно, кнопок достаточно много, но гораздо меньше чем у подобных программ.

    Сделано всё на JavaScript, поэтому хорошо работает как в браузере, так и в Android-приложениее собранном с Cordova.

    Автогенерация

    Автогенерации музыки несколько сотен лет (см. https://ru.wikipedia.org/wiki/Музыкальная_игра_в_кости ). Обычно используются наборы паттернов (рифов или музыкальных фраз) которые транспонируют под выбранные тональности.

    Для воспроизведения используются 4 стандартные в современной музыке линии:

    • Drums - барабаны, задают ритм

    • Bass - басовая линия

    • Lead - мелодия или рифы

    • Pad - долгие звуки (контрапункт) для окраски аккордов

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

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

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

    Звук

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

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

    При первом старте может играть с лагами т.к. инструментов относительно много и они кешируются несколько почти минуту.

    UX/UI

    На главном окне всего 4 кнопки по которым можно менять генерируемые паттерны в прогрессии. Тапнуть - выбрать случайный паттерн, повернуть - выбрать какой-то конкретный фрагмент.

    Слайдером можно выбрать одну из готовых прогрессий.

    По кнопке с шестеренкой можно открыть окно с настройками (громкость, темп, редактирвоание отдельных аккордов и т.п.):

    Выглядит всё достаточно лаконично, но не в ущерб функциональности.

    Импорт

    По кнопке [Аа] можно вставить собственную прогрессию. Например скопировать из учебника или со страницы сайта.

    Однозначного стандарта на запись аккордов нет, придется парсить различные варианты. Примеры записи

    • Am—Bdim—C—Dm—Em—F—G

    • vi - IV - I - V

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

    Экспорт

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

    В нижней панели есть кнопка для отправки редактируемой прогрессии в Твиттер, ВКонтакте и тп

    Для корректного отображения превью поддерживается протоколы Open Graph и Twitter Cards.

    Результат

    Веб-версию можно запустить здесь

    Приложение для Android доступно здесь

    P.S.

    Если есть какие-то вопросы по генерации или Web Audio API - можно спрашивать в комментариях.

    Similar posts

    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 18

      +1
      Я так понимаю, этой музыкой можно сопровождать ролики на ютубе без риска нарваться на санкции за нарушение авторских и смежных прав.
      Можно ли скачать получившийся трек в mp3?
        0
        Заслушался песней юности,«Всё идёт по плану!»: Am F C E
          +1
            0
            Ссылка Open in RockDice Application не повторят того звучания, которое воспроизводится в веб версии. Видимо не все параметры передаются, а только аккорды.
              0
              да, в андроидную версию вкралась досадная ошибка. После обновления в ГуглПлей всё будет открываться как надо.
          0
          Очень классно, я залип) Но вот крутилки плохо работают (точнее вообще непонятно как работают) и проще настраивать всё через меню
            0
            ZvoogHub а можно еще сделать, чтобы при уходе с вкладке аудио продолжало играть?
              0
              приложение будет меняться со временем
            +2
            Тоже когда-то увлекался автоматической генерацией музыки. Кому интересно, вот что получилось: freesoft.ru/windows/accompanion
            Скриншот
            image
              –2
              очень много кнопок, в современных приложениях это не приветствуется
                +3
                Да!
                В современных приложениях должна быть одна кнопка — «Написать музыку» и выпадающий список жанров (типа Опера, Песня, Симфония...)
                  +2
                  Список-то зачем? Жанр должен выбираться или по текущим популярным твитам, или по истории прослушивания. С ML/AI и всё такое, конечно же.
              0
              ethernal flow интереснее работает, мелодично.
                +1
                ethernal flow это другой класс приложений, типа Mubert.
                Они воспроизводят бесконечный стрим, возможно подобранный вручную, возможно составленный из записанных сэмплов автоматически. Никаких своих аккордов вводить они не умеют, стили и инструменты тоже сменить не получится.
                Описываемый в статье RockDice ближе к Amper Music.
                +1
                Микроскопический Band in a Box получился))
                Смотрел веб-версию, не нашел возможности сменить рисунок гитарного боя, например
                  0
                  В приложении не хватает возможности добавлять мелодии в избранное, чтобы позже вернуться к тому, что мне выкинул рандом и мне понравилось. Или я не нашёл? И историю сохранять. Если я вдруг решу, что предыдущий вариант, вообще, был ничего по сравнению с новым. Увидел кнопку истории, но избранного/плейлиста не хватает.
                  Ползунка Tempo на главном экране не хватает (и отображения численного значения bpm). А что делает цветной ползунок я на слух не понял — я не музыкант.
                  По поведению, оно должно больше походить на плеер. Не выключаться, когда блокируется экран или переключаешься на другое приложение.
                  Если добавите автопереключение на следующий рандомный вариант через определённое время (типа переключение треков), то под него можно даже работать. Плюс свой плейлист из сохранённого.
                  Есть ощущение, что слушаешь низкобитрейтную mp3. Где-то между 96 и 128 kbps. Это мне кажется, или можно поднять качество? Какой-то чистоты в звуке не хватает.
                  Вообще, прикольная вещица, но пока она не ведёт себя как плеер она не понадобится мне надолго, так, что, скорее всего, когда закончится 50 вариантов до рекламы я уже потеряю к ней интерес и конверсии из меня никакой не будет. Но потенциал есть. Все мелодии, которые мне выкинул рандом мне в той или иной степени понравились. Вау-эффект был!
                    0
                    Все ж это не плеер.
                    И не редактор музыки.

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

                    Следует учитывать что пользователи-музыканты несколько специфичны. Да и любые другие тоже.

                    Слайдер позволяет выбирать прогрессии отсортированные по типу (слева минорные, с буквой m, справа мажорные, по-середине джазовые септаккорды с цифирьками 7, sus4 и т.п.). Для музыканта это очевидно.

                    Сохранить файл нельзя (только в MIDI), но можно нажать внизу кнопку Share и запостить во ВКонтакте, Твиттере и т.п. По клику в посте прогрессия открывается в приложении, в самом посте любой соц.сети можно писать комментарии, настраивать права доступа, пересылать и т.д.

                    Как показала Эппл, нормальному пользователю концепция файлов слишком сложна, например он не понимает что файлы с именами newfile и newfile(1) это два разных файла, объяснить что newfile.ogg и newfile.mp3 могут различаться — это выше всякого понимания, иконка-то у них обычно одинаковая. А вот постить в ВК пользователи обычно умеют.

                    То же и по звуку — компрессор иногда срезает частоты, зато в среднем все паттерны хорошо различимы на слух. Делать доступными настройки звука — это только путать пользователей. Всё должно звучать относительно хорошо сразу, из коробки. И на любых инструментах.

                    Вобщем не всё так однозначно.
                    +1
                    Купил pro версию. Подумал, что так автору будет веселее читать про хотелки, которые я выше набросал. Расстроило, что pro версия — независимое приложение, что не перенеслась история из бесплатной версии и бесплатную версию надо удалять самому.
                    Мне, как пользователю, приятно один раз заплатить на всю жизнь, но для автора такая модель не очень выгодна — будет расти масса пользователей, которые считают, что ты им, вроде как, что-то должен (они ж заплатили), а профита с них никакого больше нет. В долгосрочной перспективе любой вариант подписки будет выгоднее. Если не классическая помесячная подписка, то в этом приложении можно продавать паки — 1000 мелодий за 100 р., 10000 за 300 р. Хотя, чтобы такое работало, нужно, чтобы пользователи надолго привязывались к приложению. Пока это одноразовая игрушка и one time payment предпочтительнее.
                    Кстати, возможность фонового проигрования, лучшее качество звука и избранное/плейлисты — это хорошие различия для pro и lite версии.

                    Only users with full accounts can post comments. Log in, please.