Get an Epic Experience with Premium


Audio & Video Login to Add Favorites
  • World of Warcraft
  • 299 Monthly Downloads
  • Supports: 6.0.3
  • 83,929 Total Downloads
  • Updated 11/05/2014
  • Created 12/09/2006
  • 674 Favorites
  • Project Site
  • Comments
  • Release Type: Release
  • License: All Rights Reserved
  • Newest File: Soundtrack 2.5.1

About Soundtrack

Soundtrack allows you to assign your own music to almost any event in the game.


Ever get tired of World of Warcraft's default music? Wish you could inject a little bit of aural life into your game, but on your own terms? Soundtrack is the mod for you! Soundtrack allows you to assign any music you own from your own personal music library to almost any event in the game, including death, getting on your mount, leveling up, entering stealth, and various forms of combat that can distinguish between world mobs, PvP, boss battles, and more! When the event occurs, Soundtrack will play the music you have assigned to that event, almost as if the music were a part of the game itself!
  • PLEASE NOTE: I am not the original author. Morricone was the man behind the project, and as of now we he has yet to return to the project. This is a fan update created in order to fix a small, very limited number of bugs that have been neglected due to Morricone's unexplained absence. -FluffyBearLina
  • Thanks to Morricone for creating Soundtrack in the first place, and to FluffyBearLina for the update back in March 2009. Another huge thanks to Morricone for passing on his baby to me. Hopefully I can improve and keep it going for a while longer. -Lunaqua
  • As per the above, major thanks to Morricone and everyone who's worked on Soundtrack over the years. In Lunaqua's absence, I'll be adding to and maintaining the addon where I can. Long live custom music! -Sciz


  • Play your own mp3s inside the game.
  • Assign music to entire zones or specific sub zones. The default music still plays in zones for which you do not assign music.
  • Assign music when battling various levels of mobs, specific named monsters, or elite mobs. Set a different track to trigger at low enemy health for those intense final moments!
  • Assign music to your pet battles based on battle type, continent, and enemy player or NPC name.
  • 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.


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.
  • 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: (PLEASE NOTE! Python 2.x.x should be installed not 3.x.x or later.) You have two choices here: Install Python, a programming language, and run Or run GenerateMyLibraryWindows.jar and go to Options > Generate My Library. This will create MyTracks.lua inside of the SoundtrackMusic folder. Move it back to \Soundtrack\.
  • Play World of Warcraft: Start up World of Warcraft. When you go to the character screen, open up the Addons and make sure that Soundtrack is checked.

Known Issues

  • Zone and battle music sometimes gets interrupted in instances or battlegrounds. It will come back on once the number of sound effects drops.
  • Dance music does not stop when your character stops dancing. This is because there is currently no way to detect that you have stopped dancing, so the track stops when it reaches its end.

Feature Requests and Bug Reports

Please leave a comment or leave a ticket on CurseForge.


I am doing the best I can to localize Soundtrack, but there's a lot of lines that need to be translated and I only speak English fluently. If you are multi-lingual and would like to help localize Soundtrack, send me a PM and we can set up a localization plan.

Frequently Asked Questions

  • - Why does my music cut off in the middle of battles or a lot of AOE? World of Warcraft has a limited number of sound channels available for it to use. When all the sound channels fill up, WoW will cut off the music being played by PlayMusic(), which is Soundtrack's music. When the number of sound effects drop, the music will play normally again.
  • - Why does my playlist stop when I close the main window? If you select a playlist from the Playlist tab in the main window, when you close it, the playlist will continue to play. If you leave the tab, the playlist will stop.
  • How do I find out the icon name for a buff or debuff? If the buff or debuff is on you, you can use the following macros. They will tell you the name and icon texture of every buff (or debuff) on your character. For a buff, copy this macro: /script for i=1,40 do name,_,icon = UnitBuff("player", i) if icon then print(name," = ",icon) end end For a debuff, copy this macro: /script for i=1,40 do name,_,icon = UnitDebuff("player", i) if icon then print(name," = ",icon) end end Other sites, such as Wowhead, have the icon name. If you get the icon texture name from there, add "Interface\Icons\" before it and it should work. Capitalization does not matter.
  • - What types of music files are supported? MP3s and, if you run GenerateMyLibraryWindows.jar, Ogg audio files (.ogg). Other formats are not supported by Blizzard. Files with Japanese or other non-ASCII characters in their names can cause problems, so I suggest renaming them. There are a lot of programs to convert various music formats to mp3. I personally use iTunes for that. In iTunes, Edit->Preferences, select the Importing tab, and make sure you Import using: MP3 Encoder. Then you'’ll be able to convert any tracks to an mp3 file.
  • - Why do I need to copy my music to the SoundtrackMusic folder? The only files that can be played by WoW are files placed under the World of Warcraft folder when the game is started. Advanced users might want to try junctions to add a virtual link between Soundtrack's music folder and your music folder. If you run on a Windows machine, you can use GenerateMyLibraryWindows.jar in the Music Manager folder.
  • - How do I transfer my assignments to another machine?
    1. Exit WoW on the target machine.
    2. Copy your Interface/Addons/SoundtrackMusic folder to the target machine. If you only copy partial music files, it will still work, but the events that are missing tracks will be fixed automatically and you will lose the track assignments (since the tracks don’t exist).
    3. Regenerate the library on the target machine. You do this the usual way, by running You can also copy MyTracks.lua directly if you want to skip this step.
    4. Copy the settings. All of Soundtrack settings are stored in World of Warcraft\WTF\Account\<UserName>\SavedVariables\Soundtrack.lua. So copy this file to the same location on the target machine.
    5. Start WoW on the target machine!
  • - Why do I need to install Python? Because the Blizzard API with which I write the addon does not let me scan your music folder. This limitation is probably to prevent cheats or from addons to screw up your pc files. If this limitation is lifted, I will remove the script. So the only way to feed your list of tracks to the addon is to generate that list outside of the game. I could have written a program in any language, but the reason I picked Python is because the same script works on both Mac and PCs, and you can read the script yourself, in case you are worried about the script's security. The script scans all your mp3s and saves the name, album, artist and track length to MyTracks.lua file, which is loaded in the game. When you install Python, you install an interpreter so that your computer can understand the code, similar to the Java Virtual Machine (that little coffee cup that runs on your task bar when you view something in Java).
  • - What's a junction? A junction is a file that links two directories together as if they were a parent and subfolder. The folder it links to is the subfolder, and the folder the junction is in is the parent folder. Junctions allow to add music in other folders to your in-game library. To create a junction, run Soundtrack_Music_Manager (junctions are enabled on startup) and go to File > Add Music Folder(s). Select and open the folder(s) you want to create a junction to and the junctions will show up in your SoundtrackMusic folder. (Soundtrack_Music_Manager will create a junction from the Music Manager folder to SoundtrackMusic folder for convenience.) For Windows XP users: You need to download junction.exe for junctions to work. Go to Soundtrack\Music Manager\junction and open the README file for more instructions, including a link for downloading.

2.5.1 release
  • Fixed UI Issue with Expanding and Collapsing of Events
  • Fixed UI Issue of the # of assigned tracks to an Event overlapping the Event Name
  • Fixed Issue with music not playing when using Flight Paths


First Previous Page 167 of 168 Next Last
  • #769

    For anyone who is having a problem with the current song fading then coming back to full volume for a split second before the next song starts, try inserting the line

    if fadeOut == true then
    if currentVolume <= .1 then StopMusic() end --insert this line
    if currentVolume <= 0 then

    around line 69-70 in SoundtrackLibrary.lua as shown. I've been working on this for 3 hours now (no experience in coding in the language), so my line numbers might be wrong.

  • #770

    == ==

    Video Soundtrack Addon [WiS Server], Italy

  • #773

    I confirm if currentVolume <= .1 then StopMusic() end fixed it but for me it work better with .2 I don't get any come back from the volume.

  • #772

    WOOOOOHOOOOOO!!!!!! Lunaqua !!!!! You did it!!!!It sounds much better!!!

    if fadeOut == true then
    if currentVolume <= .1 then StopMusic() end --insert this line
    if currentVolume <= 0 then

    Inserting that line worked! thank you so much GJ very Good Job!!!

  • #776

    you my friend are a little legend.

    has around a second and a half gap before the next song begins but the volume problem is totally fixed.

    excellent stuff mate.

    On another note, only the first tune in the list plays despite if ive chose x amount for that town. any ideas?

  • #775

    function Soundtrack.Library.OnUpdate(deltaT)
    if fadeOut == true then
    if currentVolume <= .2 then StopMusic() end
    if currentVolume <= 0 then
    Soundtrack.TraceLibrary("Restoring volume to" .. originalVolume)
    SetCVar("Sound_MusicVolume", originalVolume)
    currentVolume = originalVolume
    Soundtrack.Library.CurrentlyPlayingTrack = nil

  • #774

    it doesnt fix my problem
    just to check im not being a spanner - including the lines around it it should read as this right....?

    function Soundtrack.Library.OnUpdate(deltaT)
    if fadeOut == true then
    if currentVolume <= .1 then StopMusic() end
    if currentVolume <= 0 then
    Soundtrack.TraceLibrary("Restoring volume to" .. originalVolume)

  • #780

    To be honest, there's a way to check if you're getting rested (PLAYER_UPDATE_RESTING), but a couple of issues with it.
    1. Major Towns and Inns would give you rested, but that could be changed with making an exception for major towns (then the inns in town won't work, but you can't win 'em all).
    2. I have no clue how it works. It might give a true/false to rested, which I could deal with, but I'll have to test it. (I wanted to add inns myself ^^.)
    Right now, I don't think there IS an option to give music to inns, but that needs to change >:P

    The time between selecting a song and playing the song is the fade out before the next song begins. Annoying, but I blame the WoW gods for changing StopMusic() from auto-fade to stop only.

  • #779

    I meant "gap" as in the time it takes for another song to start once selected, not as in silence between them.

    But if thats not what you were after my volumes on full for everything, with music slightly lower.

    Good job though mate :)

    A second thought, how do i make music for inns???
    and how do i get all locations in the list as supposed to having to find them again.

  • #777

    Holy cow. Didn't know I did something amazing. Made the time spent worth while. :D

    To those who have .2 instead of .1, I think that the original problem was that the StopMusic() command wasn't going through soon enough to actually *stop* the music before it restored music volume to normal.

    I'll see if I can find another solution that'll work for everyone.


    What's your volume setting at? Curious for why you have such a long gap between songs

  • #778

    Last night, Lunaqua got the little mini player able to go backwards and pause correctly.

  • #785

    I hope Morricone is just paying little attention to this addon and will come back... this is on my top lists of addons! :'(

    And glad to hear fade is normal in the WotLK! That means the code for fade can be taken out completely. :D

  • #783

    I'm actually in the beta, and as far as I can tell, it works pretty much the same as it does now--and in my case, using non-fading 1.17, it appears that a fade out does happen without having to add it in. However, of the most recent build, it does appear that reloading the UI or going into a subzone totally destroys the mod, and you have to manually play a song from the UI in order for it to properly reset.

    The UI is also borked completely; I have to copy my settings from live over to the beta account in order to make changes.

  • #784

    Also, should I start to get worried that Morricone's pretty much dropped off the face of the Earth? :(

  • #782

    I've looked at the code for 1.17 and the fading isn't implemented in it.

    In 1.20, the fade is a loop that lowers the volume by .01, so if you have your music on a high volume, it'll take longer for it to go through the fade. I've been working on making the fade proportional to the volume rather than a flat increment, so I might need to post it.

    And I have no clue how it'll work in the Beta. I don't have a key... yet. As I've said before with StopMusic(), maybe they put back the fade part to it? The WoW Gods need to make up their minds!!

  • To post a comment, please login or register a new account.
Login to Curse

Don't have an account? Create One.

Get an epic experience with Curse Premium
  • Faster addon downloads
  • Premium-Only Beta Giveaways
  • Ad-Free Curse experience
  • Premium Curse Client
  • and many More Features
  • Learn More »

Wildstar Skinned PC Giveaway