"smart" music player work on opencomputers with tape drive from Computronics
Minecraft Computronics Music Player (MCMP)
- Вставляем интернет карту в компьютер и запускаем
wget -f https://raw.githubusercontent.com/asvdvl/Minecraft-Computronics-Music-Player/master/installer.lua /tmp/MCMPis.lua ; /tmp/MCMPis.lua
Способ разметки "кассеты" для удобного перематывания на разные участки и каталогизация музыки. При этом оставив возможность слушать музыку без использования программы.
- в начале кассеты пишется "MCMP" в 4х байтах(1 буква - 1 байт)(hex вид:
4D 43 4D 50
) как метка для плеера. - Пятым байтом пишется версия "разметки".
- Далее в 2х байтах записываем 16бит число длинны таблицы с описанием данных на ленте(что бы не читать все 16кб области таблицы).
- Сериализованная таблица с описанием данных на ленте. занимает фиксированные 16384 байт (16Кб)
- Структура таблицы
- Таблица содержит нумерованные таблицы для каждого трека
- В таких субтаблицах есть следущие поля:
- название трека "t"
- позиция начала трека относительно начала кассеты "sp"
- позиция конца трека относительно начала кассеты "ep"
- скорость воспроизведения кассеты для этого трека "s"
- длинну можно подсчитать по (
пункт 3
-пункт 2
)/пункт 4
получив дительность в байтах. Для получения длительности в секундах небходимо дополнительно разделить на 4096.
- Аудио данные
- Предполагается что аудио данные не будут изменятся и дополнятся какими либо метками.
- Перемотка на выбранный трек.
- Поддержка ввода в секундах/минутах/часах.
- Обратный перевод байт в секудны/минуты/часы.
- Поддержка "чтения без остановки воспоизведения".
- Вынос служебных функций в отдельный файл и подключать код как библиотеку.
- Больше служебных функций!
- Установка скорости для трека.
- Запись аудио!
- Функция дефрагментации: перемещение с целью убрать "пропуски".
- Функция воспроизведения: Графическое отображение позиции воспроизведения/позиции на ленте.
- Функция воспроизведения: воспоизведение с "перемоткой пропусков".
- ...