Winamp Wiki



Shoutcast Home | Shoutcast Server (DNAS) | Shoutcast Developer (API) | Shoutcast For Business & Revenue Generation | Shoutcast DSP (encoder Plug-In for Winamp)


Winamp is a media player for Windows, macOS and Android, originally developed by Justin Frankel and Dmitry Boldyrev by their company Nullsoft, which they later sold to AOL in 1999 for $80 million. It was then acquired by Radionomy in 2014. Since version 2 it has been sold as freemium and supports ex. Winamp Description. Winamp plays MPEG Layer 2 (MP2) and Layer 3 (MP3) audio streams and combines extensive functionality with an intuitive interface. Winamp has a full-featured pl. Winamp Description. Winamp plays MPEG Layer 2 (MP2) and Layer 3 (MP3) audio streams and combines extensive functionality with an intuitive interface. Winamp has a full-featured pl.

  • 2Getting Started
  • 3Configuration Window
    • 3.2Output Tab
      • 3.2.3Encoder Tab
    • 3.3Input Tab
    • 3.4About Tab
  • 4Known Issues

Introduction to the Source DSP

The aim of this document is to show you the different features offered by the Source DSP plug-in. Version 2 of the plug-in is designed to work only on Winamp 5.5 and higher due to better api usage and integration with the player. If you want to use the Source DSP in an alternative player, then it would need to support all of the required Winamp apis.

The key feature of the plug-in is the ability to use Winamp as a source to a DNAS server or a Transcoder / AutoDJ instance or any compatible tool which accepts SHOUTcast streams.

Additionally the plug-in will allow you to capture an audio input from the soundcard and its line-in or microphone inputs (section 3.3.2) subject to OS and the audio system.


Getting Started

To start using the Source DSP you need a configured and running DNAS server (sc_serv) or an alternative server to connect to like the Transcoder (sc_trans) and to have all of the login details required to connect as a source. The plug-in can be used as either a full full source or it can be used as a DJ connection in the case of being used with sc_trans.


Installing the Plug-in

Select Source DSP plug-in in Winamp

The DSP plugin can be downloaded for free at shoutcast.com

The installer will detect the Winamp install on your machine and will then install it to the correct location. If the detected Winamp version is prior to v5.5 or if there is no winamp.exe present in the folder chosen then the installer will abort the installation.

Once installed, if you have not chosen to make the Source DSP the default DSP plug-in, you will need to open Winamp and go to the following location:

follwed by selecting the 'Nullsoft SHOUTcast Source DSP' entry shown in the plug-in list.

Winamp 64 bit download

Configuration Window

The configuration window is the main interface of the plug-in and is where login details for the connection to the server can be changed or the current status viewed.

When the configuration window is closed then any active connections will be closed. If you want to hide the window then you can click use the minimise button on the window and click on the notification area icon added when the minimise happened.


Summary Tab

SHOUTcast Source Summary Tab

Status / Info : This will show information about the status of the 5 possible outputs the plug-in is able to provide going from not connected to current duration of the connection.

Active Input Device : This allows you to toggle between using Winamp and the configured soundcard input as well seeing the current audio capture mode. For more configuration options go to the 'Input Tab' (see section 3.3).

Input Meters : These show the current and peak audio level of the left and right channels as is being passed through the plug-ins core. This can aid in seeing if the input source is possibly not working or to check the audio is clipped.

Output Tab

SHOUTcast Source Output Tab - Login settings

This tab allows you to configure the 5 separate outputs the plug-in is able to generate where the settings for the output are selected by clicking the required item in the list.

Status : This will show the current information about the output source ranging from not being connected to error messages due to invalid passwords to running correctly.

Auto Connect : This will make the plug-in attempt to run this output as soon as it is started or when the option is checked if not already running when checked.

Connect / Abort / Disconnect / Kill Button : This allows you to start a connection, abort a connection try or kill / disconnect an active connection. If 'Auto Connect' is checked and you click this for a disconnect action then the plug-in automatically re-starts the connection.


Login Tab

This tab allows you to specify the details needed for connecting to a DNAS server.

Server Address : This is the address of the server to connect to and will depend upon the setup which is being used. If the server being connected to is on the same machine then 'localhost' can be entered, otherwise the exact IP or DNS name of the server e.g. myserver.com needs to be entered here.

Port : This is the port related to the 'address' of the server to connect to. This needs to match 'portbase' (DNAS Server - section 4.8) or 'serverport' (Transcoder - section 3.11) if connecting to the official tools or the port value given to use.

Stream ID : This is the identifier used to identify the source to the server when using a SHOUTcast 2 supporting setup. This needs to match 'streamid' (DNAS Server - section 4.8) or 'streamid' (Transcoder - section 3.11) if connecting to the official tools or the port value given to use.

Winamp

DJ / User ID : This is the user id as specified on the server for the type of connection the plug-in is being asked to make. Examples of using this would be the 'djlogin' value from Transcoder - section 3.3 though this depends on the server configuration being used. Most likely you will be provided with a user id only if it is applicable to your setup.

Password : This is the password required for accessing the server (if set on the server). This needs to match 'password' (DNAS Server - section 4.8) or 'password' (Transcoder - section 3.11) if connecting to the official tools.

Automatic reconnection on connection failure : This will make the plug-in attempt to connect back to the server if there is a break in the connection.

Reconnection timeout : This is the number of seconds for the plug-in to wait in-between any connection attempts which fail before it will try again.

Use SHOUTcast v1 mode (for legacy servers) : This controls the mode the plug-in will run as. When checked it will create a SHOUTcast v1 connection otherwise it will create a SHOUTcast v2 connection (this is the default on new installs).

Not setting the correct mode for the server you want to connect to will cause the connection attempt to fail or enter into what appears to be a hung state where you are likely to see a 'Cipher response received' if connecting in v2 mode to v1 server. If the plug-in determines this is likely to have happened then it will show the following in status area:


When SHOUTcast v2 mode is enabled the information panel displayed below this option shows the following message:

When SHOUTcast v1 mode is enabled the information panel displayed below this option shows the following message:

Directory Tab

This tab allows you to specify values specific to the stream for being listed or for what is provided to listeners when they connect to the DNAS server based on the version set.

SHOUTcast Source Output Directory Tab

Make this server public (Recommended) : With this enabled, the stream is indicated as being allowed to appear in the SHOUTcast Directory. This will enable options as applicable based also on the mode the plug-in is set to run as.

Name : This is the name you want to use for the source (often what will be used in SHOUTcast Directory listing).

URL : This is the url for the stream allowing listeners to view or get more information.

Genre : This is the genre for the source and is used to categorise the stream if listed on the SHOUTcast Directory listing. Select the genre from the arrow button menu. It is not possible to manually enter the genre and the input field is read-only.

Arrow Button : This will show a menu with known genres and sub-genres allowed for any SHOUTcast Directory listings. This will only be enabled if using v1 mode or if using v2 mode and 'Make this server public' is unchecked.

AIM / ICQ / IRC : These allow you to specify some contact information for clients though support of these fields is only available when using SHOUTcat v1 mode.

Encoder Tab

SHOUTcast Source Output Encoder Tab

This tab allows you to specify the encoder to be used to create the output stream from the input stream the plug-in gets. The following encoders are available with the plug-in:

The AAC (actually ADTS-AAC) encoding is provided by enc_aacplus.dll (Winamp 5.1 to 5.61) or enc_fhgaac.dll (Winamp 5.62 and up). If this is not detected in the Winamp plug-ins folder then only MP3 encoding is available.

Based on the encoder selected, the 'encoder settings' section will provide different options for controlling the encoder settings as either a button to open a configuration window or a dropdown list with options to choose from.


Save Encoded Output

This allows you to make a backup of the stream audio data sent to the DNAS server.

Save a copy of the encoded stream audio : Enables or disables saving a copy of the audio.

Titles Tab

SHOUTcast Source Output Titles Tab

This tab allows you to specify how the stream metadata is gathered from Winamp or if it is manually entered with the options provided.

Disable title updates : This will prevent the Source DSP from sending any title updates.

Follow Winamp's title updates : his makes the Source DSP use Winamp's title updates for stream title updates, sent in the format based on the 'Use SHOUTcast v1 mode (for legacy servers)' setting.

Send next track title to the server (if applicable) : This sends the next track title to the server when using the v2 mode and if the plug-in can determine the next track.

Manual title updates : This will only send titles updates when 'Send Update' is pressed which uses the custom title information entered into the 'now' and 'next' fields (which are enabled as applicable to the mode in use).

Artwork

SHOUTcast Source Output Artwork in v2 mode

This tab allows you to specify whether in-stream artwork will be sent to the SHOUTcast server and if so the type of artwork which will be sent which can be for the station in general as well as per file artwork (much like album art display in most media players).

Official

Send in-stream artwork : Enables or disables sending of in-stream artwork.

Send artwork from the playing file (if available) : This sends artwork from the currently playing song to the server and acts in the same way as the album art view in most media players.

Send artwork for stream branding : This will send the image as selected in the box below to the server to act as the station or stream image.


Using the plug-in with a connection to a legacy server will cause the following notice to be shown:


The plug-in is only able to send in-stream artwork upto 511 KiB (523680 bytes) in size due to the SHOUTcast 2 protocol specification for metadata packets. If this limit is reached then the artwork will not be sent and instead the server will get a clear artwork message. This tab page will show if the artwork cannot be used.

Viewing the in-stream artwork depends on native playback support of SHOUTcast v2 streams in the player used by the client so without a compatible player the client will not be able to view it is as it is not available with SHOUTcast v1 streams.

Logs

SHOUTcast Source Output Logs Tab
Winamp wiki

This tab allows you to specify the logging options of the status messages as shown at the top of this page. Additionally it also provides the means to log the filepath of the next tracks (if known) which are going to be played by Winamp with support for logging of the track titles if using the xml output mode.


Enable logging of connection status messages : Enables or disables connection logging.

Clear log file on logging startup : This will reset the log everytime the plug-in starts.

Open log file... : This will open the log file in the associated program for .log files.

Clear log file : This will clear the log file if it exists. It will not remove the file.


Enable next track logging : This will enable creating a log file (based on the following options) of the known next tracks to be played by Winamp.

Save report as xml instead of plain text : Changing this will create the log as an xml file containing filepath and title with each item identified by the 'seq' attribute.

Winamp Wikipedia

Input Tab

SHOUTcast Source Input Tab in Winamp mode

Input Configuration

Input Device : This allows you to choose between using Winamp or your soundcard (usually the line-in) as the input source for the output stream the plug-in makes. Depending upon the selection made additional options will be shown below.

Input Levels : These show the current and peak audio level of the left and right channels as is being passed through the plug-ins core. This can aid in seeing if the input source is possibly not working or to check the audio is clipped.

Input Settings : When the soundcard input is selected then this allows for control over the sample rate used on the input source.


Soundcard Mixer Control

SHOUTcast Source Input Tab in soundcard mode
Choose Microphone : This will allow you to choose any of the input devices reported by the OS for use with the microphone overlay mode the plug-in provides.

Refresh Button : This allows you to refresh the capture device list on Vista / Windows 7 (is disabled otherwise) since the plug-in was started. This is useful if you have connected a device to the machine and now want to use it.

Open Mixer : This will open the operating systems recording and playback options (when using Windows 2000 / XP) which will allow you to change any required input and output settings for the system (though the amount you can change does depend upon the operating system being used - (see section 4.0)).

Music Level : This controls the Winamp output level (from no audio to full audio level).

BG Level : This controls the Winamp output level when the 'Push to Talk' option is active (from no audio to full audio level).

Mic Level : This controls the chosen microphone device's output level when the 'Push to Talk' option is active (from no audio to full audio level).

Fade Time : This controls the amount of time it takes for the audio to fade from the non 'Push to Talk' mode to 'Push to Talk' being the active mode in usage (from no fade i.e. instantly changes to 2.5 second fade duration).

Capture Device Fade Time : This controls the amount of time it takes for the selected capture device to fade from the non 'Push to Talk' mode to 'Push to Talk' being the active mode in usage (from no fade i.e. instantly changes to 2.5 second fade duration).

Push to Talk : When this is pressed then the chosen microphone device becomes the active input source as used by any active output streams (see section 3.2). When enabled this button will appear in an activated state.

Lock : When this is pressed it will toggle the 'Push to Talk' mode on or off depending on the current state of this option when it pressed. When enabled this will appear in an activated state along with the 'Push to Talk' button.

Arrow Button : This will show a menu with the option 'Enable 'Push to Talk' on startup' allowing for the mode to be re-enabled when the plug-in is started. This may be of use as the plug-in turns off the mode and sets the system levels back to the non-pushed mode when the plug-in's window is closed.

About Tab

This tab provides information about the version of the plug-in you are using - useful for determining if you are using an older version of the plug-in or when reporting issues.


Documentation and Support

This part of the tab provides links to access the available documentation and also for going to the SHOUTcast support forum if issues are being experienced with the plug-in.

The documentation is either the current version as shipped with the plug-in if selected during install (stored in <winampdir>PluginsSHOUTcast Source DSP).

Winamp Wiki

The support forums is accessed via http://forums.shoutcast.com/forumdisplay.php?f=140

Additional documentation is available here: SHOUTcast Source DSP Plug-in Configuration Examples

Known Issues

The following are currently known issue(s) to affect the currently released build of the Source DSP plug-in:


Soundcard Mixer Control

Issue: The soundcard mixer control does not work correctly or as expected on Vista / Windows 7 especially with the handling of the selected 'microphone' device due to changes in the audio system which prevent the capture handling from Windows 2000 / XP working in the same way. Windows 2000 / XP should still work as expected.

Workaround: The only obvious work around is to use the features the OS provides to enable the 'Listen to this device' option via the system's recording devices feature and then mix the levels with the controls the OS provides.

Expected Resolution: This issue is still being investigated and hopefully a solution will be provided to allow for control of the input device in unison with the selected 'microphone' device with-in the plug-ins interface when using this mode.


SHOUTcast 2 Cipher Key

If you find that you do need to change the uvoxcipherkey (DNAS Server - section 4.14) or the djcipher (Transcoder - section 3.3) in you sc_serv and / or sc_trans setups then you can change the cipher key the DSP uses. You will only need to do this if you get the following status message when making a connection:

This is done currently via editing 'Cipherkey' entry in dsp_sc.ini in your Winamp config folder where you just need to change the string after the equal sign to the value from 'uvoxcipherkey' or 'djcipher' depending upon what you are trying to connect to.

The dsp_sc.ini file can usually be found by entering %appdata%Winampplugins into the address bar in Windows Explorer. If it is not there then you should search for dsp_sc.ini and make sure to have the search program you are using to look for hidden files (this is just incase the OS is hiding the settings folder).


Example Configurations

If you are unsure of what to enter to get the Source DSP connected to the official tools, you should look at the Source DSP Plug-in Example Configurations. This shows you where to take configuration values from the official tool configuration file(s) and where in the plug-in configuration you need to enter them for the different operating modes available.

For 3rd party servers or broadcast tools, you may need to consult their documentation to determine from where you get the required configuration values.

Retrieved from 'http://wiki.shoutcast.com/index.php?title=Source_DSP_Plug-in&oldid=75335'

Wiki Main | Skin Developer | Visual Developer | Plug-in Developer | Online Service Developer | SHOUTcast Tools & Services | Articles Page | FAQ | Glossary

  • 1Plug-in Overview
    • 1.1Writing A Plug-in
    • 1.2Submitting Your Plug-in

Plug-in Overview

Writing A Plug-in

Winamp plug-ins are files that extend Winamp's functionality. There are currently seven different plug-in types, each of which extends Winamp in a particular way. Winamp plug-ins are implemented as 32-bit Windows DLLs. Here are the plug-in categories:

  1. Input plug-ins: Input plug-ins give Winamp the ability to play additional file types that aren't supported by Nullsoft directly.
  2. Output plug-ins: Output plug-ins allow Winamp to manifest audio data in different ways.
  3. General purpose plug-ins: Anything that needs to run continuously in the background or doesn't require audio processing qualifies as a General purpose plug-in.
  4. DSP/effect plug-ins: DSP Plug-ins manipulate audio data before actually being sent to the speakers (or whatever the Output plug-in decides to do with it).
  5. Visualization plug-ins: 'Vis' plug-ins display some sort of visual effect based on audio that's being decoded by Winamp.
  6. Language packs: Language packs are used to internationalize Winamp to the language of your choice.
  7. Media Library plug-ins: Media Library plug-ins extend the media library for instance, for portable devices such as iPods, accessing Media Library databases, etc.

Most of the plug-in types (with the exception of Language packs) export one function, which is used to query the plug-in of its interface. The way each plug-in is queried varies, and will be covered on a type-by-type basis.

All of the plug-ins are designed to be written in C or C++, using Microsoft Visual C++ 4.0 or later. Other people have reported success with writing some forms of plug-ins using Delphi, LCC, and Visual Basic. We don't use these alternate development platforms, so we can't really support development on them (writing this page alone took way too much time, wink). The Winamp forums are a good place to start.

Basic start

Check out the Beginner's Basic Plugin Guide.

Submitting Your Plug-in

Once your plug-in is bug-free, the ultimate step is to share your masterpiece with the world. This is where Winamp.com steps in. Submitting your plug-in will allow people all over the world to enjoy the fruits of your labor. To do this, just follow these steps:

  1. Go to http://www.winamp.com/user/submit
  2. Click the 'Submit a plug-in' button.
  3. Fill in the blanks:
    1. Name: The name of your plug-in.
    2. Comment: The short blurb that comes up when people browse the plug-ins page.
    3. Description: The longer blurb that is displayed when people view the plug-in details page.
    4. Categories: Choose Primary and/or Secondary (optional) categories to properly sort your plug-in.
    5. Thumbnail: Click on the 'Browse' button to find the .gif, .jpg, or .png file on your computer. Note: the image file dimensions should be no larger than 178px by 75px.
    6. Screenshot: (Full-sized screenshot of your plug-in.) Click on the 'Browse' button to find the .gif, .jpg, or .png file on your computer. Note: the image file dimensions should be no larger than 275px by 600px.
    7. Plug-in File: Click on the 'Browse' button to find your PiMP-ed .EXE file on your computer.
  4. Click the 'Submit' Button, and...
  5. Voila! Your plug-in is on its way to being displayed before the world.

Submission Checklist

Please ensure that your Plugin meets the following terms before submitting it to www.winamp.com:

  • Your Plugin is tested and won't blow away other's computers due to silly bugs. For getting your plugin tested, please post it in this forum first.
  • You have packed the Plugin with an installer that auto-detects the Winamp installation directory (or where the plugin should go to in order to work). We recommend using NSIS. It is free and you can find an example installer script here.
  • You havn't submitted the plugin already. If so, please use the 'edit' function for your plugin shown in your User Account Central.

Plug-in Category Descriptions

Please choose the categories thoughtfully. It will make finding your plug-in much easier if it is in the right categories.

AVS Presets: Any presets or APEs for Nullsoft's AVS plug-in.DSP/Effect: Manipulates audio data.Encoding: Plug-ins that encode media.Games: Any plug-in that takes input and rewards 'good' behavior.General: Does not depend on audio data to run.Input: Reads new audio file type.Language Packs: Translates Winamp to a new language.Output: Converts to new type of audio file or sends audio through alternate path.Plug-in Skins: Plug-ins that change the look and feel of Winamp.Portable Devices: Plug-ins that interact with removable media.Visualizations: Visualization ... plug-ins.

Tools

  • Visual Studio 6.0 or higher (Visual Studio 2003 is highly recommended.You can download a free copy of Visual Studio Express from Microsoft. Unfortunately it is a newer version and not full-featured and we cannot guarantee that the SDK examples will work properly with this edition.
  • Nullsoft Scriptable Install System or other installer software for packaging your completed plug-in. Check this example for creating a NSIS Installer for your plugin.
  • 7-Zip or other archiver for packaging your WSZ or WAL skin files.

SDK Documentation

The SDK includes everything you'll need to develop a Winamp plug-in. It also includes a basketful of example plug-ins to get you going. It is recommended that you create your plug-in as a subdirectory of the install path ('C:Program FilesWinamp SDK' by default) as the #include paths of the examples assume this.

Winamp 2021

Resources

Community Links

  • Forums: Winamp Developer Forum
  • Upload: Submit Your Plug-in
  • Browse: Download Plug-ins
Retrieved from 'http://wiki.winamp.com/index.php?title=Plug-in_Developer&oldid=62206'