file is not available in all installation configurations
is part of Winamp since version 2.7
and it can be found in the Plug-ins directory.
Winamp 5.1 and many of its shipped plug-ins still use the read_file.dll
That is really great!!!
Well, in an old read_file.dll
documentation I could read,
that Peter Pawlowski introduced the read_file.dll
when Winamp3 was developed.
read_file.dll, build 01/25/2002
(c) 2001-2002 Peter Pawlowski, http://www.blorp.com/~peter/
This dll is a part of winamp setup; it is used by my input plugins to read
compressed files. in winamp3, all input plugins will use access local files via
read_file.dll so you will be able to play zipped mp3s for an example. Of course,
it also reads regular non-compressed files.
You are not allowed to redistribute this DLL anywhere without my permission.
currently supported formats are:
- zip and gzip (powered by all-time great ZLIB)
- rar (powered by UnRAR source code)
- arj (powered by UnARJ source code)
plugins that support read_file.dll:
- in_midi (in winamp setup)
- in_wave (my one, not Nullsoft's plugin from Winamp setup)
- in_vorbis (will be in the next winamp setup)
- in_mod (updated version will be in the next Winamp setup)
most of plugins listed above can be found on my web site
read_file.dll's major purpose is to decompress compressed mods /
midis (archives containing single file) 'on the fly'.
the file is being completely decompressed into memory while opening.
be careful with this stuff - if you compress 50-meg wav, you will need 50 megs of
free RAM in order to play it and it will take several seconds to open it.
new versions have some other features:
- CD letter detection - replace drive letter with # character,
eg. "#:\main.mix" and read_file.dll will automatically scan all drive letters for that file.
- partial file access - eg. "partial://xxxxxxx-yyyyyyyy:x:\dir\file.ext\file.mid" where :
xxxxxxxx - start offset in hex (must be 8 characters!), yyyyyyyy -
end offset in hex, x:\dir\file.ext - path of file,
file.mid - 'display name' of file (most input plugins will recognize it as file name);
extension is important to make sure that proper input plugin opens the file. example: install my in_wave,
insert Red Alert CD1 english and open "partial://188391D4-18C4BEC0:#:\main.mix\Hell March.aud".
- zip/rar file extraction - eg. "c:\music\spc\FF5.rar\ff5-1-01.spc".
you can compress all your SPCs with RAR and create playlists referencing RAR files;
this will save huge amounts of disk space (about 30 megs for me).
TIP: if you want to compress whole directory of files, append '.rar' (or '.zip') to its name,
then create big playlist with files in it, save it in parent directory, remove '.rar' ('.zip') extension,
compress contents with rar/zip (make sure that rar/zip file name is the same as
altered directory name before) and put rar/zip file in parent directory (where your playlist is).
*** Using read_file.dll in your plugins ***
Read_file.dll is based on pre-released Winamp3 specs (Tempura).
It should even still work with Tempura. (Almost) complete specs were inside
Winamp3 pre-sdk which used to be available on NSDN - http://www.winamp.com/nsdn/ (and might be still there).
Exported symbol is int readerSource(HINSTANCE ,reader_source**) (this is not mentioned in Tempura specs).
So, I looked for Winamp3 SDK stuff and I found following executables:
After unpacking both executables into two different directories,
I looked for files which contain strings like:
and I found following source/example files:
They seem to contain detailed descriptions about how to use the read_file.dll
Now, it would be great if the next Winamp SDK release would
also contain the retrieved information,
wich would be necessary to add read_file.dll
support to self-made plug-ins.