0 of 0

File information

Last updated

Original upload

Created by

HawkleyFox and Scanti and Forli

Uploaded by


Virus scan

Safe to use



View as plain text

Enhanced Music & Control 2
Version: 1.2.1
Authors: HawkleyFox, Scanti, Forli

Enhanced Music & Control is an OBSE plugin that enhances Oblivion's music playback and provides script commands to further extend manipulation functionality to scripters.

HawkleyFox, the God of Music. He created EMC. EMC2 would not exists without EMC and his author!
Scanti, the God of Volume: he created SoundCommands, which is now integrated in EMC2.
ShadeMe, the God of … pretty much everything! Thanks to his OBSE, CSE and his support and help.
Alenet, the God of Reborn. He deserve a medal for listening and helping me with all the problems I had.
Saebel, the God of Stealth. He helped me to set-up the mod and gave me many advices to solve many problems and make things better.
Hlp, the God of SourceCode. He helped me with the import and the errors.
The OBSE Team: the Gods of Hack. Everything works thanks to them!
Bethesda: the God of Games. Thanks for this blessed game!

Main features:
- Manipulate the music player with commands to play, pause, stop, restart or skip the playing track.
- Manipulate the music playlists with commands to create, update and override the playlists.
- Manipulate the pause between tracks and the fade in/out periods.
- (SoundCommands integrated) Manipulate the volume in either the game settings or the Oblivion.ini.
- The music player will now remember the previous track after a battle, allowing you to entirely listen your favorite piece!
- The music player will also remember the previous track if you enter another place and go back immediately.
- Support more title, death and level-up tracks, chosen randomly. Just place as many files you want in the Data/Music/Special folder with names like “death_X.mp3”, “success_X.mp3”, “tes4title_X.mp3”, where you can type anything in the X part (death_ffffuuuu.mp3, success_fuckyeah.mp3, and so on...).

Take a look at the “EMC2 - Commands List.pdf” in for the list of available commands and their usage.

Long description:
EMC effectively removes control of Oblivion's music from the game's own code and places it solely in the hands of the plugin. None of the game's functions are used to play the music.
A DirectShow powered player within the plugin renders the music in it's place. This gives the plugin absolute control of how the music is rendered and gives the capability of enhanced effects such as fading between tracks and resuming a previous track from earlier.

What it does for players:
From a gameplay stand point, some of the first things you'll notice is that the previous track will resume after a battle is concluded. This prevents short Mud Crab beatdowns from interrupting the regular exploration music. This is great if you have enjoyable custom music and get aggravated that it gets cut off by battles before it gets to the good part. You'll be able to listen to the entire track all the way through to the end even if you continue to run into minotaurs and timber wolves over and over.

Further, short music changes will result in a resume as well. So, if you pop into an Inn (and the music changes as a result) then decide you don't need to do anything there and immediately exit, if it was within 20 seconds, the previous track will resume instead of a new one being selected. It also does it with battle music too, so if you kill one guard and exit battle, then get spotted by some more, the battle music will start back up where it left. Its really cool!

I'm unsure if this was an issue in vanilla Oblivion, but each song in each music type's playlist will play once before you'll hear a song again, and the playlist is automatically reshuffled after each full playthough. You're guaranteed not to hear the same song twice in a row or too quickly in succession (unless, of course, your playlist only has one or two song in it). The more music you have, the better it all works.

Also, tracks will appropriately fade gently in and out instead of a sudden hard change. I find this more pleasing to the ears and disturbs the atmosphere less.
The music control system was designed to try and mimic Oblivion's as closely as possible. You'll still find some things are a little different. Like the title music plays through until you're in game. Not by design, of course, and I'll try and find a way to fix it soon as I can figure out where to place a sensor for the load screen.

What it does for modders:
For modders, it will allow you to control whats being played. Let the player explore your mod's world with it's own custom soundtrack that's completely separate from Oblivion's by creating your own playlist and substituting yours for Oblivion's where appropriate. You can even tell the player to play Battle music outside a battle or play Dungeon music independently from the current location.

Reliable GetMusicType commands. OBSE's GetCellMusicType command does not always return the music that SHOULD be playing for a particular location or situation. I found that in IC's Marketplace district, this command incorrectly reports the music type as Default (Explore) when it clearly should be Public. While now I realize that it is doing exactly what its supposed to do, it didn't help me any. Now, I'll provide commands that accurately let you know exactly the type of music that is being played, where ever the player is or what ever the player's state.

- OBSE – Oblivion Script Extender v20 - by ianpatt, behippo, cruggsywuggsy the ferret and shadeMe

- Dynamic Music System v1.22 - by Forli

- Enhanced Music & Control - by HawkleyFox (EMC2 is the new era).
- SoundCommands - by Scanti (integrated in EMC2).
- BMS - Better Music System and other mods using the old EMC. They won't work at all with EMC2.

- Uninstall both the old EMC and SoundCommands plugin (delete their dll from “Data/OBSE/Plugins”).
- Extract the EMC2 archive in the Data folder.
- It's an OBSE plugin, so you don't need to enable it in some mod manager.
- Clean all your tracks: remove any tag and any album cover, and ensure your codecs are right.
- Run the game and play.

Known issues:
- The game could crash on start-up or loading or at any time. This is caused by tags, album covers or a bad mp3 format. Clean your tracks by using a program like mp3Tag. Remove everything (author, title, cover, …).
- If you have any problem, check the files “obse.log” and "enhanced_music_control_2.log" in the Oblivion folder.

Change log:
- StreamMusic is finally fixed! While making it compatible with EMC2, I “accidentally” fixed the vanilla bugs as well (look at the CS wiki). Now it works exactly like emcPlayTrack, so it maintains its functionality and it also accept ? and * regex characters. Side effect: it can't play movies anymore (not a big loss, since playing movies this way cause Oblivion to become unstable and eventually crash).
- Added fade time in/out parameters to emcSetTrackPosition.
- Added another return value to the command emcCreatePlaylist: -1 if the playlist exists but can't be recreated, because it's active.
- The "death" music play on level up instead of the "success" music. FIXED
- The title music keep playing in the loading screen. NOT JUST FIXED: NOW IT'S CONFIGURABLE!

- Added a file ini in “Data/OBSE/Plugins” to configure the plugin!
- emcGet*Volume commands now accept an additional parameter to read different values.
- emcSetPlaylist now accept an additional delay parameter.
- emcSetPlaylist now use the fade out/in times at the time of the call.
- emcSetPlaylist: called many times in a row won't risk to break the switch anymore.
- emcCreatePlaylist can now destroy an existing playlist, by passing an empty path.
- Many set commands do nothing if the new value is the same (random value are still recalculated).
- If the music type changes but the playlist is the same, the track will continue playing.
- Added console output for all commands.
- Many fix and optimizations.

- CRITICAL BUG: The emcSetPlaylist is broken. FIXED
- CRITICAL BUG: The music multipliers were not initialized anymore, causing CTD. FIXED
- emcSetBattleDelay doesn't set correctly the extra battle delay. FIXED
- Now emcGetPauseTime, emcGetBattleDelay and emcGetAfterBattleDelay can return the current time/delay.

- CRITICAL BUG: A bug causes problems with the battle music. FIXED
- Some commands parameters were wrong. FIXED
- Added new messages in the log.

- All emcSet*Volume commands accept an additional “fadeTime” parameter.
- emcSet/GetMusicVolume command accept an additional “key” parameter.
- Revised the emcSetMusicType command and the override/lock code. Now the lock is optional and emcGetMusicType can detect the music type from the above command. All parameter's values revised.
- emcSetMusicSpeed limit increased from 10 to 100, but I didn't test the highest values...
- emcSetTrackPosition can no longer set a position higher than duration.
- emcSetPauseTime, emcSetBattleDelay can now accept an optional “extra” time/delay, for randomization.
- Added emcSet/GetAfterBattleDelay, to delay the battle music ending after battle mode ends.
- Having no tracks for any of the vanilla playlists caused CTD. FIXED.
- Little fixes, improvements and optimizations.

- Updated the emcPlayTrack command. Now it support ? and * regex characters. If multiple files match the string, EMC2 play only one of them, chosen randomly.
- Fixed the "method: 2" for emcSet/GetMusicVolume, to correctly manipulate the internal multiplier.
- Added “method: 3” for emcSetMusicVolume, which store the multiplier in the save. Use with caution!

- Initial release

Legal and Permissions:
This plugin belong partially to HawkleyFox (for the EMC part) and to Scanti (for the SoundCommands part). I only merged the 2 plugins and fixed/improved them.
I asked permission to both to use their plugins code.
For any question about legal and permissions, you must ask these 2 Gods, not me.