Онлайн-каталоги в ZXTune для Android.

Всем привет!

В связи с тем, что вышедший вчера новый релиз ZXTune для Android пополнился поддержкой еще одного онлайн-каталога, мне захотелось немного рассказать об истории возникновения и развития этой, не побоюсь этого слова, killer feature приложения.


Август 2012. В ZXTune была добавлена экспериментальная поддержка сетевых источников данных. В частности, в zxtune-qt можно было вставить ссылку на файл в интернете и он автоматически скачивался, анализировался, найденные треки добавлялись в плейлист и их даже можно было послушать. Сделано это было, скорее, для галочки — проверить правильность некоторых идей. Там даже кеширования не было!

Тем не менее, кое-кто обратил на это внимание:

moroz1999 :
Я тут задумался — если плэйер уже работает с http, можно ли это как-то дополнительно задействовать? Где это могло бы быть удобно? На zxtunes.com, например?
Фича очень любопытная, применение какое-то винрарное крутится в голове, но никак не оформится. Радио, что ли, так организовать можно?
Или выставить файловые ассоциации, чтобы прямо из браузера, не скачивая, trd парсить?
Требуется поразмыслить.

Разумеется, интеграция с онлайн-библиотеками (типа упомянутого zxtunes.com) — это первое, что приходило на ум. Но отпугивал большой объем работ и небольшой профит — на десктопе под рукой всегда есть нормальный браузер, делать кастрированный вариант оного как-то не очень тянуло. Да и других работ хватало выше крыши.

Прошло полгода. Вместе с изучением Java и тонкостей программирования для Android телега запрягается поперед лошади делаются успешные попытки собрать код ZXTune для ARM и оценить перспективность сего действия. В результате рождается бенчмарк, дающий четкий и однозначный ответ — «Да, это все может работать на андроиде!» Параллельно идет переписка с djdron , к тому времени уже успешно реализовавшему некоторые онлайн-каталоги в своем Unreal Speccy Portable. Как пользователь, я оценил эту нереально классную фишку.

Февраль-Апрель 2013. Ко мне в аську стучится Newart с предложением по поводу интеграции будущего плеера с сайтом zxtunes.com. Обещаю набросать спецификацию протокола, в начале апреля рождается документ. Newart соглашается и… пропадает:)

local source logoИюнь 2013. В результате полугода разработки на свет появился бастард прототип плеера для Android. Несмотря на наличие одного-единственного каталога модели «карта памяти», в архитектуру была заложена возможность расширения, ибо надежда умирает последней.

zxtunes source iconОктябрь 2013. Из небытия возвращается Newart и сообщает, что все готово. На волне энтузиазма за два дня была добавлена поддержка этого каталога, а также устаканена модель расширений, практически без изменений дожившая до текущего времени. Серверное API выдает информацию в формате xml, на клиенте используется база данных для кеширования структуры и внутренняя память для кеширования треков. Группировка треков только по авторам, до сих пор не исправленные баги на сервере, но начало положено! Стало доступно около 22 тысяч треков.

modland source logoДекабрь 2013. Чисто случайно натыкаюсь на удобную веб-морду для знаменитой коллекции чиптюнов Modland. Также находятся следы некоего плагина для плеера xbmc, добавляющего навигацию по этому каталогу. Небольшая переписка с автором на предмет расширения API на серверной стороне ничем не закончилась — у автора нет времени, а у меня нет знаний по программированию на php — он мне предложил дать доступ к mysql серверу и самому написать гейт. Рассудив, что этот доступ мне ни к чему, да и может закрыться со временем, принял решение сделать самый кондовый и квадратно-гнездовой метод — парсить странички сайта. Для кеширования структуры на помощь опять приходит база данных (лучи добра создателям sqlite и решившим ее использовать в Android). Группировка треков уже гораздо сложнее — по авторам, по форматам и по коллекциям. Все это — около 400 тысяч файлов, из которых поддерживается примерно 60%.

hvsc source logoАпрель 2014. После трехмесячного внедрения поддержки формата SID с перерывами на полежать в больнице возник вопрос каталога треков этого формата. Разумеется, им стал High Voltage SID Collection. Повторять подвиг с разбором страничек веб-морды на exotica не было ну никакого желания. Посему источником данных стало зеркало коллекции на tld-crew.de, через три месяца благополучно сдохнувшее и замененное на следующее зеркало по списку. Разбирать листинг каталога от http сервера несколько проще, а кешировать можно прямо скачанные странички. Результат — почти 45 тысяч файлов, 55 тысяч треков (чтоб представить как работать с этой кучей одним списком, рекомендую воспользоваться конкурентом :) )

zxart source logoАвгуст-Сентябрь 2014. На связь выходит moroz1999 с предложением об интеграции со своим каталогом новой музыки для ZX-Spectrum. Используя наработки протокола по zxtunes.com и парное программирование удалось очень быстро сделать каталог с расширенным функционалом. На этот раз были группировки по авторам, по мероприятиям и топ треков по оценке пользователей сайта. Получил двойной профит- удовольствие от работы и бесплатный пиар на чиптюновых ресурсах:) На тот момент объем каталога составлял чуть более тысячи треков, но с тех пор изрядно увеличился.

joshw source logoИюнь-Июль 2015. После поддержки кучки звуковых форматов с разных консолей, положил глаз на линейку каталогов от Josh W. «И лишь одна проблема портила настроение» — музыка в этих каталогах была исключительно в архивах. Пришлось изрядно почесать репу чтобы работа с архивами выглядела как навигация по папкам. Никакого API на сервере нет, поэтому опять пришлось парсить странички со списком файлов.

amp source logoАвгуст 2015. Во время лазания по интернетам натыкаюсь на прекраснейший каталог Amiga Music Preservation, всем своим видом так и говорящий «и меня тоже поддержи!». Пришлось поддаться искушению:) Тут группировок треков особой нет, зато есть аж две группировки авторов- по нику и по стране происхождения. Причем список стран пришлось вычислять самостоятельно (заодно узнал, что невеселая страна R.I.P. прячется за номером 79). Хотелось бы сделать еще список авторов по группам, но не нашел способа получить их (групп) список. Но даже и без этого результат неплохой — более 130 тысяч треков.

На этом пока все:)

P.S. Если кто знает еще какие-нибудь интересные каталоги в качестве кандидатов на интеграцию — пишите в комментах. Требования простые — возможность восстановить модель коллекции путем парсинга страничек (если нет специализированного API) и возможность скачать любой трек по прямому урлу с протоколом http/https. А еще чтоб ZXTune поддерживал большинство треков и адекватные размеры коллекции, конечно.
Из того что я знаю и, возможно, будет интегрировано:
asma.atari.org/ — пока не нашел пофайлового зеркала, каталогом может быть та же exotica
www.modules.pl/
modarchive.org/
demodulate.scene.org/ — очень маленький
www.chiptune.com/ — хренпойми как его парсить:)
sndh.atari.org/ — пока не сделана поддержка sndh

UPD. Методом научного тыка таки найден способ получения списка всех групп для Amiga Music Preservation

15 комментариев

avatar
ftp.modland.com — правда не http…
avatar
Под iOS кстати появился неплохой плеер каталога Amiga Music Preservation — 4champ
avatar
К сожалению, я далек от iOS:)
avatar
djdron на хайпе! большой тебе привет! :)
Vitamin , буквально вчера очередное обновление, и я думаю — почему ты молчишь об изменениях :)
  • VBI
  • +1
avatar
А я сюда не пишу о новых релизах — формат не подходит. Тут просто история подвернулась.
avatar
в любом случае маякуй что меняется.
спасибо за ZXTune!
avatar
Детальные изменения выкладываются на форуме и вконтакте.
Пожалуйста!:)
avatar
Могу вспомнить только Zophar's Domain, давно когда-то на нем NES-музоны слушал.
avatar
www.zophar.net/music.html ну и ссылку забыл, как самое важное.
avatar
И его видел. К сожалению, этот каталог крайне хреново парсить роботом, а а новый контент там врядли будет.
avatar
Ну и на правах рекламы добавлю.
Если вы захотите данные из ZX-Art экспортнуть разово/наладить постоянное общение в свой эмулятор/проигрыватель/просмотрщик/мобильное приложение/онлайн коллекцию/вебсайт — дайте мне знать, помогу наладить, допишу недостающее, пофиксю неработающее.
avatar
Блин как классно то… Не следил за программой несколько лет (а тогда пытался зачем то скомпилировать). А тут четко работает… И стооока форматов… ну и понапридумывали их
Классная софтинка
avatar
Всегда с удовольствием пользую ZXTune на PC и Android и очень рад, что разработка продолжается с добавлением очень нужных и полезных фич. Круто!
avatar
Почти год пользуюсь версией под андроид. Все это время задаюсь вопросом, что есть Интерполяция? И как она сказывается на качестве?
avatar
В данном случае, это способы преобразования сигнала на частоте чипа (мегагерцы) в сигнал на частоте звука (десятки килогерц). Для AY/YM/SAA это соответственно децимация, децимация+интерполяция и ФНЧ+децимация.
Чтобы оценить как они сказываются на качестве, нужно слушать треки на хороших наушниках и во время прослушивания переключать настройку, соответствующую типу звучащего в данный момент чипа (иными словами, бесполезно менять интерполяцию для SID при прослушивании AY/YM трека и наоборот).
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.