не зазнавайся
ты какого либо авторитета для меня давно не представляешь
я все лишь ткнул ссылки на тему с обсуждениями
тк таблицы Dexus-а не очень убедительны...
Вид для печати
про делители шума мну уверен на 98%
потом дойдут руки ткну тоже осциллографом чтоб убедиться на все 100%
тк лично для меня это достаточно важные тонкости работы Ау-ка
которые можно местами использовать
- - - Добавлено - - -
а так вообще то именно я поднял вопрос о незадокументированости работы нулевых делителей
и поэтому вполне могу смотреть чем все закончилось
Уж не знаю что вы там намеряли, но в ZXTune таки минимальный период равен 1 для тона и для шума.
Upd: восстановил тестовую тулзу AYCLI и нашел причину ошибки, лол. Генератор честно корректирует частоту, а вот обвязка использует удвоение значения регистра из-за другого значения делителя входной частоты (16 против 8). Поэтому делители были 1,2,4,8,16,...,62 вместо 2,2,4,8,16,...,62.
Заодно возникли вопросы к столбцу randomness в табличке: шум в чипе не случаен, а имеет период 131072. Что при тактовой частоте в 1.75МГц и делителе 0/1 дает примерно 1.2с периодичность (131072/(1750000/16) ), весьма заметную на слух.
> Заодно возникли вопросы к столбцу randomness в табличке
Добавил из-за пары эмуляторов, где период шума в разы короче.
Никакие дополнительные интерполяции не использовались. Звуковухой интегрированной в мать с line-in капчурил. А уж что там за алгоритмы я хз.
на реальном чипе на слух этого не слышно
ибо равномерно шумит по всему диапазону
и за 1,2 секунды очень похоже на правду
вот спектрограмма с моего AY
на которой видно период повторения и то что фаза шума не меняется при записи в регистр (вертикальные щелчки\полосы)
https://jpegshare.net/images/da/50/d...fd7e3e2eb0.png
- - - Добавлено - - -
вот это повторяющееся пятно на большем интервале времени
и делители 0,1,2,3,4
https://jpegshare.net/images/07/e1/0...4bc259ddc1.png
на вид фаза шума не меняется
как видим пятно при делителях 1,2,4 в разных октавах что логично
и интервал вроде ~соответствует
видно 1,1,1,2,3
при желании можно было бы посчитать точнее соответствует ли положение пятен
но желания нет тк надо ручками мерять расстояния итд
а их там целых 9 штук :)
Билд 4980:
[+] добавлена поддержка форматов AMS, DSM, MT2, PLM, J2B, FMT, C67 и MO3
[*] используется библиотека libopenmpt для почти всех трекерных форматов
[*] zxtune-android: исправлена статистика по плейлисту
Наконец, сошлось давно выпрашиваемое и запланированное обновление - переход на libopenmpt. Используемая до этого библиотека xmp неоднократно вызывала нарекания на некорректное воспроизведение некоторых форматов. К сожалению, объем переделок в ней был достаточно большим чтобы безболезненно вливать авторские исправления, поэтому было решено сделать ход конем и перейти на следующий уровень.
Также очень много работы было сделано "под капотом": переход на новые компиляторы для Android (это позволило увеличить производительность приложения на старых устройствах ценой увеличения размера пакета), а также переход на новый стандарт C++ (по техническим причинам, это повлекло проблемы со сборкой darwin пакетов, надеюсь будет пофикшено в следующих релизах).
P.S. Сборка была готова еще позавчера, но GooglePlay все никак не мог опубликовать релиз.
Скачать версию для Android
http://qrcoder.ru/code/?http%3A%2F%2..._r4980.apk&4&0
Скачать версию для win64 (MMX/SSE/SSE2)
Скачать версию для linux x86_64
Скачать версию для Ubuntu/Debian x86_64
Скачать версию для Redhat/Suse/Centos/Fedora x86_64
Скачать версию для Raspberry Pi
А почему в версии под win64 такая странная кодировка на странице Компонентов?
https://pic.maxiol.com/thumbs2/16136...0218151814.png
вопрос снят, запустил из архива ))
Непонятно почему так. Скачал браузером хром. Архив попал в Загрузки: C:\Users\myusername\Downloads
Прям оттуда тыкаю на архив открывается оное в WinRAR. Кликаю внутри архива на файле zxtune-qt.exe и получаю то что на скриншоте. В остальном все работает. А если все извлечь из архива там же, то проблем нет. Похоже, WinRAR извлекает в системный temp в винде и что-то идет не так. Ну ладно, это я был не прав.
Билд 4990:
[+] добавлена поддержка формата NCSF
[*] исправлен треск при воспроизведении GSF файлов (GH#2185)
[*] исправлены найденные и сообщенные падения
[*] zxtune-android: улучшено время старта приложения
Добавился еще один поддерживаемый формат в копилку. Важной отличительной особенностью является то, что поддержка этого формата была полностью сделана сторонним разработчиком. Он уже неоднократно проявлял интерес к проекту и делал правки. В частности, правил перевод на китайский язык.
Очень много работы было сделано под капотом. Начиная от чисто технических задач типа унификации стиля кода (для облегчения жизни сторонних разработчиков, раз они начинают появляться) или обновления сборочной системы для Android (теперь на сборку всех пакетов тратится чуть более 3 минут, а было более 20) и заканчивая асинхронной загрузкой ядра, позволившей ускорить процесс старта приложения.
P.S. Сборка была готова еще 25 марта, но выкатка в GooglePlay затянулась аж до выходных.
Скачать версию для Android
http://qrcoder.ru/code/?http%3A%2F%2..._r4990.apk&4&0
Скачать версию для win64 (MMX/SSE/SSE2)
Скачать версию для linux x86_64
Скачать версию для Ubuntu/Debian x86_64
Скачать версию для Redhat/Suse/Centos/Fedora x86_64
Скачать версию для Raspberry Pi
При проигрывание через Брайзер треков ZX, мы имеем три категории:
* Авторы
* Пати
* Топ треков
Можно для пунктов "Авторы" и "Пати" добавить режим проигрывания случайной мелодии? Или хотя бы режим - проигрывать всё подряд. А то когда музыка заканчивается в текущем каталоге, приходиться в ручную выбирать следующий. А это как правило очень не удобно делать, так как телефон лежит далеко во внутреннем кармане.
или я что-то упустил, или одно из двух. треки в трдшках не ищутся?
блин :)
в планах научить нет?
TRD формат довольно хреновый в плане детекта - на десктопе это компенсируется сканером, который ищет в сырых данных. Но на мобиле сканер нельзя включать - он очень ресурсоемкий.
P.S. Спектрумовские форматы - это примерно 2% от общего времени прослушивания - не стоит портить жизнь всем:)
Билд 5000:
[+] добавлена поддержка форматов Digital Symphony (DSYM) и Symphonie (SYMMOD)
[+] добавлена поддержка треков формата FMADPCM в FSB контейнерах
[*] обновлена библиотека libmpt
[*] улучшен ресемплер
[+] zxtune-android: добавлен перевод на португальский
[*] zxtune-android: переработана структура настроек
[*] zxtune-android: улучшено использование памяти и время старта приложения
[*] zxtune-android: исправлены найденные и сообщенные проблемы
Очередной мажорный (по количеству накопившихся изменений) релиз. С обновлением библиотеки ModPlug исправились некоторые проблемы с воспроизведением, а также добавилась поддержка двух новых форматов. Очень много изменений технического плана "под капотом". Часть нововведений в версии для Android (переработка структуры настроек и оптимизация времени старта) уже попала в недокументированные hotfix версии.
Скачать версию для Android
http://api.qrserver.com/v1/create-qr...=100x100&ecc=L
Скачать версию для win64 (MMX/SSE/SSE2)
Скачать версию для linux x86_64
Скачать версию для Ubuntu/Debian x86_64
Скачать версию для Redhat/Suse/Centos/Fedora x86_64
Скачать версию для Raspberry Pi
Наконец-то в арче теперь установка перестала выдавать ошибку.
Всё ставится. Вес 124мб qt4-bin и zxtune-bin.
Где-то у меня в папочке есть бинарник 24Мб его и пользую. Причем сам плеер попросил скачаться заново.
Кстати, использую его для конвертации бипера .ay в wav.
Трещит и всё шумит. В эмуляторах же играет нормально. (фильтры?)
Не знаю как на других платформах, но под виндой 5000я версия по качеству генерируемого звука YM/AY по рейтингам вышла наверх: частоты 0/1 поправлены, и передискретизация теперь куда качественнее.
Единственное, в примерах PSM трак - закосяченный (3:19). Предлагаю перезабрать исходник с zxart.
Скорее эффект "смотрю не туда" :)
Да, гармоники остались теми же, на троечке уже слышны, передискретизация не настолько жёсткая как в AY-Emul. Но в любом случае, 0/1 уже достаточно чтобы залететь наверх. "Идеальная" передискретизация помимо железных чипов мало где есть. Тут главное что делители 0/1 не создают никаких гармоник вообще.
И что изменилось, что заметил, это low pass. Т.е. сейчас нет среза верхов выше 19КГц, что было прежде. Поэтому подумал про улучшенную децимацию.
Наконец-то благодаря @threedeyes zxtune появился и в Haiku OS! Раньше из-за qt4 были проблемы со сборкой, но с qt5 все собралось, вывод звука идет через openal.
https://twitter.com/ZXTune/status/1460548062821105670
Страница в "магазине" приложений Haiku: https://depot.haiku-os.org/zxtune
Посмотрел патч - можно его уменьшить изрядно:)
Могу делать нативные сборки, но нужна помощь и ответы на следующие вопросы:
0) наличие кросс-тулчейна для linux (есть что-то тут, но детально не смотрел).
1) опции для статической сборки qt
2) кросс-тулзы и опции для пакетирования
Если что, в make/docker/build есть рецепты, можно там подсмотреть.
У меня сейчас завал по другим фронтам работы, сам пока не могу взяться.
Изначально я хотел добавить поддержку сборки под отдельную платформу - haiku, но это оказалось значительно более громоздко и я просто грубо захачил linux-сборку выкинув и закомментировав ненужное.
Я думаю это не требуется т.к. у нас сборка пакетов осуществляется в автоматическом режиме на билдерах при любых изменениях в патче или рецепте сборки.
кросс компиляция возможна под haiku, но зачем?
политика наших портов не рекомендует статические сборки, тем более не вижу в них смысла т.к. все пакеты устанавливаются из централизованного репозитория в котором уже присутствуют все необходимые зависимости.
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.
Ну раз берешь на себя полностью сопровождение, то в добрый путь. При сборке на моей стороне я могу, по крайней мере, отловить когда она ломается.
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)
| ^~~~~
Vitamin, есть небольшая просьба - а можешь в следующей сборке рядом с иконкой ЗАЦИКЛИТЬ поместить иконку СЛУЧАЙЕЫЙ ПОРЯДОК ? Просто постоянно слушаю твой плеер, в нём плейлистом закинута вся музыка что у меня нашлась (только AY что то около 20000 треков без повторов). Включено воспроизведение в случайном порядке, когда попадается какой-нить прикольный трек хочется послушать и другие треки автора, а в меню лазить и клацать не очень удобно. Разместить, например, между ЗАЦИКЛИТЬ и выбором YM. Заранее благодарен.
Билд 5010:
[+] добавлена поддержка более 150 форматов с помощью библиотеки vgmstream
[+] включена эмуляция плагинов в OpenMPT
[*] различные оптимизации в ядре по ускорению и улучшению использования памяти
[*] zxtune-qt: переход на Qt5
[*] zxtune-android: переработано получение списка локальных хранилищ
[*] zxtune-android: поддержка Android 11
[*] zxtune-android: добавлены уведомления в браузере о возможных проблемах
Пожалуй, один из самых сложных релизов. Долго и упорно велась работа одновременно по нескольким направлениям.
Переход на kotlin в версии для Android. Как и (самое главное) зачем - надеюсь рассказать в отдельной статье.
Переход на Qt5 в десктопных версиях. Часть работы уже была сделана энтузиастом в рамках порта под Haiku OS, основные трудозатраты пришлись на настройку сборки непосредственно библиотеки.
Интеграция библиотеки vgmstream. Для тех кто не знает, эта библиотека предназначена для воспроизведения огромного количества потоковых форматов аудио. В силу разницы в подходах и модели с zxtune, внедрение получилось частичным (не все форматы) и делалось буквально шаг за шагом по одному формату, проверяя работоспособность на больших объемах тестовых данных. Пришлось буквально поселиться в discord чате разработчиков - ребята очень доброжелательные, быстро реагируют на вопросы и делают правки при необходимости.
Поддержка Android 11. В ноябре 2021 в очередной раз поднялись требования GooglePlay на поддержку актуальных версий ОС. А в 11 версии как раз на полную включили анонсированные ранее ограничения касательно доступа к локальным хранилищам устройства (если вкратце - то никуда нельзя без особого на то разрешения). Попытка использвать имеющуюся лазейку в виде разрешения на полный доступ не получила одобрения от модераторов, поэтому еще почти три недели ушли на поддержку новой схемы. Документация там достаточно куцая и даже местами брехливая, поэтому многое делалось на ощупь - просьба сообщать о возможных проблемах.
Бонусом были сделаны всякие мелкие доработки и оптимизации.
Скачать версию для Android
http://api.qrserver.com/v1/create-qr...=100x100&ecc=L
Скачать версию для win64 (MMX/SSE/SSE2)
Скачать версию для linux x86_64
Скачать версию для Ubuntu/Debian x86_64
Скачать версию для Redhat/Suse/Centos/Fedora x86_64
Скачать версию для Raspberry Pi
Хочу обратить внимание автора на работу плейлиста для файлов .sid. Сами файлы проигрываются корректно, но собрать из них плейлист практически невозможно. Некоторые просто не добавляются, а некоторые добавляются сразу по несколько одинаковых записей.
PS Плейлист появляется после после рестарта программы, но не всегда корректный.
PPS Все замечания для виндовой версии.
Вот тут, например, два файла. Включаю один на воспроизведение, потом пытаюсь втрой мышом затащить в плейлист, а он не появляется там. Через файловое меню - тоже.
Если программу поперезапускать, то список воспроизведения появится. Но так же не должно быть.
Вложение 77201
Баг с одинаковыми названиями в списке довольно редкий, не смог повторить. Но их в плейлисте одинаковых было не менее 50 штук, у меня и сидов столько нет.
Бывает такое иногда - можно просто поменять размер окна. Плейлист заново перерисуется.
sid файлы могут содержать множество треков. А метаинформация (автор/название) одно на всех, поэтому они и выглядят одинаково, но полный путь у них будет разный.
@Vitamin спасибо за апдейт, звук в haiku os огонь, такой же как во freebsd, очень чистый и качественный!