Get an Epic Experience with Premium

Soundtrack

Audio & Video Login to Add Favorites
  • 14 Likes
  • World of Warcraft
  • 500 Monthly Downloads
  • Supports: 5.4.0
  • 74,898 Total Downloads
  • Updated 09/10/2013
  • Created 12/09/2006
  • 658 Favorites
  • Project Site
  • Comments
  • Release Type: Release
  • License: All Rights Reserved
  • Newest File: Soundtrack 2.4.5 release
or

About Soundtrack

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

Introduction

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

Features

  • 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.

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.
  • 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. 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.

Localization

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 GenerateMyLibrary.py. 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 GenerateMyLibrary.py 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.4.5 release
  • Updated TOC for WoW 5.4.0
2.4.4 release
  • Updated TOC for WoW 5.3.0
2.4.3 release
  • Updated TOC for WoW 5.2.0
2.4.2 release
  • Updated TOC for WoW 5.1.0
2.4.1 release
  • Didn't accomplish anything
2.4 release
  • Updated TOC and API calls for WoW 5.0.4
  • Added pet battle support
2.3 release
  • Updated TOC for 4.3
2.2.2 release
  • Added catch for zones with unknown continents (i.e. Firelands).
  • Added localizations for some continents: Instances, PvP, Unknown.
2.2.1 release
  • Updated Custom and Battle events for extra arguments in COMBAT_LOG_EVENT.
  • Updated TOC of SoundtrackMusic for 4.2. To update Soundtrack Music, move SoundtrackMusic.toc to the Addons/SoundtrackMusic folder.
  • Fixed issue with tracks restarting when not wanted during zoning.
2.2 release
  • Updated TOC for 4.2
  • Fixed key bindings.
  • Fixed issue where music may not playing when entering an instance.
  • Fixed events trying to play when the event is already playing.

Comments

First Previous Page 99 of 158 Next Last
  • #893
    Gee, thanks
  • #885
    Hey all, I'm trying to play a sound when I score a crit higher than 9000, but my custom script isn't working. Here is what I have. Can anyone tell me what's wrong?

    Trigger: UNIT_DAMAGE

    9000) then
    Soundtrack.PlayEvent("Custom", "New Event 1")
    end;
  • #884
    Okay. I'm just not getting it. I've tried every trick I can think of to impliment the fix, but cannot. Everytime I attempt to fix Soundtrack to eliminate the cross-fade, it breaks on me. Any suggestions on how the .lua should be fully ammended, or perhaps even posted to show the fix?
  • #892
    I'll post it for ya bud.

    http://an.criticalcoil.com/downloads/Soundtrack.lua
  • #896
    That's only the default .lua, Yama. I'm looking for the modiified, fixed .lua that removes the five second fade.
  • #883
    I just need some simple help here. How the hell do you do some of this scripting for the custom events? I just want to make an event to play my songs while I fish and stop when I'm done.
    How do you do that?

    I don't know a damn thing about scripting or LUA. I'm not even sure what the different options mean on the "Custom" tab portion of the Soundtrack menu.

    If there is a website out there that tells you how (for dummies, if you know what I mean), especially for this kind of thing, could someone point me in the right direction or at least post a fishing event script, I would really appreciate it.
  • #882
    I discovered the victory music is bugged, it does not stop and continues to loop. Anyone knows a fix for this?
  • #886
    Seconding this. Actually, I reported it a while back but it seems to have been overlooked. Hope it gets looked into. =)
  • #881
    Ive added the soundtrack folder to my addons folder however when i copy the music in and attempt to run the generatemylibary no mylibrary.lua shows up does anyone know why? this addon worked perfectly pre wotlk.
  • #874
    Hiya folks. This being one of my essential addons for so long during BC, I decided I'd take a look at removing the crossfading myself, and I seem to have gotten it. It turned out to be easier than I thought. Here's the steps to take to remove it yourself. You might want to make a backup of the SoundtrackLibrary.LUA, but you could always redownload it if there's trouble, which I haven't had any.

    1. Go to Soundtrack in your AddOns folder.
    2. Find and open SoundtrackLibrary.LUA
    3. Scroll down, or search for the line that has:
    function Soundtrack.Library.OnUpdate(deltaT)

    4. Highlight everything from...
    function Soundtrack.Library.OnUpdate(deltaT)

    ...All the way to the End that lines up with it.

    5. Replace what you've highlighted with this in its place:

    function Soundtrack.Library.OnUpdate(deltaT)
    if fadeOut == true then
    StopMusic()
    Soundtrack.Library.CurrentlyPlayingTrack = nil

    if nextTrackInfo ~= nil then
    DelayedPlayMusic()
    nextTrackInfo = nil
    end

    SoundtrackFrame_TouchTracks()
    fadeOut = false
    end
    end


    Save the file, and that should do it!
  • #877
    On the copy I just downloaded, its not broken up into lines, its all sorta mashed together and I don't know which "end" you mean. Is it possible for you to paste everything I need to replace here please?
  • #879
    Try microsoft word, everything should be formatted. I had the same "wall of text" problem when I opened it with notepad.
  • #878
    This is the section you need to replace:

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

    if nextTrackInfo ~= nil then
    DelayedPlayMusic()
    nextTrackInfo = nil
    end
    SoundtrackFrame_TouchTracks()
    fadeOut = false
    else
    currentVolume = currentVolume - 0.01
    if currentVolume
    SetCVar("Sound_MusicVolume", currentVolume)
    end
    end
    end
  • #876
    The recent one still don't work with short musics (5 secs or shorter) I'd like to find a way to solve that issue.
  • #875
    Worked perfectly. Great job!
  • 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 »

Landmark Beta Key Giveaway!

Get My Code!