User Tag List

Показано с 1 по 2 из 2

Тема: NeoGS - NeoMP3

  1. #1

    Регистрация
    06.05.2019
    Адрес
    г. Подольск
    Сообщений
    108
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    18
    Поблагодарили
    13 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию NeoGS - NeoMP3

    Версия плеера для NeoGS, для проигрывания только .mp3 файлов и загрузки любых бинарников на ZX с внутренней SD карты.
    В исходниках сам плеер и примеры его использования.
    Вызов треков и сэмплов по номеру, проигрывание сэмпла по кластеру и размеру.
    Модуль инициализации и "одноразовые" функции (парсинга, загрузки списка и т.п.) после отработки можно удалить из памяти.

    Для создания списка файлов и папок проекта используется модуль в программе, по ссылке. Инструкция присутствует.
    Образ SD, для работы примера, по ссылке.

    Принцип работы.
    Существует два музыкальных списка, треков (до 64 шт.) и сэмплов (1536 шт.). Если включён __PLAYREPEAT_ON, то треки могут проигрываться по кругу и при вызове сэмпла, по его окончанию, продолжится проигрывание трека (на эмуляторе, по крайней мере, это работает). При выключенном __PLAYREPEAT_OFF, проигрывание трека закончится по его окончанию, либо по прерыванию на сэмпл. Есть искусственная задержка для эмулятора, т.к. он не понимает 2048 байт нулей в чип, уcтанавливается командой __EMUL_UNREAL_SET.
    Загрузка файла осуществляется по номеру кластера и размеру, также по номеру в списке. Данные получаются, по типу, ld hl,MyFile.clus и ld hl,MyFile.Size. Файл можно грузить полностью, либо непрерывно, по порциям #2000 байт, чтобы переключать страницы, если он большой. Контроль размера со стороны NeoGS.


    Примечание:
    Как оказалось, плеер может помимо .mp3, также воспроизводить .mid, .ogg, .aac, .wav, .wma файлы.
    В эмуляторе, если файл .mp3 очищен от картинок (лишних тегов), то он может проигрываться с любого места.
    Остальные не воспроизводятся, за исключением .acc и то с определённой секунды (у тестируемого получилось с 15 сек.).
    Так, что отличные форматы от .mp3, можно использовать в качестве сэмплов, либо, если не подразумевается использовать сэмплы, а
    только список треков, то не использовать __CPAUSEHARD, т.к. продолжение отличных от.mp3 - не гарантировано.
    Дополнение из основных исходников:
    F_EXT_VS1001
    F_EXT_VS1011 DZ "MODMP3"
    F_EXT_VS1003 DZ "MODMP3WAVWMAMID"
    F_EXT_VS1053 DZ "MODMP3WAVWMAMIDOGG"
    F_EXT_VS1063 DZ "MODMP3"
    Напротив чипа, указаны файлы, которые может он проигрывать. Как в реале с начальными чипами неизвестно, кто проверит, может отписать.

    ! Как отрабатывает логика с продолжением проигрывания на реальном железе неизвестна, может быть всё иначе!!!


    Наброски, что будет в версии 0.0.2.0.
    * Инкапсулированы изменения из оригинального плеера r185, с поддержкой новых чипов.

    Команды (проверено только в эмуляторе, на реальном NeoGS поведение неизвестно):
    - __EMUL_UNREAL_SET - установка, что запуск на эмуляторе (т.к. конец файла не проигрывается, будет задержка)
    - __PLAYREPEAT_OFF - запрет продолжения проигрывания
    - __PLAYREPEAT_ON - разрешить проигрывание следующего или продолжить прерванный трек
    - __CPLAY - начало проигрывания списка треков
    - __CPAUSE - мягкая пауза, играет буфер несколько секунд
    - __CPAUSEHARD - жёсткая пауза со сбросом чипа, прерывается сразу
    * После пауз, при включении __CPLAY, продолжится играть трек из списка, даже, если играл сэмпл
    * После __CPAUSEHARD проигрывание будет плюс, примерно, с того же места, т.к. кластеры, сектора и т.п.
    - __CSTOP - прекращение воспроизведения, без возможности продолжения с места остановки
    - __NEXT_TRACK - следующий трек в списке, без воспроизведения
    - __PREV_TRACK - предыдущий трек в списке, без воспроизведения
    - __PLAY_NUMBER_TRACK - выбрать трек из списка, без воспроизведения
    - __PLAY_NUMBER_SAMPLE - выбрать сэмпл из списка, включается воспроизведение __CPLAY, если __PLAYREPEAT_OFF
    - __VOL_UP - увеличить звук на единицу
    - __VOL_DOWN - уменьшить звук на единицу
    - __VOLUME_SET - установить громкость
    - __MUTE - включить/выключить громкость
    - __ROOT_DIR - получить корневой каталог
    - __FIND_RECORD - поиск записи по имени, в указанном кластере DIR
    - __LOAD_FILE_PORTION_IN_ZX - загрузка порции файла
    - __SEND_TRACK_LIST_IN_GS - отправляет список композиций в NeoGS, для проигрывания по очереди (64шт.)
    - __SEND_SAMPLE_LIST_IN_GS - отправляет список сэмплов в NeoGS (1536шт.)
    - __SEND_DATABIN_LIST_IN_GS - отправляет список файлов-ресурсов в NeoGS (384шт.)


    Функции к командам:
    * fCMDRequestShort - функция вызова коротких команд, без параметров
    * fCMDSendTrackListNumber - функция отправки номера трека, для перехода на него
    * fCMDSendSampleListNumber - функция отправки номера сэмпла, для воспроизведения
    * fCMDSendDataBinListNumber - функция отправки номера файла, для открытия потока
    * fCMDReceiveFileFromSDNeoGS - подготовка к приёму файла по кластеру и размеру потока
    * fLoadStreamFull - полное считывание файла (для коротких файлов)
    * fLoadPortion - порционное считывание файла, например, для переключения страниц


    Проблемы, примечания:
    * Тестирование происходит на Unreal, существующие проблемы на эмуляторе
    * Вся переработка на основании оригинального плеера, в работу SD и FAT изменения не вносились, кроме добавленных функций загрузки файлов
    * При переключении композиции, стоп/старт - звук становится максимальным, эмулятор не реагирует после сброса "чипа" на установку громкости, по умолчанию
    Также изменения громкости происходят после начала воспроизведения, команды проходят после 23 кадра (halt)
    По просьбе проверили на реале, сказали, что проблем с громкостью нет
    * Не работает громкость для левого и правого канала, только общая
    * При проигрывании .WAV файла, в конце, происходит вечный цикл в ожидании "чипа", возможно из-за тегов в конце файла


    Разработка:
    hardware (NeoGS): Вадим Акимов (LVD), Чунин Роман (CHRV), Вячеслав Савенков (Savelij), Жабин Алексей (KOE), Василий Климов (JTN);
    software (внутренний плеер): Вячеслав Савенков (Savelij).


    Программа для генерации списка папок и файлов проекта
    Образ диска для эмулятора Unreal, для тестирования исходников.
    Вложения Вложения
    Последний раз редактировалось Biland; 01.06.2025 в 14:48. Причина: v0.0.2.0

    Этот пользователь поблагодарил Biland за это полезное сообщение:

    Enigmatic(28.05.2025)

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    06.05.2019
    Адрес
    г. Подольск
    Сообщений
    108
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    18
    Поблагодарили
    13 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Выложена v.0.0.2.0, в шапке. Со старыми сорцами не совместимы (местами), + новые чипы из оригинала.
    unreal

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. NeoGS
    от CHRV в разделе Звук
    Ответов: 547
    Последнее: 17.10.2024, 17:03
  2. DMA режим в NeoGS
    от reddie в разделе Звук
    Ответов: 10
    Последнее: 09.12.2021, 00:44
  3. ремонт NeoGS
    от AHTuXPuCT в разделе Звук
    Ответов: 6
    Последнее: 01.06.2015, 18:09
  4. NeoGS + Pentevo
    от Merlin2010 в разделе ZXEvo
    Ответов: 5
    Последнее: 14.03.2011, 01:19
  5. Продаю NeoGS!
    от rasmer в разделе Барахолка (архив)
    Ответов: 20
    Последнее: 28.01.2011, 21:38

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •