AMIP Changelog

+ new feature
* fixed bug/improvement/changed behavior


  • [*] fixed crash when parsing id3v2 tags with ID3FID_INVOLVEDPEOPLE field


  • [*] %indexed and %listinsync were not reset after clearing cached playlist making impossible to detect if current playlist is actually in sync
  • [*] mIRC DDE requests sometimes arrive with first letters of the parameters capitalized which breaks API commands processing. For example, /dde mplug control play and stop commands didn't work. Now the values of DDE parameters from mIRC are lowercased explicitly
  • [*] fixed critical bug in regrep function (memory corruption when string became longer after replacing)


  • [*] fixed rare crash problem when closing search dialog, optimized keyboard navigation
  • [*] fixed playlist not synchronizing when current item changes and better sync for playlist containing radio streams
  • [*] "preset" API command didn't work at all (broken in 2.64)
  • [*] Yahoo Messenger 8 and 9 are working again with AMIP now playing feature


  • [*] iTunes: incorrect track reported when sorting by some columns
  • [*] fixed preset API command accepting 0-4 index, while it should accept 1-5
  • [*] announce command can use the wrong song info after invoking announcesong command
  • [*] fixed potential crash when using close window button in the Search dialog
  • [*] fixed crash when trying to write to the read-only file
  • [*] fb2k: v0.9.6+ compatible


  • [*] Fixed rare crash on exit when using Remote/API (thanks to badmadbug for reporting)
  • [+] %infoready variable, 0 when song info is not ready yet, like on player startup (for exmaple, API eval/format functions will return %name for %name instead of song). When this variable is 1, it's safe to evaluate and display song information
  • [*] RCF 0.9c + custom fixes (AMIP 2.63 is not compatible with clients using older ac.dll, you must update your clients if you are using any to work with this AMIP version)
  • [*] Remote API server will restart automatically if crashed
  • [*] "search" remote API command deadlock fixed
  • [*] /skype in exit callback didn't work
  • [*] File Mapping is now used for mIRC by default instead of DDE to avoid locks and crashes
  • [+] %configfile variable - full path to config ini file used by AMIP
  • [+] fb2k: proper conversion of 0-255 volume range to foobar dB volume range for set/get volume API commands


  • [*] Clipboard integration fix to work with international charactets without registry patching and in Vista (where patching registry doesn't help)
  • [*] Thread safety for playlist search and background playlist sync functions (could hang under some conditions in the previous versions)
  • [*] Thread safety for the Remote/API subsystem related to the playlist synchronization and passing playlist to other applications
  • [*] Client/Server startup/shutdown could hang because of incorrect use of thread functions, should be fixed now


  • [*] Fixed 'formatsong' to accept underscores (should be replaced with <UND>)
  • [+] Added 'rawformat' and 'rawformatsong' that get unquoted strings with spaces (which is not allowed for 'format' and 'formatsong' designed for mIRC). Useful for API calls.
  • [+] %channels variable (number of channls in the file, 1 for mono, 2 for stereo)
  • [+] %phwnd variable (Player HWND)
  • [*] 'control minimize' and 'control restore' commands will possibly work not only with Winamp
  • [+] 'setplpos index' command (sets playlist position, index is 1-based)
  • [*] %variable is now also supported for the API eval command (before only var_variable form was supported)


  • [*] /dde mplug cfgdump not working when auto announcement is disabled
  • [*] FLAC 1.1.2
  • [+] $strip(pattern,subject) - removes all matches to pattern from subject
  • [+] $regrep(pattern,replacement,subject) - searches subject for matches to pattern and replaces them with replacement
  • [+] $strrep(search,replace,subject) - this function returns a string with all occurences of search in subject replaced with the given replace value
  • [*] iTunes: statically linked with mfc71 lib, no more mfc71.dll dependancy
  • [*] If you need comma inside function, you can escape it with backslash
  • [+] %player variable, can be Winamp/QCD/foobar2000/iTunes
  • [+] Timer Callback - commands placed there will be invoked every second by default
  • [+] Simple Shared memory API (FileMapping), AMIP can now publish a shared memory structure with song info. Details coming soon. The following command was added: /shmem(file,type,action) where file is the name of memory mapped file (e.g. amip_api); type can be 'delphi' (without quotes) for pascal/delphi style TStrings and anything else for C style strings; action is either 'update' or 'clear', update updates the memory mapped file, clear clears it. Example that can be placed into the new Timer Callback: /shmem(fb2k_cm2,delphi,update), in the Exit Callback: /shmem(fb2k_cm2,delphi,clear)
  • [+] MSN Messenger 7 beta support (you need 7.0.604 or 7.0.0632), see screenshot:
  • [+] AMIP updates MSN Messenger info automatically, but if you want to do it on different events, use /msn(update) and /msn(clear) commands in the presets
  • [+] %fpath - directory containing file (NOT including trailing backslash)
  • [+] Title bar integration has been rewritten, now it's possible to change font and color (via AMIP Configurator)
  • [*] Ctrl+J dialog possible deadlock fixed (if parse delay is 0 and you end dialog while song is being parsed)
  • [*] Pipe replacement should work properly now (see bug #4015)
  • [*] Fixed exit on invalid tags when memory allocation fails
  • [+] !!! Remote Server API to control and query AMIP from another apps (via sockets). SDK coming soon
  • [+] !!! Socket Transport is introduced in addition to DDE and FileMapping. mIRC native socket transport DLL for AMIP is coming soon, command line Remote AMIP controller is also on the way
  • [+] Remote Call Framework (RCF) is built-in for Remote API and Socket transport
  • [+] /msn(manual)title::artist::album command, use in event handlers to change text in MSN Messenger depending on the player state, relace title, artist and album with AMIP variables. Sample is here:
  • [+] /socket(host,port,timeout)message - sends message to AMIP Remote client with the specified host, port and timeout. You can place this in the preset and on the client invoke the announce preset N command. This allows to use multiple clients with different hosts/ports
  • [*] autoplay parameter behavior has changed. If it's off then after searching from mIRC no local playlist will be created now
  • [+] Options to disable socket connections for N seconds if X subsequent connections failed
  • [+] clearqueue command to reset local playlist
  • [+] $regmatch(subject, pattern, group) – matches subject against regexp pattern and returns the contents of parenthesis group, use group = 0 for entire match. Sample: $regmatch(text::other,\(.*?\)::.*,1) will return 'text'. Don't forget that parenthesis inside functions must be escaped with backslashes
  • [*] Fixed %fupdir bug (not matching directories with dots), new regexps for %fdir and %fupdir should work better. Thanks to FollowTheZeETeR for noticing =)
  • [+] /msn(alt)format command. Sends string formatted according to 'format' to the MSN Messenger
  • [+] !!! WMA metadata support for .wma and .asf files. %asf flag and %wma (yes/no) variable. %1-%7, %br, %sr, %typ, %sl, %min, %sec, %wma_rt (rating), %VBR (yes/no), %ENC. No need for WMA libs, AMIP is using its own metadata reading code
  • [*] MSN Messenger integration now behaves like Windows Media Player (clears info on stop)
  • [*] $ue now uses %20 for space instead of +
  • [+] Callbacks/Listeners API via sockets
  • [+] Track number field added to the end of shmem structure
  • [+] 'control exit' API call to close player. Supports Winamp, ITunes, QCD/QMP, Fooobar (/dde mplug control exit or /dll ac mexec control exit)
  • [*] QMP Support, installer can now install AMIP for Quintessential Media Player
  • [*] SocketServer API fixes to allow multiple ac.dll and AMIP instances (no more hangups)
  • [*] iTunes: proper shutdown handling
  • [+] Option to set AMIP's DDE server name (CFG_DDESERVER)
  • [+] 'control minimize' and 'control restore' API functions to Minimize/Restore Player window. Winamp 2/5 only!
  • [+] 'disabletransports' config option. Disables all transports, only listeners will work
  • [+] !!! Application specific clipboard presets. You can also control which keys to send after paste by putting in key_down(code) and key_up(code) commands, one per line. For example, to press enter put the following commands: key_down(0x0d) key_up(0x0d) - simulates Enter. Key codes can be in hex or in dec
  • [+] iTunes: support for stream song titles, %s contains song name now, also there is separate variable for this: %itstream
  • [*] Search dialog crashed recent Winamp versions when no songs were selected
  • [*] libogg/libvorbis 1.1 (SVN revision 9541)
  • [*] Separate callback for Play status change, since old Play callback was invoked also on song change. Now it's called Play & Change in AMIP Configurator
  • [+] 'reindexq' API command to reindex playlist in async mode without progress dialog
  • [+] 'reindexa' API command to reindex playlist in async mode, but with progress dialog
  • [+] %indexed variable, mainly for API so that you can check how many songs are really indexed and reindex if this number doesn't match the lenght of the playlist
  • [*] Fixed getting Monkey Audio 3.99 song length (thanks Trazi for reporting)
  • [*] FB2K: %psec and %sl return actual values instead of 0 when player is paused
  • [*] use dot instead of comma in the %fl
  • [+] 'formatpreset n' API function, returns song info formatted using n'th AMIP preset
  • [*] fixed getting ogg song length
  • [*] STLport 5.0
  • [+] VC8 performance optimized build (instead of VC7 size optimized)
  • [*] Exit callback not sending info to clients (thanks to voks for report)
  • [*] Foobar version crashing in some rare cases (again, thanks voks)
  • [+] MediaMonkey compatibility
  • [*] Migrated to RCF 0.1, SDK API is now incompatible with previous builds
  • [*] Fixed %stat, %tstat and %playing not available for the first time after player start (thanks voks)
  • [+] listindexformat config variable, sets printf format for the search dialog when index numbers are enabled, must contain placeholders for %d and %s in exactly this order. Modify with care, refer to the printf format specification documentation. Default format is now "%d. %s"
  • [+] %stream flag, set to 1 when playing live stream (when song length is 0), otherwise is empty
  • [*] /dde mplug search didn't index playlist (reported by voks)
  • [*] PCRE 6.5
  • [*] Fixed version string format from Winamp
  • [*] Changed callbacks behavior, now they will announce to clients even when automatic mode is disabled
  • [*] Changed help pages and site, removed old chm help from distribution, help and manual commands behavior has changed, will open browser now
  • [+] !!! Skype mood profile support
  • [+] '/skype format' Action Command. Sends formatted string to Skype, you can use \n as line separators
  • [+] /file and /fileonce commands now support newlines (use \n)
  • [+] MSN Messenger 8 (Live Messenger) support, add/change plugin.ini to have CFG_MSN8=1 (default is 0), note that you should disable alternative format, only default format is correctly supported by MSN 8
  • [*] Foobar 0.9: fixed samplerate conversion to kHz
  • [+] !!! AIM support (/aimstatus, /aimreplace, /aimprofile, /aimrestoreprofile commands)
  • [*] Titlebar: you can now specify executables and/or windows classes that should be excluded from showing now playing in title
  • [+] !!! Yahoo! Messenger now playing status support (/yahoo)
  • [+] !!! Google Talk support (/gtalk)
  • [+] CFG_LEAVENUMLOCK config option. If your NUMLOCK lites on when you use clipboard integration, set this to 1. Note that it may cause keys sticking
  • [*] fb2k-0.9: %br and %sr were retrieved from the wrong playlist item (not currently playing)
  • [*] fb2k-0.9: %ver now returns only number (0.9 instead of foobar2000 v0.9), to get player name use %player
  • [*] Skype Integration: automatically reconnect to Skype when it's restarted & other tweaks
  • [*] Reworked clipboard integration to use SendInput
  • [*] Title bar: options to configure horizontal and vertical shift
  • [*] Yahoo 8 compatibility
  • [+] Option to keep song in clipboard (allows to disable clipboard restoring), you need latest AMIP Configurator
  • [+] Change callback, called only on song change
  • [+] Rollback Yahoo 8 changes. Since they've restored the old behavior, make sure you have this Yahoo version
  • [*] Update to RCF 0.4
  • [*] Major bug with Remote/API is fixed (server was always listening on despite of the configuration)
  • [*] Display delay was not working for IM integrations and playback status change callbacks/notifications, only for presets
  • [*] iTunes: fix for "pure virtual function call" runtime error when you delete all tracks from the playlist/library
  • [*] New options for Yahoo Messenger (specify User ID, Status message #)
  • [*] Minor fixes for underscore conversion in AMIP API


  • [+] In addition to /flash(LAMP) command introduced in 2.48 there is now the same command but with extended syntax: /flash(NUM,0,200,5) - will start flashing NUMLOCK with the initial delay 0, in each state (ON/OFF) lamp will be 200ms and will flash 5 times
  • [*] !!! iTunes 4.7 or later is required to run
  • [+] iTunes: you can now quit without warning
  • [*] iTunes: options dialog can be invoked in the AMIP Visualizer stub (round Options button on top-right)
  • [*] iTunes: all memory leaks should be fixed now
  • [*] Fixed conditional $-functions
  • [+] ! /dde mplug announce - will announce current song to mIRC using current preset (FINALLY!) Works even if IRC Integration is disabled
  • [+] ! /dde mplug announce preset N - same as announce, but use preset N (1..5)
  • [+] ! /dde mplug announcesong N - announces song N by invoking current preset
  • [+] ! /dde mplug announcesong N X - announces song N by invoking preset X (1..5)
  • [*] Fixed the potential null-pointer during the locale initialization (fatal error during initialization)
  • [*] Updated zlib to 1.2.1
  • [*] Updated FLAC to 1.1.1
  • [*] fixed 0 bitrate for flac and ape files (#04003)
  • [+] %rawlen - raw file size as returned by ftell
  • [*] Options redesign (and File Chooser is added now)!
  • [*] Enable IRC option renamed to Announce automatically because it's what it does now
  • [*] !!! Automatic announcement is disabled now by default
  • [*] New default presets
  • [+] !!! Official AMIP IRC channel: #amip


  • [*] FB2K: AMIP could crash player if playlist item deleted - fixed
  • [*] (post-release fix) Fix the problem with updating stream titles when file check option is enabled (pattern match condition was incorrect)


  • [*] Ogg Vorbis libraries synced with SVN (1.1 version)
  • [*] Fixed bug with non-working cache
  • [*] CFG_CHECKFILE now defaults to 0


  • [*] id3lib synced with id3lib-stable CVS
  • [+] iTunes support
  • [*] QCD: get playlist title from player instead of building it from track artist and title
  • [*] #3346: Bug with escaping parenthesis inside functions fixed (single backslash should be used)
  • [*] Ogg Vorbis libraries synced with SVN
  • [*] Preset #5 (clipboard) now comes with non-empty default value
  • [*] iTunes: now %s uses "Artist - Title" formatting, if you need complex (with track number and album), add useComplexFormatting=1 under the [iTunesWrapper] section in the plugin.ini file
  • [+] !!! MP4 tags and format info support (for m4a, m4p, m4v and mp4 files) (%1-%7, %br, %sr, %sl, %ENC, %mp4 flag variable and %mp4tag "yes/no" string), also including iTunes protected files support
  • [+] iTunes: %itpc - playcount
  • [+] iTunes: %itrt - rating (0-100)
  • [+] iTunes: now AMIP gets track info from iTunes if it cannot parse file itself
  • [*] %sl should be 0 in case it is not available, not some random value
  • [+] notify (CFG_NOTIFY) option. If disabled, no notifications will be send to mIRC (such as notifications for /dde commands)
  • [+] $pad(expr,n), pads the result of expr with n digits, for instance, $pad(%min,0) where %min is 01 gives 1


  • [*] Automatically detect changes in the config file and reload it
  • [+] Prepare to work with extended Java configurator (will be released soon)
  • [*] Update song info when selection is changed using mouse in the Playlist Search dialog
  • [*] #3066: Fix "Initialization failed" on some systems caused by bug in STLport 4.6
  • [*] STLport 5.0 beta (testing) ⇒ then back to 4.6 due to huge memleaks in 5.0 ⇒ 4.6.1 + backport of locale fix from 5.0 ⇒ 4.6.2
  • [*] #3057 fb2k: get dynamic song info for streams
  • [*] Do not clear caches when title changes, since it my change due to update of the same file info
  • [*] CStdString updated to the recent version
  • [*] PCRE 4.5
  • [*] Deadlock in search dialog should be fixed now
  • [*] Several more bugs with search dialog fixed
  • [+] ! Song info in search dialog is configurable now
  • [*] $ can be used instead of &func_, for instance: $cf(%name) instead of &func_cf(%name) - capitalizes first letters of song titlte
  • [+] $if(condition,true,false)
  • [+] $if2(condition,true)
  • [+] $mat(subject,pattern) - $if($mat(%VBR,yes),VBR,CBR)
  • [+] $trunc(text,length) truncates string by length and appends "…"
  • [+] $trunc2(text,length,char) - truncates and appends char
  • [+] $chr(dec) - inserts character with dec code
  • [+] $enc(text,encoding), where encoding can be WIN, KOI, OEM, FIDO
  • [*] !!! Presets parsing rewritten from scratch, no more %lb and %mcmd, multiple commands must be separated by new line, please correct your presets. You can also comment lines in preset using #
  • [+] RUS: /template command now supports encodings, optional format is: /template:(input_file|enc) output_file, where enc can be KOI, OEM and FIDO, source encoding should be always WIN
  • [+] Advanced options to configure song change detection
  • [+] /flash(LAMP) preset command - flashes keyboard LAMP, LAMP can be NUM, SCROLL or CAPS
  • [+] $iflen(str,len,shortstr) if str is longer than len, use shortstr, otherwise use str
  • [*] Empty strings should be still written to file on status change
  • [*] #2913: AMIP messages shown on startup are now displayed using Status output command
  • [*] fb2k: Compiled with SDK 0.8
  • [+] /dde mplug manual page.htm - displays page.htm from the AMIP's chm help
  • [*] #3013: Fixed line endings when writing to file (now CRLF instead of CRCRLF) TODO: investigate the root case
  • [*] #3081: Fixed Play Matched. TODO: make it work when parse delay is enabled and song is changed during the delay
  • [*] Sample script in help is updated
  • [+] Start callback added
  • [+] Added an option to convert "|" to " $+ $chr(124) $+ " in mIRC output (security)
  • [*] !!! ^lb must be used instead of \n for multiline file output, use AMIP Configurator text areas for editing
  • [*] #3167: URL tag doesn't work perfectly - fixed
  • [+] Custom tags for APEv1, APEv2, Ogg and FLAC tags are not available as %ogg_<TAGNAME>, for instance %ogg_artist
  • [*] To use underscore in the mIRC alias (format function), escape it with \ (backslash) character
  • [*] Java Configurator path is now first searched in the registry and config file name is passed to it (this allows one configurator installation to be used by several players with installed AMIP)
  • [*] Changed linker options so that now DLLs compressed with UPX should work on Windows 2003


  • [*] Fixed bug with configuration saving/loading related to presets (introduced in 2.45). Thanks to Markus Henn for noticing
  • [*] Callbacks are invoked only when file info is parsed, the same concerns file integration. Fixed stop callback invoked twice on winamp startup


  • [*] Clipboard integration settings were not saved on exit
  • [*] &c, &b, etc, are no longer converted in variables
  • [+] 'updatefile' config option. If set to 1, file content is updated every second
  • [*] File integration improvements
  • [+] Exit callback config option (exitcb)
  • [*] STLport 4.6
  • [*] Fixed bug with functions when parameter is empty
  • [+] 'ignore' config parameter - regular expression, if title matches the pattern, AMIP will ignore it (useful to skip Buffering or Connecting for streams)
  • [*] Changes in playlist should be detected better
  • [+] 'displaydelay' config parameter - delay in milliseconds, song info will be displayed only when this time passes
  • [*] Rollback id3lib to 3.8.0. This should fix problems with Year tag and random crashes
  • [+] 'parsedelay' config parameter, will delay file parsing for the specified number of milliseconds (use values divisible by 1000). Super handy to make AMIP fully transparent and do not lag when frequently switching songs. If the value is greater than zero, all parsing is done in a separate thread and doesn't lag the player. This can be used with or without 'displaydelay'. If used with 'displaydelay', then you will get song info after parsedelay+displaydelay milliseconds. If you are using 'parsedelay', caching will be enabled despite of 'usecache' parameter
  • [+] %parsestate variable. For script writers. Allows to get the current state of parser thread. (PARSING_ABORTED -2, PARSING_NOT_STARTED -1, PARSING_STARTED 0, PARSING_FINISHED 1). At the moment it may be not easy to catch the PARSING_FINISHED state, becaue it switches to PARSING_NOT_STARTED within a second
  • [*] Installer fixes
  • [*] Compiled with VC 7.1 (VS.NET 2003)


  • [*] fb2k: fixed hangup when quering track info which doesn't exist (samplerate, channels)
  • [*] Configuration subsystem rewritten from scratch
  • [+] New API to work with config: allows to get/set any config variable and to load/save config file. See help for more info
  • [+] 'showmsgonstart' config option (1/0) disables/enables showing the standard AMIP message in mIRC when player is started
  • [+] 'useencspot' config option. When set to 0 disables advanced info processing and improves performance (Advanced Header Variables will be not available)
  • [+] 'usecache' config option. If set to 1 AMIP will cache all the parsed song info for later use and will not process the same file twice during one session
  • [+] '/dde mplug setvar <variable> <value>' allows to set any config variable
  • [+] '/dde mplug config save' and '/dde mplug config load' to save/load configuration
  • [+] '/dde mplug cfgdump' dumps all the config variables and values to mIRC
  • [*] func_lc and func_uc should work fine now for non-latin characters
  • [*] id3lib updated to v3.9.0 from CVS
  • [+] Show numbers in playlist search dialog (default is on for all the players except Foobar2000), controlled by 'indexlist' parameter
  • [*] 'Play Matched' feature improvements (local playlist is no longer cleared when calling playlist search dialog)
  • [*] DDE communication speed with IRC clients is greatly improved (at least 10 times faster now) Please note that you need to restart IRC client after changing its DDE Server name
  • [*] wa3: fixed installer
  • [+] &func_next() provides all possible information about the next song in the playlist, see help for more information
  • [+] playcb, pausecb, stopcb config strings for play/pause/stop callback actions, no frontend yet, can be configured via config or /dde mplug setvar. For geeks only, not tested
  • [+] clipboard integration: sendenter, sendcontrolenter config options (0/1), if enabled, automatically emulates pressing ENTER or CTRL+ENTER after pasting song info to the window. Useful for sending into IRC/ICQ clients (should work with Trillian)


  • [+] MusePack format support (%mpc flag)
  • [*] Vorbis tags are now properly converted from UTF-8 to ASCII
  • [*] Some optimizations in format info reading function
  • [+] Option (cfg_drawupdate) to update active caption text every second (useful when variable values are changed, such as playback position)
  • [+] %sel - seconds left (ss), %mil - minutes left (mm), %sle - total seconds left
  • [*] %sl should work properly for all formats now
  • [*] Quality should be displayed more properly in Playlist Search (using %br and %typ instead of %ABR and %MOD) TODO: make it configurable
  • [*] Updated installer
  • [*] fb2k: fix for playing NSF from .zip and other archive related fixes


  • [+] Display playing song info in active window caption
  • [*] %name tweaks to work with ogg and ape with incomplete tag info
  • [+] Hack to get volume from Winamp 2.x
  • [*] Changed text for ID3v1 tags (typo in Psychedelic fixed)
  • [*] fb2k: playback status when paused was not correctly reported
  • [+] FLAC format and tags support


  • [*] AMIP was not working with only one song in the playlist (broken in 2.40)


  • [*] wa3: Info from files was not read (broken somewhere in 2.37)
  • [*] fb2k 0.7: recompiled for beta 27 SDK


  • [+] Get/set repeat/shuffle API (see help)
  • [*] fb2k 0.7: compatibility with 0.7 post 23 betas (tested with beta 26)
  • [*] Some other changes… I can't remember =(


  • [+] APEv1 and APEv2 tags support (%1-%7)
  • [+] Monkey Audio format information support (%br, %sr, %typ, %min, %sec, %sl, %ENC)
  • [*] Help updates, added new APE related variables and flags
  • [*] fb2k beta 0.7 integration: shuffle/repeat toggle support from AMIP


  • [*] Reworked clipboard integration code, fixed problem with unregistering hotkeys introduced in 2.37
  • [*] Typo in Quick Start fixed, added information about F keys and F12 key issue explanation


  • [+] fb2k integration: Title format is now configurable from Foobar2k AMIP Wrapper options
  • [*] fb2k integration: Fixed ff and rew commands
  • [*] fb2k integration: %sr should return KHz, not Hz
  • [*] QCD integration: %sr should return KHz, not Hz
  • [*] If playing .cue file, do not check the file name change (Bug #1940)
  • [*] Playlist search now matches each part of keyword separated by space (space is considered as .*? regexp)
  • [*] Cleanups in Local playlist support code
  • [*] No more numbers in the playlist. Side effect: after each call to Search dialog local playlist will be reset
  • [+] fb2k integration: you can use %_playlist_number% in title format
  • [*] wa3 integration: do not strip http: from file name ⇒ stream title change should now be properly recognized * [*] Stream check using http: should be not case-sensitive (Bug #1882)
  • [*] Now distributing changelog for last 5 versions, complete changelog is available from the AMIP site



  • [*] Don't repeat the first seconds of the _same_ song when using rfind (see bug #1846)
  • [+] File templates support! You can use a file with AMIP variables (for example HTML) which will be formatted and written to another file. See "Commands | Advanced" manual section for details
  • [+] /exec command allows to execute any process with parameters (ftp client to upload your song info to the web or a tool to emulate GET or POST)
  • [*] Now only existing %variables will be replaced, all the other will remain in the preset
  • [*] Convert underscore to space option now works only for variables, not for the preset text
  • [+] Web Integration manual section added, other manual updates
  • [+] &func_ue() - new function, urlencodes arguments to safely pass them to scripts
  • [*] %prc should work properly now


  • [*] Removed additional antirepeat check because it prevents aliases (the presets which never change) from working properly


  • [*] PCRE 4.3
  • [*] Do not disable AMIP automatically if IRC and MAIL integrations are disabled
  • [*] %stat and %tstat should now work properly even for the first played file
  • [+] \n is now supported in the preset #5 (clipboard integration). This allows to paste multiple lines to any application
  • [+] %prc - represents the current percentage of song being played. Useful for clipboard integration and mIRC scripting
  • [+] Updated documentation, added section descibing how to announce to all the channels
  • [*] Bug #1741 (song announced twice) should be fixed now (I can't reproduce it, but I've added an additional check)
  • [*] Fixed possible crash for mp3 files with empty genre tag


  • [*] Additional cleanups on exit
  • [*] QCDAMIP 0.02: fixed crash on disable


  • [*] File lenght is now correctly set for all the file types
  • [*] Fixed some typos in help
  • [*] id3lib 3.8.3
  • [*] StdString.h 2003-MAR-14
  • [+] Home and End buttons now work in the Playlist search dialog
  • [+] Show progress while indexing playlist
  • [*] Some changes in playback restore
  • [+] QCD support ( QCDAMIP v0.01


  • [*] Changes in func_cf to capitalize letters after round braces
  • [*] Default preset is changed to the more polite version (prints only to the active channel)
  • [*] Mask ~ (tilda) not only in tags, but in the whole preset. If you need tilda in the output, just type it twice (~~)
  • [*] Now if you change some config setting via DDE it will be updated when you next time read it using $dde mPlug cfg_* ""
  • [*] If only artist or only title is in the id3tag, %name will not use ' - ' separator
  • [*] Help updates, now quick start is available, please read it!


  • [*] id3lib 3.8.1-CVS, fixed problem with Lyrics3
  • [*] func_cf is fixed. Now it capitalizes all characters which are prepended by non-word character
  • [+] %flkb - file size in kbytes


  • [*] Fix for getting CD info from Winamp (broken in 2.27)


  • [+] Ogg/Vorbis Tags (comments) support! AMIP now detects ogg format and reads tags from ogg files. %1-%7, %VBR, %ABR, %br, %sr, %fl variables are supported for ogg. There are also special %ogg_* variables available where * stands for the comment name (title, artist, copyright, etc), always lowercase. %ogg variable is set to 1 if file has ogg format, to 0 otherwise. Use '/dde mPlug dump' to get all AMIP variables list


  • [*] Fixed bug with /dde mPlug find and rfind commands not properly changing song
  • [*] Wait until Winamp update playlist lenght on loading
  • [*] Do not display [Buffering] when buffering live streams
  • [*] Fixed typo in readme and on the web site in About section


  • [*] Do not set %ABR to the value of %br even if extensive scan is disabled (now scanning is more accurate)
  • [*] Removed limit of 20 000 songs in playlist (now using vector container instead of array)
  • [*] Fixed /dde mPlug find and rfind not automatically playing songs
  • [*] '/dde mPlug dump' now returns the sorted list of variables
  • [+] '/dde mPlug clearcache' clears AMIP song information caches
  • [*] Some fixes to Play Matched
  • [*] Fix to %fdir and %fupdir (there was a problem with folders containing dots)


  • [*] Fixed: Song info could be repeated twice when starting Winamp with playback restore enabled in AMIP
  • [*] After pressing OK in options in Winamp3 or when using /dde mPlug options AMIP restart was needed because of incorrect DDE initialization


  • [*] Fixed long time bug with $dde variables not working in mIRC after pressing OK in the options dialog
  • [+] New feature for Russian users: now it's possible to write several files with song info at the same time with different encodings. It's the extension to /fileonce and /file commands. Just specify the encoding after the file name (KOI, OEM, FIDO, WIN) using | as a separator. Example: /fileonce:(c:\song_KOI.txt|KOI) np: %name


  • [*] Fixed deadlock when using /dde mPlug options (and probably some other DDE commands)


  • [*] wrapper 0.6: fixed crash if Winamp3 preferences dialog is closed before AMIP options
  • [*] wrapper 0.6: some additional checks for NULLs to prevent Winamp3 assertions
  • [*] wrapper 0.6: fixed playlist assertion (I hope now it's really fixed, build 2.20 still crashed Winamp3 in some cases)


  • [*] wrapper 0.5: Fixed assertion with playlist on Winamp load
  • [*] AMIP will install on future Winamp3 builds (with Winamp3.exe instead of Studio.exe)
  • [*] updated id3lib from CVS (fixed lyrics priority bug)
  • [*] Fixed 00:0-1 time for Live stations (now reports 00:00 if song length is not available)
  • [*] %id3v1/%id3v2/%Lyrics/%Lyrics3v2/%MusicMatch (yes/no) - tag versions available in the file


  • [*] Clipboard integration tweaks: now clipboard is restored after 2 seconds to prevent pasting already restored content instead of AMIP string (restoring is in the seperate thread so it doesn't hang winamp)
  • [*] Finally fixed problem with Lyrics tag type


  • [*] Upgraded to id3lib 3.8.0-stable, probably fixed lyrics bug
  • [*] Upgraded to EncSpot 2.01 library (experimental, please report bugs)
  • [*] Fixed bugs with empty %mode, %lver, %mver, %head (introduced in 2.16)
  • [*] %QUO now returns good/ok/bad strings
  • [+] %LAM - (yes/no) lame header existance
  • [+] %LQUA - (0..100) lame quality
  • [+] %LABR - lame ABR Bitrate
  • [+] %REV - lame tag revision
  • [+] %MET - lame VBR method
  • [*] Now parsing without extensive scan gives better results (and should be faster)
  • [*] wrapper 0.4: Probably fixed bug with multiple playlists in Winamp 3


  • [*] Fixed: When choosing song in search dialog and winamp is paused the next song was continued from the position of previous song (this bug was introduced in 2.14)
  • [*] Minor changes in the Search dialog UI
  • [*] Clipboard integration should work now on any system, not only on 2K/XP (Tested on win98se, winME, win2K, winXP… vmware rocks =))
  • [*] If file is played from the Internet and AMIP can't get song time with its own parser, it asks Winamp now
  • [*] Playback restore is turned off by default, if you need to enable it set CFG_RESTORE=1 in plugin.ini


  • [+] Added AMIP version information to Winamp 3 preferences window
  • [*] Now string in quotes in the conditional constructions like ?VBR='yes'<%ABR|%br> is considered to be a regular expression (read: wildcards are now allowed in conditional statements)
  • [*] Fixed 2 bugs in Winamp 3 wrapper (with getting playlist entry #0 info if it was not playing)
  • [+] Search dialog (Ctrl+J) now contains files information (artist, title, bitrate, path)
  • [*] AMIP now caches song information for faster operation, to clear internal caches use '/dde mPlug clear' command
  • [*] AMIP now correctly reports live radio info in Winamp 3
  • [+] Good news for script writers. Now you can get any information about any song from your mIRC script. There is special variable: $dde mPlug formatsong "song_number:string_with_your_variables". Example: $dde mPlug formatsong "10:%name_br:%br~kbps". Note that spaces are changed to underscores
  • [+] New variable: %vol - current volume (0..255). Works only with Winamp 3
  • [+] Shuffle/Repeat toggling from mIRC now works with Winamp 3
  • [*] Manual is updated to reflect the latest changes
  • [+] Added backend to enable/disable playback restore on winamp start. Frontend will appear later. (CFG_RESTORE=0 in plugin.ini disables playback restore)


  • [*] Fix to restore bug introduced in 2.14
  • [*] Updated version info of Winamp 3 wrapper


  • [*] %ABR is now set to Winamp's bitrate value if extensive scan is off
  • [*] Restore playback from first position if there is no such entry number as was saved on last play
  • [*] AMIP WA3 version: wrapper 0.2 - buttons in configuration dialog are working now!!!
  • [*] Changed URL to in all the places, minor help fixes


  • [*] Fixed bug with THRESHOLD value increasing on every config save
  • [*] Changed URL to
  • [+] Restore playback from the last played song on Winamp restart
  • [*] Some changes to make AMIP work properly with WINAMP 3 through wrapper plug-in
  • [+] AMIP WA3 version: wrapper 0.1 Experimental AMIP wrapper for WINAMP 3


  • [*] Minor fixes in clipboard integration


  • [+] A lot of changes in shortcurts handling and clipboard integration. Special thanks to Robin Y. Millette ( for helping with this stuff and contributing the code!
  • [+] It's now possible to change shortcuts for the search dialog and pasting to active window. Currently it's only possible in the plugin.ini manually, frontend will be added later.
  • [*] No more restart needed when enabling/disabling hotkeys.
  • [+] If Ctrl+Alt+Z shortcut for clipboard integration is not working, hit it twice shortly, AMIP will change the keystroke which it is sending to the active window for paste action from Ctrl+V to Shift+Insert and vice-versa, also AMIP will remember the application which needs non-standard keystroke. You can see that the keystroke was toggled by the window flashing.


  • [*] Fixed /cmsg bug (/me used instead of /msg for all the channels except first).
  • [*] A lot of typos in help fixed.
  • [+] '/dde mPlug dump' command dumps all the AMIP variables and values to the status window.
  • [*] Fixed %no. Was overwritten by %1 - %2 (broken in 2.08)


  • [*] Fixed 00:00 playlength, more bitrate fixes, better streams support, correctly restore after playing live radio.


  • [*] Upgraded unzip/decompress support to zlib 1.1.4, for big security fix
  • [*] Installer now allows to install to the Apollo plugins folder (Apollo player works with AMIP and other winamp plugins)
  • [*] If tag exists but is empty, use file name for %name.
  • [*] fixed 0 occasionally appearaing as a value of %br and other %br an %ABR fixes
  • [*] Direct send option now works with mIRC 6.x


  • [*] fixed ^lb bug and other possible bugs with stripping.
  • [+] Enable/Disable Ctrl+J and Ctrl+Alt+Z AMIP hotkeys option (requires restart).
  • [*] Fixed bug with %monstamp
  • [+] Streams support!!! (AMIP doesn't show Buffering or Connecting, it only shows stream when it's playing!)
  • [+] Klient support. Check 'Klient mode' in the options dialog. Use '/describe #channel is listening to %name' command. You may also try to use internal AMIP commands /cme and /cmsg and add channels you want to announce at to the channels list in AMIP configuration.
  • [*] A Leak with DDE server name not unregistered - fixed.
  • [+] %ext - file extension


  • [*] AMIP is now using STLport for stability and speed improvements
  • [*] Internal map class is changed to hash_map for speed


  • [*] Fixed crash on exit


  • [*] Fixed: possible crash if config string is empty
  • [+] Huge options redesign
  • [+] Clipboard integration. Preset #5 is used for clipboard format.To paste formatted string in any application use Ctrl+Alt+Z shortcut. The previous content of clipboard is automatically restored.
  • [*] Help updates
  • [*] $dde mPlug cfg_* was broken in one of the versions
  • [+] /dde mPlug setpirch on/off allows to switch from mIRC to PIRCH and back. Note: you will need to call /dde mPlug setdde <server_name> with appropriate server name to finish the process of IRC client switching.
  • [+] /dde mplug setmapping on/off allows to change the way how AMIP communicates with mIRC from DDE to FileMapping and back.
  • [+] /dde mPlug setdde <server_name> allows to change DDE server directly from your IRC. Can be used in scripts for publishing information to several IRC client instances.
  • [+] Choose preset: /dde mPlug preset <n>
  • [*] Mask ~ sign in tags so now it's not stripped from output.
  • [*] Workaround to get %br, %sr, %typ for the song if winamp was ran in the stopped state.


  • [+] Internal functions initial support
  • [*] AMIP is no more using MFC, only std c++ and win32 API ⇒ reduced size
  • [*] Internal playlist limit changed from 5 000 to 20 000
  • [+] /dde mPlug autoplay on, /dde mPlug autoplay off - toggles autoplay after rfind and find commands.
  • [*] Help Updates
  • [+] func_uc() makes param UPPER CASE
  • [+] func_lc() makes param lower case
  • [+] func_u2s() converts underscores and %20 to spaces
  • [+] func_cf() capitalizes First Letter Of Each Word
  • [+] "$dde mPlug fn <id>" variable can be used in mIRC to get name of file fromplaylist with specified <id> number"
  • [+] "$dde mPlug title <id>" variable can be used in mIRC to get title fromplaylist with specified <id> number"


  • [+] Search window focus tweaks (window now gets focus and returns it to application where Ctrl+J was pressed)
  • [+] "/dde mPlug control shuffle" toggles shuffle
  • [+] "/dde mPlug control repeat" toggles repeat


  • [+] File mapping. Alternative method to pass string to mIRC. If DDE works slow on your PC, enable "direct send" option.


  • [*] Strings starting with spaces are now correctly handled in config file.
  • [+] %?var<if_true|if_false> now may be recursive
  • [+] %?var='val'<if_true|if_false> for comparing variable with exact value. If you want to print ST/JS/MO instead of Stereo/Joint Stereo/Mono, just use this: %?mode='Joint Stereo'<JS|%?mode='Stereo'<ST|MO»
  • [+] Own playlist search dialog (like in winamp but with regexp search and international support)… Just press Ctrl+J. Also there is a Play Matched button to play all matched songs.
  • [+] Presets for keeping several output strings and changing between them
  • [+] Extensive scanning option. If enabled, plug-in scans all frames of mp3 file to calculate Average Bitrate (ABR) and detect encoder. (a bit slows down computer while song is changing)
  • [+] A number of new variables: %ABR - Average bitrate of mp3 file %VBR - (yes/no) shows if file has VBR %ENC - encoder used to make mp3 file %LEN - (e.g. 00:03:19) song length %FRQ - (e.g. 44100) Samlping frequency (hz) %MOD - (e.g. joint stereo) Mode %FRM - number of frames %FSZ - (e.g. 4,157,036) file size in bytes %TYP - (e.g. mpeg 1 layer III) - mpeg and layer version %QUO - (0-2) a rough determination of the quality of the file Determined solely by the encoder used, the bitrate, and the stereo mode %EMP - Emphasis %COM - (yes/no) if file is complete (not broken) %ERR - number of sync errors %CPR - (yes/no) Copyrighted %ORG - (yes/no) Original %CRC - (yes/no) CRC
  • [*] Now you can use a '~' sign by typing it twice (or more)
  • [*] Hangup if search or dialog is open while song is changing
  • [+] "$dde mPlug format string" variable can be used in mIRC. <string> is like config string.all variables are replaced. But <string> cannot contain spaces!!! Replace all spaces by '_' sign (underscore).
  • [+] PIRCH support.
  • [*] find and rfind output may be done by any command passed in "/dde mPlug rfind command pattern" string
  • [*] Buld a2: Fixed memory leak when using $dde variable in mIRC. Thanks to Shawn for reporting this bug.
  • [+] Output to file depending on playback state
  • [+] Different encodings for file output.
  • [+] You can use \n to write on next line while printing to file.
  • [+] New variable %fdir - directory name (e.g. for C:\Music\Metallica\Best Of\Nothing-Else Matters.mp3) it will be set to "Best of"
  • [+] New variable %fupdir - up-directory name (e.g. for C:\Music\Metallica\Best Of\Nothing-Else Matters.mp3) it will be set to "Metallica"
  • [+] New variables: %tstat and %stat - text and numeric playback status (playing - 1, paused - 3, stopped - 0)
  • [+] Random presets
  • [*] id3lib fixes (priority) ⇒ optimized tag reading


  • [+] Writing log to file instead of mIRC (/file:(filename) command)
  • [+] Writing current song to file instead of mIRC (/fileonce:(filename) command) (useful to integrate AMIP with program without DDE, for example e-mail client, in AMIP I have '/fileonce:(e:\current.log)%name' and in The Bat! I have 'Winamp is playing: %INCLUDE="e:\current.log"' as a part of template)
  • [+] %ystamp - current year
  • [+] %monstamp - current month
  • [+] %dstamp - current day of month
  • [*] Maximum config string length is changed from 512 to 1024
  • [*] Fixed reading id3v2 tags created in Winamp (from id3lib CVS)
  • [*] Fixed some bugs in MP3/nonMP3 handling
  • [*] Some speed improvements and code cleanups


  • [+] internal /cme command for ACTION to specified channels
  • [*] Multiple line output support for /cmsg and /cme
  • [*] Multiple line output support for /cmsg and /cme
  • [*] better error handling while reading broken tags
  • [*] removed some forgotten debug output


  • [+] Any plug-in %variable can be retrieved from mIRC with $dde mPlug var_variable "" construction. e.g. to get %name write $dde mPlug var_name ""
  • [+] Any plug-in configuration settings can be get from mIRC with $dde mPlug cfg_* "". e.g. to get format string: $dde mPlug cfg_string ""
  • [+] %hstamp - current time hours
  • [+] %mstamp - current time minutes
  • [+] %sstamp - current time seconds
  • [*] The better way to replace variables (using regexp)
  • [+] if-then-else like constructions are now allowed. e.g. %?1<%1 - %2|%no> (if Artist is present then print Artist - Title, else print file name only) construction is recognized.
  • [+] /dde mPlug format <handler> <format_string> command. Calls handler with format_string with replaced variables. (/cmsg,%lb,%mcmd are not handled)
  • [*] %variable shoud be separated from following text with "~". e.g. %secs should be replaced to %sec~s
  • [+] %mp3 variable which can be used to determine that playing file is mp3 in if-then-else constructions
  • [+] %id3 variable which can be used to know that ID3 tag was read correctly mp3 in if-then-else constructions
  • [+] Added about 70 ID3 variables
  • [+] %playing flag to determine if winamp is playing
  • [+] %ps - current song position (seconds)
  • [+] %psec - current song position in seconds


  • [*] NSIS 1.32
  • [*] fixed tag reading error handling


  • [+] "/dde mPlug cfg_strip "" <handler>" passes current strip setting to handler which is mIRC script or alias (0/1)
  • [+] "/dde mPlug cfg_convert "" <handler>" passes current convert spaces to underscore setting to handler which is mIRC script or alias (0/1)
  • [+] "/dde mPlug cfg_enabled "" <handler>" passes current "Enabled" setting to handler which is mIRC script or alias (0/1)
  • [*] getplain command now may pass config string to mIRC script "/dde mPlug getplain "" <handler>"
  • [*] getcodes command now may pass config string to mIRC script "/dde mPlug getcodes "" <handler>"
  • [*] getlistlength command now may pass list length to mIRC script "/dde mPlug getlistlength "" <handler>"
  • [*] reindex command now may pass number of indexed songs to mIRC script "/dde mPlug reindex "" <handler>"


  • [*] Changed program title to: Advanced mIRC Integration Plug-In (AMIP)
  • [+] Automatic reindexing on playlist change


  • [*] NSIS 1.1 installer, UPX 1.7, id3lib 3.8.0pre (fixed and recompiled), PCRE 3.4
  • [*] A lot of code cleanups, perfomance improvements, memory leaks fixes.
  • [+] Russian and English locales support for regexp search
  • [+] Added Perl 5 like regexp search support (searching songs from mIRC) "/dde mPlug rfind "" <pattern>" command
  • [+] "/dde mPlug show" command for manual song info print (works only if winamp is playing)
  • [+] "/dde mPlug getstrip" command to get config string without colors.
  • [+] Strip color codes dialog option to remove mIRC control chars from output
  • [*] Memory leaks in id3lib in ID3_GetString method. (workaround)


  • [*] %mcmd doesn't work in 0.94
  • [+] URL & Mail in config dialog, project is moving to
  • [*] It was possible to add empty channel to /cmsg channels list
  • [*] Bug with song numbers in search results fixed (numbers were 1 less than true index)
  • [*] Error getting ID3 tag crushed plug-in
  • [*] Fix for first position output repeating when reloading huge playlists (it's workaround for winamp bug, when it sends the first title from playlist while playlist is loading, and after load sends random title if SHUFFLE is on)


  • [+] internal /cmsg command for output to specified channels
  • [+] Format string edit box is now multiline! Press Ctrl+Enter to move a part of string to next line. This doesn't affect on the mIRC output.
  • [+] Support for output only to specified channels
  • [+] "/dde mPlug options" command to show plug-in config dialog box
  • [+] Convert underscore to space in whole output
  • [+] Winamp title instead of %name for non-mp3 files
  • [+] Added new genres from Winamp. (148 genres total!)


  • [+] Changelog added
  • [*] Fixes to getcodes (returned &variables instead of colors)
  • [*] Fixes to getcodes (removed forgotten debug color tags)
  • [*] Strange bug with missing variables in "getcodes" and "getplain"


  • [*] Fixes to configuration window editbox height
  • [*] fixes to getlist (added automatic correction of wrong values)
  • [*] /dde mPlug getlist without arguments now returns entire playlist
  • [*] Fixed ID3 tag priority. Getting V2 tag instead of V1 if both are available.


  • [*] Interface improvements
  • [+] English home page added
  • [+] Plug-In Output string (configures how it should manage status information)
  • [*] Changed congig file title from mIRC to Crazy Coder's mIRC Control Plug-In
  • [+] Added new variable %page - This plugin homepage URL


  • [*] Genre was displayed incorrectly in ID3V2 tag


  • [+] reindex command
  • [*] Plugin crash while playing CD's (added check for .mp3 extension)
  • [+] %mode variable (overrides %typ)
  • [+] %lver variable
  • [+] %mver variable
  • [+] %head variable
  • [+] Local playlist support (playing songs matching last search)


  • [+] clear command
  • [+] find command! Now you can search songs directly from mIRC


  • [+] getlistlength command
  • [+] getlist command


  • [+] Added Genre Variable (%7)


  • [+] enable/disable plugin from mIRC (control off and on commands)
  • [+] getplain command to get plug-in configuration string from mIRC (with & variables)
  • [+] getplain command to get plug-in configuration string from mIRC (using color)
  • [+] Set command to set config. string from mIRC
  • [+] play command


  • [*] Added new support for ID3V2 & ID3V1 tags! (%1 - %6)
  • [-] Removed old support of ID3V1
  • [+] Plug-In now uses id3lib (


  • [+] NEW HTML help
  • [+] Added internal conrol codes support (& variables)


  • [*] %name fixes


  • [+] play command
  • [+] stop command
  • [+] pause command
  • [+] < command
  • [+] > command
  • [+] vol command
  • [+] vup command
  • [+] vdwn command
  • [+] ff command
  • [+] rew command
  • [+] Universal song title (%name)
  • [+] Added multiline output support (%lb variable)


  • [+] Own DDE server "mPlug" to enable winamp control from mIRC


  • [+] New variable - Plugin version (%pv)
  • [+] New variables - Winamp version (%ver, %pos, %min, %sec)


  • [+] ID3V1 tags support


  • [+] Added %ll, %sl, %br, %sr, %s
  • [*] DDE exchange memory cleanups


  • [+] added first variables (%fn, %nm, %no)


  • [+] %s variable - song title from winamp window
Last modified: 2010/09/27 14:26 (external edit)