Важная информация
  • Вышла очередная версия 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 Посмотреть оригинальное сообщение

    Комментарии 396 Комментарии
    1. Аватар для Vitamin
      Vitamin -
      Цитата Сообщение от scl^mc Посмотреть сообщение
      в планах научить нет?
      TRD формат довольно хреновый в плане детекта - на десктопе это компенсируется сканером, который ищет в сырых данных. Но на мобиле сканер нельзя включать - он очень ресурсоемкий.
      P.S. Спектрумовские форматы - это примерно 2% от общего времени прослушивания - не стоит портить жизнь всем
    1. Аватар для Vitamin
      Vitamin -
      Билд 5000:

      [+] добавлена поддержка форматов Digital Symphony (DSYM) и Symphonie (SYMMOD)
      [+] добавлена поддержка треков формата FMADPCM в FSB контейнерах
      [*] обновлена библиотека libmpt
      [*] улучшен ресемплер
      [+] zxtune-android: добавлен перевод на португальский
      [*] zxtune-android: переработана структура настроек
      [*] zxtune-android: улучшено использование памяти и время старта приложения
      [*] zxtune-android: исправлены найденные и сообщенные проблемы

      Очередной мажорный (по количеству накопившихся изменений) релиз. С обновлением библиотеки ModPlug исправились некоторые проблемы с воспроизведением, а также добавилась поддержка двух новых форматов. Очень много изменений технического плана "под капотом". Часть нововведений в версии для Android (переработка структуры настроек и оптимизация времени старта) уже попала в недокументированные hotfix версии.

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

      Скачать версию для win64 (MMX/SSE/SSE2)
      Скачать версию для linux x86_64
      Скачать версию для Ubuntu/Debian x86_64
      Скачать версию для Redhat/Suse/Centos/Fedora x86_64
      Скачать версию для Raspberry Pi
    1. Аватар для AER
      AER -
      Наконец-то в арче теперь установка перестала выдавать ошибку.
      Всё ставится. Вес 124мб qt4-bin и zxtune-bin.
      Где-то у меня в папочке есть бинарник 24Мб его и пользую. Причем сам плеер попросил скачаться заново.
      Кстати, использую его для конвертации бипера .ay в wav.
      Трещит и всё шумит. В эмуляторах же играет нормально. (фильтры?)
    1. Аватар для Vitamin
      Vitamin -
      Цитата Сообщение от AER Посмотреть сообщение
      Наконец-то в арче теперь установка перестала выдавать ошибку.
      Всё ставится. Вес 124мб qt4-bin и zxtune-bin.
      Это в другое окошко, к майнтейнерам пакета для арча.

      Цитата Сообщение от AER Посмотреть сообщение
      Где-то у меня в папочке есть бинарник 24Мб его и пользую. Причем сам плеер попросил скачаться заново.
      Ожидаемо

      Цитата Сообщение от AER Посмотреть сообщение
      Трещит и всё шумит.
      По фото сложно ставить диагноз, могу разве что посоветовать включить интерполяцию в режим "качество" для AY/YM.
    1. Аватар для Dexus
      Dexus -
      Не знаю как на других платформах, но под виндой 5000я версия по качеству генерируемого звука YM/AY по рейтингам вышла наверх: частоты 0/1 поправлены, и передискретизация теперь куда качественнее.

      Единственное, в примерах PSM трак - закосяченный (3:19). Предлагаю перезабрать исходник с zxart.
    1. Аватар для Vitamin
      Vitamin -
      Цитата Сообщение от Dexus Посмотреть сообщение
      частоты 0/1 поправлены, и передискретизация теперь куда качественнее.
      0/1 было поправлено, а вот в передискретизации ничего не менялось. Эффект ТЛЗ?
    1. Аватар для Dexus
      Dexus -
      Цитата Сообщение от Vitamin Посмотреть сообщение
      Эффект ТЛЗ?
      Скорее эффект "смотрю не туда"
      Да, гармоники остались теми же, на троечке уже слышны, передискретизация не настолько жёсткая как в AY-Emul. Но в любом случае, 0/1 уже достаточно чтобы залететь наверх. "Идеальная" передискретизация помимо железных чипов мало где есть. Тут главное что делители 0/1 не создают никаких гармоник вообще.

      И что изменилось, что заметил, это low pass. Т.е. сейчас нет среза верхов выше 19КГц, что было прежде. Поэтому подумал про улучшенную децимацию.
    1. Аватар для ^m00h^
      ^m00h^ -
      Наконец-то благодаря @threedeyes zxtune появился и в Haiku OS! Раньше из-за qt4 были проблемы со сборкой, но с qt5 все собралось, вывод звука идет через openal.

      https://twitter.com/ZXTune/status/1460548062821105670
    1. Аватар для 3dEyes
      3dEyes -
      Цитата Сообщение от ^m00h^ Посмотреть сообщение
      Наконец-то благодаря @threedeyes zxtune появился и в Haiku OS! Раньше из-за qt4 были проблемы со сборкой, но с qt5 все собралось, вывод звука идет через openal.

      https://twitter.com/ZXTune/status/1460548062821105670
      Страница в "магазине" приложений Haiku: https://depot.haiku-os.org/zxtune
    1. Аватар для Vitamin
      Vitamin -
      Цитата Сообщение от 3dEyes Посмотреть сообщение
      Страница в "магазине" приложений Haiku: https://depot.haiku-os.org/zxtune
      Посмотрел патч - можно его уменьшить изрядно

      Могу делать нативные сборки, но нужна помощь и ответы на следующие вопросы:
      0) наличие кросс-тулчейна для linux (есть что-то тут, но детально не смотрел).
      1) опции для статической сборки qt
      2) кросс-тулзы и опции для пакетирования

      Если что, в make/docker/build есть рецепты, можно там подсмотреть.

      У меня сейчас завал по другим фронтам работы, сам пока не могу взяться.
    1. Аватар для 3dEyes
      3dEyes -
      Цитата Сообщение от Vitamin Посмотреть сообщение
      Посмотрел патч - можно его уменьшить изрядно
      Изначально я хотел добавить поддержку сборки под отдельную платформу - haiku, но это оказалось значительно более громоздко и я просто грубо захачил linux-сборку выкинув и закомментировав ненужное.


      Цитата Сообщение от Vitamin Посмотреть сообщение
      Могу делать нативные сборки, но нужна помощь и ответы на следующие вопросы:
      Я думаю это не требуется т.к. у нас сборка пакетов осуществляется в автоматическом режиме на билдерах при любых изменениях в патче или рецепте сборки.


      Цитата Сообщение от Vitamin Посмотреть сообщение
      наличие кросс-тулчейна для linux (есть что-то тут, но детально не смотрел).
      кросс компиляция возможна под haiku, но зачем?




      Цитата Сообщение от Vitamin Посмотреть сообщение
      опции для статической сборки qt
      политика наших портов не рекомендует статические сборки, тем более не вижу в них смысла т.к. все пакеты устанавливаются из централизованного репозитория в котором уже присутствуют все необходимые зависимости.
    1. Аватар для Vitamin
      Vitamin -
      Цитата Сообщение от 3dEyes Посмотреть сообщение
      Изначально я хотел добавить поддержку сборки под отдельную платформу - haiku, но это оказалось значительно более громоздко и я просто грубо захачил linux-сборку выкинув и закомментировав ненужное.
      1) Во всяких 3rdparty ничего править не нужно - их скрипты не используются
      2) Не уверен насчет фикса 3rdparty/unrar/os.hpp
      3) Исключать и удалять всякие sound_* из zxtune-qt не стоит. Сэкономил 1кб кода и потратил 1млн нервных клеток на сопровождение
      4) Аналогично с src/sound/backends - если вывод недоступен, будет простая заглушка
      5) Добавляешь make/platforms/haiku.mak на основе linux.mak, выкинув из него лишнее, возможно придется еще добавить что-то в make/environment.mak
      6) В make/features.mak пишешь свою секцию с нужными фичами
      7) В src/platform/version/src/os.h добавляешь нужную ветку
      8) Иконки распаковывать в apps/zxtune-qt/res/theme_haiku и собирать zxtune-qt с ключом gui_theme=haiku

      Итого в коде будет один-единственный #ifdef в openal_api.h (надо подумать как его убрать, ибо это сгенеренный файл)

      А что за проблема была в raw_supp.cpp? Он в 32-битных сборках у меня не участвует.

      Можно завести PR в форке, я проконсультирую по нему и можно будет что-то затянуть в upstream.


      Цитата Сообщение от 3dEyes Посмотреть сообщение
      политика наших портов не рекомендует статические сборки, тем более не вижу в них смысла т.к. все пакеты устанавливаются из централизованного репозитория в котором уже присутствуют все необходимые зависимости.
      Ну раз берешь на себя полностью сопровождение, то в добрый путь. При сборке на моей стороне я могу, по крайней мере, отловить когда она ломается.
    1. Аватар для 3dEyes
      3dEyes -
      Цитата Сообщение от Vitamin Посмотреть сообщение
      А что за проблема была в raw_supp.cpp? Он в 32-битных сборках у меня не участвует.
      В темплейте есть реализации только для uint8_t, uint16_t и uint32_t, а в raw_supp.cpp ему скармливают <std::size_t> - и если в системе size_t определён несколько иначе, то компилятор в панике будет орать
    1. Аватар для Vitamin
      Vitamin -
      Цитата Сообщение от 3dEyes Посмотреть сообщение
      В темплейте есть реализации только для uint8_t, uint16_t и uint32_t, а в raw_supp.cpp ему скармливают <std::size_t> - и если в системе size_t определён несколько иначе, то компилятор в панике будет орать
      Для ScaleFunctor есть специализация для uint64_t, для остальных используется общий шаблон. А функция Scale спецализирована для всех целочисленных типов. Что там за std::size_t такой?
    1. Аватар для 3dEyes
      3dEyes -
      Цитата Сообщение от Vitamin Посмотреть сообщение
      Для ScaleFunctor есть специализация для uint64_t, для остальных используется общий шаблон. А функция Scale спецализирована для всех целочисленных типов. Что там за std::size_t такой?
      long unsigned int

      Вот лог сборки на билдере до фикса: https://build.haiku-os.org/buildmast...ilds/77060.log

      Код:
      /sources/zxtune-d1e9526f9ca945eff79f09087b4ed75e58f050e7/src/core/plugins/archives/raw_supp.cpp:335:39:   required from here
      ../../../../src/math/scale.h:81:19: error: call of overloaded 'Scale(long unsigned int&, const long unsigned int&, const long unsigned int&)' is ambiguous
        81 |       return Scale(value, InRange, OutRange);
           |              ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
      ../../../../src/math/scale.h:21:18: note: candidate: 'uint8_t Math::Scale(uint8_t, uint8_t, uint8_t)'
        21 |   inline uint8_t Scale(uint8_t value, uint8_t inRange, uint8_t outRange)
           |                  ^~~~~
      ../../../../src/math/scale.h:26:19: note: candidate: 'uint16_t Math::Scale(uint16_t, uint16_t, uint16_t)'
        26 |   inline uint16_t Scale(uint16_t value, uint16_t inRange, uint16_t outRange)
           |                   ^~~~~
      ../../../../src/math/scale.h:31:19: note: candidate: 'uint32_t Math::Scale(uint32_t, uint32_t, uint32_t)'
        31 |   inline uint32_t Scale(uint32_t value, uint32_t inRange, uint32_t outRange)
           |                   ^~~~~
      ../../../../src/math/scale.h:48:19: note: candidate: 'uint64_t Math::Scale(uint64_t, uint64_t, uint64_t)'
        48 |   inline uint64_t Scale(uint64_t value, uint64_t inRange, uint64_t outRange)
           |                   ^~~~~
    1. Аватар для Vitamin
      Vitamin -
      Цитата Сообщение от 3dEyes Посмотреть сообщение
      long unsigned int

      Вот лог сборки на билдере до фикса: https://build.haiku-os.org/buildmast...ilds/77060.log
      Фигня какая-то. Этот кейс должен покрываться либо uint32_t либо uint64_t.