Важная информация
  • Вышла очередная версия ZXTune

    Билд 3950

    + добавлена поддержка Nintendo DS Sound Format (2SF)
    + добавлена поддержка Startrekker (MOD)
    * ускорен поиск многофайловых треков в архивах
    * исправлено воспроизведение GSF
    * база длительностей SID модулей обновлена до версии 66
    + zxtune-qt: открываемые через командную строку файлы могут добавляться не только в новый, но и в текущий активный или видимый плейлист
    + zxtune-android: добавлен каталог http://2sf.joshw.info
    * zxtune-android: векторные иконки в приложении
    - zxtune-android: минимально поддерживаемая версия Android 4.0.3 (API v14)
    * zxtune-android: исправлены некоторые падения
    Очередная "галочка" в списке поддерживаемых форматов - 2SF. Это очередной представитель семейства xSF форматов, созданный для сохранения музыки с приставки Nintendo DS. Также в версию для Android добавлен доступ к каталогу с такой музыкой.
    Сделан первый шаг в сторону Material Design - переделаны все иконки приложения кроме главной. Для новых версий Android (начиная с 5.0) они будут показываться в наилучшем возможном качестве в связи со своей векторной натурой.
    Также пришлось отказаться от совсем уж старых версий Android (2.3.3 - 3.2) - доля пользователей этих платформ уже практически не видна на радарах, а сложностей с поддержкой имеется достаточно.
    Остальные исправления связаны с найденными и сообщенными проблемами, недобностями и падениями.

    Скачать версию для Android

    Скачать версию для win32
    Скачать версию для win64
    Скачать версию для win32 (MMX/SSE/SSE2)
    Скачать версию для win64 (MMX/SSE/SSE2)
    Эта статья изначально была опубликована в теме форума: ZXTune - ZX Music player автор темы Vitamin Посмотреть оригинальное сообщение

    Комментарии 119 Комментарии
    1. Аватар для Shiny
      Shiny -
      Цитата Сообщение от Vitamin Посмотреть сообщение
      Тут нет. А теперь напрягись и подумай, для чего я спрашивал
      в "тут" есть cmr/cm3, что мало, наверное. cm3 попадается на дисках, но не ясно, действительно ли этот формат.

      - - - Добавлено - - -

      похоже, документация неточная

      тут написано, что сигнатура Double SCMC v2.02

      Взял версию:
      https://atarionline.pl/v01/index.php...sic%20Composer

      у .cmc одна и та же надпись, у cms видно словечко "double". Может, оно и не скомпилировано?

      - - - Добавлено - - -

      А, ясно, Double SCMC v2.02 - в другом формате.
    1. Аватар для Vitamin
      Vitamin -
      Билд 4190:

      * исправлено воспроизведение некоторых ET1 треков
      * исправлено воспроизведение цифровых SID треков
      + zxtune-android: добавлен каталог ASMA
      * zxtune-android: исправлены некоторые зависания и падения

      Очередной небольшой релиз. Попало в него далеко не все, что планировалось но все же.
      Расследование одного зависания при воспроизведении SID треков привело интересным результатам. Например, выяснилось, что используемая библиотека sidplay один и тот же трек каждый раз рендерит немного по-другому из-за использования системного генератора случайных чисел и незамеченного на этапе внедрения корявого кода с перезаписью глобальных переменных. Также выяснилось, что моя оптимизация эмуляции SID ломает воспроизведение треков с цифровыми семплами Пришлось отключить и понадеяться на рост производительности устройств за последние 5 лет.
      Желание добавить известный каталог Atari SAP Music Archive (ASMA) разбивалось об отсутствии полноценного зеркала с возможностью доступа к папкам. Пришлось поднять на своих мощностях вместе с главными зеркалами для каталогов hvsc и joshw (разумеется, оригинальные зеркала остались в качестве запасных вариантов, переключение на которые делается автоматически).
      Также были исправлены разные досадные падения и зависания.

      Скачать версию для Android
    1. Аватар для Vitamin
      Vitamin -
      Билд 4210:

      * исправлено падение при воспроизведении некоторых .gsf треков
      + zxtune-android: добавлено запасное зеркало для каталогов asma, amp и modland
      * zxtune-android: исправлены некоторые найденные и сообщенные проблемы

      Наконец получилось-таки выкроить время и поправить кое-какие надоедливые проблемы, возникшие в прошлом релизе.
      Также нашлось внешнее зеркало для каталога ASMA и было добавлено в качестве запасного. Каталоги AMP&ModLand тоже обзавелись запасными зеркалами.

      Скачать версию для Android
    1. Аватар для creator
      creator -
      Цитата Сообщение от Vitamin Посмотреть сообщение
      Билд 4210
      Что-то с виджетом не того, просто чёрный прямоугольник с названием композиции. "Кнопки" срабатывают, но их не видно. В 4190 всё хорошо.
    1. Аватар для Vitamin
      Vitamin -
      Цитата Сообщение от creator Посмотреть сообщение
      Что-то с виджетом не того, просто чёрный прямоугольник с названием композиции. "Кнопки" срабатывают, но их не видно. В 4190 всё хорошо.
      Исправил

      Скачать версию для Android
    1. Аватар для transman
      transman -
      А нельзя ли добавить громкости? Для того чтобы более или менее комфортно слушать музыку приходится выкручивать громкость на максимум. И то бывает не хватает.
    1. Аватар для Vitamin
      Vitamin -
      Цитата Сообщение от transman Посмотреть сообщение
      А нельзя ли добавить громкости? Для того чтобы более или менее комфортно слушать музыку приходится выкручивать громкость на максимум. И то бывает не хватает.
      Дополнительная громкость только за деньги.

      А если серьезно, то начни лучше с деталей. Какая платформа, какая версия, какие треки играют недостаточно громко.
    1. Аватар для transman
      transman -
      Vitamin, Lenovo P2, Android 7, через гарнитуру. Все треки звучат гораздо тише чем при воспроизведении музыки через play музыку и aimp (последний похоже дополнительно увеличивае громкость даже при выключенном эквалайзере). В тишине ещё можно слушать. А в шумном месте (на улице) даже при полной громкости шум перебивает звук.
    1. Аватар для siemensC35
      siemensC35 -
      Sony XA ведро 7.0 ,4190, симптомы теже, на вызов ставил кстати мелодию, та оно вроде как по громкости как музыка обычная через стоковый плеер
    1. Аватар для Vitamin
      Vitamin -
      Билд 4280

      [+] добавлена поддержка формата MPEG Audio Layer (MP1/MP2/MP3)
      [+] добавлена поддержка формата Ogg Vorbis audio (OGG)
      [+] добавлена поддержка формата Waveform Audio (WAV, только PCM-encoded типы)
      [+] добавлена поддержка формата FMOD sound banks (FSB)
      [*] zxtune-qt: исправлена пауза перед анализом больших файлов в известном формате
      [*] zxtune-android: оптимизировано использование памяти
      [+] zxtune-android: добавлены архивы FM Towns, Mobile plaforms, NeoGeo CD and PC в каталог joshw.info
      [*] zxtune-android: кешированные файлы будут обновляться в случае изменения на серверной стороне
      [*] zxtune-android: исправлен и улучшен поиск внешних хранилищ на современных устройствах
      [*] zxtune-android: исправлены некоторые сообщенные и найденные проблемы


      Очень тяжелый, прямо-таки вымученный релиз.

      Основное нововведение, ради которого все затевалось - поддержка форматов MP3 и OGG, не являющихся чиптюнами или специализированными форматами компьютерной музыки. Все же, огромное количество треков этих форматов в коллекциях joshw сыграло решающую роль.

      Блуждая по просторам GitHub, наткнулся на небольшую (буквально, один файл) библиотеку minimp3, предназначенную, как понятно из названия, для декодирования данных в формате .mp3. Поскольку работа с метаинформацией там отсутствовала, таки пришлось написать свой парсер файлов для поддержки всех популярных форматов тегов и индексации файла для быстрого позиционирования (а также борьбы с корявостями самого формата .mp3). С позиционированием как раз возникли проблемы, но автор библиотеки подсказал ЧЯДНТ и все заработало. Несмотря на скромный размер, библиотека поддерживает аппаратное ускорение (SIMD/NEON), но есть проблемы с его детектированием на 32-битных ARM устройствах. Но все работает быстро (быстрее некоторых chiptune форматов, да, проверял на Raspberry Pi).

      С поддержкой .ogg было чуть проще - несмотря на тонкости (ogg - это только контейнер, vorbis - это непосредственно кодирование звука), разбор формата и метаданных получился проще. В качестве декодера выступила библиотека stb (точнее, ее часть). Вовремя найденый репозиторий getID3-testfiles с образцами разных форматов файлов и тегов нереально облегчил процесс тестирования.

      А вот с каталогами joshw хлебнул проблем по полной...

      Зеркала для 12 поддерживаемых до этого момента каталогов занимали в сумме чуть больше 200Гб и довольно вольготно располагались в своем волюме коммунального LVM/thinpool диска сервера:) Зеркало каталогов FM Towns + NeoGeo CD увеличило его на скромные 15Гб и проблем не вызвало. А вот дальше начался трэш и угар. При скачивании каталога для PC то и дело заканчивалось место, что заставляло понемногу, но часто увеличивать размер волюма. Так вот, незаметно, случилось фатальное переполнение- размеры выделенных волюмов суммарно могут превышать физический размер диска, проблемы начинаются при заполнении данными. И они начались (сам дурак, да:))

      Пострадавшие соседние волюмы были перезалиты из бекапа, а вот виновника пришлось аккуратно восстанавливать, вычищая битые архивы- не хотелось терять результаты многодневной конвертации. Тут всплывает еще одна очень важная вещь, которая была также сделана помимо простого зеркалирования (да, локальная копия имеет и преимущества, не все же мучаться с ней:)). Как известно, содержимое архивов joshw представляет собой наборы 7zip файлов, сжатых (в большинстве своем) в режиме solid. Для некоторых форматов (например, spc) это серьезно улучшает качество сжатия без заметного замедления работы. В случае же наличия чужеродных файлов (обычно, большого размера и крайне плохо жмущихся- например, те же mp3/ogg), точечный доступ к файлам архива фатально замедляется, что на фоне невозможности даже отслеживать прогресс распаковки (да и вообще понять чем приложение занимается), очень огорчало пользователей.

      Для уменьшения страданий была написана тулза, которая пытается соптимизировать архивы: отключить сжатие вообще (если толку от него не особо много), уменьшить максимальный размер блока для solid сжатия до разумных пределов, ну и включить тщательный анализ файлов архиватором на предмет поиска оптимального способа сжатия. Все эти манипуляции даже позволили выиграть несколько гигабайт места:)

      Тем не менее, наиболее жирные файлы (>2Гб) пришлось удалить (все равно там нет поддерживаемых треков). И без этих 55Гб размер зеркала превышает 840Гб. Поскольку это достаточно много, образ хранилища был изгнан на NAS, где и живет по сей день:)

      Также в процессе разборок с каталогами joshw наткнулся на их сайт индекса. Имеющаяся там аналитика подсказала, что связкой OGG+MP3 отделаться не получится. После беглого анализа вариантов и поиска информации о деталях, наскоро поддержал формат FSB - звуковые банки для движка FMOD. И уже после этого выяснилось, что в этих контнейнерах не так уж и много mp3/ogg потоков (ogg еще и не так просто оттуда выковырять, что и не сделано пока), а вот несжатого аудио - навалом. Поэтому пришлось допиливать еще и поддержку формата WAV. Что и было сделано для подмножества PCM (моно/стерео от 8 до 32 бит, включая float), более сложный подвид ADPCM пока не осилил.

      Работу над android версией пришлось вести сразу по двум направлениям: адаптация под требования новых API и доработка функционала, связанного с новыми форматами и каталогами.

      Начиная с ноября 2018 года Google Play ввел очередные ограничения на минимальную версию используемого приложениями sdk. Это значит, что новые приложения или их обновления не смогут быть опубликованы без адаптации под новые версии платформы. Так что есть риск, что ваши любимые программы надолго останутся без обновлений, если авторы не адаптировали их новым версиям систем по мере появления оных. К сожалению, помимо новых фишек, новые версии привносят и ограничения, которым надо следовать. Стыдно признать, но 70% крешей в предыдущей версии - последствия такого вот упущенного ограничения:(

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

      Скачать версию для Android

      Скачать версию для win32
      Скачать версию для win64
      Скачать версию для win32 (MMX/SSE/SSE2)
      Скачать версию для win64 (MMX/SSE/SSE2)
    1. Аватар для creator
      creator -
      Цитата Сообщение от Vitamin Посмотреть сообщение
      да, проверял на Raspberry Pi
      А что, так можно было?
      Немедленно скачал и распаковал в /. Круть, спасибо!
    1. Аватар для Vitamin
      Vitamin -
      Цитата Сообщение от creator Посмотреть сообщение
      А что, так можно было?
      Немедленно скачал и распаковал в /. Круть, спасибо!
      Блин, а зайти на сайт и увидеть знакомую иконку возле списка закачек не получалось?
    1. Аватар для transman
      transman -
      Preamp, как понимаю, добавлен не был. Жаль.
      Чтобы была понятна суть проблемы.

      ZXTune (Андроид) и AIMP
    1. Аватар для Vitamin
      Vitamin -
      Цитата Сообщение от transman Посмотреть сообщение
      Preamp, как понимаю, добавлен не был. Жаль.
      Чтобы была понятна суть проблемы.
      ZXTune (Андроид) и AIMP
      Да, пока до этого руки не дошли. Там все не так просто.
    1. Аватар для tiboh
      tiboh -
      Эти две мелодии из Extreme's Tracker, ZXTune играет неправильно.
    1. Аватар для Vitamin
      Vitamin -
      Цитата Сообщение от tiboh Посмотреть сообщение
      Эти две мелодии из Extreme's Tracker, ZXTune играет неправильно.
      Попробуй воспроизвести в разных версиях редактора - 1.31 и 1.32+
    1. Аватар для tiboh
      tiboh -
      Цитата Сообщение от Vitamin Посмотреть сообщение
      Попробуй воспроизвести в разных версиях редактора - 1.31 и 1.32+
      rok-m написана в версии редактора 1.32 (расширение файла D), версия 1.31 даже не видит этот файл. Niagra, наоборот, написана в версии 1.31.
      В самих редакторах мелодии играют правильно. А в ZXTune (версия win64), в rok-m играет, как-будто бы только один канал, а в niagr'е вообще полная какофония...
    1. Аватар для Vitamin
      Vitamin -
      Цитата Сообщение от tiboh Посмотреть сообщение
      rok-m написана в версии редактора 1.32 (расширение файла D), версия 1.31 даже не видит этот файл. Niagra, наоборот, написана в версии 1.31.
      В самих редакторах мелодии играют правильно. А в ZXTune (версия win64), в rok-m играет, как-будто бы только один канал, а в niagr'е вообще полная какофония...
      ZXTune отдетектил nagra как версию 1.32 потому что используется команда R--, которой нет в 1.31, соответственно в другом файле все наоборот. Расширение файла в расчет не берется, анализируется только содержимое.
      Можешь еще набрать примеров чтоб подкорректировать эвристику? У меня только несколько десятков таких файлов в выборке.
    1. Аватар для tiboh
      tiboh -
      Цитата Сообщение от Vitamin Посмотреть сообщение
      ZXTune отдетектил nagra как версию 1.32 потому что используется команда R--, которой нет в 1.31, соответственно в другом файле все наоборот. Расширение файла в расчет не берется, анализируется только содержимое.
      Можешь еще набрать примеров чтоб подкорректировать эвристику? У меня только несколько десятков таких файлов в выборке.
      Проблемных треков больше не встречалось, пока.