chordify – Shazam для распознавания аккордов
Хотите научиться играть что-то кроме «Звезда по имени Солнце», но не можете найти аккорды для нужной песни? Что ж, современные технологии способны и не на такое.
chordify – сервис, который по аналогии с Shazam сможет распознать любой трек и отобразить аккорды для него.
Начать пользоваться сервисом очень просто. На главной странице вы можете пройтись и выбрать один из популярных треков, для которого уже распознаны аккорды. На самом деле лучше сделать именно так, потому что пользователи могут вносить правки в автоматически распознанные аккорды. И для популярных треков они будут более точными.

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

Аккорды можно получить для гитары, укулеле или пианино. Сразу же можно начать играть вместе с песней или просто сохранить их для себя.
Также можно переключиться на упрощённый вариант, выбрать свой темп, активировать подсказки для каподастра, транспонировать аккорды на полтона выше или ниже, скачать их в midi-формате.
Базовые фишки chordify доступны бесплатно. За 37 рублей в месяц при оплате на год разблокируются платные функции: транспонирование, ограничение на количество треков в день и мобильные приложения.
Про автоматизацию подбора аккордов
Меня давно занимал вопрос: «а что, если попробовать прогнать цифровую запись песни через преобразование Фурье, посмотреть зависимость спектра от времени и попытаться вытащить из полученной информации аккорды песни?». Вот, наконец, нашел время попробовать…
Итак, постановка задачи:
Есть файл с оцифрованной музыкой (не MIDI!), для определенности mp3. Надо определить последовательность смены аккордов, образующую гармонию произведения. Под «музыкой» будем подразумевать типичную европейскую музыку — 12 полутонов в октаве, гармония в основном на основе мажорных/минорных трезвучий, допустимы также уменьшенные и увеличенные трезвучия и *sus2/*sus4 (аккорды со 2-й/4-й ступенью вместо 3-й).
Немного теории
- интервал f1 / f2 == 2 называется октавой
- октава делится на 12 равных (в «логарифмическом» смысле) минимальных интервалов, называемых малыми секундами или полутонами. Если ноты n1 и n2 составляют малую секунду, то их частоты f1 и f2 соотносятся как
f2 / f1 = 2 1/12 . Две малых секунды составляют большую секунду, три — малую терцию, четыре — большую терцию, семь – квинту. Остальные интервалы нам не понадобятся.
A B H C C#/Db D D#/Eb E F F#/Gb G G#/Ab
- мажор с маской 1 0 1 0 1 1 0 1 0 1 0 1
- минор с маской 1 0 1 1 0 1 0 1 1 0 1 0
- A — мажорное трезвучие
- Am — минорное трезвучие
- A5+ — увеличенное трезвучие (у него есть другое, официальное обозначение, но мне чаще попадалось такое)
- Am5- — уменьшенное трезвучие (опять же, есть другие обозначения)
- Asus2 — sustained со второй ступенью
- Asus4 — sustained с четвертой ступенью
Переходим к практике
- распаковать mp3 в массив чисел, представляющий собой график зависимости амплитуды звука от времени
- определить, какие ноты звучат в каждый конкретный момент времени
- определить, какие аккорды образуют эти ноты
- произведение должно начинаться с вступления «на одних аккордах» (без сложной мелодии)
- желательно, чтобы основным инструментом в аранжировке было фортепиано или, еще лучше, электронные клавиши. Если аранжировка гитарная, запись должна быть студийной (см. выше насчет особенностей этого замечательного инструмента)
Наивный метод определения аккордов
- спектр басовой «ми» размазан от D до F# с несколькими локальными максимумами, в итоге второй по громкости нотой иногда оказывается D#
- Откуда-то настойчиво лезет «ля» (может, это квинтовый унтертон от «ми»?). И когда D# куда-то пропадает, она занимает его место. В этом случае есть шанс получить в выводе Asus2, что то же самое, что Esus4, с точностью до выбора басовой ноты (в музыке это называется «обращение»). Уже что-то, но мне-то нужен Em!
- «Соль» в аккорде Em в его станадартной аппликатуре (в первой позиции) звучит только на одной струне — на третьей (для сравнения, «ми» — на трех). А еще в этой подпольной записи, видимо, из-за плохого качества оборудования, сильно порезана большая часть частот.
Чуть менее наивный способ
- максимальное скалярное произведение хромограммы на шаблон аккорда
- наивный байесовский классификатор
- оценка параметров гауссовой смеси при помощи метода expectation maximization и использование расстояния Махаланобиса в качестве меры близости хромограмм

- Чиж&Co «Ассоль». Акустическая гитара, «хитрые» аккорды, первая половина песни в ре-миноре с не слишком сильными отсутплениями в некоторых местах
- Е.Летов «Солдатами не рождаются» в варианте с концертного сборника «Музыка весны». Акустическая гитара, на вид нормально настроенная… Аккорды — обычные трезвучия, маршеобразный «бой», все в одной тональности. Запись, хоть и концертная, хорошего качества
- О.Пулатова «Во сне» с «Домашних записей». Акустическое пианино, ужасное качество записи; начинается с обычных трезвучий, возможно, с измененным басом, затем начинаются мелодические украшательства. Выходы за тональность на слух есть, но не очень радикальные… Хотя и в «Слоне» на слух не очень радикальные.
Мы в пролете, и нам нечего терять, кроме цепей. Но не своих, а Маркова
- во-первых, надо учесть, что при небольшом размере анализируемого при помощи преобразования Фурье окна велика вероятность, что аккорд между двумя последовательно идущими окнами не меняется (несколько окон, идущих подряд, попадают в период звучания одного аккорда)
- во-вторых, вероятности переходов с одного аккорда на другой для каждой пары конкретных аккордов разные. На самом деле, конечно, вероятность встретить на очередном месте в последовательности конкретный аккорд зависит от более длинной «истории» (например, если мы колеблемся между G и Gm, то после Am Dm, скорее всего, будет G, а после B Dm — скорее Gm). Но такая модель показалась мне слишком сложной в реализации, и я решил ограничиться учетом только одного предыдущего аккорда.

где P(Chord(tn-1) = Cj) были оценены на предыдущем шаге. Находим максимальное значение этого выражения для всех i и получаем наиболее вероятный аккорд. Обратите внимание – здесь учитывается тот факт, что мы не знаем достоверно, какой аккорд звучал в предыдущем окне, у нас есть лишь оценка распределения вероятностей различных аккордов.
Что же касается вероятности «неперехода» с аккорда на аккорд, то я добавил соответствующий параметр командной строки и подбираю оптимальное значение вручную. На самом деле эта вероятность зависит от соотношения между продолжительностями анализируемого окна потока и музыкального темпа произведения.
Вышеописанный алгоритм при правильном подборе параметров показал себя очень устойчивым. Сбиваясь с правильного пути при попытке «быдлофикации» какой-нибудь сложной гармонии, он честно пытается вернуться из расколбаса, и чаще всего у него это получается.
Пара небольших оптимизаций
Оптимизация №1. Было замечено, что у классификаторов «сносит крышу», как правило, на разных фрагментах. Также замечено, что, если классификатор несколько раз подряд определил один и тот же аккорд, то этот аккорд обычно правильный. Эти наблюдения привели к появлению следующей оптимизации: заводим кольцевой буфер на несколько аккордов и пихаем туда аккорды из вывода обоих классификаторов. Если в очередной раз классификаторы выдали разные аккорды для одного и того же окна, берем тот из них, который чаще встречается в буфере (ну а если одинаково часто встречаются или не встречаются вовсе — то первый из двух).
Оптимизация №2. Разные тональности используются в музыке (особенно в гитарной, где от них зависит аппликатура) с разной частотой. В основом народ, конечно, любит те, у которых поменьше значков альтерации в ключе — т.е. ля-минор/до-мажор, ми-минор/соль-мажор, ре-минор/фа-мажор, ну или на крайний случай си-минор/ре-мажор.
Из-за этого статистика по переходам между аккордами для наиболее распространенных тональностей оказывается «качественнее», чем для менее распространенных. Отсюда появилась возможность возможность «виртуального транспонирования» – ключи командной строки, который говорит программе «подбирай аккорды в той тональности, которую видишь, но вероятности переходов бери так, как будто все звучит на n полутонов ниже/выше».
Этот подход нередко используется при ручном подборе — например, мы знаем, что песня в до-миноре, но подбираем аккорды в ля-миноре, мыча мелодию на полтора тона ниже, потому что какие там аккорды в этом до-миноре — это еще сообразить надо, и еще пальцы все время держать барре устают.
Результаты этого этапа такие: при применении описанного выше подхода с обеими оптимизациями удалось подобрать аккорды к песням О. Пулатовой «Во сне» (кроме второй части вступления) и «Река времен» (вступление и куплет; тональность – некая помесь ля- и ми-минора) с достоверностью подбора около 70% или даже чуть больше. Ура!
Что касается второй половины вступления к «Во сне» — оптимальной реализацией, видимо, будет поехать в Одессу, случайно там встретить автора, спросить у нее аккорды, захардкодить.
Transcribe — подбор аккордов к любимой песне
В наш век, когда технологии развиваются со сверхзвуковой скоростью, подобрать аккорды к любимой песне не составляет особого труда. Для этого нужны программы, которые замедляют темп выбранной мелодии, причем, не меняя ее тональности, оснащены специальными фильтрами для распознавания тембра и прочих атрибутов мелодии.
Вот именно о такой программе пойдет речь в нашей статье. С помощью такой программы Вам не потребуется многократно перематывать песню, чтобы расслышать какой-нибудь отрывок, программа сделает все это за Вас. Вам просто нужно отметить отрывок песни или мелодии и выбрать функцию повтора.
Transcribe! 8
В нашей статье речь пойдет о программе — Transcribe!. Прошу заметить, что название программы пишется именно с восклицательным знаком. Разработчиком программы является Seventh String Software.
Программа оснащена всеми функциями для правильного подбора аккордов. В числе таких функций следует выделить несколько: Изменение темпа от двукратного увеличения, до замедления скорости в 1/20 от первоначальной, встроенный 31-полосный графический эквалайзер, спектро-анализатор и виртуальная piano-клавиатура, которую удобно использовать для контроля тона ноты «на слух».
Это функции, которые дадут вам возможность быстро и удобно подобрать аккорды к любой мелодии. Также следует сказать, что программа воспроизводит аудиофайлы любых форматов, будь то wav, mp3, aiff, wma, aac, m4a, ogg & etc. Программа воспроизводит напрямую с компакт-диска. Также поддерживаются такие функции как: драг-н-дроп, простое «перетягивание» из папок.
Окно transcriberа имеет такой вид: вверху – меню и панель «инструментов», под ними прорисовывается «волноформа» звукового файла. И ниже панель спектра и пиано-клавиатура. До того как не выделен фрагмент мелодии, график спектра остается пустым. Нужно просто выделить фрагмент на волноформе, после этого появиться график спектра выделенного фрагмента композиции. Все это вы можете наблюдать ниже на скриншоте Transcribe.
![]()
Возвышенности над фортепианными кнопками, определяют преобладающий тон в этом фрагменте. Если мелодия, к которой мы хотим подобрать аккорды очень сложна, то можно использовать дополнительные функции программы.
Например, можно воспользоваться кнопкой FX. Это замедление, оно позволяет тщательнее прослушивать отрезки или всю мелодию без потери тональности. Если воспользоваться функцией EQ в наше распоряжение перейдет многополосный эквалайзер, с помощью которого мы сможем выделить нужный нам частотный диапазон, что существенно облегчит процесс подбора и анализа аккордов к мелодии.
Эквалайзер имеет несколько пред-настроек. Во-первых, это Mono/Karaoke — функции, позволяющие Вам приглушить голос исполнителя для того, чтобы более точно расслышать мелодию. Tunning — функция, которая предоставляет Вам возможность настройки мелодии под камертон. Эта функция полезна так как часто бывает так что мелодия или композиция «не строит» с камертоном. Это бывает в случае использования записи с кассеты, а также если инструменты были настроены без камертона.
Использование программы Transcribe! сделает подбор аккордов простым и увлекательным процессом. Программа подойдет как простому пользователю, который захочет разнообразить свою жизнь, так и человеку который занимается обработкой музыки. Программа будет полезна также и музыкантам, она поможет Вам подобрать аккорды к сложным мелодиям. С помощью этой программы Вы сможете добавить музыкальных произведений свой репертуар.