Спасибо помогло, наверно стоит сделать FAQ, таких карточек много.
Ну вот теперь жди фидбеков.
Вид для печати
Напихал в плеер 580 TD0, слушал слушал, решил один трек зациклить, циклиться он не пожелал, а на 3-й раз клик по нему плеер вылетел.
http://romanrain.ru/temp/fuck.png
---------- Post added at 15:20 ---------- Previous post was at 15:18 ----------
Да, вылет произошел на битом (ошибочном) STP.
Билд 1460:
+ поддержка вывода звука через DirectSound. По идее, должно уменьшить запаздывание звука относительно UI
* фикс для STP модулей с неправильным лупом
* фикс воспроизведения ASC
* фикс получения автора/названия из модулей ASC
* zxtune-qt: переработано главное меню
Скачать билд для win32
Вообще, ASC весьма заковыристый формат. В частности, название и автор могут находиться в произвольном месте внутри, ссылку на которое вычислить сналету не получилось. А также могут находиться в плеере.
В ближайшее время планирую серьезно улучшить поддержку этого формата.
Билд 1472:
+ поддержка формата AS0 (ASC Sound Master v0.xx). Ввиду отличия от ASC Sound Master 1.xx/2.xx (ASC), вынесен в отдельный формат
* переработана поддержка ASC - улучшен детект
* пофикшено получение информации для STC/ST1 модулей (всякие нестандартные строки вместо 'SONG BY ST COMPILE' и им подобным расцениваются как название)
Скачать версию для win32
Скачать версию для медленных компьютеров с win32
Скачать версию для win64
Долго не мог понять, почему в коллекции Бульбы нет ни одного AS0 модуля, несмотря на заявленную поддержку его (ASC Sound Master 0.xx) в AYEmul. Более детальное изучение кода выявило страшную правду- при детекте эти модули хачатся и превращаются в ASC Sound Master 1.xx. Как показали дальнейшие исследования, это не совсем правильно и плохо сказывается на поиске таких модулей в сырых данных.
На досуге написал небольшой сравительный обзор кросс-плееров спектрумовской музыки для ПЦ и иже с ним. Если кому-то обзор покажется однобоким, либо возникнет желание его дополнить- буду рад дополнительной информации.
Vitamin, в комплекте с последним пушером идёт scl'ка с музыкой. Там 80 файлов, однако ZXtune обнаруживает как музыку только чуть больше 50-ти....Можешь глянуть, в чём дело?
Не у всех типов еще дофикшен детект
ASCSoundMaster- 13/13
FastTracker- 0/2 (не поддержан)
GlobalTracker- 0/5 (не поддержан)
ProSoundCreator- 0/5 (не поддержан)
ProSoundMaker- 0/6 (не поддержан)
ProTracker1- 0/1 (не поддержан)
ProTracker2- 3/5 (еще не допилено)
ProTracker3- 24/24 (тоже не допилено, просто повезло)
ProTrackerUtility- 1/2 (тот же PT3, так что недопиленность вылезла)
SoundTracker- 5/7 (нераспознаны STR_KSA/STR_FLS- даже не знаю что это за трекеры)
SoundTrackerPro- 3/6 (некомпилированные модули не поддерживаются, плюс какие-то модификации)
SQTracker- 0/1 (не поддержан)
SuperSonic- 2/2 (тот же SoundTracker)
Итого- 51/79
Билд 1487:
+ поддержка плееров для модулей типов AS0/ASC и STP. Из них берется информация о названии и авторе модуля. Поддержаны три версии плеера ASM и одна версия плеера STP.
* для ASC/AS0 модулей также поддержан идентификатор формата 'ASM COMPILATION OF <long name>', иногда использующийся вместо классического 'ASM COMPILATION OF <name> BY <author>'.
* zxtune-qt: поддержка облегченного плейлиста (без атрибутов, только пути к модулям и измененные атрибуты)
В силу непонятных мне причин, ASC Sound Master & Sound Tracker Pro хранят менаинформацию о модулях в плеере, вместо самого модуля (будем считать это историческими глюками). Пришлось весьма присесть дабы поддержать такое недоразумение- введены псевдодекомпрессоры (COMPILED{ASC0,ASC1,ASC2,STP}, преобразующие плеер с приклеенным к нему модулем в модуль с интегрированной метаинформацией. Для повышения покрытия данных и эффективности, учитываются даже плееры, не привносящие новой информации (пустые строки).
Скачать версию для win32
Скачать версию для медленных компьютеров с win32
Скачать версию для win64
Билд 1497:
+ поддержка еще одного плеера от SoundTrackerPro для взятия оттуда информации об авторе
* пофикшен volume slide эффект для DigitalMusicMaker
* пофикшен микрослайд для ChipTracker
* почти в два раза ускорено сканирование в gcc-based билдах (mingw, linux, dingux)
* нажатие Stop не сбрасывало позицию воспроизведения
Скачать версию для win32
Скачать версию для медленных компьютеров с win32
Скачать версию для win64
Скачать версию для lin32
Скачать версию для lin64
Скачать версию для dingux
Скачать версию для ubuntu32
Скачать версию для ubuntu64
Скачать версию для arch32
Скачать версию для arch64
Улучшенный алгоритм поиска сигнатур форматов дал двухкратный прирост скорости для сборок от gcc, чего нельзя сказать о студийных сборках. Так что теперь mingw уделывает 64-битную версию на ее же поле.
Билд 1504:
[+] поддержка Hrust2.3 упаковщика[*] фикс детекта STR модулей[*] фикс падения при остановке воспроизведения AY треков[*] zxtune-qt: уменьшено потребление памяти для загруженных плейлистов
Скачать версию для win32
На самом деле, Hrust2.3 был уже давно поддержан в рамках формата Hrip. Но как оказалось, есть достаточно много софта, использующих этот пакер вне рамок архиватора (ну или те же hrp архивы с поврежденным заголовком).
Билд 1514:
* Еще немного ускорен поиск (~10%)
* Улучшен детект сжатых с помощью TRUSH данных
* Пофикшено определение имен файлов в TRDos-образах (различалось для mingw/msvs версий)
* Переработан детект PT2 модулей
Скачать версию для win32
Скачать версию для медленных компьютеров с win32
Скачать версию для win64
Блоки TRUSH теперь детектируются не по текстовой сигнатуре (которую разные кулхацкеры портят), а по сигнатуре распаковщика.
Полностью переработан детект PT2 модулей. Теперь тесты AYMus (все pt2 модули из коллекции Бульбы) и Pusher проходят на 100%.
Поддержка ProTracker 2.40 от Phantom Family сделана через псевдодекомпрессор, выполняющий декомпиляцию треков с плеером (таких треков без плеера не встречал).
Немного статистики и сравнения с моим основным конкурентом и вдохновителем:).
Calgary test (файл размером 770 094 519 байт):
Добавление в плейлист AYEmul (уходит в аут до конца поиска):
Результат- 6479 модулей в плейлисте, часть из них оказались невалидными
Размер результата- подсчитать не удалось (сохранение крайне затруднительно)
Затраты времени- ~400 секунд
Использование памяти по завершению- 9.8/14 Мб (private bytes/working set)
Пиковое использование памяти- 9.9/14.5 Мб
Скорость поиска- ~1880 кб/сек
Использование рипалки AYEmul (уходит в аут до конца поиска):
Результат- 6518 модулей
Размер результата- 21.3 Мб
Затраты времени- 3 часа 15 минут (~11700 секунд) (вот она- причина опоздания с данным сообщением:) )
Использование памяти по завершению- 13.7/23.2 Мб
Пиковое использование памяти- 14.8/23.8 Мб
Скорость поиска- ~64 кб/сек
Покрытие- 2%
Найденные модули:
ASC- 1051
FLS- 50
FTC- 7
GTR- 2
PSC- 32
PT1- 46
PT2- 1263
PT3- 1196
SQT- 38
STC- 2641
STP- 192
Анализ с помощью ZXTune (windows_x86), общий результат:
Результат- 13422 модуля
Размер результата- 48.1 Мб
Покрытие- 6% (реальное- 38%)
Найденные модули:
AS0- 1172
ASC- 1258
CHI- 1
DMM- 124
DST- 19
PDT- 2
PSG- 1
PT2- 2941
PT3- 2071
ST1- 83
STC- 5020
STP- 513
STR- 38
TS- 179
Добавление в плейлист ZXTune:
Затраты времени- ~690 секунд
Использование памяти по завершению- 25.7/32.9 Мб
Пиковое использование памяти- 641.3/1400 Мб
Скорость поиска- 1089 кб/сек (реальная- 1985 кб/с)
Использование рипалки (zxtune123):
Затраты времени- ~670 секунд
Пиковое использование памяти- 635/1388 Мб
Скорость поиска- 1122 кб/сек (реальная- 2044 кб/с)
Большой объем working set связан с проецированием в память всего файла (в этом случае ОС оптимизирует выделение памяти по факту чтения), большой объем private bytes пока не исследован- на графике видно два пика на фоне стабильного уровня.
Ввиду рекурсивного поиска в упакованных данных, алгоритм расчета покрытия и скорости обработки для ZXTune нетривиален. Считается соотношение размера отдетектированных данных к общему размеру обработанных данных.
Например, есть файл размером 100кб, в нем находится сжатый блок размером 50кб. Этот сжатый блок распаковался в 200кб, в котором было найдено несколько модулей общим размером 10кб.
Тогда покрытие будет считаться следующим образом:
Coverage = Useful/Total = (50(сжатый блок)+10(модули))/(100(исходные данные)+200(обработка распакованного блока))=60/300=20%
Для данного теста Useful=460.2(архивы) + 48.1(модули)=508.3 Мб, Total=1337.3 Мб
ЗЫ. Качество детекта детально не проверял ввиду большого объема данных для обработки. Если кто желает- милости прошу, дам архивы:)
Билд 1533:
* переработана поддержка PT3
* игнорируются все модули, не содержащие семплов
* улучшен детект PT2
* пофикшена вставка метаинформации в AS0/ASC/STP
* фикс пикового использования памяти
* пофикшен сброс громкости при переходе к следующему модулю при воспроизведении через DirectSound
* zxtune123: асинхронное сохранение результата рипа/конверсии
* zxtune-qt: улучшена поддержка .ayl плейлистов (параметр Offset)
Скачать версию для win32
Скачать версию для медленных компьютеров с win32
Скачать версию для win64
Полностью переработан детект PT3 модулей. Тесты AYMus и Pusher проходят на 100%.
Поддержка модулей от ProTrackerUtility1.3 также сделана через псевдокомпрессор (детект по сигнатуре плеера).
Отныне модули без звука модулями не считаются (отсутствующие семплы и т.д.). "Черный квадрат"- это авангард, но "полная тишина" - это отстой:)
К сожалению, улучшение детекта привело к некой регрессии в скорости поиска (~10%).
Асинхронное сохранение результата рипа или конверсии в zxtune123 - следующий шаг к внедрению асинхронности. Что положительно сказывается на интерактивности и общей скорости работы.
Результаты тестового анализа:
Анализ с помощью ZXTune (windows_x86), общий результат:
Результат- 13446 модулей
Размер результата- 48.5 Мб
Покрытие- 6% (реальное- 38%)
Найденные модули:
AS0- 1172
ASC- 1259
CHI- 1
DMM- 124
DST- 19
PDT- 2
PSG- 1
PT2- 2924
PT3- 2108
ST1- 83
STC- 4987
STP- 549
STR- 38
TS- 179
Добавление в плейлист ZXTune:
Затраты времени- ~750 секунд
Использование памяти по завершению- 25.3/31.6 Мб
Пиковое использование памяти- 27.2/785.4 Мб
Скорость поиска- 1002 кб/сек (реальная- 1826 кб/с)
Использование рипалки (zxtune123):
Затраты времени- ~770 секунд
Пиковое использование памяти- 96.4/848.4 Мб
Скорость поиска- 977 кб/сек (реальная- 1778 кб/с)
Повышенное использование памяти для zxtune123 связано с неограниченностью (на данный момент) длины очереди асинхронной обработки.
Не рипаются модули STR с образа диска Sample Tracker-а.
http://vtrdos.ru/system/SAMPLET.ZIP
Рипаются только из снапов.
В tzx версии Sample Tracker 3T
http://www.worldofspectrum.org/infos...cgi?id=0025503
Из снапов рипается некорректно.
Вложение 32991
Там раздельно. Семплы под тем же именем что и модуль. Только разные расширения ***.s ***.SЦитата:
отдельно трек, отдельно семплы
Билд 1545:
* улучшен детект STP
* пофикшен парсинг PT3
* улучшен детект STC
* фикс воспроизведения CPC AY модулей
* фикс вычисления длины DMM модулей
* zxtune-qt: начальная поддержка конверсии в wav
Скачать версию для win32
Скачать версию для медленных компьютеров с win32
Скачать версию для win64
Билд, в основном, направлен на исправление мелких и не очень ошибок, появившихся при последних изменениях.
Также добавлена начальная поддержка конверсии в wav прямо из контекстного меню zxtune-qt. Поскольку отмена операций с плейлистом пока не поддерживается, сконвертить можно только явно выбранные модули.
Есть предложение если это возможно,добавить в плеере:
-загрузка мелодий с zxtunes.com
-поиск по названию и автору в плеере из zxtunes
А можно ли в консольной версии сделать опцию для вывода только текстовой информации, а музыку не играть?
Например http://bulba.untergrund.net/SoLOCPC.7z
Выбираешь строки в плейлисте, правый клик - convert to wav. Выбираешь папку назначения, шаблон имени (например [Filename]) и все.
К сожалению, программить умею на уровне простеньких скриптов на питоне.
Так что буду надеяться и ждать. :v2_dizzy_rain:
Музон тебе в коллекцию за старания. Ржачный музон