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

    Комментарии 588 Комментарии
    1. Аватар для NEO SPECTRUMAN
      NEO SPECTRUMAN -
      Цитата Сообщение от Vitamin Посмотреть сообщение
      Зависит от. Например,
      ну до я забыл что у тебя там намешаны и плейстейшены итд итп
      для которых и правда возможно выигрыш будет

      надо будет как нибудь проверить
      последнюю 32 бит версию
    1. Аватар для Vitamin
      Vitamin -
      Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
      ну до я забыл что у тебя там намешаны и плейстейшены итд итп
      Внезапно, да?

      Какие еще вопросы есть? Я с радостью отвечу (без иронии). А вот за некомпетентные наезды жду ответа уже от тебя.
    1. Аватар для NEO SPECTRUMAN
      NEO SPECTRUMAN -
      Цитата Сообщение от Vitamin Посмотреть сообщение
      А вот за некомпетентные наезды

      то что хорошо для твоего корпоративного сегмента
      с разделением быдло настроек и прав для каждого хомяка
      с мерзкими установщиками и быдло офисами которые не дают себе поставить больше чем в одном экземпляре
      так же как и запустить

      успешно мешает одному юзеру и совершенно трижды ему нафик не нужно

      а проблемы у *****реестра всегда одни и те же

      слетевшие настройки за которыми нужно лезть в реестр
      и искать 100500 веток куда нагадила софтварь

      слетание настроек у новой версии
      после запуска старой

      не переносимость настроек и невозможность иметь разные версии программы с разными настройками

      итд...





      ну вот к примеру у меня совершенно недавно похерились настройки у HxD
      (стал дико тормозить и отжирать дофига оперативки по моему)
      как оказалось он хранит в конфиге поисковые запросы
      и он туда запер 24 метра копипасты

      полечилось элементарно
      открыл архив и перетянул старый конфиг поверх
      все

      что было бы если оно хранило это ***** в реестре?
      и сколько бы пришлось плясать с бубном?



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


      залез в зхтюн
      нашел какой то конфиг
      и чот засомневался и зачеркнул...
    1. Аватар для Vitamin
      Vitamin -
      Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
      залез в зхтюн
      нашел какой то конфиг
      и чот засомневался и зачеркнул...
      Упрощу задачу. Найдешь в моем коде ссылки на реестр (всякие там HKEY_CURRENT_USER и прочая) - я мудак. Не найдешь - публично признаешься что обосрался. И больше не суешься со своим "компетентным" мнением по поводу "корпоративности" или "дрочения на 64 бита".
    1. Аватар для NEO SPECTRUMAN
      NEO SPECTRUMAN -
      Цитата Сообщение от Vitamin Посмотреть сообщение
      публично признаешься
      склероз у всех бывает

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

      публично признаюсь что с кем то витамина перепутол

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

      Цитата Сообщение от Vitamin Посмотреть сообщение
      Упрощу задачу. Найдешь в моем коде ссылки на реестр (всякие там HKEY_CURRENT_USER и прочая)
      с другой стороны
      октрываю регэдит вбиваю зхтюн
      и ты не поверишь что я вижу

      ладно предположим что осталось от предыдущей версии
      или около того для чего та надо

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

      будет настроение
      скачаю последнюю версию
      натравлю regmon сверху


      да и плохо всё это коррелирует с таким ответом
      https://zx-pk.ru/threads/10340-zxtun...=1#post1069629

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

      Цитата Сообщение от Vitamin Посмотреть сообщение
      Найдешь в моем коде
      ну идо
      судя по подчеркиванию
      в случай чего ты включишь отмазку
      а это не мой кода
      все так и было

      и может даже будешь прав
    1. Аватар для Vitamin
      Vitamin -
      Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
      октрываю регэдит вбиваю зхтюн
      и ты не поверишь что я вижу

      ладно предположим что осталось от предыдущей версии
      Нет, это актуальные настройки zxtune-qt.


      Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
      в случай чего ты включишь отмазку
      а это не мой кода
      все так и было

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

      Ты же, брызгая слюной, заявляешь что я вот прям целенаправленно использую реестр и "молюсь на него".
    1. Аватар для Vitamin
      Vitamin -
      Цитата Сообщение от Gutten Посмотреть сообщение
      Да, открывается и в IE, и в Я.Браузере. Хотя открывается по разному, но ошибки нет.
      Надо проверить, нет ли где в системе конфликтующей libcurl.dll ибо у меня в винде все отрабатывает нормально.
    1. Аватар для Gutten
      Gutten -
      Конфликтующих не нашёл. Заменил libcurl.dll на такой же от Notepaf++, причём он оказался больше по размеру. Проверка на обновления теперь ошибки не показывает.
    1. Аватар для Vitamin
      Vitamin -
      Билд 4960:

      [+] добавлена поддержка формата S98
      [+] zxtune-android: добавлен архив треков формата s98 в каталог joshw.info
      [*] zxtune-android: исправлены найденные и сообщенные проблемы

      Небольшой релиз, приносящий поддержку популярного в Японии формата файлов с музыкой японских же игр. Также был добавлен соответствующий подкаталог в кучку архивов joshw.info.

      https://play.google.com/store/apps/d...?id=app.zxtune

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

      [+] добавлена настройка увеличения/затухания громкости и предусиления
      [*] переделана обработка длительностей модулей и позиции воспроизведения
      [*] zxtune-android: исправлено меню выделения в браузере
      [*] zxtune-android: исправлена навигация по сохраненным плейлистам
      [*] zxtune-android: исправлено потребление памяти во время сканирования

      Сошелся, пожалуй, самый большой рефакторинг за всю историю проекта. Была целиком и полностью переработана работа со временем в модулях.
      Корни проблемы уходят во времена начала проекта, когда единственными поддерживаемыми форматами были ориентированные на ZX Spectrum, а о других даже не помышлялось. Длительности треков и позиции воспроизведения измерялись во фреймах, а для перевода в абсолютные времена нужно было их умножать на длительность этого самого фрейма (20мс обычно). Так уж сложилось, что в общей массе форматы вписывались в эту модель. И так продолжалось достаточно долго чтобы накопилась довольно большая масса кода, препятствующая переделкам. А проблемы множились - поддержка обычных звуковых форматов (mp3/ogg/flac/etc) с жутким скрипом втискивалась в модель, привнося и преумножая неточности. И вот, спустя десяток подходов к снаряду, эту боль удалось победить!
      Также были поправлены проблемы, о которых даже не подозревалось. Например, возможная некорректная работа со временем для it/xm/mod/etc форматов - таки переменный bpm имеет место быть.
      Заодно был переработан звуковой конвейер, что позволило все же нормально реализовать давно выпрашиваемый fadein/fadeout и бонусом preamp.
      Поскольку переделки достаточно масштабные, что-то могло сломаться - жалобы принимаются

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

      Скачать версию для Mac OS X 64-bit
      Скачать версию для win64 (MMX/SSE/SSE2)
      Скачать версию для linux x86_64
      Скачать версию для Ubuntu/Debian x86_64
      Скачать версию для Redhat/Suse/Centos/Fedora x86_64
      Скачать версию для Raspberry Pi
    1. Аватар для Dexus
      Dexus -
      Vitamin, привет. Нет желания поправить делители шума 0/1 на АУ/УМ?
      https://docs.google.com/spreadsheets...tmIwQJtMQ/edit
    1. Аватар для Vitamin
      Vitamin -
      Цитата Сообщение от Dexus Посмотреть сообщение
      Vitamin, привет. Нет желания поправить делители шума 0/1 на АУ/УМ?
      https://docs.google.com/spreadsheets...tmIwQJtMQ/edit
      Интересная табличка Непонятно только почему при делителе 2 должно быть такое же поведение, как и при 0/1 (с ними все понятно).
    1. Аватар для NEO SPECTRUMAN
      NEO SPECTRUMAN -
      Цитата Сообщение от Vitamin Посмотреть сообщение
      Интересная табличка
      табличка не интересная
      в ней куча неизвестно чего и непонятно зачем...

      вот тема в которой это мусолили с картинками
      https://zx-pk.ru/threads/32191-emuly...=1#post1079503
      и пришли к выводу что так и есть

      про тон\огибающую железно убедились (для AY) тут
      https://zx-pk.ru/threads/32191-emuly...=1#post1079737
    1. Аватар для Dexus
      Dexus -
      Vitamin, при делителе 2 для тона должна быть тишина, как и 1 и 0. То есть не должно быть никаких гармонических артефактов от децимации+фильтрации частот выше найквиста.

      При записи реального чипа там по делитель 3 идет тишина если записывать на 44100 (на 4 уже еле слышимый писк есть). Столбец M говорит лишь о том, что делитель 2 хреново фильтруется — писк с частотой 55к при дискретизации 44кгц должен быть абсолютно нулевым, как и 110к (в общем, как и 27к, при делителе 3). Но если фильтрация так себе, артефакты будут оставаться, и будут слышны. Столбец N указывает на каком делителе начинается ненулевая амплитуда (5 значит делитель 4, т.к. считается с 0).
      Там есть ссылка на страницу с записями во flac. Сравни сам. Внизу таблицы все подписано.

      А вот для шума звук при делителях 0 и 1 должен совпадать (0 как 1). 2 для шума естественно должен быть другим. У тебя пока делители 0 и 1 дают разные шумы (чего быть не должно).

      Нео на своей волне, и не вникал, не обращай внимания.
    1. Аватар для NEO SPECTRUMAN
      NEO SPECTRUMAN -
      Цитата Сообщение от Dexus Посмотреть сообщение
      Нео на своей волне, и не вникал, не обращай внимания.
      а теперь ясно
      так надо писать 0...3 inaudible on 44K
      и тогда будет всем ясно

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

      хотя не правильно
      Ay не только на частоте 1,75МГц

      правлиьнa написать freq 22K+ inaudible
    1. Аватар для Vitamin
      Vitamin -
      Цитата Сообщение от Dexus Посмотреть сообщение
      Vitamin, при делителе 2 для тона должна быть тишина, как и 1 и 0. То есть не должно быть никаких гармонических артефактов от децимации+фильтрации частот выше найквиста.
      Лучше, если мухи - отдельно, котлеты - отдельно.
      Сваливать в кучу логику работы чипа (где делители 0 и 1 - действительно может быть одно и то же) и работу фильтра (где делитель 2 - "то же самое, что и 0 или 1 потому что один хрен не слышно") - плохая идея. Ты в каком режиме проводил тестирование ZXTune?

      Для таких вот тонкостей нужно не аудиозапись смотреть, а выхлоп осциллографа или частотометра.
    1. Аватар для Dexus
      Dexus -
      > Ты в каком режиме проводил тестирование ZXTune?
      В режиме записи звука на 44100 при воспроизведении .ay
      Никто не мешает сделать самому.
      Записи с реала при воспроизведении того же доступны для сравнения (и на 44100 и 192000).
      > где делители 0 и 1 - действительно может быть одно и то же
      Не «может быть» а по факту одно и то же.
      > где делитель 2 - "то же самое, что и 0 или 1 потому что один хрен не слышно
      В итоговой картине при записи на 44100 или 48000 они действительно дают одинаковый результат, ультразвуковой меандр с частотой выше найквиста не должен двигать диффузор динамика, т.е. должна быть абсолютная тишина. Если идет рендеринг на частоту дискретизации в 192000 гц, то картина конечно иная (из-за другой частоты найквиста). Если фильтр при децимации не обеспечивает такого результата, значит это не лучший фильтр. В крайнем случае можно частоты с такими делителями особым образом процессить, чтобы свиста отраженных гармоник вообще не было. И 0/1 и 2 должны давать одинаковую итоговую волну на 44100 и на 48000.
      Эти делители используются чтобы сделать звук огибающей с половинной амплитудой. Могут использовать любые «неслышимые». И слышать фоновый свист на них не очень здорово.

      Но вообще это мелочи. Речь изначально всего лишь о шуме с 0/1.
    1. Аватар для Vitamin
      Vitamin -
      Цитата Сообщение от Dexus Посмотреть сообщение
      В режиме записи звука на 44100 при воспроизведении .ay
      Никто не мешает сделать самому.
      Какой режим интерполяции?

      Цитата Сообщение от Dexus Посмотреть сообщение
      Если фильтр при децимации не обеспечивает такого результата, значит это не лучший фильтр
      0) я не знаю какой ты фильтр используешь и используешь ли его вообще (см. предыдущий вопрос)
      1) я не особо копенгаген в ЦОС, поэтому реализовал простейший IIR фильтр для режима с оптимизацией по качеству

      Цитата Сообщение от Dexus Посмотреть сообщение
      В крайнем случае можно частоты с такими делителями особым образом процессить, чтобы свиста отраженных гармоник вообще не было
      Нет

      Резюмируя: чтобы убедиться, что делители 0/1 дают одинаковый результат нужна ссылка на упоминание об этом в даташите (я не нашел) либо осциллограммы.
    1. Аватар для NEO SPECTRUMAN
      NEO SPECTRUMAN -
      Цитата Сообщение от Vitamin Посмотреть сообщение
      Резюмируя: чтобы убедиться, что делители 0/1 дают одинаковый результат нужна ссылка на упоминание об этом в даташите (я не нашел) либо осциллограммы.
      блджд
      смотри на спектрограммы записанные на 192КГц на которых это очевидно
      смотри даташит на 8930 где это упоминается в описании режиме совместимости с 8910
      (там собственно официально описан и алгоритм генерации шума 8910-го)
      ссылки я привел выше

      в придачу для тона и огибающей делители 0\1 дают одинаковый результат
      почему это должно отличаться от шума? (конечно вероятность есть но все факты сейчас против)

      так же обращаю твое внимание что например в вортексе делитель 0 не ставятся вообще
      выкидывать еще одну ступеньку, которую можно использовать, было бы крайне не разумно...


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

      Цитата Сообщение от Vitamin Посмотреть сообщение
      Резюмируя: чтобы убедиться, что делители 0/1 дают одинаковый результат нужна ссылка на упоминание об этом в даташите (я не нашел) либо осциллограммы.
      интересно а от куда ТЫ убедился что делители 0\1 дают разный результат?
      и почему тебе нужно доказывать обратное?
    1. Аватар для Vitamin
      Vitamin -
      Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
      смотри на спектрограммы записанные на 192КГц на которых это очевидно
      Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
      интересно а от куда ТЫ убедился что делители 0\1 дают разный результат?
      и почему тебе нужно доказывать обратное?
      Ты попутался похоже. Это ТЕБЕ, судя по всему, надо чтобы эмуляция работала "как надо" в каком-то пограничном случае, который за 10+ лет существования ZXTune хрен кому впился и касается маленького кусочка функционала.
      Хочешь что-то изменить - ну напряги булки, приложи усилия, покажи, что тебе это нужно. Вплоть до pull request'a.

      Да, вот такой я ленивый мудак, привыкайте.