💾 Музыкальный центр на дискетах

 Публичный пост
2 февраля 2024  1885
Беха ОХУЕННО ⨯3

Привет, клубнички и клубни!

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

Предыстория

В 1999 году мы только-только переехали в новый дом, который при помощи всей семьи построил отец. Такова была реальность жизни в сельской местности: чтобы угнездиться, нужна своя хата, которую тебе никто готовенькую и с ключами не принесёт, надо всё самому делать от фундамента и до конька на крыше. Это был невыносимо долгий проект, который не завершился и по сей день, но я опущу все мельчайшие подробности. Важно было другое: папа всегда умел работать руками и собирать из запчастей и подручных материалов что угодно работающее, будь то телевизор или магнитофон.

Кстати, вот ещё момент: поскольку папа работал в электродепо, недостатка в разнообразных запчастях у него вовсе не было. В пристройке и на чердаке нового дома чего только не найти. В том числе автомагнитолу, колонки и блок питания на 12 вольт. Из всего этого отец собрал дома нехитрый музыкальный центр, который выглядел абсолютно непрезентабельно, как и голые стены с ещё слегка сырой штукатуркой, но тем не менее создавал ощущение уюта. Как-никак обжитое пространство! Можно музыку послушать и чаю попить.

Новая игрушка сразу же вызвала во мне огромный интерес. В моём нехитром запасе были транспортированные ещё со старого дома кассеты с песнями Леонида Агутина, какие-то сказки и может быть уроки английского (возможно, привезли из столицы). Папа сразу всё понял и через неделю подкинул мне кассету с инструментальными и оркестровыми каверами.

Тема очень даже раскрыта, но в девяностые всем было похер
Тема очень даже раскрыта, но в девяностые всем было похер

Кассета моментально стала моей любимой. Подборка очень красивой музыки, которая нравилась всем, в особенности мне. По правде говоря, я до сих пор под особым впечатлением: до подросткового возраста я искренне считал, что "Yesterday" группы "The Beatles" является изначально инструментальной композицией на флейте! Она и поныне так звучит в моей голове. Но я немного отвлёкся. Кассет становилось всё больше и больше. Я понятия не имел откуда папа их доставал, покупал специально, наверное, поскольку обложки у всех были новенькие, разве что в целлофан они не были запакованы. Вскоре для коллекции потребовалось отдельное место хранения и она была помещена в обувную коробку.

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

Здесь заканчивается история и начинается рассказ про мой трибьют той самой обувной коробке с кассетами, с которой всё и началось.

Зарождение идеи

Честно говоря, я не являюсь оригинальным автором идеи использовать флопповод как основу для домашнего музыкального центра. То ли на реддите, то ли на хакерньюс я увидел ссылку на статью одного гика, Дино Фиццотти, об использовании дискет в качестве токенов для запуска музыки на Spotify. И сразу же загорелся этой идеей.

Дискеты из коллекции Дино
Дискеты из коллекции Дино

"Но в чем прикол идеи?", вполне резонно спросите вы. Видите ли, в цифровую эпоху мы утеряли многие аспекты потребления аудиоматериала, в том числе и тактильный. Физические магнитные носители помогают всё это вернуть. Они добавляют осознанный подход к прослушиванию музыки. Почти так же, как винил сейчас и как кассеты когда-то. Перебирать пальцами дискетки в коробочке, найти что-то по настроению, вставить в дисковод и прослушать альбом от начала и до самого конца. В век синглов, постоянно включённого shuffle mode и автоматических подборок это особенно ценно, помогает заново переоткрыть и переосмыслить треки в альбомах, воспринимая их как частицу целой, завершённой работы.

Вдобавок ко всему, коллекции физических носителей, будь то книг или кассет, добавляет другой интересный аспект: они создают впечатление о собеседнике, рассказывают историю, подталкивают к беседе. Я много раз за собой замечал, что с обладателями домашних библиотек мне всегда интересно. Бросил взгляд на книжную полку, прочитал наименования на корешках и можно завязать интересный разговор! То же самое работает и с музыкой. Гости в моём доме всегда интересуются коллекцией дискеток, перебирают их, задают вопросы и восторгаются, если находят что-то знакомое. С киндлами и айподами это так не работает, про Spotify я и вовсе молчу.

Наконец, тот самый запах пластика, сопротивление пружинки флоппи-драйва при вставлении носителя, восхитительный щелчок, являющийся вершиной тактильного кайфа, и характерное жужжание, которое моментально уносит на 20 а то и 30 лет в прошлое, когда всё было проще и понятнее.

"Но на дискету же помещается всего полтора мегабайта информации, как их использовать для прослушивания музыки?", опять спросите вы. А дело в том, что сама музыка на них не хранится. В реализации Дино на дискетах хранится ссылка на альбом в Spotify. А про свою реализацию я расскажу сейчас.

Я тоже такое хочу! Что мне для этого нужно?

В первую очередь вам нужен компьютер с дистрибутивом Linux, лучше всего подойдёт Raspberry Pi, поскольку потребляет мало электроэнергии и занимает мало места. Раньше у меня на музыкальном столе жила крохотная Pi Zero W с USB-шляпой, но с нового года теперь там Pi 4, которую мне подарила @Kirsche 💜

Здесь живёт вся моя музыкальная коллекция, а также кубернетес (как же без него?)
Здесь живёт вся моя музыкальная коллекция, а также кубернетес (как же без него?)

Раз мы строим музыкальный центр на базе флоппи-дисковода, то он нам и потребуется следующим. Рекомендую приобрести Sony 2X, как на картинке ниже, они просто сумасшедше надёжные. Те, что сейчас продаются на Amazon, иногда выходят из строя и начинают плеваться ошибками монтирования в dmesg.

IDE-флоппи с USB-адаптерами не рекомендую, если только вы не хотите совсем угореть по классике.

Лучший флоповод по версии Reddit
Лучший флоповод по версии Reddit

Само собой нам нужны дискеты. Рекомендую прошерстить онлайн-барахолки и купить сразу целую пачку, а лучше сразу со специальным кейсом, как у меня и у Дино, чтобы было где их хранить.

Моя маленькая сокровищница
Моя маленькая сокровищница

И, наконец, нужно что-то, что будет проигрывать музыку. В моём случае это надёжные колонки Microlab c усилителем, которые со мной аж со студенческих времён и которые до сих пор звучат отлично.

Усилок. Отдельное спасибо @austinate за мерч!
Усилок. Отдельное спасибо @austinate за мерч!

Теперь остаётся главный вопрос: как заставить это всё работать?

Софт

В версии Дино используется проигрыватель Spotify. Я, как стопроцентный дед, стриминговым сервисам не доверяю, поскольку оттуда часто пропадают альбомы, а некоторой музыки и вовсе нет до сих пор, поэтому в моей версии вся музыка хранится локально и проигрывается с помощью сервера MPD — Music Player Daemon.

Вообще основной точкой входа является триггер вставления носителя, правило udev, менеджера динамической конфигурации оборудования GNU/Linux. Оно абсолютно простое и его единственная задача — задетектить смену статуса устройства и запустить по такому поводу скрипт:

ACTION=="change", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="002c", ENV{DISK_MEDIA_CHANGE}=="1", RUN+="/usr/local/bin/media_mount $env{DEVNAME}"

Выглядит страшно, но на самом деле всё совсем несложно: определяем действие, то есть смену статуса устройства, фильтруем девайс по атрибутам (производитель, изделие), задаём переменные окружения и запускаем скрипт. И вот там уже происходит вся магия.

Скрипт автоматически монтирует дискетку в указанный путь по имени устройства, ищет там файл плейлиста, скармливает содержимое через пайп в клиент MPD и запускает музыку. При извлечении дискеты воспроизведение останавливается. Всё! Больше никаких способов контролировать воспроизведение физическими триггерами нет! Слушайте от начала и до конца.

Специально для этого поста я сделал отдельный репозиторий в GitHub, который за вас установит на RaspiOS всё необходимое, вам лишь нужно будет указать атрибуты устройства.

А теперь немного про приятную сопутствующую возню.

Подготовка дискет

Как вы уже заметили, на мои дискеты, также как и на дискеты Дино, наклеены обложки альбомов. В этом, можно сказать, вся суть этого поста и этой поделки: каждый флоппи-диск представляет собой токен для запуска в плейбэк того, что на нём нарисовано. Как всё это происходит?

Для начала я беру четыре обложки альбомов, которые хочу подготовить. Именно столько влезет на фотокарточку формата 10х15. Далее я размещаю их в SVG-трафарете с помощью Inkscape, экспортирую в PNG и сохраняю себе на телефон.

Фотопечать в Германии очень распространена. Практически любой магазин бытовой химии и средств гигиены содержит в себе киоски фотопечати, представляющие собой компьютеры с сенсорными дисплеями и специальными принтерами. Передавать на них фотографии можно через кабель, а также по Email и Bluetooth. Я обычно выбираю последнее, благо у меня Android.

Киберпанк уже здесь, в любом хозмаге
Киберпанк уже здесь, в любом хозмаге

Стоит одна фотокарточка 27 евроцентов, почти ничего, а печатается очень быстро. Киоск затем выдаёт чек, который можно отоварить на кассе.

Готовый результат
Готовый результат

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

Если брать старые дискеты, то, возможно, потребуется дополнительная подготовка, как то отодрать старый стикер, опционально сохранить файлы и отформатировать. Для форматирования через USB-привод используется команда ufiformat.

Стикеры на старых дискетах — отдельный жанр
Стикеры на старых дискетах — отдельный жанр

После всех подготовительных мер можно наклеить новый стикер и перейти к записи на носитель. Не забудьте закрыть сдвижное окошечко в углу! Открытое окошечко запрещает запись!

Дискета вставлена, можно монтировать и записывать плейлист. MPD нативно поддерживает формат M3U, поэтому его и будем использовать. Мой скрипт после автоматического монтирования ищет файл /mnt/floppy/media.m3u, туда мы и сохраним результат. Рекомендую записывать путь к файлам относительно директории, в которой определена библиотека MPD, так они будут портативными. Ровно те же файлы плейлистов у меня используются в проигрывателе Vanilla Music на телефоне. Весь процесс записи плейлиста есть на скриншоте.

Подготовка закончена. Извлекаем дискету, открываем окошечко для защиты носителя от записи, а затем вставляем заново.

Приятного прослушивания!

Бонус 1

Помню времена, когда люди не могли посрать сходить без того, чтобы зачекиниться в Foursquare. Я же не могу слушать музыку без того, чтобы заскробблить её в Last.FM. Да, ластик до сих пор жив и рекомендации в нём, как по мне, куда интереснее, чем в Spotify. Персонализированная информация на главной там очень разнообразная и очень полезная с точки зрения меломана. Также мне нравится возможность посмотреть срезы данных за любой промежуток времени. Приятно узнать, каким говноедом я был 10 лет назад!

Но у обычных скробблеров есть один фатальный недостаток™: они не распознают ICY-теги из интернет-радио. Точнее говоря, плееры их не распознают, поэтому тег Artist всегда пустой, а тег Title содержит все метаданные одной строкой. Пришлось написать собственный скробблер, который умеет это парсить.

Если интересно — можно попробовать

Бонус 2

Если вы такой же кибердед как и я, то есть собираете музыку файликами на диск, очень рекомендую воспользоваться MusicBrainz Picard. Программа очень помогает исправлять теги и автоматически переименовывать файлы для правильной каталогизации.

Связанные посты
33 комментария 👇

Этой статье не хватает коллекционного тега КиберДед!)

  Развернуть 1 комментарий

@evgandr, он на модерации

  Развернуть 1 комментарий

@rcmd, О, прекрасно!) Этот тег уже есть в моей коллекции

  Развернуть 1 комментарий

😱 Комментарий удален его автором...

  Развернуть 1 комментарий

@evgandr, топлю за тэг "кибердед"

  Развернуть 1 комментарий

Ожидал увидеть магию по записи аналоговой информации на магнитный диск дискеты, типа такого, эх

  Развернуть 1 комментарий

@strangeman, у меня было больше про практичный подход. Сервер MPD уже и так был, а мне хотелось сделать к нему физический интерфейс.

  Развернуть 1 комментарий

Всегда нравились дискеты, прикольные они какие-то, эта шторка, кнопка eject на приводе. Только места маловато. Пошел гуглить похожие форматы и наткнулся на minidisk: 160 мегабайт, с использованием родного сжатия, получается 60-80 минут звука. Кажется, ощущения от использования будут очень похожие, но при этом музыка будет на самом носителе. Теперь хочу себе такое найти. И диски даже до сих пор производят (а вот железо, уже нет).


P.S. Оказалось, что Нео в Матрице продавал именно минидски

  Развернуть 1 комментарий

@mtrsv, про минидиски есть два отличных ролика, после которых этой темой захочется обмазаться по самые брови.

В Японии очень долгое время были даже вендинг-автоматы для записи минидисков! Это прям next level.

  Развернуть 1 комментарий

@rcmd, с этого канала узнал, что еще существовал формат DataPlay, еще меньше диск, тоже в корпусе. Компания быстро обанкротилась, поэтому в наше время это очень редкая штука.
больше фоток

  Развернуть 1 комментарий

@rcmd, Блин, прикольный формат, конечно, и как будто бы в него не так чтобы уж больно было вкатываться по финансам, но девайсы для воспроизведения/записи потихоньку умирают, и это печально.

  Развернуть 1 комментарий

@mtrsv, есть еще Эволюция минидисков - UMD, знакомый каждому, кто имел psp

  Развернуть 1 комментарий
Lesha Lomalkin QA & production line in China 6 февраля в 04:27

Очень круто! Я думал о чем-то похожем, предлагаю вам альтернативную реализацию:
Карточки-открытки, у которых с одной стороны обложка, а с другой - QR код, содержащий IPFS ссылку.

  • Более компактные, но все еще физические коллекции, обложка
  • Можно подержать в руках, подарить или переслать почтой другу, и при этом быть уверенным, что музыка будет именно та же самая
  • Плеер для такой штуки можно сделать хоть в виде приложения для телефона - важно для тех, кто не готов заморачиваться с железом.
  • По прошествии лет, композиция будет та же самая, т.е. никакой условный спотифай не заменит на улучшенную, прости господи, версию.
  • Сам по себе QR это алгоритм, можно с уверенностью утверждать, что он будет жив гораздо дольше, чем условный NFC.
  Развернуть 1 комментарий

Я, получается, аналоговый дед. Решил без компромиссов - нашел по объявлению бесплатную деку, смазал и привел в порядок, нашел к ней кассет. Вуаля!

  Развернуть 1 комментарий

@ishimaru, ух. Низкий поклон. Это прям топ-задротство.

Насчёт кассет я подумывал приобрести два рекордера, чтобы сделать из них вот такую бобуйню.

  Развернуть 1 комментарий

@rcmd, Здорово. Вполне реально, кстати, сейчас кассеты обрели нишевую популярность, и некоторые новые релизы выпускают на них.
Моя мечта - это reel2reel, идеально такой:

Но очень дорого выходит не только сам бобинник, но и бобины с лентой. В детстве у меня был такой:

  Развернуть 1 комментарий
Alexey Zhukov Руководитель подчиненных 2 февраля в 13:17

Офигенно! Очень!

ps. И совершенно неясно, как поставить два плюса.

  Развернуть 1 комментарий

@unicsoid, для этого я обычно кнопку «Наградить» тыкаю)

  Развернуть 1 комментарий
sergey sign типа программер 2 февраля в 16:14

Вот это ты упоролся...
Респект)
А ваще этот проект вызывает очень необычное чувство уважения - как к плетению бисера наверное)

  Развернуть 1 комментарий

Нужно делать вот такой дисковод

  Развернуть 1 комментарий

@Yavanosta, Это же гениально!
Скрещивание моей мысли об SDшках вместо дискет и исходной идее из поста!

  Развернуть 1 комментарий
Дмитрий Фирсов Специалист группы мониторинга сервисов 2 февраля в 20:02

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

  Развернуть 1 комментарий

@Shtihl, о, у меня мысль полетела в сторону карт mifare 4k. 4 килобайта данных, стоит сотку за штуку если не особо выбирать.
А дальше пишем путь до m3u на сервере или команду для умной колонки

  Развернуть 1 комментарий

@aotd, вчера узнал, что такое уже сделали и продают за деньги)
называется YOTO

  Развернуть 1 комментарий

Это офигенно! Спасибо!

  Развернуть 1 комментарий
Роман Носов Креативный продюсер 3 февраля в 07:40

Это очень круто! Пересекается с моими думами о том, чтобы распечатать все свои всратые фоточки из ВК в физический альбом.

Музыку для осознанного прослушивания я хотел перенести на винил, но это совсем другой уровень дерьма, а вот такое решение мне ужасно нравится. Спасибо большое за пост, мой список покупок пополнился.

  Развернуть 1 комментарий

Классная статья! Но не хватает ссылки на твой ласт.фм :)

  Развернуть 1 комментарий

@karps, поскромничал немного)

Но вот: https://www.last.fm/user/rcmd-space

  Развернуть 1 комментарий

@rcmd, зафоловвил https://www.last.fm/user/mrKLOP
Приятно видеть пользователей этого динозавра в 2024 :)

  Развернуть 1 комментарий

Тож зафоловил всех https://www.last.fm/user/Skriva

  Развернуть 1 комментарий

@skrivka,

scrobbling since 12 Oct 2006

Нифига ты дед!

  Развернуть 1 комментарий

@skrivka, юзерпик рассмотрел.

Нифига ты дед! [2]

Тоже теперь хочу плюшевого какодемона) Хотя, у меня кот есть, иногда он тоже тот ещё какодемон!

  Развернуть 1 комментарий

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

  Развернуть 1 комментарий

@cereevg, именно так, физических контролов других нет.

На всякий случай я держу на телефоне клиент MPD в качестве panic button, но идея в основном в том и есть чтобы слушать альбомы от начала и до конца

  Развернуть 1 комментарий

😎

Автор поста открыл его для большого интернета, но комментирование и движухи доступны только участникам Клуба

Что вообще здесь происходит?


Войти  или  Вступить в Клуб