То-то и оно. И мне совершенно непонятно категоричное нежелание делиться ни исходниками, ни хотя бы подробным описанием алгоритмов воспроизведения.
Вид для печати
Билд 2466:
+ высококачественный интерполятор для SAA
+ настройка частоты семплов для DAC модулей
* фиксы воспроизведения TF0/TFE
* фиксы воспроизведения DST
* ускорен звуковой конвеер
* ускорен рендерер AYM
* ускорен рендерер DAC
* ускорена обработка параметров, меняющихся в процессе воспроизведения
Скачать версию для win32
Скачать версию для win64
Проведена большая работа по устранению узких мест в производительности. Как устранение некоторых найденных пессимизаций, так и внесение оптимизаций.
Лучше всего скажут конкретные цифры:)
Рендеринг AY/YM в разных режимах интерполяции (отсутствует/быстро/качественно)
Рендеринг DigitalStudio без/с интерполяциейКод:TurboSound
Windows x86_64 Mingw x86_64
b2416 x138/x130/x52 x180/x173/x67
b2466 x358/x331/x80 x418/x376/x96
PT3
Windows x86_64 Mingw x86_64
b2416 x269/x257/x100 x379/x349/x138
b2466 x744/x684/x160 x864/x776/x190
Цифры показывают относительную скорость генерации звукового контента (т.е. готового к воспроизведению) на машине с 2.5ГГц процессором.Код:Windows x86_64 Mingw x86_64
b2416 x186/x157 x242/x167
b2466 x603/x495 x944/x706
В частности, можно посчитать, что для минимального рендеринга AY (с интерпретацией трека) нужно примерно 3 "условных" МГц, для качественного- около 15.
Ну и также видно, насколько сборки mingw быстрее сборок от MSVS.
Также благодаря интересу Speccyalist и Klim/OHG исправлено воспроизведение TF0/TFE и DST чиптюнов.
С некоторым опозданием, но представляю. Далеко не все еще доделано, но пользоваться уже можно.
ZXTune for Android. Beta version.
https://dl.dropboxusercontent.com/u/...phone_main.png https://dl.dropboxusercontent.com/u/...ne_browser.png
https://dl.dropboxusercontent.com/u/...ablet_main.png
Что уже есть:
+ воспроизведение всех поддерживаемых zxtune форматов треков (31 штука на данный момент)
+ плейлист (клик- воспроизведение, длинный клик- удаление)
+ файловый браузер (доступен по свайпу вправо на маленьких экранах, клик на файле- воспроизведение, длинный клик- добавление в плейлист)
+ перемотка
+ приостанов воспроизведения на входящем звонке
+ поддержка Android начиная с версии 2.2 (api v8)
+ поддержка x86, ARM и ARMv7 платформ (кому надо- могу добавить MIPS)
+ некоторая адаптация под экраны разного разрешения и ориентации (у меня всего 4 тестовых окружения, так что жду репортов о невидимых иконках)
+ единая версия для телефонов и планшетов
Чего еще нет:
- настроек
- анализатора архивов и просто поиска в файлах (в связи с этим не будут играться модули с плеером и многотрековые .ay файлы)
- воспроизведения в случайном порядке
- зацикленного воспроизведения (как плейлиста, так и отдельного модуля)
Потребление процессора- примерно 18МГц для TurboSound (интерполяция с оптимизацией по скорости) и примерно 25МГц для интерфейса (для тех, кто помнит техническое демо- было более 300МГц только на звук). Посему рекомендую не оставлять главный интерфейс активным, даже в залоченном режиме.
Также замечены падения интерфейса при прослушивании файлов напрямую из браузера (сама музыка продолжает играть).
Претензии к иконкам принимаются в формате .svg, претензии к интерфейсу вообще- в виде ресурсов интерфейса в формате xml, хотелки - с указанием решаемой этой хотелкой проблемы (а не "ну чтоб было").
Скачать .apk b2484 (3.7 Мб, прямая ссылка)
Galaxy Ace 2, интерфейс падает как ты написал. Невидимых иконок не замечено. Плейлист играет. список файлов в браузере тормозит жутко при прокрутке, как будто постоянно идёт обращение к SD. Папка с музыкой долгим нажатием не добавляется в плейлист только пофайлово. Пользоваться действительно уже можно. Лично жду добавление в плейлист папки целиком. Очистка плейлиста только пофайлово? А так спасибо, порадовал!
---------- Post added at 10:58 ---------- Previous post was at 10:56 ----------
прыгающие анализаторы абсолютно не нужны (на мой взгляд).
Не идет, наверное сам UI притормаживает- на планшете такое замечал, хотя более слабый телефон просто летает.
Тормоза одинаковые при включенном воспроизведении и без?
Файловый браузер на одном экране с плейлистом показывается или на отдельном?
Будет отключаемо, разумеется.
Пока да.
UI здесь не при чём. десятки других приложений летают. тот же USP к примеру. ещё раз проверил. браузер отдельно от плейлиста. чуть быстрей в горизонтальном режиме (видимых строк меньше). Заметил что тормоза только с файлами, к примеру, корень SD (только папки) шустро скроллируется. открыл папку с фотками-таже беда тормозит. т.е. от типа файлов в папке не зависит.
хотелка №2 :v2_rolley
при вытаскивании наушников из гнезда не плохо былобы паузу включать. плееры так умеют.
Потестил андроид версию ещё на двух девайсах Arnova 7e G2 и Huawei U8160. тормоза в браузере на всех! На всех трёх девайсах проблемы с воспроизведением файлов tfe tfd tf0 tfc. Добится зависона легко. Копируем примеры файлов в плейлист (я брал с ПЦ версии папку Samples). кликаем по tf* файлу, первый раз вероятней всего будет норм воспроизведение, кликаем по нему ещё раз - зависон процесса app.zxtune.
Позже ещё погоняю на девайсе MegaFon Login.
в режиме "за рулём" когда мобила в держателе, не совсем удобно открывать дистпетчер, потом останавливать, закрывать диспетчер, открывать звонилку, звонить, открывать плеер, жать кнопку "play".
Про гарнитуру, опять же, можно вспомнить... в общем не удобно. сам вчера столкнулся с этим, потому и вопрос возник, а не просто "хочу".
Не воспроизводится asc файл. на W32 версии не появляется в плейлисте, на андроид версии приводик к зависанию. Эмулятор Бульбы воспроизводит.
Апдейты для бетаверсии zxtune-android:
* уменьшение размера пакета
* пофикшено падение при навигации по истории файлового браузера
* ускорен скролл плейлиста и файлового браузера
* пауза при исходящем звонке (не проверял как себя ведет при параллельных звонках)
* немного переделан детект ASC, хотя и ценой некоторого снижения качества детекта :(
Скачать .apk b2496 (3.6 Мб, прямая ссылка)
Все, я в отпуск. На две недели никакого программирования:)
Во! Скролл в браузере и в плейлисте вообще не тормозит. Но вот у меня лично TFM треки ирают с затыком. Поубивал все лишние процессы для чистоты эксперемента - не помогло. OS Momitor показывает максимум загрузки, при воспроизведении TFM - 59%.
Также есть одна *хотелка* - чтоб плеер приписывал себе понятные ему расширения или вообще все. Ситуация следующая - обычно пользуюсь Xplore и именно с него нужные файлы запускаю, но при попытке запуска любой zx-мелодии, в списке предлагаемых для воспроизведения программ нет ZXTune :( . Только через сам плеер запускать. В самой первой версии такое было.
Телефон - Gigabyte GSmart G 1345. Проц - 800Мгц. Оперативы - 512. Свободной на момент теста - 279.
P.S. Vitamin, хорошего отдыха (надеюсь на морях ? )
Не. Не то. К примеру тут на форуме (илигделибоеще) мелодию в zip-архиве выкладывают. Я качаю, открывает архив Xplore. Отображает мелодию внутри, но открыть ее не представляется возможным - надо сначала распаковать ее куда-нибудь, потом плеер запустить, потом найти куда распаковал, только потом сможешь прослушать.
Изначально просто показывает содержимое архива zip или rar (файлы) как в обычном коммандере, после выбора файла в архиве он открывает нужной программой (если тип файла к ней приписан) или спрашивает как открыть. Естессно перед открытием в свою временную папку распаковывает.
Vitamin, да, нужно ассоциацию только добавить.
Падения при запуске из браузера присутствуют. Навигация в браузере ок. Жду добавление папки в плэйлист. Удачного отдыха. За буйки не заплывай :)
На любых файлах музыки. На мой взгляд падение происходит если в момент открытия файла происходит еще одна попытка выбора файла. Можно хаотично "тыкать" по файлам в браузере и рано или поздно произойдет вылет. 100% зависон: кликаем многократно по одному и тому же файлу без пауз быстро-ловим завмсон, музон при этом продолжает играть. Падает только интерфейс плеера.
Мобила Sony Ericsson Xperia X8 с родной прошивкой. При попытке установить пакет выдаёт ошибку: "Синтаксическая ошибка: При синтаксическом анализе пакета возникла неполадка".
Чего делать, как лечить?
Занимаясь переносом новых распаковщиков из ZXTune в xLook нашёл ошибку в коде распаковщика LZH:Если это старшая часть смещения то надо такКод:static std::size_t GetLZDistHi(uint_t data)
{
return data & 15;
}
Код:return (data & 15) << 8;
Действительно:)
Код:0023: AND #0F t=7
0025: LD B,A t=4
0026: RLD t=18
0028: SUB #05 t=7
002A: LD C,A t=4
002B: INC HL t=6
002C: PUSH HL t=11
002D: LD A,E t=4
002E: SUB (HL) t=7
002F: LD L,A t=4
0030: LD A,D t=4
0031: SBC A,B t=4
0032: LD H,A t=4
0033: DEC HL t=6
0034: DEC HL t=6
0035: LD B,#00 t=7
0037: LDIR t=16/21
0039: POP HL t=10
Ошибка не всегда проявляется. Только если есть старшая часть смещения.
Ещё обнаружилось что в модуле для распаковки ZXZIP только 2 алгоритма из трёх сделаны. В xZXZIP все методы поддержаны, оттуда можно код взять.
Ну да этот алгоритм в отличие от двух других в PKZIP отсутствует, больше взять неоткуда. А код вполне рабочий, без проблем даже в x64 скомпилировался. Все почему-то удивляются, а вот перенести никто не осилил.
Похожий способ переноса на другую платформу я видел в коде упаковщика Hrust2 для PC.
Код на отлично сделан, всё понятно, без проблем перекинулись отсутствующие в xLook распаковщики CHARPRES, GAMEPACK, LZH, MEGALZ, PACK2, TURBOLZ. Сейчас ошибки отлавливаю.
Среди исходников ZXTune в примерах запакованных файлов два распаковываться как надо не хотят: dsq\win4096 и dsq\win16384. Похоже ошибка здесь в самих файлах а не в коде распаковщика.
В свою очередь встречный вопрос, в распаковщиках заимствованных из xLook/xZXZIP ошибки не встречались?
Помимо ZXZIP и HRiP существуют ещё два архиватора: LZ-Compressor by V.Gamazov и PKMARK by Michael Markowsky, не ли распаковщиков для них?