Печать и воспроизведение звука на бумаге

от автора

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

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

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



На протяжении нескольких лет я занимаюсь изучением советского фотоэлектронного синтезатора АНС, созданного советским инженером Евгением Мурзиным в период с 1938 по 1958 г. Фишка этого инструмента в том, что музыка создается путем рисования спектрограммы и играется потом неким подобием современного сканера — вертикальное сканирующее устройство просвечивает партитуру, проецируя свет на специальные диски (своего рода оптические преобразователи Фурье), которые готовый модулированный сигнал посылают на фотоэлементы. Такой формат идеально подошел бы для записи звука в графическом виде. Поврежденная или уменьшенная спектрограмма может потерять некоторые гармоники, но сохранит общую картину для последующего воспроизведения. И очень кстати мною был создан программный симулятор синтезатора АНС — Virtual ANS, способный не только играть такие партитуры, но и создавать, конвертируя аудио-файл в картинку спектра. То, что нужно!

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

Проекту дадим название PhonoPaper. Спецификация кода выглядит следующим образом:

Бесплатная программа-сканер была написана приблизительно за 2 месяца на языке Pixilang. На текущий момент она доступна только для Android. iOS-версия появится в ближайшие дни. Поддержка других систем — в планах. Android-версия использует библиотеку прямого доступа к камере из проекта OpenCV, которая, к сожалению, совместима не со всеми устройствами, хотя разработчики постоянно ее совершенствуют — с этим пока приходится мириться.

Предвижу вопрос о практическом применении. Поэтому привожу небольшой список с примерами использования PhonoPaper-кодов:

  • голосовые подсказки или тематические куски музыки на визитках, рекламных плакатах, товарах;
  • бумажные открытки с напечатанным звуковым посланием;
  • аудио-примеры в учебниках или детских книжках;
  • звуковые метки на пластинках, дисках, кассетах;
  • звуковая подпись на обратной стороне бумажной фотографии;
  • арт-эксперименты;
  • изучение основ построения спектральной музыки и звука через ручное рисование PhonoPaper-кодов.

Посмотрим, как это работает в живую:

ссылка на оригинал статьи http://habrahabr.ru/post/220061/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *