Soundtrack allows you to assign your own music to almost any event in the game.
Installation
Soundtrack requires extra installation steps to gather your music information, so please follow these steps:
Download and Install: Curse Client or manual install, Soundtrack must be extracted in World of Warcraft/Interface/Addons.
Move the SoundtrackMusic folder: Manually copy the SoundtrackMusic folder and its contents, located in Soundtrack, to Interface/Addons.
Get some MP3s (or Oggs): You can copy your mp3s to Interface\Addons\SoundtrackMusic. You can put your mp3s into subdirectories or subfolders for organization. If you can run GenerateMyLibraryWindows, go to Options > Add mp3 file or Add folder and select what you want. GenerateMyLibraryWindows has Junctions turned on by default (see junctions in FAQ below). This will create a junction to the folder you select (similar to making a shortcut to a folder).
Generate your library: You have two choices here: Install Python, a programming language, and run GenerateMyLibrary.py. Or run GenerateMyLibraryWindows.jar and go to Options > Generate My Library. This will create MyTracks.lua inside of the SoundtrackMusic folder that you copied earlier.
Play World of Warcraft: Start up World of Warcraft. When you go to the character screen, open up the Addons and check that both Soundtrack and Soundtrack Music are checked. If your tracks do not show up in game, more than likely Soundtrack Music is not on.
Features
Play your own mp3s inside the game.
Assign music to entire zones or specific sub zones. The default music still plays in zones that you do not assign music.
Assign music when battling various levels of mobs, specific named monsters, or elite mobs.
A plethora of events that you can assign music: Victory, Flight, Dance, Stealth, Swimming, Level Up, etc.
Expose the full World of Warcraft score in your library to assign Blizzard's music to your own events.
Can be used as a standard media player. You can create playlists and play them using mini floating playback controls.
Interface to assign music to events. See all your tracks, sortable or filterable by track title, album or artist names.
Custom events allows you to create your own events through lua scripting. Only for very advanced users with scripting knowledge.