Скачать плагины для winamp. Подключаемые модули программы Winamp. Скачать готовый плагин

Привет, кул хацкер! Твою бы энергию — да в
мирных целях 🙂 Вот мы и займёмся
обустройством твоего любимого (надеюсь) mp3
проигрывателя Winamp. Plugin для Winamp — обычная DLL
со строго определённым интерфейсом. Вообще,
любая прога, которая поддерживает plugin’ы,
имеет свой стандартный интерфейс для
обращения к ним. В данной статье мы
рассмотрим интерфейс DSP (для создания
звуковых эффектов, как то: ускорение/замедление
звука, “звук вокруг” [он же surround] и т.п.).
Эффект surround очень прост в реализации,
потому я и выбрал его в качестве примера. В
стерео сигнале два канала — левый и правый
подаются на динамики в противофазе, что и
обеспечивает эффект объёма.

Теперь о программной части реализации. В
файле “dsp.h” объявлена внутренняя
структура заголовка модуля (winampDSPModule) и
заголовка plugin’a (winampDSPHeader). Также одна
функция (winampDSPGetHeader2) объявлена “на экспорт”
(см. файл “dsp.def”) — именно её Winamp выполняет
при загрузке plugin’a. Она передаёт ему
заголовок, который содержит в себе ссылку
на функцию выбора модуля. Это и есть
интерфейс связи Winamp’a с plugin’ом. А вот и сам
исходник (Visual C++ 6.0):

:

#define DSP_HDRVER 0x20 // Версия заголовка: 0x20 == 0.20 ==
winamp 2.0

typedef struct winampDSPModule
{
char *description; // Описание
HWND hwndParent; // Окно вызывающей проги (в нашем
случае WinAmp)
HINSTANCE hDllInstance; // Handle нашей DLL (заполняется WinAmp’ом)

// Функция окна для конфигурации плагина
void (*Config)(struct winampDSPModule *this_mod);
// Инициализация (возвращает 0 если успешно)
int (*Init)(struct winampDSPModule *this_mod);
// Модификация сэмплов (возвращает кол-во
обработанных сэмплов)
int (*ModifySamples)(struct winampDSPModule *this_mod,
short int *samples, int numsamples,
int bps, int nch, int srate);
// Функция, вызываемая при "выгрузке"
плагина
void (*Quit)(struct winampDSPModule *this_mod);

void *userData; // Данные ползователя (обычно не
используется)
} winampDSPModule;

typedef struct
{
int version; // Для какой версии WinAmp’a (DSP_HDRVER)
char *description; // Описание (что плагин делает или
кем написан)
// Функция,возвращающая модуль (в одном
плагине их может быть несколько)
winampDSPModule* (*getModule)(int);
} winampDSPHeader;

typedef winampDSPHeader* (*winampDSPGetHeaderType)();

#include
#include "dsp.h"

// "Главная" функция DLL — должна
присутствовать в каждой DLL
BOOL WINAPI _DllMainCRTStartup(HANDLE hInst, ULONG ul_reason_for_call,
LPVOID lpReserved)
{
return TRUE;
}

// Функция, возвращающая один из модулей
плагина
winampDSPModule *getModule(int which);

void config(struct winampDSPModule *this_mod);
int init(struct winampDSPModule *this_mod);
void quit(struct winampDSPModule *this_mod);

int numsamples, int bps, int nch, int srate);

// Заголовок модуля, который содержит:
версию, описание,
// адрес функции для "выдачи" модуля
WinAmp’у
winampDSPHeader hdr = { DSP_HDRVER,
"Cool XAKEP surround plugin:)",
getModule };

winampDSPModule mod =
{
"Surround sound",
NULL, // hwndParent (заполняется WinAmp’ом)
NULL, // hDllInstance (заполняется WinAmp’ом)
config,
init,
modify_samples,
quit,
NULL
};

// Это единственная экспортируемая функция (см.
"dsp.def")
// Возвращает заголовок со всей инфой о
плагине
winampDSPHeader *winampDSPGetHeader2()
{
return &hdr;
}

// Функция выдачи модуля WinAmp’у (Возвращает NULL,
если запрос неправильный)
winampDSPModule *getModule(int which)
{
if (which == 0)
return &mod;
else
return NULL;
}

// Функция конфигурации (общая для всех
модулей в плагине)
void config(struct winampDSPModule *this_mod)
{
MessageBox(NULL,
"This module is Copyright (C) 1999 by Starlight",
"Configuration", MB_OK);
}

// Инициализация (в данном случае не нужна)
int init(struct winampDSPModule *this_mod)
{
return 0;
}

// Функция, вызываемая при "выгрузке"
// Если плагин создавал окна — удалять здесь
void quit(struct winampDSPModule *this_mod)
{
}

// А вот здесь и делается surround 🙂
int modify_samples(struct winampDSPModule *this_mod, short int *samples,
int numsamples, int bps, int nch, int srate)
{
int x;
if (bps == 16 && nch == 2 /* если стерео */)
for (x = 0; x < numsamples*nch; x += 2) {
// на один из каналов сигнал идёт "перевёрнутым"
int s = -samples[x];
samples[x] = (s>32767 ? 32767: s<-32768 ? -32768: s);
}
return numsamples;
}

:

LIBRARY
EXPORTS
winampDSPGetHeader2=winampDSPGetHeader2

:
@cl /LD /MD /GD6f /Ox /Os /ID:\DS\VC98\Include dsp.c D:\DS\VC98\Lib\UUID.LIB D:\DS\VC98\Lib\MSVCRT.LIB
D:\DS\VC98\Lib\USER32.LIB D:\DS\VC98\Lib\KERNEL32.LIB /link /def:dsp.def
/opt:nowin98
@del dsp.obj >nul
@del dsp.exp >nul
@del dsp.lib >nul
(Только пропиши свои пути к VC++ 🙂

Вот и всё — юзай на здоровье 🙂

P.S. Special thanks for Anshkin Oleg aka Starlight.

P.P.S. Если понадобится узнать, какую музыку
гоняет твой друг/знакомый можно написать
соответствующий plugin, который обо всём
настучи… ну, в общем, оповестит тебя о
появлении у него новых рульных mp3 🙂

Краткое описание основных принципов разработки плагинов для популярного проигрывателя WinAmp на примере плагина SimpleKeys — простой программы для управления WinAmp с помощью произвольных комбинаций клавиш.

Постановка задачи

Изначально я поставил перед собой простую задачу: управлять WinAmp с помощью стандартных multimedia-клавиш, которые сейчас встречаются на клавиатурах весьма часто. Эти клавиши имеют встроенную поддержку в Windows (им присвоены свои скан-коды, правда, начиная с Win2k), их умеет поддерживать стандартный Media Player, а вот для того, чтобы управлять ими WinAmp"ом нужен дополнительный софт.

В поиска софта я отправился в Сеть. Я сразу наметил для себя основные критерии: во-первых, исключил из рассмотрения самостоятельные программы. Они занимают место в трее, висят в памяти даже когда проигрыватель не работает, грузятся при запуске системы, растягивая этот и так небыстрый процесс. Значит, остаются плагины к самому WinAmp. Искал двумя способами: на сайте WinAmp через его собственный поиск плагинов и в Google. Потратив около часа и скачав несколько плагинов (описания там не грешат многословностью, так что понять, подойдет софт или нет, его нужно скачать), ничего подходящего я не обнаружил. Наиболее близким был плагин KeyControl v1.0 beta, но он отказался работать с мультимедиа-клавишами, а по ссылке на сайт производителя я не нашел никакого упоминания не только о новых версиях, но и о программах вообще. Один песок. Остальные и того хуже - множество навороченных плагинов с непонятными возможностями управления мышью, джойстиком и чуть ли не телепатически, но в основном реализованные через внешние программы, а вот простого плагина для управления от клавиатуры нет...

Решив больше не тратить время на поиски, а переформулировал начальную задачу: попробовать написать плагин, который будет "управлять WinAmp с помощью стандартных multimedia-клавиш" (формулировка из предыдущей версии задачи:)). В конце концов, после написания своего плагина, помимо решения основной задачи, будут приобретены определенные новый знания и навыки, чего нельзя достичь, скачивая чужие программы.

SDK и интерфейс

Чтобы писать свои плагины, сказано на сайте WinAmp, нужно иметь три вещи (в моем вольном переводе): знание языка С++ (чтобы было на чем писать), компилятор с этого языка (чтобы было чем компилировать) и Windows (чтобы было на чем запускать). Вроде бы все есть, поэтому вперед.

Сначала нужно скачать WinAmp SDK. SDK, на мой взгляд, слишком громкое название для этого архива, хотя... Там есть примеры, которые представляю собой заготовки для всех возможных типов плагинов, а также набор H-файлов, описывающих структуры и константы для сборки плагинов. Вот с документацией туговато, только комментарии в исходниках. Будем разбираться.

Нас интересует так называемый "generic plugin" - т.к. мы не собираемся заниматься ни вводом (т.е. чтением музыки из файлов разных форматов), ни выводом (проигрыванием на различных устройствах), ни обработкой звука, ни визуализацией. Сразу отмечу одну интересную особенность, которая очень простая, но может заставить потерять много времени, если не знать, в чем тут дело: WinAmp определяет тип плагина по его имени. В частности, для плагина общего назначения имя DLL-ки должно начинаться с gen_. Если плагин называется не так, то загружаться в качестве "generic plugin" он не будет.

Интерфейс плагинов этого типа (может и других тоже, я не смотрел) достаточно простой: это динамически загружаемая библиотека (DLL), у которой есть экспортируемая функция winampGetGeneralPurposePlugin. Эта функция не принимает никаких аргументов, а возвращает указатель на частично заполненую структуру типа winampGeneralPurposePlugin, который объявлен следующим образом

Typedef struct { int version; // Версия структуры (значение 0x10) char *description; // Описание плагина int (*init)(); // Указатель на функцию инициализации void (*config)(); // Указатель на функцию настройки void (*quit)(); // Указатель на функцию финализации HWND hwndParent; // Хэндл главного окна программы WinAmp HINSTANCE hDllInstance; // Хэндл загруженной DLL плагина } winampGeneralPurposePlugin;

Взаимодействие плагина с программой WinAmp (далее, для краткости, "программа") происходит следующим образом: программа загружает плагин и вызывает у него функцию winampGetGeneralPurposePlugin. Плагин должен создать структуру типа winampGeneralPurposePlugin, запомнить указатель на нее для будущего использования, заполнить поля version (фиксированное значение 0x10), description, init, config, quit и вернуть указатель.

Следующий раз плагин получит управление, когда программа вызовет его функцию init (указатель на нее мы сохранили в структуре). К этому моменту программа заполнит оставшиеся два поля в структуре: hwndParent и hDllInstance. В функции init плагин должен выполнить всю необходимую для своей работы инициализацию и вернуть 0 в случае успеха.

При завершении работы программы будет вызвана функция quit, где, логично предположить, нужно освободить все, что было занято при init"е и выполнить все прочие действия по корректной финализации.

Третья функция, config, вызывается, когда пользователь выбрал плагин в диалоге свойств программы и нажал кнопку "Configure...".

Интерфейс пользователя

Чтобы быть последовательным в описании процесса разработки софта, нужно перед тем, как рассказывать про внутреннюю реализацию, упомянуть про интерфейс пользователя. Я не стал придумывать для такого простого плагина сложный интерфейс, он сделан максимально простым без особого ущерба для функциональности.

После запуска плагин сразу начинает работать, выключить его можно только выгрузив из программы. При работе все нажатия заданных клавиш вызывают выполнение ассоциированных с ними функций программы "Стоп", "Воспроизведение", "Пауза", "Воспроизведение/Пауза", "Следующая песня", "Предыдущая песня".

Настройки плагина хранятся в реестре, в ветке HKEY_CURRENT_USER\Software\Winamp\Plugins\DenVo\Simple_Keys . Они представляют собой DWORD-значения с кодами клавиш и модификаторов, их имена соответствуют выполняемым функциям. Сейчас поддерживаются следующие имена/функции: "Stop", "Play", "Pause", "PlayPause", "PrevTrack", "NextTrack". Каждому имени соответствует функция (из названия понятно какая). Код клавиши, записанный в реестре, представляет собой двойное слово (4 байта) состоит из двух частей: в старших двух байтах хранится модификатор нажатия (флаги MOD_ALT, MOD_CTRL, MOD_SHIFT, MOD_WIN), а сам виртуальный код клавиши записан в двух младших байтах. Плагин читает список кодов клавиш при загрузке, а также после нажатия кнопки "Да" в окне настроек. Само это окно представляет собой простой MessageBox с краткой информацией о плагине.

Скачать готовый плагин

Здесь настал логичный момент, чтобы те, кого не интересуют тонкости внутренней реализации плагина могли его просто скачать, установить и использовать. Это можно сделать на . Там же находится подробная инструкция пользователя с описанием процедуры настройки.

Метод реализации

Первая версия программы использовала установку глобального фильтра (hook) на систему. Она неплохо работала, но клавиатурный фильтр почему-то не предотвращал передачу обработанной клавиши дальше приложению, что для алфавитных клавиш было неприятно:) Потом я нашел, что для таких вещей предлагают еще использовать фильтр на системные сообщения, но это решение мне показалось еще более загрузным для системы. В той версии ничего особенно интересного не было: при загрузке DLL создаем общую область памяти для параметров (т.к. DLL фильтра выполняется в адресных пространствах различных процессов), устновка фильтра во время выполнения init, функция фильтра проверяет приходящие клавиши и вызывает выполнение команд программы, при выполнении quit снимается фильтр, при выгрузке библиотеки освобождается общая память. Поскольку специфичные для плагина вещи остались и в новой версии плагина, код старой я приводить не буду. Если будет интерес к фильтрам, напишу про них отдельную статью, пишите комментарии.

Новая версия была написана с использованием "горячих клавиш". Этот способ мне кажется более простым в программировании, свободным от побочных эффектов типа проникновения обработанной клавиши в текущую программу и менее загрузным для системы, т.к. обработка клавиатуры остается в Windows, а плагин вызывается только при нажатии зарегистрированных комбинаций клавиш.

Алгоритмы и реализация

Блок-схема получившегося плагина приведена на рисунке.

Краткое описание простых функций:

  • Инициализация - вызывает установку фильтра
  • Финализация - снимает снятие фильтра
  • Настройка - выводит диалог "О программе", где по нажатию одной из кнопок можно снять и заново установить фильтр (при этом перечитывается конфигурация, это единственный способ поменять ее, не перезапуская программу)

Теперь подробно о содержательных функциях.

Функция регистрации плагина , возвращающая указатель на структуру типа winampGeneralPurposePlugin , имеет одну особенность: она должна быть экспортируемой из DLL, а также объявлена в "С"-стиле, чтобы компилятор не добавлял в имя информации об аргументах. Конкретные "заклинания", которые нужно написать в объявлении такой функции, зависят от вашего компилятора. Для Visual C++ это extern "C" __declspec(dllexport) , для Borland C++ Builder extern "C" winampGeneralPurposePlugin * __stdcall __declspec(dllexport) (обратите внимание на тип возвращаемого значения, который вставлен между двумя частями "заклинания").

Установка фильтра состоит из трех этапов: чтение конфигурации из реестра, подмена функции окна программы, регистрация "горячих клавиш".

Чтение конфигурации ничего хитрого не содержит: открываем нужный ключ реестра и последовательно пытаемся читать из него значения. Если открыть не удалось, загружаем значения по умолчанию. Если удалось - последовательно читаем значения кодов клавиш для каждого действия. Закрываем ключ, чтобы не занимать память.

HKEY registryKey; if(ERROR_SUCCESS != RegOpenKeyEx(HKEY_CURRENT_USER, SETTINGS_REG_KEY, 0, KEY_READ, ®istryKey)) { for(unsigned n = 0; n < ActionCount; ++ n) ActionList[n].KeyCode = ActionList[n].DefKeyCode; MessageBox(KeyControlPlugin.hwndParent, TEXT_NO_REGISTRY_KEYS, TEXT_PLUGIN_TITLE, MB_ICONEXCLAMATION); return true; } for(unsigned n = 0; n < ActionCount; ++ n) { DWORD value; DWORD valueSize = sizeof value; if(ERROR_SUCCESS == RegQueryValueEx(registryKey, ActionList[n].RegName, NULL, NULL, (char *)&value, &valueSize)) ActionList[n].KeyCode = value; else ActionList[n].KeyCode = 0; } RegCloseKey(registryKey);

Подмена функции окна используется потому, что сообщение о нажатии "горячих клавиш" будет приходить именно в функцию окна, а стандартная не будет знать, что с ними делать. Сама подмена очень простая - читаем старый указатель на функцию она и устанавливаем новый одним вызовом SetWindowLong. Старый сохраняем чтобы обрабатывать все сообщения, кроме "горячих клавиш".

OriginalWndProc = (WNDPROC)SetWindowLong(KeyControlPlugin.hwndParent, GWL_WNDPROC, (LONG)HookWndProc);

Регистрация "горячих клавиш" производится вызовом функции RegisterHotKey: ей передается хэндл окна, которое будет получать сообщение WM_HOTKEY , уникальный в рамках приложения идентификатор "горячей клавиши" (он будет указываться в сообщении, здесь в качестве идентификатора "горячей клавиши" используем идентификатор команды), модификатор клавиши (флаги, определяющие, нажимается клавиша одна или с Ctrl, Alt, Shift, Win) и собственно виртуальный код клавиши. Сама функция подробно описана в MSDN , так что примера из моего кода будет достаточно. Чтобы не заводить отдельные ключи в реестре под настройки модификаторов клавиш, я храню их в старших двух байтах кода клавиши, а сам виртуальный код клавиши - в двух младших.

Bool IsOk = true; for(unsigned n = 0; n < ActionCount; ++ n) { if(ActionList[n].KeyCode) { IsOk &= (RegisterHotKey(KeyControlPlugin.hwndParent, ActionList[n].Id, ActionList[n].KeyCode >> 16, ActionList[n].KeyCode & 0xFFFF) != 0); } }

Снятие фильтра состоит из двух этапов: восстановление функции окна и отмена регистрации "горячих клавиш".

Восстановление функции окна осуществляется так же, как и установка, только функции SetWindowLong передается сохраненный ранее указатель на оригинальную функцию окна.

SetWindowLong(KeyControlPlugin.hwndParent, GWL_WNDPROC, (LONG)OriginalWndProc);

Отмена регистрации "горячих клавиш" выполняется вызовом UnregisterHotKey для всех возможных идентификаторов, чтобы не думать, какие были установлены, а какие нет. Параметры опять же интуитивно понятны: хэндл окна, для которого ранее регистрировали клавиши, и идентификатор "горячей клавиши". Описание функции в MSDN .

For(unsigned n = 0; n < ActionCount; ++ n) UnregisterHotKey(KeyControlPlugin.hwndParent, ActionList[n].Id);

Рассмотрим функцию окна . Ее задача: обрабатывать сообщения WM_HOTKEY с "нашими" идентификаторами "горячих клавиш" и вызывать оригинальную функцию окна для всех остальных сообщений. Решается достаточно просто: мы посылаем функции окна программы сообщения WM_COMMAND о нажатии той или иной кнопки. Константы WINAMP_BUTTON1 .. WINAMP_BUTTON5 - идентификаторы кнопок ровно в том порядке, как они находятся на панели WinAmp, от "предыдущий трек" до "следующий трек".

LRESULT CALLBACK HookWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { if(message == WM_HOTKEY) { HWND winAmpWnd = KeyControlPlugin.hwndParent; switch(wParam) { case WA_ACTION_STOP: PostMessage(winAmpWnd, WM_COMMAND, WINAMP_BUTTON4, 0); break; case WA_ACTION_PLAY: PostMessage(winAmpWnd, WM_COMMAND, WINAMP_BUTTON2, 0); break; case WA_ACTION_PAUSE: PostMessage(winAmpWnd, WM_COMMAND, WINAMP_BUTTON3, 0); break; case WA_ACTION_PLAY_PAUSE: PostMessage(winAmpWnd, WM_COMMAND, (SendMessage(winAmpWnd, WM_WA_IPC, 0, IPC_ISPLAYING) == 1) ? WINAMP_BUTTON3: WINAMP_BUTTON2, 0); break; case WA_ACTION_PREV_TRACK: PostMessage(winAmpWnd, WM_COMMAND, WINAMP_BUTTON1, 0); break; case WA_ACTION_NEXT_TRACK: PostMessage(winAmpWnd, WM_COMMAND, WINAMP_BUTTON5, 0); break; default: return CallWindowProc(OriginalWndProc, hwnd, message, wParam, lParam); } return 1; } return CallWindowProc(OriginalWndProc, hwnd, message, wParam, lParam); }

Обратите внимание на обработку "горячей клавиши" с идентификатором WA_ACTION_PLAY_PAUSE . Сначала вызывается SendMessage(winAmpWnd, WM_WA_IPC, 0, IPC_ISPLAYING) - это запрос состояния проигрывателя. Функция вернет 1, если сейчас играет музыка, 3 - если стоит на "паузе", 0 - если воспроизведение совсем остановлено. Если вернули 1, ставим на паузу, если что-то другое - запускаем воспроизведение.

За рамками этого краткого изложения осталась обработка ошибок, вывод различных сервисных сообщений и остальные тонкости, которые отличают реализацию алгоритма от программы, но вы сможете реализовать их самостоятельно, в своем собственном проекте. Я же надеюсь, что после прочтения этой статьи вы пополнили свой программистский багаж знаний полезными приемами разработки плагинов для WinAmp, по крайней мере теперь знаете, с чего начать.


Русская/Английская версия c корректным запуском!

FxSound Enhancer (бывший DFX Audio Enhancer) - звуковой плагин для улучшения звучания плееров AIMP3, Winamp. Качество звучания значительно улучшается за счет совершенствования частотных характеристик, для чего и предназначен этот плагин. С помощью FxSound Enhancer устраняются два главных недостатка - срез высоких частот и недостаточное разделение стереобазы и ее глубины, а также добавляются режимы объемного звучания и супербаса.
При помощи этого инструмента вы получите высочайшее качество звука и сможете услышать музыку такой чистоты, как будто вы сидите в концертном зале или рядом с музыкантом. Стоит отметить, что все настройки FxSound Enhancer располагаются в одном окне интерфейса инструмента. Плагин обладает приятным и нетрудным в настройках и использовании пользовательский интерфейс. FxSound работает на своем драйвере как виртуальная звуковая карта (устройство воспроизвдения).

Системные требования:
Windows Vista | 7 | 8 | 8.1 | 10

Торрент Звуковой плагин для AIMP3, Winamp - FxSound Enhancer 13.007 RePack by KpoJIuK подробно:
DFX улучшает проигрываемый звук по следующим направлениям:
·Harmonic Fidelity Restoration - компенсация высоких частот, обрезанных в процессе кодирования ради сокращения размеров файла;
·Ambience Processing - компенсирует глубину звучания и реализует т.н. "эффект окружения" при проигрывании музыкальной композиции;
·3D Surround Processing - функция по характеру модифицирования проигрываемых композиций сходная с предыдущей, но "делает акцент" именно на создании псевдотрехмерного звука хорошего качества даже на двухколоночных аудио-системах;
·Dynamic Gain Boosting - компенсация "зажатости" проигрываемого звука, придание ему "динамической" составляюшей и усиление интенсивности звучания; с точки зрения ведущего файловой секции 3DNews этот функциональный модуль DFX менее всего влияет на проигрывание звука;
·HyperBass Boost - с функциональной точки зрения, это антипод Harmonic Fidelity Restoration, компенсирует нижние частоты и отвечает за добавление в проигрываемую композицию глубокого и богатого баса;
·Headphones Output Optimization - используется, если пользователь прослушивает музыку в наушниках, модуль модифицирует звук таким образом, что у человека создается иллюзия, что источник звука не "сидит" прямо в ушах, а находится спереди, благодаря чему субъективно звук становится более приятным, естественным и менее напрягающим.

Новые возможности и улучшения:
·Автоматический выбор пресета в ассоциитируемыми песнями
·Бэкап и восстановление собственных пресетов
·10-полосный аудио спектр-анализатор
·Улучшенный пользовательский контроль
·Новый пользовательский интерфейс
·Поддержка 64-битных Windows

Особенности сборки:
·Тип: установка
·Языки: русский, english
·Активация: SiCaril

Параметры командной строки:
·Тихая установка русской версии: /S /RU
·Тихая установка английской версии: /S /EN
·Выбор места установки: /D=ПУТЬ

Параметр /D=PATH следует указывать самым последним
Например: FxSound.Enhancer.v13.007.exe /S /RU /D=C:\MyProgram

Примечание!!! При установке, на первой странице установщика, будет предложено изменить домашнюю страницу браузера. Не забудьте снять галочку.

Программа Winamp является, практически, стандартом де-факто среди программ для про-слушивания музыки. Ее можно найти на большинстве персональных компьютеров.

Но ее возможности не ограничиваются только лишь воспроизведением музыкальных файлов. Благодаря поддержке плагинов, можно расширять ее возможности. WinAmp поддерживает следующие виды плагинов:

Рассмотрим каждый вид плагинов.

Благодаря этим плагинам, ваш проигрыватель можно научить понимать не только музыку в формате MP3, но и файлы других фоРасширяем возможности Winampрматов. Например, можно научить Winamp показывать видео или играть MIDI-файлы, прослушивать компакт-диски.

Для примера, рассмотрим настройку плагина, позволяющего просматривать видеофайлы с помощью Winamp.

1. Откройте Winamp. Для этого достаточно дважды щелкнуть по его значку на «Рабочем столе», либо один раз щелкнуть по такому же значку на панели инструментов быстрого запуска, которая находится около кнопки «Пуск».
2. Нажмите комбинацию клавиш «Ctrl+K».
3. Щелкните по категории «Input» раздела «Plug-ins».
4. Щелкните на названии плагина, который хотим настроить. В нашем случае, это «Porzillosoft Video Plugin».
5. Щелкните по кнопке «Configure». На экране появляется окно настройки (рис. 1). В этом окне можно настроить отображение на экране панели времени при просмотре фильма, формат вывода времени на этой панели и цвет фона.
6. Здесь же можно сохранить внесенные изменения или загрузить ранее созданные настрой-ки.
7. После окончания настройки щелкните по кнопке «Close».
8. Щелкните по кнопке «Close», чтобы закрыть окно «Winamp Preferences».

Теперь вы можете смотреть видеофайлы не только с помощью Windows Media Player, но и в Winamp.

Рисунок 1. Окно настройки плагина для просмотра видеофайлов.

Позволяют управлять выводом звука. Например, с помощью этих плагинов можно преобра-зовывать содержимое музыкальных компакт-дисков в файлы или наоборот, записывать фай-лы из плейлиста сразу на компакт-диск.

Давайте рассмотрим настройку плагина для копирования музыкальных компакт-дисков в файлы на жесткий диск компьютера:

1. Откройте Winamp;

3. Щелкните по категории «Output» раздела «Plug-ins»;
4. Щелчком мыши выберите из списка плагин с названием «Nullsoft Disk Writer Plugin»;
5. Щелкните по кнопке «Configure». На экране появляется окно настройки плагина (рис. 2);
6. Чтобы указать папку, куда будут копироваться файлы с компакт-диска, щелкните по кнопке, расположенной под надписью «Output directory:». По умолчанию, файлы будут создаваться в корневой папке, что и отражено в названии кнопки;
7. Чуть ниже можно указать формат создаваемых файлов. Для установки другого формата вывода необходимо щелкнуть по кнопке с тремя точками, расположенной слева от опи-сания текущего формата;
8. Если есть необходимость записать содержимое компакт-диска в один большой звуковой файл, щелчком мыши установите галочку «Enable» внутри рамки «Single-file mode». В этом случае также появляется возможность изменить формат создаваемого файла;
9. Установка галочки «Kill null samples at the beginning» позволяет удалить тишину в начале каждой композиции;
10. Основные настройки сделаны. Щелкните по кнопке «ОК»;
11. Щелкните по кнопке «Close», чтобы закрыть окно «Winamp Preferences»;
12. Вставьте компакт-диск в привод компакт-дисков и запустите его воспроизведение. При этом музыки слышно не будет, а в указанной вами папке будут создаваться звуковые файлы.

Следует помнить, что активным является тот плагин вывода, который вы выделили щелчком мыши. Чтобы потом опять слушать музыку, выберите плагин «WaveOut output» или «DirectDound output».

Рисунок 2. Окно настройки плагина для копирования компакт-дисков на жесткий диск.

Одна из самых популярных категорий. Позволяют воспроизводить различные видеоэффекты при воспроизведении музыки. Причем эффекты динамично изменяются в такт музыке. Вы-глядит это очень красиво.

Рассмотрим настройку такого плагина на примере «Nullsoft Tiny Fullscreen 2001 »:

1. Откройте Winamp;
2. Нажмите комбинацию клавиш «Ctrl+K»;
3. Щелкните по категории «Visualization» раздела «Plug-ins»;
4. Щелчком мыши выберите из списка плагин с названием «Nullsoft Tiny Fullscreen 2001»;
5. Щелкните по кнопке «Configure». На экране появляется окно настройки плагина (рис. 3);
6. В раскрывающемся списке выберите разрешение экрана, а в самом низу окна, перемещая бегунок, установите скорость затухания эффектов;
7. Можно также поэкспериментировать со значениями «Interpolation grid size» (Размер сетки интерполяции);
8. После того, как настройки произведены, щелкните по кнопке «Close»;
9. Щелкните по кнопке «Close» окна «Winamp Preferences»;
10. Теперь, при проигрывании музыки, нажмите одновременно «Ctrl+Shift+K» и экран ваше-го монитора будет заполнен красивыми визуальными эффектами. Для выключения эф-фектов достаточно нажать клавишу «ESC» на клавиатуре.

Рисунок 3. Окно настройки плагина визуализации.

Данный вид плагинов позволяет добавлять различные эффекты к звучанию и даже улучшать его.
Как правило, такие плагины не настраиваются. Но при запуске Winamp открывается допол-нительное окно, в котором можно изменять звучание. Например, в окне плагина «DFX» (рис. 4) с помощью бегунков можно насыщать композицию объемным (3D) звучанием, эхом, до-полнительными басами и другими эффектами. Для отключения того или иного эффекта дос-таточно щелкнуть по кнопке слева от соответствующего ползунка. Сразу выключить все эф-фекты позволяет кнопка «ON» в левом нижнем углу окна «DFX».

Рисунок 4. Окно плагина DSP-эффектов

Плагины общего назначения позволяют, например, добавить дополнительные возможности управления Winamp, как это делает плагин «Tray Advanced Controls». Он выводит органы управления Winamp в системную область (systray), позволяя управлять программой даже не переключаясь на нее.
Для настройки этого плагина выполняем следующие действия:
1. Откройте Winamp;
2. Нажмите комбинацию клавиш «Ctrl+K»;
3. Щелкните по категории «General Purpose» раздела «Plug-ins»;
4. Щелчком мыши выберите из списка плагин «Winamp Advanced Controls Plug-in»;
5. Щелкните по кнопке «Configure». На экране появится окно настройки плагина (рис. 5).
6. Здесь можно активизировать горячие клавиши (галочка «Enable Hotkeys»), отображение названия песни во всплывающей подсказке (галочка «Song title balloon»), выбрать нали-чие либо полосы поиска, либо полосы громкости в системной области, а также назначить новые горячие клавиши для управления Winamp.
Здесь было рассмотрено лишь несколько из сотен плагинов, среди которых есть и игры и танцующие под музыку очаровательные девушки и бьющиеся на мечах рыцари. Каждый найдет себе что-нибудь по душе. Пробуйте, смотрите и не пожалеете.

Рисунок 5. Окно настройки плагина управления Winamp.

Важно

Как устанавливать плагины, будет рассмотрено чуть ниже. Но, прежде чем устанавливать, плагины, необходимо их скачать. На сайте разработчика программы Winamp http://www.winamp.com/plugins находится много интересных плагинов. Можно скачивать их и с других сайтов.
Последовательность действий по установке плагина рассмотрим на примере Video Object Plugin, предназначенного для просмотра видеофайлов формата MPEG-4.
1. Чаще всего файлы для установки плагинов выполнены в виде программ. Щелкните дваж-ды по значку плагина. На экране возникает окно с предложением указать место на жест-ком диске, куда следует установить плагин.
2. Если вы при установке Winamp не меняли место для его установки, то щелкните по кноп-ке «Install». Если же место установки было другим, следует указать его, щелкнув по кнопке «Browse…», в появившемся окне выбрав папку, куда был установлен Winamp и подтвердив выбор щелчком по кнопке «ОК». После этого, опять же, щелкните по кнопке «Install».
3. Теперь остается дождаться появления на экране окна с кнопкой «Close», после чего мож-но щелкнуть по этой кнопке. Установка завершена.
4. Остается запустить Winamp и настроить плагин.

Глоссарий
Плагин - от англ. Plug-in. Дополнение к программе, добавляющее новые возможности.
MIDI-файлы - специальные файлы, содержащие только музыку, не позволяющие воспроиз-водить голос.
Разрешение экрана - геометрический размер изображения на экране монитора в точках. На-пример, 800x600 точек. У каждого монитора размер точки свой. Чем выше разрешение, тем мельче объекты на экране.

Каким программным аудиоплейером вы пользуетесь? Наверняка подавляющее большинство наших читателей не задумываясь ответят: "Winamp’ом". Удобный интерфейс, "вылизанный" за годы совершенствования программы, высокое качество звучания, интеграция с Web и абсолютная бесплатность сделали его популярным во всем мире. Но немалую роль в этом сыграла и его расширяемость. Преимущество расширяе мости в том, что пользователь может дополнить Winamp необходимыми ему функциями — достаточно лишь загрузить из Internet соответствующий plug-in (представляющий собой файл с расширением.dll) и поместить его в папку plugins в каталоге плейера (по умолчанию c:program fileswinamp). А если они поставляются с автоматическим инсталлятором, то процедура установки оказывается еще проще. Таким образом, подключение плагина не озадачит даже начинающего пользователя — проблема, скорее, будет в их поиске и отборе действительно необходимых. Именно поэтому в данной статье мы попробуем дать описание ряда интересных plug-ins, разделив их на группы, как это сделано в окне настроек самого плейера. Если какой-нибуть из них придется вам по душе, достаточно просто открыть страничку с плагинами на сайте Winamp и набрать его название в поле поиска.

Input

Winamp Goes 3D — пожалуй, один из лучших визуализационных плагинов, использующих трехмерную графику. Как говорится, простенько и со вкусом
К сожалению, статичные скриншоты не могут передать всю красоту разворачивающихся на экране картин — это надо видеть в движении
Для Winamp существуют даже мини-игры — например, трехмерная гонка Speedway, запускаемая в окне броузера

Плагины этой группы отвечают за поддержку различных аудиоформатов (заметим, что сейчас можно найти plug-in практически для любого существующего формата). Если не помогут поиски на www.winamp.com (для облегчения задачи мы рекомендовали бы воспользоваться услугами поискового механизма сайта, поскольку в их каталоге разобраться подчас бывает очень и очень непросто), то стоит посмотреть на сайте разработчика формата. Не является исключением и музыка из популярных компьютерных игр. Помните потрясающий саундтрек из Unreal и Unreal Tournament? С помощью UMX-плагина его можно будет послушать в Winamp. Не забыты программистами и гораздо более старые игры, например серии Dune и Command & Conquer, музыка в которых записана в формате AUD, — в этом случае поможет плагин под названием AUD-Player. Более того, даже древние платформы пользуются заслуженным вниманием — плагины SidAmp и Oldsk00l MOD player позволяют воспроизводить звук для систем Commodore 64 и Amiga.

У внутреннего плагина Nullsoft CD/LineIn стоит настроить службу CDDB, с помощью которой Winamp автоматически будет загружать с заданного сайта названия треков проигрываемого в текущий момент аудиодиска.

Но, на наш взгляд, для прослушивания Audio CD лучше воспользоваться альтернативой — плагином CD Reader, который позволяет считывать с привода музыку "в цифре", даже если он не имеет выхода S/PDIF (через интерфейс IDE). Кроме того, он поддерживает службу CDDB. Здесь проявится еще одно преимущество плагина — он способен хранить информацию об аудиотреках в локальной базе данных (в файле cdplayer.ini, общем со стандартным CD-плейером Windows). Эти данные также можно редактировать в специальном окне, вызываемом комбинацией клавиш Alt+3 . Кстати, если собственно CDDB у вас "не подает признаков жизни", советуем переключиться на FreeDB (в настройках плагина следует ввести адрес, скажем, freedb. freedb.org:8880 ). Дело в том, что некоторое время назад была изменена схема лицензирования доступа к службе CDDB, причем далеко не в лучшую сторону, из-за чего многие плейеры (и, похоже, что в их числе и Winamp) перестали ее поддерживать. Да, чтобы заставить Winamp использовать именно CD Reader, следует удалить (или переименовать) "родной" плагин in_cdda.dll.

Но не только звук может воспроизводить Winamp, с помощью плагина VidAmp он становится полноценным видеоплейером. Такой вариант, конечно, далек от идеала, но он расширяет и без того большой диапазон поддерживаемых форматов форматами AVI и MPEG.

Output

Стандартные плагины DirectSound и waveOut позволяют выбирать устройство вывода, если у вас их несколько — в современном компьютере, кроме звуковой карты (PCI Audio), вполне может быть еще и встроенное в материнскую плату аудио. Кстати, в таком случае ПК легко превратить в два музыкальных центра: включив в разделе Options окна настроек Winamp опцию Allow multiple instances, запустив два плейера и указав для каждого из них свое устройство, можно слушать разные композиции через два комплекта колонок, расположенных в разных комнатах.

Галерея Plug-ins

Позволяет Winamp проигрывать файлы в формате Unreal Game Package.

Модуль для воспроизведения множества из популярных видеоформатов.

BASS module player

Возможность воспроизведения большинства трекерных файлов.

Управляет цветомузыкальной схемой, подключаемой к LPT-порту. На сайте разработчика приведены несколько примеров таких схем.

A3D Output Plug-in

Эффект пространственного звука на аудиокартах с поддержкой A3D.

Потрясающие трехмерные эффекты, синхронизируемые с музыкой.

Официальный плагин фильма Knight’s Tale.

Spectragon

Зрелищный, но ресурсоемкий модуль, использующий bumpmapping и динамический OpenGL свет.

HF — VII — Weekend Bliss

Эффектный набор пресетов для AVS.

Pig Pen

Игровой модуль для Winamp.

Frohmage

Набор резонансных фильтров для "психоделической" обработки звука.

Модуль, позволяющий регулировать многие параметры звука и изменять его тембральную окраску.

Playtime Winamp Plugin

Дополнение, собирающее статистику о каждом запуске Winamp и воспроизведенных треках, с возможностью публикации ее в Internet.

Center of management Winamp

Полезный модуль, позволяющий управлять Winamp с помощью невообразимого количества клавиатурных сокращений.

Стандартные плагины оснащены лишь самыми необходимыми функциями, поэтому не помешает установить Nullsoft Crossfade Output, который позволит композициям плавно "перетекать" одна в другую — это не просто приятно, это именно то, что нужно домашней дискотеке. Настройка такого плагина не отличается от настройки стандартных, и в общем случае она не требуется, чего не скажешь об SqrSoft Advanced Crossfade Plug-in. Всем он был бы хорош (обрабатывает начало и остановку воспроизведения, позволяет задавать пропорции композиций при их смешении), если бы не замедленная реакция на нажатия кнопок. Ее можно ускорить, задав меньший размер буфера и, соответственно, увеличив вероятность сбоев, так что применение этого плагина зависит от вкуса пользователя.

Из стандартных плагинов особый интерес представляет Disk Writer. Он преобразовывает звук в произвольном формате в привычный WAV-файл, доступный потом для редактирования в любом звуковом редакторе. В окне его настроек можно указать путь к папке, где должны быть сохранены полученные в результате файлы, имена которых будут иметь такой же вид, как и записи в playlist, но с расширением.wav.

Visualization

С помощью визуализационных плагинов Winamp сделает композиции развлечением не только для слуха, но и для зрения. В комплекте поставляется Advanced Visualization Plug-in — красивейшая вещь, позволяющая настраивать вид отображения, открывая таким образом просторы для творчества. Каждый отдельный вариант настроек может быть сохранен и использован позже — на сайте Winamp имеется множество примеров. Все возможности этого плагина лучше всего опишут скриншоты, потому что слов просто не хватит. Правда, гибкость сделала AVS требовательным к ресурсам, поэтому лучше применять более быстрые и порой даже более красивые плагины сторонних производителей, например Geiss, Jet, G-Force. Все они позволяют отображать различные виды спектров, обрабатывая их разнообразными эффектами и достигая просто неописуемого результата.

Необычно выглядит Keyboard Lights 2, использующий для визуализации звука… лампочки на клавиатуре. Не менее оригинальны и MouseVU, визуализирующий курсор мыши, и различные плагины, размещающие возле главного окна Winamp пару колонок, динамики которых реагируют на изменение звука, как настоящие. Примерами могут быть GCO621 speaker и различные варианты плагина Winamp Speakers. Еще более похожим на домашнюю аудиотехнику плейер сделает Homeboy Software Analog VU Meters, демонстрирующий аналоговые стрелочные индикаторы уровня записи.

Но все же наибольший интерес представляют plug-ins с трехмерной графикой. Здесь выделяются плагины от WildTangent: оригинальные сюжеты, качественное исполнение, приличное быстродействие не оставят равнодушным никого. Для тех, кто все же предпочитает более традиционный подход, основанный на гармонии цвета и музыки, но реализованный в полном 3D, подойдет Winamp Goes 3D, который также может быть настроен по вкусу пользователя. Единственный его недостаток — он условно-бесплатный, хотя без регистрации его функциональность не ограничивается. Если же вам не понравилась ни одна из описанных визуализаций, то можно подобрать подходящую на сайте Winamp.

Что же делать, если нравится сразу несколько плагинов и хочется включить их все и сразу? Тогда поможет Visualization Mux — он позволяет запускать одновременно несколько файлов.dll, отвечающих за визуализацию. Указать их нужно в окне настроек VisMux, посмотрев соответствующие имена библиотек в окне выбора визуализации. Но, к сожалению, такой подход не сработает для всех видов полноэкранных плагинов, а также для тех, которые используют API OpenGL и Glide.

DSP/effects

Эти плагины отвечают за цифровую обработку звука (DSP — Digital Signal Processing), позволяя улучшить его качество и исправить погрешности, внесенные алгоритмами сжатия с потерей качества. Для этого, например, предназначен плагин DFX. Он обрабатывает звук, обогащая его высокими частотами, которые "срезаются" кодированием в MP3 или WMA. Кроме того, он может добавлять пространственные эффекты, эффекты помещения, динамически корректировать громкость и усиливать басы. Полезность первой функции плагина не вызывает сомнений, она реально улучшает качество звука, тщательно вычисляя высокочастотные гармоники, "потерянные" сжатием. Использование остальных опций — дело вкуса, благо уровень их влияния можно изменять, а при желании даже исключить. Мы уверены, что путем экспериментов вы сумеете подобрать наиболее приятную для слуха настройку или даже несколько — поддержка пресетов позволит сохранить их все. К сожалению, данный плагин платный, но это и неудивительно, учитывая сложность алгоритмов.

Некоторые из возможностей DFX доступны в виде отдельных бесплатных модулей. Так, Channel DSP effects позволяет расширять стереобазу, что равнозначно эффекту 3D Surround, или добавлять эхо (ambience). Желаемый эффект нужно выбрать в выпадающем меню на закладке DSP/effects окна настройки Winamp.

Плагин AudioStocker PRO нормализует звук — уравнивает громкость разных композиций и их частей, заменяя собой Dynamic Boost. В его окне настроек можно указать желаемый результирующий уровень звука, диапазон усиления и уровень корректировки частотной характеристики, т. е. установить, в какой степени будут усиливаться "слабые" части спектра.

Еще один плагин из этой группы — PaceMaker tempo controller. Он позволяет контролировать темп и высоту звука абсолютно независимо друг от друга. Например, можно ускорить композицию и одновременно "утяжелить" ее или наоборот. Практического интереса это не представляет, но забавно иногда "подправить" темп надоевшей композиции или голос певца. Разобраться в управлении проблем не составит, но не следует забывать, что обработка звука этим плагином связана с потерями качества, и не всегда результат изменения высоты звучит естественно.

Как и в случае с визуализационными плагинами, может возникнуть потребность в использовании нескольких DSP одновременно. Но выход тоже существует — плагин MuchFX, который позволяет указать в своем окне необходимые эффекты. Очередность их следования в списке соответствует порядку передачи звука между плагинами (опыт показывает, что плагины, отвечающие за изменение темпа и высоты звука, следует применять первыми). MuchFX также позволяет сохранять выбранные комбинации эффектов, чтобы сделать доступными их в будущем.

General Purpose

Плагины общего назначения (так переводится название класса) отвечают за удобство управления плейером. Например, Winamp title bar control помещает в заголовок активного окна кнопки контроля воспроизведения, название композиции и время проигрывания, причем, какие именно кнопки будут отображаться и нужно ли показывать текст, решает пользователь. Подобные функции обеспечивают плагины: Nullsoft Windowshade Docker, помещающий в заголовок текущего окна весь Winamp, если он свернут в полосу, называемую Windowshade, и Nullsoft Tray Control, добавляющий в System Tray кнопки управления плейером, которые выбрал пользователь в окне настроек. Для тех, кто привык обходиться лишь горячими клавишами, предназначен Reproduction Control. Он позволяет определить соответствующие hot keys для всех основных функций, а также "заставить" Winamp автоматически начинать воспроизведение при запуске и загружаться при старте Windows, что вместе с корпусом в формфакторе ATX делает его отличным будильником. К сожалению, функции автоматического поиска треков и перехода к треку по его номеру в списке композиций оказались невостребованными.

Также интересен Resumer Plug-In, сохраняющий состояние плейера через заданные промежутки времени и восстанавливающий проигрывание при следующем запуске с той секунды, на которой было выполнено последнее сохранение. Winamp Alarm Plug-In сделает плейер этаким "напоминателем", позволяя создавать несколько записей с указанием композиции, которую нужно воспроизвести в определенное время в определенный день недели.

Вы еще не запутались в обилии музыкальных альбомов на своем жестком диске? Если да, то вам просто необходим плагин Album List. Он создает список альбомов, подобный стандартному списку треков, рассматривая отдельные каталоги как альбомы. Можно задать директории, в поддиректориях которых следует искать музыку, нужные форматы и способ отображения информации в окне. Приятно, что это окно, кроме всего прочего, поддерживает все скины к Winamp, т. е. меняется вместе с остальными.

Итого

В общей сложности в этой статье описано 39 плагинов. На первый взгляд — немало, однако на самом деле доступных на сегодня расширений Winamp на порядок больше. Кроме того, регулярно появляются новые plug-ins, да и разработчики уже существующих не стоят на месте, поэтому мы бы советовали регулярно заглядывать на winamp.com или, еще лучше, — на официальный сайт интересующего вас плагина, так как там, вполне вероятно, можно найти более свежую версию, чем на сайте плейера.