Главная > Archive ITword > От XMMS к Audacious: история Winamp-клона

От XMMS к Audacious: история Winamp-клона

(перевод с английского статьи Patrick McFarland From XMMS to Audacious: the history of a Winamp clone)

Одна из наиболее часто используемых функций современного компьютера — способность воспроизводить музыку. Со времен первых писков и завываний аркадных машин, во времена AdLib и первых Sound Blaster-ов в домашних компьютерах, во времена монстрообразного Sound Blaster X-Fi на пятидесяти одном миллионе транзисторов люди слушали и продолжают слушать музыку на компьютерах.
Вернемся в 1997 год, когда кто-то наконец-то решил написать удобный проигрыватель для GNU/Linux: X11Amp, сейчас известный как XMMS.

Winamp, X11Amp, и XMMS

Еще раньше, в мае 1997 года, малоизвестная софтверная компания Nullsoft выпустила программу, которая моментально стала хитом, и сейчас, сегодня, эта программа является одним из наиболее известных примеров программных музыкальных плейеров — это Winamp.

Winamp (автор — Джастин Франкель) стал стандартом де-факто для Windows-систем. Но этот плейер страдал от одного серьезного недостатка: он работал только под Windows. Поэтому спустя несколько месяцев, в ноябре, Питер и Майкл Альм выпускают клон Winamp, названный X11Amp. X11Amp распространялся бесплатно.

Питер и Майкл решили написать эту программу, так как под Linux не было хорошего mp3-плейера. Копирование вида и особенностей Winamp, совместимость с форматом Winamp-skins позволили X11Amp быстро стать популярным на не Windows-платформах, как до этого Winamp стал популярным на Windows.

В 1999 году наши бесстрашные разработчики X11Amp приобрели спонсора — компанию 4Front Technologies, известную своей работой над Open Sound System (OSS) (OSS впоследствии была заменена Advanced Linux Sound Architecture (ALSA)). В связи с этим X11Amp вскоре был переименован в XMMS. Примерно в это время я начал использовать XMMS и следить за его развитием, за которым, благодаря внутренним политическим трениям, было очень… интересно наблюдать.

Конец XMMS

На протяжении следующих пяти с лишним лет XMMS приобрел плагины практически для всех звуковых форматов на планете, было выпущено несколько десятков стабильных релизов. Разработка была приостановлена в начале 2004 года. За эти пять лет люди поняли следующие вещи:
Первая версия библиотеки пользовательского интерфейса GTK+, хоть и была первой в своем роде и скорей всего единственной библиотекой пользовательского интерфейса на момент начала создания XMMS, содержала много ошибок, ей недоставало возможностей, выглядела эта библиотека ужасно и снаружи, и изнутри, программировать под GTK+ было сущим мучением. Библиотека GTK2, наследник GTK+, была очень сильно усовершенствована.
Библиотеки GTK+ и GTK2 конфликтуют на уровне символов, так что даже если бы разработчики XMMS захотели переключиться на GTK2, любой из старых использующих GTK+ плагинов вызвал бы ошибочное завершение программы; такое не случается с ответвлениями XMMS, использующими GTK2, но сохраняющими совместимость с XMMS plugin API (например, BMP).
XMMS передает плагинам ссылки на области памяти, содержащие структуры XMMS, в результате чего плохо написанные плагины могут вызывать аварийное завершение программы.
Не было видно ясного пути для развития XMMS без масштабного переписывания кода программы, переписывать пришлось бы в любом случае. Это, а также программный код XMMS, приводило людей в замешательство не хуже известного фильма Hideaki Anno.

В 2002 году Питер Альм начал работу над форком XMMS, названном XMMS2, добавив новые возможности, поддержку GTK2, и сломав совместимость с plugin API с целью устранения различных мелких проблем и чтобы не допустить использования старых плагинов без корректного портирования.

Питер также хотел разделить плагины на две категории: «input» и «transport» (т.к. многие из «input»-модулей содержали повторяющийся код для передачи потока по интернету и тому подобных вещей), добавить функциональность медиа-библиотеки и отделить «движок» плейера от кода, отвечающего за внешней вид (они должны были сообщаться через сокеты). Разработка XMMS2 еще ведется, но релизы появляются нечасто. К сожалению, я думаю, что проект прекратит свое существование из-за недостаточной частоты релизов и публичности.

BMP и BMPx

Примерно во время появления XMMS2 свой проект на базе XMMS начал Милош «deadchip» Дерезински, назвав его Beep Media Player (BMP). В отличии от XMMS2, была намеренно сохранена совместимость с XMMS plugin API. Фактически, если не вызывать для плагинов диалоги «configure» и «about», можно использовать уже скомпилированные модули от XMMS без дополнительных проблем.

Разработка BMP продолжалась до тех пор, пока Милош не решил, что XMMS/BMP требуется действительно серьезная переработка; хотя, судя по тому, что я видел, Милош не договорился с Питером, какая замена нужна XMMS. В октябре 2005 года Милош начал разработку форка BMP (который был фактически XMMS с GTK2 и уймой переписанного кода, но не много добавлял в функциональности) и назвал его BMPx; хотя я неверно употребил слово «форк», т.к. Милош решил начать написание BMPx с нуля. К тому же BMPx спроектирован для использования Xine (позднее GStreamer) в качестве системы плагинов.

Милош потерял нескольких разработчиков при разработке BMPx, решив выбросить оригинальный код BMP. Некоторые ушли, затаив злобу, другие — так проект им наскучил, третьи решили продолжить работу с какими-либо другими медиаплейерами.

Однако, по моему мнению, BMPx — это тупик.

Audacious

Покинув команду после остановки разработки BMP, Вильям «nenolod» Питкок решил сделать форк BMP спустя несколько дней после начала разработки Милошем BMPx. Новая программа получила название Audacious. Начавшись как большая работа над ошибками, Audacious, по-видимому, является наследником принадлежавшего когда-то XMMS титула де-факто стандартного плейера для GNU/Linux.

На данный момент Вильям исправил десятки раздражающих ошибок, добавил возможность подключаться к музыкальному «движку» внешним клиентам, частично переписал MP3 декодер (который, по моему мнению, сейчас звучит лучше libMAD, ранее лучший из слышанных мною MP3-декодеров); идет процесс добавления API, которая позволит использовать Audacious так же, как сейчас используется GStreamer.

Audacious, по-видимому, является единственным проектом, продолжающим развитие с того места, где закончил XMMS. BMP, главным образом, был нацелен на поддержку и переписывание существующего кода, полезный, но не добавивший новых функциональных возможностей проект; XMMS2 мертв, а BMPx — путь в никуда.

Так что если вы до сих пор используете XMMS или BMP — попробуйте Audacious. Худшее, что может произойти, — вы вновь откроете для себя, как просто слушать музыку под GNU/Linux.

Скины
Скины (шкуры) XMMS полностью совместимы со скинами Winamp 2.x, т.е. скины Winamp можно использовать с XMMS и наоборот.

Ниже представлены несколько скинов со скриншотами. Эти скины входят в состав Ubuntu Linux и распространяются бесплатно, под свободными лицензиями.

Хотя представленные скины предназначены для XMMS, в силу совместимости они прекрасно подходят и для Winamp.

Источник: Xmms.info, 2006, xmmsinfo@mail.ru

  1. Пока что нет комментариев.
  1. Пока что нет уведомлений.
Необходимо войти на сайт, чтобы написать комментарий.
#

//