Вступление
Всем добрый день. Решил поделиться одним из почти заброшенных проектов десятилетней давности – передача текста музыкой. Программирование здесь тоже будет, поэтому можно считать это ИТ-проектом.
История
Идея передать текст нотами не моя, но прошлые её реализации были так себе. Самое первое и простое решение - пусть нота до будет буква А, нота ре - Б и так далее. Назвать получившееся музыкой будет прям большой натяжкой. А расшифровать на слух практически невозможно.
Введение
Основной мой инструмент - гитара, родной язык - русский. Поэтому я придумал сделать музыкальный алфавит для гитары и русского языка. Главные требования:
Должно звучать красиво.
Легко сыграть.
Можно понять на слух.
Пример
Я решил сразу привести пример, чтобы показать, что получилось в итоге, а потом уже объяснить, как это получилось.
Ниже сыграна фраза:
ПРИВЕТ МИР ПРИВЕТ ХАБР ПРИВЕТ ВСЕ КОНЕЦ
Видео и картинка
Ну вот и та самая «музыка».
Описание
Буквы состоят из одиночных и двойных звуков. В начале каждого слова играется самая толстая (шестая) открытая струна. Ноты выбраны в пределах гаммы Ми минор (Em), это, возможно, не первый, но точно самый простой аккорд для начинающих.
Аккорд Em
Гамма ми минор Ноты + табы


При создании алфавита ноты и интервалы выбраны так, чтобы исполнитель не выходил за пределы 5 лада, а лучше третьего. Пятый лад используется только в одной букве, четвёртый – в трёх.
Реализация
Так как я решил не выходить за пятый лад и остаться внутри гаммы ми минор, одиночных нот получилось 13 штук. Остальные 20 пришлось добирать двузвучиями - это две ноты, сыгранные одновременно. И я выбрал более-менее звучащие и распознающиеся на слух интервалы.
Требование звучать красиво решается так: красиво звучащие сочетания нот должны совпадать с красиво звучащими сочетаниями букв.
Определять красоту звучания буквенных сочетаний я решил объективно – по частоте употребления в языке. Язык эволюционирует, и некрасивые сочетания употребляются реже. Ну или мы считаем красивыми те, что употребляются чаще, можно спорить, но статья не об этом.
Взял таблицу частотности из словарей, отсортировал и разбил на 10 частей, чтобы присвоить оценки от 1 до 10.
Пример таблицы

С нотами пришлось сыграть все сочетания по очереди и так же присвоить им оценки. Количество сочетаний получилось 528, совпало с вычисленным по формуле:

Оценки присваивал по пятибалльной шкале. Красота сочетания оценивалась на мой слух, оценка снижалась, если сложно было сыграть, а некоторые получили 6, в основном, красивые сочетания одиночных нот. Сложнее играть подряд двойные ноты, поэтому таких сочетаний не очень много.
Итого у нас есть сочетания букв с оценками и сочетания нот с оценками. Задача - сопоставить буквы с нотами так, чтобы система имела максимальную массу. Если каждому из 528 сочетаний букв присвоить свои сочетания нот, массой системы будет сумма произведений их оценок. Например, если букве С назначить ноту до, а букве Т ноту ми, то сочетание СТ имеет оценку 10, сочетание до-ми имеет оценку 6, в копилку падает 60.
Теперь нужно найти все перестановки и найти систему с максимальной массой. Если, например, мы расставили 33 буквы и назначили им 33 ноты - количество возможных перестановок в правом столбце равно факториалу числа 33.
Факториал числа 33

Перебором решать не будем.
То ли я вспомнил какие-нибудь лекции по вычислительным методам, то ли решение само напрашивалось. Возможно, есть способ лучше, но я использовал такой алгоритм: Заполняем случайную расстановку, находим массу и меняем пары. Поменяли пару, масса подросла - оставляем, снизилась - откат, и так, пока масса не перестанет расти при любых обменах. При разных начальных условиях можем попадать на локальные максимумы, поэтому делаем много экспериментов. В итоге максимальную массу получило размещение, к которому приводила большая часть экспериментов. Если это вдруг не абсолютный максимум, ничего страшного, я поиграл по этой системе - звучит хорошо, оставляем.
Ниже получившаяся схема в нотах и табах, уже можно играть, если кто умеет.
Итог работы: ноты + табы

Релиз
Сделал это я в 2013-2014 году и оформил как букварь. На каждую букву записал видео со звуком и инструкцией, как её играть, брались слова с уже изученными буквами, которые взял также из букваря. Выложил всё это на один популярный в то время сайт, думал найти единомышленников, да и просто поделиться. Отклик был небольшим, музыканты, например, совсем не заинтересовались. Я не удивился, но подостыл и оставил всё как есть, дальше не развивал. Планов по развитию пока нет, на грифе остались ещё резервные места для цифр и знаков препинания, могу продолжить в любое время.
С программированием и музыкой у меня были и другие интересные проекты, например, многодорожечное проигрывание участков фрактальных множеств, позже напишу и об этом.
Спасибо за внимание, на вопросы отвечу в комментариях. Ниже добавил картинки процесса работы.
Картинка Ноты-лады


Буква А на своей позиции

Ноты в ви��е аккордов

Эксперимент в программе

