На сайте регулярно появляются статьи про автогенерацию музыки или об авто-аккомпанименте. Некоторые в качестве результата воспроизводят невнятное бибикание, у некоторых получается писать вполне человеческую музыку. В данной статье описывается реализация авто-аккомпанимента для аккордовых прогрессий. Сделать возможность подобрать и прослушать звучание аккордов в разных стилях. Работать все должно просто, желательно поменьше кнопок и пунктов меню. Как выглядит веб-версия можно посмотреть здесь: Как видно, кнопок достаточно много, но гораздо меньше чем у подобных программ. Сделано всё на JavaScript, поэтому хорошо работает как в браузере, так и в Android-приложениее собранном с Cordova. Автогенерации музыки несколько сотен лет (см. https://ru.wikipedia.org/wiki/Музыкальная_игра_в_кости ). Обычно используются наборы паттернов (рифов или музыкальных фраз) которые транспонируют под выбранные тональности. Для воспроизведения используются 4 стандартные в современной музыке линии:  Drums - барабаны, задают ритм Bass - басовая линия Lead - мелодия или рифы Pad - долгие звуки (контрапункт) для окраски аккордов Подготовка паттернов это достаточно сложная задача. Они должны храниться в виде ступеней лада для удобного транспонирования. Для каждой линии подготовлено по нескольку десятков паттернов с разными инструментами. Кроме того, есть особые требования к рифам - они должны хорошо играть в разных вариациях. Например нет никаких технических препятствий для добавления гитарных рифов из Metallica, но они слищком специфичный и в большинстве прогрессий будут звучать плохо. Каждый паттерн должен звучать и не плохо и не хорошо. Так, средне, не туда, ни сюда. Иначе в одних прогрессия он будет звучать хорошо, а к другим не подойдет совсем. Сервис для музыки должен хорошо воспроизводить музыку, что естественно.  В программе использовался этот набор сэмплов. Он содержит сотни инструментов, есть 10-ти полосный эквалайзер, ревербератор, динамический компрессор. Всё работает из JavaScript в любом браузере и не требовательно к ресурсам. При первом старте может играть с лагами т.к. инструментов относительно много и они кешируются несколько почти минуту. На главном окне всего 4 кнопки по которым можно менять генерируемые паттерны в прогрессии. Тапнуть - выбрать случайный паттерн, повернуть - выбрать какой-то конкретный фрагмент. Слайдером можно выбрать одну из готовых прогрессий. По кнопке с шестеренкой можно открыть окно с настройками (громкость, темп, редактирвоание отдельных аккордов и т.п.): Выглядит всё достаточно лаконично, но не в ущерб функциональности. По кнопке [Аа] можно вставить собственную прогрессию. Например скопировать из учебника или со страницы сайта. Однозначного стандарта на запись аккордов нет, придется парсить различные варианты. Примеры записи Am—Bdim—C—Dm—Em—F—G vi - IV - I - V Кроме того, в примерах аккордовых прогрессий могут использоваться различный спец.символы. Как и в большинстве музыкальных программ, поддерживается экспорт в файл MIDI.  В нижней панели есть кнопка для отправки редактируемой прогрессии в Твиттер, ВКонтакте и тп Для корректного отображения превью поддерживается протоколы Open Graph и Twitter Cards. Веб-версию можно запустить здесь Приложение для Android доступно здесь Если есть какие-то вопросы по генерации или Web Audio API - можно спрашивать в комментариях.