Цифровой граммофон

В своём блоге я уже как-то писал на тему печати звука на бумагу, например тут и тут. На днях нашел интересную статью (на английском) "Digital Needle - A Virtual Gramophone" в котоой речь об оцифровке сканов виниловых пластинок. Также, упоминается в журнале Радиохобби № 2(32) / Апрель 2003 год (стр. 9). Понятное дело, что простой сканер не подойдет - нужно высокое разрешение, но идея интересная.


Кратко: изображение со звуковой дорожкой загружается в программу, выставляется центр этой "пластинки" и начало воспроизведения, вносятся дополнительные данные и запускается "проигрывание", которое происходит по принципу движения иглы по пластинке. Нечто подобное можно найти тут, однако автор не раскрывает исходники своей программы.
Касательно Digital Needle, вы тоже не найдете исходников программы, т.к они были удалены. О них я узнал случайно - на некоторых сайтах фигурировала ссылка вида: http://www.cs.huji.ac.il/~springer/app/source.tgz. Немного думая, полез в веб-архив и таки нашел - можно скачать по этой ссылке. В дополнение, по этой ссылке можно загрузить оригинал статьи и mp3 файлы к ней.
Програма компилируется в C++ Builder 6, однако исходники не содержат файла *.dfm, поэтому его нужно будет сделать самому или воспользоваться моим проектом (исходники + программа):


Архив с кодом сокрыт в предыдушей картинке (вспомнил знаменитую фичу Rarjpeg) :) Для "откапывания" файла, поменяйте раширение картинки на rar и откройте, как обычный архив rar.
Всё бы хорошо, но у меня не получилось "проиграть" картинки со звуковой дорожкой подобной виниловой пластинке (для её генерации я воспользовался другим проектом: https://www.instructables.com/Laser-Cut-Record/) (исходники тут). Дело в том, что в программе есть несколько опций: Omega, Area, Sticky и я не знаю их предназначение. Подобрать значения для удобослышимого звучания не представляется возможным. Поэтому, если есть какие-то идеи, сообщите. Отмечу, что результат работы программы сохраняется в виде файла needle.raw на диске С:\, который можно перевести в wav посредством программы Sox (например так: sox -r 44100 -e unsigned -b 8 -c 1 needle.raw needle.wav).


Более профессиональный способ тут (исходники можно скачать по ссылке или "извлечь" из картинки выше), однако я пока не разобрался как им пользоваться.

Комментарии

Популярные сообщения из этого блога

Математика Люшера

Поиграем на микрокалькуляторе

Погода по барометру