================================= ========================= File Writer output plug-in v1.21b made by Jasper v/d Gronde ================================= ========================= -------------------------------------------------------------------------------------------- General -------------------------------------------------------------------------------------------- This plugin lets you write WinAMP's output to a file, it supports several different formats and has a couple of options that let you control the filename (it is very easy to add a time and date stamp to the file for example). To setup this plugin: - install it (you've probably already done that) - put the files (or urls, for example for my LineIn plugin) you want to save in the playlist - select this plugin as the output plugin - configure this plugin (very important, you should at the very least specify an output directory) - play the files and/or urls IMPORTANT NOTE: Go to my site if you run into any problems (at the bottom of this text). Also any updates appear there first. COMMON PROBLEMS: - You are trying to write from a WMA file, ShoutCAST stream, Audio CD or MIDI file and my plugin appears to do nothing (or an error is given). Audio CD's and MIDI files are normally played directly to the soundcard, this is mostly because of historical reasons (and can be remedied, see my site for details). In the case of WMA files and ShoutCAST streams, these formats simply do not allow recording. This can be solved, in the case of WMA there are input plugins available that do let you record the sound. In the case of ShoutCAST it is quite a bit more complicated, use specialized software (it is possible to do with Winamp, this involves using a Virtual Audio Cable). - The plugin doesn't work at all and you are using that fantastic new Winamp 3. Winamp 3 is totally and completely incompatible with Winamp 2, so plugins made for Winamp 2 will not work under Winamp 3 (they won't even be recognized). You can do three things to solve this: - Search for a different plugin that does work with Winamp 3. - Install Winamp 2 (see http://classic.winamp.com/). - Get a special component for Winamp 3 that will let you use Winamp 2 output plugins (available from http://www.winamp.com/). BTW, Winamp 2 plugins WILL work under Winamp 5! If you have any other problem, first visit my site and download (and install!) the latest version of my plugin (also have a look at the FAQ and text on the File Writer page!): http://home.hccnet.nl/th.v.d.gronde/ If your problem doesn't go away by installing the latest version and you also can't find a solution in the documentation on my site, just mail me at th.v.d.gronde@hccnet.nl . -------------------------------------------------------------------------------------------- Options -------------------------------------------------------------------------------------------- This plugin has some options in the config dialog: Directory: The directory where the files will be written to. Format: The fileformat the files will be in, you can select one of these: Windows wav format (WAV) Simply gets you a .wav file of the output, good for things like recording to a cd. Raw waveformat (PCM) Simply outputs the raw data, usefull if you have some use for it, like when you are beginning to write an app that uses sound but you haven't written a good file reading function yet. FLAC (FLAC) This will get you a .flac file, also a very popular (with perhaps slightly less compression, but still very good) lossless format. You don't need anything else to use this, although you might want to download something that can read the files. See http://flac.sourceforge.net/ for more information. Monkey's Audio Format (APE) This will get you a .ape file, this is a very popular (and very good) lossless format. You don't need anything special to use this format with my plugin, but you might want to download Monkey's Audio, it comes with an input plugin. See http://www.monkeysaudio.com/ for more information. Ogg Vorbis (OGG) This will get you a .ogg file, a relatively new (free) format. Performs very similar to MP3. NOTE: You need ogg.dll, vorbis.dll and vorbisenc.dll for this format to be available, see http://www.vorbis.com/ You can also use the "format" Ogg Vorbis- from oggenc.exe, which will use a command line version of the encoder (oggenc.exe or oggenc2.exe). Mpeg-1 Layer 3 (MP3) This will get you an MP3 file, this format has a lot of options, but mostly you will only fiddle with the bitrate settings. NOTE: You need the lame dll for this format to be available, see http://www.mp3dev.org/ NOTE2: You need a dll named lame_enc.dll, not out_lame.dll. out_lame.dll is a WinAMP plugin that uses LAME, not the encoder itself. You can also use the "format" Mpeg1 Layer 3 - from lame.exe, which will use a command line version of the encoder. If you want more information, please visit my site: http://home.hccnet.nl/th.v.d.gronde/ The main page has a tree like structure, there is some info on this plugin on its page, but the reference for the expand system can be found under the button "ExpandLib help" in the configuration dialog of my plugin. Some example configurations: Format: Ogg Vorbis Expandable string: $fpad(%_playlist_number%,3,0) - %_title% - %_current_date_short% %_current_time% Expands to something like: 001 - The title in the playlist - 01/01/2003 00:00:00 The exact format of the date and time are determined by your Windows settings. Format: Windows wav format Use the title and expand it My LineIn plugin as input plugin, with the following location: line://title=Old record\, recorded on \\%_current_date_short\\% Please note that this requires the Winamp option "Convert underscores to spaces" to be switched off. NOTE: DO NOT forget to select the normal output plugin after you have finished! -------------------------------------------------------------------------------------------- Version history -------------------------------------------------------------------------------------------- v1.21b (January 21, 2005): - fixed problems with size log only mode (some checks were the wrong way around) v1.21a (January 21, 2005): - made _current_time/_current_date work again when not using parts/triggers, _current now contains exactly the same time/date as _begin when not using parts or, if you are using parts, when writing the first part - fixed crash when OpenFile didn't succeed v1.21 (December 27, 2004): - added triggers - made trigger for maximum time in one file - added support for only counting the total file size (SizeLogFile and SizeLogMode registry settings) - added a default settings button for each config screen (except the main one) - gave fileformats identifiers, just like tagsystems - added tooltips in the configuration dialogs - added CloseHandle's for the process and thread that is created when using commandline tools, without this the process would remain in memory - made the commandline encoder functionality compatible with Windows 95/98/ME (it now uses a separate thread) - some improvements to the stopping mechanism, should result in cleaner stops when problems occur - improved error checking in some areas (during writing for example) - made some improvements to the messagebox code, it now correctly uses the systemwide font defined for messages, and the Unicode conversions have been improved somewhat - switched to a newer version of the Monkey's Audio SDK (3.99) - moved the SendMessage calls in Open to an as late as possible point in a not very successfull attempt to do something about the hangs in combination with Tara's RealAudio input plugin - made the expand code handle parentheses better than it used to (something like this: [(%hello%)] used to cause trouble) - fixed the Ogg Vorbis (from dll) format (it doesn't crash anymore), it now only uses ogg.dll and vorbis.dll - fixed and improved the configuration dialog (and configuration handling) of the LAME (from dll) format, it now properly stores and handles VBR/ABR settings - fixed a bug in the registry helper functions that would cause settings of formats to not be stored and read correctly v1.20 (November 23, 2003): - implemented support for the new expand lib - made it possible to use paths in the filename (by putting a backslash in the expand string) - added support for tags (through using the commandline Tag utility) - the commandline formats are now able to use expandable strings (and they now make use of a user-defined template along with, partial, commandlines) - the plugin can now pipe the output data of a commandline encoder to a file itself, possibly circumventing any problems the commandline encoder might have with this (filename problems, file size problems, etc.) - made GetWrittenTime return a nicer value when dealing with extreme playing times - Ogg Vorbis writing now supports 8, 16, 24 and 32 bits per sample (used to be just 16) - FLAC, Ogg Vorbis, MP3 and RAW writing now support very large files (larger than 2-4GB), and WAV has a check that makes sure this boundary isn't crossed (Monkey's Audio doesn't have this, as I think it might be able to support very large files, I'm just not sure) - made LAME (from dll) and Ogg Vorbis (from dll) handle errors in the loading of the dll's better (LAME now makes a difference between having loaded the dll and having found all the imports, and Ogg Vorbis now checks wether it has found all the imports) - let the config dialog always list all formats, but check wether they are enabled when closing the config dialog (optionally giving the user a choice to stay in the dialog and select a different format) - added a lot of error checks (especially during writing, it used to check almost nothing during writing and now it checks almost everything it can check) - some errors now look nicer (you don't get a flood of message boxes anymore) - I now use custom-made message boxes, which I use to show message boxes with more descriptive text on the buttons (instead of "OK" they display "Continue loading" for example) - made sure SetThreadPriority is called only once for each write session - made formats check wether the necessary dll's are available whenever they might be needed in stead of just when the plugin is loaded (so you can now install the dll's while the plugin is loaded and use them immediately) - made settings system more robust - made the plugin check at startup wether this is a newer version and if so the plugin converts the settings to the current version - the plugin now also checks for control characters in the filename and removes them (charactercodes < 32) - fixed FLAC writing of 24bps files - fixed Auto Extension option (it now works correctly when you disable it) - cleaned build (it used two different versions of the same file, as well as an old boost version (1.30.0)) - tweaked priority of the write thread - made sure my plugin will pad the data chunk of a wav file to a multiple of two bytes if necessary (it usually isn't) v1.17 (July 13, 2003): - added support for lame.exe - added support for oggenc.exe - added support for FLAC v1.16 (April 18, 2003): - increased the maximum buffer size, the old maximum wasn't high enough for some input plugins (which caused them to never start playing) v1.15 (March 21, 2003): - added an option to disable automatically appending an extension to the output filename - added an option to automatically overwrite the output file if it already exists - added the variable %n# (where # is a number), which gives you the length of the playlist in tracks, padded with zeroes upto # digits - fixed minor glitch in the Ogg Vorbis config dialog (the slider position would not be accurately calculated because of some strange floating-point issue) - fixed the VBR/ABR radio buttons in the LAME config dialog v1.14 (August 10, 2002): - added support for Monkey's Audio - made the plugin faster while still letting WinAMP be responsive (it now changes the threadpriority instead of using Sleep(1)) - updated the LAME support (some new constants) - made the error box look a little nicer - added two variables for the filename (%ur and %cr) - fixed some things in the config dialog (tab order and some fields didn't initialize correctly) - changed some char*'s to string's v1.13 (May 6, 2002): - improved the support for filenaming (modified the add expandable string option to be: use expandable string, where one of the variables is the (un-)expanded title) - added the variable %p# (where # is a number), which gives you the playlist position, padded with zeroes upto # digits - made winamp much more responsive during writing (by using Sleep(1)) - nicer error message if the plugin hasn't been configured yet v1.12 (April 13, 2002): - fixed a bug in the wav writer that made a wav file look 44 bytes too large - fixed a minor bug in the config dialog (the config button for formats wasn't grayed when you entered the dialog with wav or raw as the default format) v1.11 (February 18, 2002): - added support for Ogg Vorbis (see http://www.vorbis.com/) - made lame optional (it will simply not show the mp3 possibility if lame is not installed), the same goes for Ogg Vorbis - made the config button gray when format has no config - moved the browse button a little bit - made the combobox handle absent formats in a nice way - fixed a minor bug in the lame (and ogg) config dialog (it wouldn't do enablewindow on wm_destroy) v1.10 (January 10, 2002): - added support for MP3 (through LAME, see http://www.mp3dev.org/) - added a browse button for directory selection - changed the style of the comboboxes (they are now drop lists) v1.00 (January 3, 2002): - it plays - raw and wave support - just title, expanded title and just title + expanded string filename support - creates valid filenames - lets you specify an output directory Jasper van de Gronde th.v.d.gronde@hccnet.nl http://home.hccnet.nl/th.v.d.gronde/ (watch the site for updates and so on)