Сторонние проекты на базе ZXTune
Всем привет!
Для всех тех, кому нравится идея и функционал ZXTune, но кого воротит от убогого дизайна официальных приложений или тошнит от меня лично, предлагаю список альтернативных программ, которые используют исходный код проекта (да, он таки opensource) и позволяют делать примерно то же самое, но по другому (не покидая любимого плеера/браузера/нужное подчеркнуть). Короче, кто о чем, а вшивый о бане.
Пока что выпущена только одна игра на этой версии движка.
Примерно в это же время djdron также сделал плагин для winamp, но, в силу крайней убогости последнего с точки зрения организации плагинов, почил в бозе.
а также легкая попаболь при виде числа скачиваний.
сдался применил и получил более стабильный и экономичный плагин гораздо меньшего размера. Разницу «до» и «после» применения можно оценить по разным версиям вышеупомянутого плагина для foobar2000.
Собственно, вот и весь список на данный момент. Если кто знает еще какие проекты- дополняйте в комментах.
P.S. Пользуясь случаем, сообщаю о появлении официальной версии плеера под MacOS X. Качайте, запускайте, слушайте.
Для всех тех, кому нравится идея и функционал ZXTune, но кого воротит от убогого дизайна официальных приложений или тошнит от меня лично, предлагаю список альтернативных программ, которые используют исходный код проекта (да, он таки opensource) и позволяют делать примерно то же самое, но по другому (не покидая любимого плеера/браузера/нужное подчеркнуть). Короче, кто о чем, а вшивый о бане.
Интеграция с движком DizzyAge
Самая первая попытка заюзать код в стороннем проекте. В конечном итоге вылилось в .dll и некоторые доработки в движке. Первый блин не то чтобы комом, но были выявлены многие ошибки (в том числе и архитектурные). Тем не менее, все оказалось гораздо проще, чем ожидалось.Пока что выпущена только одна игра на этой версии движка.
Плагин для foobar2000 от djdron
Пожалуй, самый первый опыт ковыряния моего кода другим человеком. Километровые треды переписки в почте, исправления найденных косяков, доработка под специфичные, но адекватные требования, отстаивание непривычных, но эффективных дизайнерских решений, вот это вот все.Примерно в это же время djdron также сделал плагин для winamp, но, в силу крайней убогости последнего с точки зрения организации плагинов, почил в бозе.
Плагин для bass.dll от ZXED
Проект от еще одного заинтересованного пользователя. Поскольку официального ZXTune SDK нет, поддержка также осуществлялась через переписку по почте. На базе этого плагина появилась поддержка в AIMPПлагин для XMPlay от ZXED
На волне энтузиазма тот же пользователь запилил плагин для другого плеера. К сожалению, автор не захотел применить все мои рекомендации по поводу best practice разработки плагинов…Плагин для XMPlay от djdron
… а вот djdron такиBZRPlayer
Судя по тому, что автор никак не консультировался по поводу кода (и так и не выложил его, хотя обещал), собрал все возможные грабли. ССЗБ:)SpectreZX от Juergen Wothke
Полный крышеснос и взрыв мозга! С помощью проекта emscripten, черной магии, молотка и какой-то матери чувак сконвертировал код ZXTune (а также некоторых других библиотек, рекомендую посмотреть его профиль на github) с С/С++ на javascript. Не все форматы играются правильно, не обошлось без длительной и интенсивной переписки, куча пометок «в будущем надо бы переделать», но результат впечатляет. Управление плейлистом и дополнительная информация скрывается под кнопкой 'What's this?' Свои треки можно слушать, перетаскивая на изображение zx-spectrum. Для работы требуется современный браузер с поддержкой WebAudio API.ZX-ART от moroz1999
Для обеспечения кроссбраузерности и надежности moroz1999 использовал самый кондовый метод- предварительный рендеринг всей музыки в mp3/ogg и ее прослушивание в браузере через flash/html5. И вот этот самый рендеринг делается через (внезапно!) CLI версию плеера (еще раз к вопросу «GUI наше все, консоль нинада»). Так что все претензии по неправильному воспроизведению с примерами можете слать лично мне и не тревожить больше никого:)Собственно, вот и весь список на данный момент. Если кто знает еще какие проекты- дополняйте в комментах.
P.S. Пользуясь случаем, сообщаю о появлении официальной версии плеера под MacOS X. Качайте, запускайте, слушайте.
78 комментариев
Заодно: зачем программа(по крайней мере не новая версия) хранит файлы неизвестно где, в Documents?
получаю трешак в:
«C:\Users\dk\AppData\Local\ZXTune\Playlists»
к тому же в ВК просили вроде бы.
Кстати, любитель четких ТЗ, можешь похоронить свое сделанное, я нашел лучшее. Адью.
1) нет устройств (эмулятор не ок)
2) нет желания изучать ObjC (который нахрен еще где нужен)
3) нет времени… (самый тяжелый фактор)
Но если кто возьмется, готов помочь по мере сил со всем, что касается библиотеки.
Правда давно это было — может с тех пор проще стало (или, вдруг, сам поумнел :)
А так-то мне бы и для других нужд пригодился.
Например, для DizzyAge была одна либа (ее интерфейс потом народ юзал в плагинах к плеерам, но со статической линковкой — дикий бред), а для андроид версии была другая. Но там, по чесноку, только тонкая прослойка отличается, внутри все то же самое по большому счету.
Ну это понятно. Тут все упирается в поддержку native interface у этого самого свифта или как там его. Но насколько я знаю, приложения iOS анально огорожены на предмет загрузки стороннего кода в динамических библиотеках.
Про динамическую линковку не в курсе, вроде бы должно быть всё разрешено, там порядком пересмотрели все ограничения с анальноотгороженных времён :)
Но, возможно это не то, чем тебе интересно было бы занять.ся
И JB сейчас не особо нужен для установки разработческих приложений — с тех пор как разрешили делать сборки для отладки на своих устройствах всем, даже тем кто не платит 99$ в год за разработческую подписку.
Всё музло в AY-pod отрендерено в ZXtune.
ЗЫ. Что такое AY-pod?
Хостился на rpod.ru (но почил в Бозе вместе с последним).
Нашёл, работает =)
Вроде-как февраль 2010 года:
А то попробовал вот сейчас версию для мака: ZXTune жрёт 110% и при этом заикается как не в себя =(
Надеюсь когда-нибудь перейти на qt5, там вроде не все так печально…
Но почти в самом конце (надеюсь)компиляция прервалась:
Но на самом деле хотелось бы разобраться чего же ему не хватает для компиляции =)
У меня пара вопросов: есть ли стандарт или соглашение о том как сохранять TS-PSG или TS-RAW? Или просто сохранять как два файла — по одному на чип (но как тогда объяснить плейеру, что это два связанных файла и их нужно проигрывать одновременно?).
И, насчёт RAW-формата, что zxtune123 ожидает на входе? Шестнадцатибайтные последовательности значений регистров по фреймам (от 0 к 15) или четырнаддцатибайтные?
Что такое TS-RAW? И зачем использовать PSG? Накрайняк, можно два PSG запихать в TS-контейнер, тогда будут играться одновременно.
Ничего такого он не ожидает.
2) что такое TS-контейнер? где есть описание формата этого контейнера?
TS-RAW — это RAW для TS, и под RAW я понимаю просто пофреймовый дамп всех регистров без компрессии, вопрос: что под RAW понимает zxtune123 и ты?
Есть какой-то plain-формат который понимает zxtune123 — просто регистры без всяких манипуляций и компрессии?
(PSG1 и PSG2 предполагают что-то вроде сжатия исходных данных.)
Мне нужна простая адресация любого регистра в плоском файле для быстрой манипуляции значениями, а также простой способ заставить это всё играть без предварительной перекодировки — был уверен что zxtune123 раньше дампы регистров засасывал без проблем.
Два склеенных файла и футер в формате:
— 4 байта идентификатора типа первого модуля (обычно не используется)
— 2 байта длина первого модуля
— 4 байта… второго модуля
— 2 байта длина второго модуля
— 4 байта сигнатура '02TS'
То же самое. zxtune123 только на выход и только для одного чипа.
Совсем без манипуляций нет. Ближайший аналог того что тебе надо- это несжатый формат .ym.
Никогда такого не было. Ибо отличить «сырой дамп регистров» и просто какие-то мусорные данные не представляется возможным. Для этого придумали заголовки и сигнатуры.
YM — не подходит, это что-то совсем не то.
Правильно ли я понял что: музоны, которые распознались как TS при конверсии в PSG будут также сохранены в контейнере TS c соответствующим футером?
При конверсии в RAW можно указать с какого чипа снимаются данные?
А зачем его отличать? Достаточно прямого указания «проиграть эти файлы как дампы регистров» на вот этих вот 2-х (или 3-х) чипах — и пусть себе играет =) Делов-то. Это не тот формат для которого нужен детектор.
Это сильно бы облегчило тестирование прототипов музыкальных движков ещё не реализованных в асме z80. И вообще исключило бы возню с эмулятором на этом и последующих этапах.
Если на твой взгляд светская беседа затянулась — скажи куда тебе фич-реквесты слать =)
Я бы и сам попытался зафигачить это всё (разумеется не забывая про распил RAW на паттерны =), но эта ж радость у меня даже не собирается =(
Нет. Конверсия в PSG/RAW доступна только для AY форматов с одним чипом.
Лично мне такой функционал ни разу не потребовался. PSG вполне покрывает функционал тестирования, ибо сохранить в него можно из многих источников, а сконвертировав в текстовый дамп, посмотреть разницу.
То есть алгоритм на текущий момент следующий: генерю два YM-файла (у них есть сигнатура?) и оборачиваю в TS-контейнер — и можно слушать?
Google же: leonard.oxg.free.fr/ymformat.html
Да. Непонятно только нахрена оно тебе…
Кстати, хотел у тебя совета спросить как лучше эту затею реализовать.
Скайп у тебя тот же?
Ну, идея была в том, чтобы быстренько голосом обсудить идеологию / архитектуру без писанины.
Если есть возможность принимать голосовые звонки через что-нибудь (Viber/Facetime/Hangouts) — буду рад голосом пообщаться в заранее согласованное время.
Если нет — скажи куда тебе писать на почту, попробую накатать простыню =)
Значит юзай mtc, ссылку я тебе давал. Ему пофиг что с чем смешивать:)
.MTC несравнимо сложнее, или hype.retroscene.org/blog/185.html инструмент mtctool может спокойно смешать два и более .psg?
Очень странно. Можешь стектрейс жрущих потоков собрать?
Vitamin не упомянул ещё один плагин под плеер Qmmp.
Для тех, кого не сильно устраивает интерфейс zxtune.
sourceforge.net/p/qmmp-dev/tickets/840/