"Thanks to a new feature in Java 2 1.3 -- the Java Service Provider Interface (SPI) -- the JVM provides audio subsystem information at runtime. Java Sound uses the SPI at runtime to provide sound mixers, file readers and writers, and format conversion utilities to a Java sound program. That allows older Java programs, even Java 1.02 programs, to take advantage of the newly added functions with no changes and no recompiling. Indeed, more functions can be added to Java Sound to take advantage of new file formats, popular compression methods, or even hardware-based sound processors."
"The JavaSound API provides a plugin architecture, allowing third parties to support new formats such as MP3, Ogg Vorbis, FLAC, Monkey's Audio, and more. This architecture allows the JVM to discover and load plugins at runtime. Each plugin must implement the service provider interfaces. One implementation is needed for each new audio format supported. That's the reason why you can find one SPI implementation for MP3, one for Monkey's Audio, and so on."
"The get_tag() function is essential to autotag.pl. Given an MP3 file name, it builds a hash tag from the file. If the tag is only ID3v1, get_tag() will offer to upgrade the ID3 tag for free (what a deal!). If there is no ID3 tag, get_tag() will create one. Furthermore, get_tag() knows to look at the Text and URL sub-elements of the COMM and WXXX tag elements, respectively."