/Minecraft-Computronics-Music-Player

"smart" music player for tape drive from Computronics

Primary LanguageLuaGNU General Public License v3.0GPL-3.0

Minecraft-Computronics-Music-Player

"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

Что это?

Способ разметки "кассеты" для удобного перематывания на разные участки и каталогизация музыки. При этом оставив возможность слушать музыку без использования программы.

Как это устроено?

  1. в начале кассеты пишется "MCMP" в 4х байтах(1 буква - 1 байт)(hex вид: 4D 43 4D 50) как метка для плеера.
  2. Пятым байтом пишется версия "разметки".
  3. Далее в 2х байтах записываем 16бит число длинны таблицы с описанием данных на ленте(что бы не читать все 16кб области таблицы).
  4. Сериализованная таблица с описанием данных на ленте. занимает фиксированные 16384 байт (16Кб)
  • Структура таблицы
  • Таблица содержит нумерованные таблицы для каждого трека
    • В таких субтаблицах есть следущие поля:
    1. название трека "t"
    2. позиция начала трека относительно начала кассеты "sp"
    3. позиция конца трека относительно начала кассеты "ep"
    4. скорость воспроизведения кассеты для этого трека "s"
  • длинну можно подсчитать по (пункт 3 - пункт 2)/пункт 4 получив дительность в байтах. Для получения длительности в секундах небходимо дополнительно разделить на 4096.
  1. Аудио данные
  • Предполагается что аудио данные не будут изменятся и дополнятся какими либо метками.

Функции плеера

  • Перемотка на выбранный трек.
  • Поддержка ввода в секундах/минутах/часах.
  • Обратный перевод байт в секудны/минуты/часы.
  • Поддержка "чтения без остановки воспоизведения".
  • Вынос служебных функций в отдельный файл и подключать код как библиотеку.
  • Больше служебных функций!
  • Установка скорости для трека.
  • Запись аудио!
  • Функция дефрагментации: перемещение с целью убрать "пропуски".
  • Функция воспроизведения: Графическое отображение позиции воспроизведения/позиции на ленте.
  • Функция воспроизведения: воспоизведение с "перемоткой пропусков".
  • ...