If you want to report a problem please always share your logfile. On Windows the logfile should be available here: %USERPROFILE%\Documents\My Games\OpenMW\openmw.log
Please also make sure that the DEFAULT soundbank is enabled in the script settings. Things can get messy whenever Dynamic Music is not actively controlling the music. That's what the DEFAULT soundbank is for so that there is always a fallback if no other soundbank matches for the current ingame state.
Been really enjoying it, despite how fragile it can be (I'm not that fond of how the entire mod breaks if there is a single mistake in a single soundbank, but it is what it is.)
One feature request (besides the ones I mentioned, such as being able to tie music tracks to enemy NPC classes and creature types, and being able to use namePatterns for actors) would be a way to configure fade-out and fade-in between music tracks; transitions between, say, the MUSE Imperial tracks to the regular explore tracks when leaving town just feel very sudden to me.
(It's not the same thing as the "how long to delay track transitions" that already exists)
I'm also wondering if something like normalizing music track volume could be done, but I have the gut feeling that it's not (yet) possible.
In any case, I really enjoy the possibilities that already exist. Thank you very much for this mod; combined with the wonderful compositions modders have created throughout the years, this really enhances Morrowind.
Time to go out for a stroll throughout Vvanderfell...
I'm not sure how to set this up after tweaking it multiple times and it never plays any unless i put DEFAULT sound bank on - how do i make combat music always on when there's a combat situation, regardless, of the levels and such?
Set "Use DEFAULT Soundbank" to true. Set "Min.Enemy Level" to 0.
That should do it. If it still does not work please reproduce the situation where you expect combat music to play but it does not and upload your complete logfile somewhere.
The Muse Music Expansion mods by Scipio219 don't work with Dynamic Music. I go to the different places and the only thin happening is the vanilla soundtrack shuffling at each cell change. I've already contacted Scipio about it he told it might be 'a collision of some kind between mods affecting the same area' but it doesn't work in any area. It's pretty weird because the Tamriel Rebuilt Soundtrack mod does work with yours.
They're working fine and dandy on my end. Note that quite a few of Scipio's mods do not have soundbank .lua files yet, so they won't work out of the box. Making your own soundbank is not difficult at all, in any case.
Ah that's probably why but the older Ashlanders mod doesn't work in the Ahemmusa camp either.. Do you mind telling me how you can create soundbanks for his mods?
Ashlanders isn't part of Dynamic Music by default! And make sure "use DEFAULT soundbank" is toggled ON in the mod settings; there was a bug until just recently where it was disabled by default.
I plan on contributing mine to this mod, if the author allows. I'll still teach you, since it can be a fun experience (and lets you tweak soundbanks to your liking)
Making your own soundbanks is just a matter of having the minimum proper tools (a plain text editor intended for coding, such as Notepad++ on Windows; DO NOT USE MS WORD or similar "rich text editors"), giving Dynamic Music's readme a skim, and using the default soundbanks as a guide.
In general terms:
Create your new soundbanks in the scripts/DynamicMusic/soundbanks/ folder. I kept Dynamic Music's default pattern, so something like 1100_muse_expansion_ashlander_cells.lua and 1100_muse_expansion_ashlander_enemies.lua, but you could name it Ladies_Love_Cool_Music.lua if you were so inclined
Open your empty file in an appropriate text editor.
Copy/paste the example soundbank from the Dynamic Music readme.
Fill the entries or remove them as you need. For example, in the "ashlander enemy" file, I just put this inside the soundbank = { } body enemyFactions = { "ashlanders" }, --watch this comma! combatTracks = { { path="Music/MS/combat/Ashlander/combat1.mp3", length=78 --in seconds }, --watch the comma! { path="Music/MS/combat/Ashlander/combat2.mp3", length=64 }, --watch the comma! { path="Music/MS/combat/Ashlander/combat3.mp3", length=79 } }
Do this for other addons as appropriate; note that the MUSE Expansions were originally designed for use with MWSE, and come with config files. Use them to get things such as cell names and enemy names as needed (in the case of factions, I preferred Dynamic Music's enemyFactions over a list of names). Note that certain characters need to be escaped; for example, let's say you have a name (cell or actor) like "Has-Hyphen"; you need to write it as "Has%-Hyphen". In the case of something like "John's House" it needs to be "John\'s House" (otherwise the mod breaks)
That would be it, I think. You can test as you play by using the console and typing reloadlua. Use the logger (F10) to see how the mod works as it runs.
Impressive work! And I've been enjoying the MUSE Music Expansion and TR OST addons, too...
Just some things from my brief playing-around with this:
I'm trying to edit the 6th house soundbank that comes by default with this mod, as it misses some (admittedly kinda corner-case kinda-obscure) NPCs. While I get the combat music to play when I fight a "Dreamer" after my modifications, I cannot get it to work with NPCs that belong to the "Sixth House" faction (For example "Zula", ID "dreamer priest", who belongs to the Sixth House faction. Yes, I checked the faction ID in the CS).
enemyFactions = { "sixth house" }, Edit: further testing reveals that this is a general problem, for example enemyFactions = { "Blades", "Imperial Legion" (and so on) } and none work. As far as I can tell, from what I checked with OpenMW-CS, the faction IDs are correct. Factions such as the Great Houses and Ashlanders work, though. The openmw.log (and console output F10) doesn't show anything interesting; just that Dynamic Music is going to use the DEFAULT soundbank.
Is it possible to add exclusion patterns for cells? For example, there's a yurt in Ahemmusa Camp that belongs to a character named Mamaea (and another example in Erabenisum Camp, Ainab's Yurt)... So creepy Sixth House music plays in that case. I did fix it by commenting out the offending cells from the cellNamePatterns list(?) and added a cellNames entry with their respective sub-cells. But maybe it's a thing to consider?
cellNames = { 'Mamaea', 'Mamaea, Sanctum of Awakening', 'Mamaea, Sanctum of Black Hope', 'Mamaea, Shrine of Pitted Dreams', 'Ainab', 'Ainab, Shrine' }, Edit: already implemented as cellNamePatternsExclude, whoops
Would be interesting if the mod could leverage things like creature types, so we can have, say, specific combat music for all undead, rather than rely on names.
Also, actor name patterns and actor classes... Just spitballing, I understand this is a lot of work :-)
By the way, despite the big emphasis on having the "use DEFAULT soundbank" option enabled, it's disabled by default...? Is it intentional?
Zula is on level 2. What are your settings for combat music? With the default settings enemies on that level should no longer play combat music when your character has reached at least level 4. You can easily get the enemy level if you open the console, click on the enemy and then run the commands: luas() print(require('openmw.types').Actor.stats.level(self).current) Also make sure that only the enemyFactions filter is populated when you want to make faction specific combat music. Filters are combined AND wise and if they contain a filter for enemyNames AND enemyFactions the music will only play if the enemy has a specific name AND is a member of one of the factions in the list.
Faction names should be case sensitive so you can check if your entries exactly match the ones from the game. Haven't tested myself but I think "Imperial Legion"will not work when the game's id for that faction is "imperial legion".
Having the Default soundbank disabled by default is not intended though. Many thanks for the hint.
I disabled the level-related options just for this, hehe.
It would be good to mention the fact checks are done AND-wise in the example and readme, as I intuitively assumed it was an OR check. A bit of a bummer the filters cannot be used together like that! ("Enemy has this specific name OR belongs to this faction") I suppose a workaround is having a soundbank specific to Sixth House faction members and a soundbank for named enemies/sixth house creatures... And that works, indeed. (Thanks for the console snippet anyway, I couldn't figure out how to run Lua in the console. Debugging will be much easier now, lol)
With the Sixth House example, I've tried both upper and lowercase and didn't work, but it's likely because of the AND check. The weird thing is that in OpenMW-CS the faction IDs are always Like This. However, I noticed my working enemyFactions entries were all lowercase... And yes, that did the trick.
I'd like to contribute the soundbanks I made for the other MUSE Music Expansion mods that aren't covered out of the box with yours, such as Redoran, Hlaalu and Telvanni. Would you like it done through Github or can I DM you a link to a filesharing service (or something)?
Good to hear that you managed to solve the issues. I don't know what's up with the faction IDs since I noticed the same. The CS gives a different capitalization than when you fetch the values ingame. I'll see if i can convert everything to lowercase as default then it should no longer matter.
You can see the enemy factions ingame with:luas() for _, f in pairs(require('openmw.types').NPC.getFactions(self)) do print(tostring(f)) end
Oh and no need to make compatibility soundbanks for the newer Muse Music Expansion mods. They are already available just not contained in the base release of Dynamic Music. Feel free to take all of my soundbanks and publish them as one big mod that covers them all.
Already available but not contained...? How so? They didn't work by default AFAICT. In any case, good to know. The effort was a good learning experience; I'm making my own version for the TR OST, divided by districts and taking into account how regions have changed over time. It's surprisingly fun to make playlists!
However, despite the claim that track length is not needed as of v0.12, not specifying it leads to an endless loading loop: [12:27:35.286 I] L@0x1[scripts/dynamicmusic/player.lua]: playing track: Music/MS/region/Telvannis/Telvannis fields.mp3 [12:27:35.322 I] L@0x1[scripts/dynamicmusic/player.lua]: playing track: Music/MS/region/Telvannis/Tellvannis 2.mp3 [12:27:35.358 I] L@0x1[scripts/dynamicmusic/player.lua]: playing track: Music/MS/region/Telvannis/Tellvannis 1.mp3 [12:27:35.395 I] L@0x1[scripts/dynamicmusic/player.lua]: playing track: Music/MS/region/Telvannis/Telvannis fields.mp3 [12:27:35.432 I] L@0x1[scripts/dynamicmusic/player.lua]: playing track: Music/MS/region/Telvannis/Tellvannis 2.mp3 [12:27:35.469 I] L@0x1[scripts/dynamicmusic/player.lua]: playing track: Music/MS/region/Telvannis/Tellvannis 2.mp3 [12:27:35.506 I] L@0x1[scripts/dynamicmusic/player.lua]: playing track: Music/MS/region/Telvannis/Telvannis fields.mp3 [12:27:35.542 I] L@0x1[scripts/dynamicmusic/player.lua]: playing track: Music/MS/region/Telvannis/Tellvannis 1.mp3 [12:27:35.579 I] L@0x1[scripts/dynamicmusic/player.lua]: playing track: Music/MS/region/Telvannis/Telvannis fields.mp3 [and so on forever]
I removed the old Changelog entries. Unfortunately the feature that was needed for this to work was removed again from the openmw engine shortly after DM 0.12 was released.
Is it intended behaviour that a new track starts playing for every new cell I enter (the mod is only installed, nothing else changed)? This would be a dealbreaker for me, but I see no one else complaining so I might be doing something wrong.
Edit: I think the problem was that "Use DEFAULT Soundbank" was disabled in the ingame script settings.
I don't know if it's possible, but it would be awesome if tracks could be selected based on categories of NPCs like their faction rather than each individual NPC's name string. I didn't see any way to set that from looking at the readme, and it looks like MUSE 2 for MWSE hasn't figured that out judging by its page description.
Would it be possible to make it so that the system will play music from any soundbank that's currently allowed to play, rather than the last alphabetically? There's a few options for stuff like Cyrodiil so it'd be nice to have it pull from all of them without having to manually merge the soundbanks.
certain cells in TR dont play the TR soundtrack. such as Andothren, Roth Roryn region, Kemel-Ze, Dagon Urul region, clambering moor region, alt orethan, region, and others. here's my log
Afaik. the TR OST itself does not include soundtracks for these regions. I checked the "00 core\MWSE\config\MS" folder of the TR OST and I found no file that contains the regions you mentioned. But you can edit one of the existing regional DM soundbanks and add your desired regions to the regionNames filter.
Not sure about Dagon Urul region. I think that's one of the regions that was renamed with the Dominins of Dust release. It might not be reflected by the current configs. Do you know what the region was called before?
according to uesp it used to seperately be different parts of Sunad Mora and Boethiah's Spine before it was split off into its own thing. I guess Boethiah's Spine and Sunad Mora were too big and they decided to make it its own region seperate from B.S. and S.M. ? The region was released with the "Embers of Empire" release in 2002
Well, anyways, i did try adding my own using the regionnames filter but it failed to play the music in interiors. no idea why lol
Interior cells don't have a region attached so the region filter cannot work here. I'll see if I can add a new feature with a config option where the region from the last exterior cell carries over to an interior cell.
Do I need to do anything else to get the MUSE packs working with this mod? I installed dynamic music and MUSE packs with a mod manager but i never worked for me
334 comments
On Windows the logfile should be available here: %USERPROFILE%\Documents\My Games\OpenMW\openmw.log
Please also make sure that the DEFAULT soundbank is enabled in the script settings.
Things can get messy whenever Dynamic Music is not actively controlling the music.
That's what the DEFAULT soundbank is for so that there is always a fallback if no other soundbank matches for the current ingame state.
If you can please consider reporting your issue directly on github: https://github.com/eMOElein/DynamicMusic/issues
One feature request (besides the ones I mentioned, such as being able to tie music tracks to enemy NPC classes and creature types, and being able to use namePatterns for actors) would be a way to configure fade-out and fade-in between music tracks; transitions between, say, the MUSE Imperial tracks to the regular explore tracks when leaving town just feel very sudden to me.
(It's not the same thing as the "how long to delay track transitions" that already exists)
I'm also wondering if something like normalizing music track volume could be done, but I have the gut feeling that it's not (yet) possible.
In any case, I really enjoy the possibilities that already exist. Thank you very much for this mod; combined with the wonderful compositions modders have created throughout the years, this really enhances Morrowind.
Time to go out for a stroll throughout Vvanderfell...
Set "Min.Enemy Level" to 0.
That should do it.
If it still does not work please reproduce the situation where you expect combat music to play but it does not and upload your complete logfile somewhere.
Note that quite a few of Scipio's mods do not have soundbank .lua files yet, so they won't work out of the box. Making your own soundbank is not difficult at all, in any case.
I plan on contributing mine to this mod, if the author allows. I'll still teach you, since it can be a fun experience (and lets you tweak soundbanks to your liking)
Making your own soundbanks is just a matter of having the minimum proper tools (a plain text editor intended for coding, such as Notepad++ on Windows; DO NOT USE MS WORD or similar "rich text editors"), giving Dynamic Music's readme a skim, and using the default soundbanks as a guide.
In general terms:
- Create your new soundbanks in the scripts/DynamicMusic/soundbanks/ folder. I kept Dynamic Music's default pattern, so something like 1100_muse_expansion_ashlander_cells.lua and 1100_muse_expansion_ashlander_enemies.lua, but you could name it Ladies_Love_Cool_Music.lua if you were so inclined
- Open your empty file in an appropriate text editor.
- Copy/paste the example soundbank from the Dynamic Music readme.
- Fill the entries or remove them as you need. For example, in the "ashlander enemy" file, I just put this inside the soundbank = { } body
- Do this for other addons as appropriate; note that the MUSE Expansions were originally designed for use with MWSE, and come with config files. Use them to get things such as cell names and enemy names as needed (in the case of factions, I preferred Dynamic Music's enemyFactions over a list of names). Note that certain characters need to be escaped; for example, let's say you have a name (cell or actor) like "Has-Hyphen"; you need to write it as "Has%-Hyphen". In the case of something like "John's House" it needs to be "John\'s House" (otherwise the mod breaks)
That would be it, I think. You can test as you play by using the console and typing reloadlua. Use the logger (F10) to see how the mod works as it runs.enemyFactions = {
"ashlanders"
}, --watch this comma!
combatTracks = {
{
path="Music/MS/combat/Ashlander/combat1.mp3",
length=78 --in seconds
}, --watch the comma!
{
path="Music/MS/combat/Ashlander/combat2.mp3",
length=64
}, --watch the comma!
{
path="Music/MS/combat/Ashlander/combat3.mp3",
length=79
}
}
Just some things from my brief playing-around with this:
enemyFactions = {
Edit: further testing reveals that this is a general problem, for example enemyFactions = { "Blades", "Imperial Legion" (and so on) } and none work. As far as I can tell, from what I checked with OpenMW-CS, the faction IDs are correct. Factions such as the Great Houses and Ashlanders work, though."sixth house"
},
The openmw.log (and console output F10) doesn't show anything interesting; just that Dynamic Music is going to use the DEFAULT soundbank.
Is it possible to add exclusion patterns for cells? For example, there's a yurt in Ahemmusa Camp that belongs to a character named Mamaea (and another example in Erabenisum Camp, Ainab's Yurt)... So creepy Sixth House music plays in that case. I did fix it by commenting out the offending cells from the cellNamePatterns list(?) and added a cellNames entry with their respective sub-cells. But maybe it's a thing to consider?
Edit: already implemented as cellNamePatternsExclude, whoopscellNames = {'Mamaea',
'Mamaea, Sanctum of Awakening',
'Mamaea, Sanctum of Black Hope',
'Mamaea, Shrine of Pitted Dreams',
'Ainab',
'Ainab, Shrine'
},
By the way, despite the big emphasis on having the "use DEFAULT soundbank" option enabled, it's disabled by default...? Is it intentional?
What are your settings for combat music?
With the default settings enemies on that level should no longer play combat music when your character has reached at least level 4.
You can easily get the enemy level if you open the console, click on the enemy and then run the commands:
luas()
print(require('openmw.types').Actor.stats.level(self).current)
Also make sure that only the enemyFactions filter is populated when you want to make faction specific combat music. Filters are combined AND wise and if they contain a filter for enemyNames AND enemyFactions the music will only play if the enemy has a specific name AND is a member of one of the factions in the list.
Faction names should be case sensitive so you can check if your entries exactly match the ones from the game.
Haven't tested myself but I think "Imperial Legion"will not work when the game's id for that faction is "imperial legion".
Having the Default soundbank disabled by default is not intended though.
Many thanks for the hint.
It would be good to mention the fact checks are done AND-wise in the example and readme, as I intuitively assumed it was an OR check. A bit of a bummer the filters cannot be used together like that! ("Enemy has this specific name OR belongs to this faction")
I suppose a workaround is having a soundbank specific to Sixth House faction members and a soundbank for named enemies/sixth house creatures...
And that works, indeed.
(Thanks for the console snippet anyway, I couldn't figure out how to run Lua in the console. Debugging will be much easier now, lol)
With the Sixth House example, I've tried both upper and lowercase and didn't work, but it's likely because of the AND check.
The weird thing is that in OpenMW-CS the faction IDs are always Like This. However, I noticed my working enemyFactions entries were all lowercase...
And yes, that did the trick.
I'd like to contribute the soundbanks I made for the other MUSE Music Expansion mods that aren't covered out of the box with yours, such as Redoran, Hlaalu and Telvanni. Would you like it done through Github or can I DM you a link to a filesharing service (or something)?
I don't know what's up with the faction IDs since I noticed the same. The CS gives a different capitalization than when you fetch the values ingame. I'll see if i can convert everything to lowercase as default then it should no longer matter.
You can see the enemy factions ingame with:
luas()
for _, f in pairs(require('openmw.types').NPC.getFactions(self)) do print(tostring(f)) end
Oh and no need to make compatibility soundbanks for the newer Muse Music Expansion mods.
They are already available just not contained in the base release of Dynamic Music.
Feel free to take all of my soundbanks and publish them as one big mod that covers them all.
In any case, good to know.
The effort was a good learning experience; I'm making my own version for the TR OST, divided by districts and taking into account how regions have changed over time.
It's surprisingly fun to make playlists!
However, despite the claim that track length is not needed as of v0.12, not specifying it leads to an endless loading loop:
[12:27:35.286 I] L@0x1[scripts/dynamicmusic/player.lua]: playing track: Music/MS/region/Telvannis/Telvannis fields.mp3
[12:27:35.322 I] L@0x1[scripts/dynamicmusic/player.lua]: playing track: Music/MS/region/Telvannis/Tellvannis 2.mp3
[12:27:35.358 I] L@0x1[scripts/dynamicmusic/player.lua]: playing track: Music/MS/region/Telvannis/Tellvannis 1.mp3
[12:27:35.395 I] L@0x1[scripts/dynamicmusic/player.lua]: playing track: Music/MS/region/Telvannis/Telvannis fields.mp3
[12:27:35.432 I] L@0x1[scripts/dynamicmusic/player.lua]: playing track: Music/MS/region/Telvannis/Tellvannis 2.mp3
[12:27:35.469 I] L@0x1[scripts/dynamicmusic/player.lua]: playing track: Music/MS/region/Telvannis/Tellvannis 2.mp3
[12:27:35.506 I] L@0x1[scripts/dynamicmusic/player.lua]: playing track: Music/MS/region/Telvannis/Telvannis fields.mp3
[12:27:35.542 I] L@0x1[scripts/dynamicmusic/player.lua]: playing track: Music/MS/region/Telvannis/Tellvannis 1.mp3
[12:27:35.579 I] L@0x1[scripts/dynamicmusic/player.lua]: playing track: Music/MS/region/Telvannis/Telvannis fields.mp3
[and so on forever]
Unfortunately the feature that was needed for this to work was removed again from the openmw engine shortly after DM 0.12 was released.
Edit: I think the problem was that "Use DEFAULT Soundbank" was disabled in the ingame script settings.
https://github.com/eMOElein/DynamicMusic/releases/tag/0.14-dev6
There's a new enemyFactions filter available for soundbanks.
See the example soundbank in the Readme
If you want to play your combat music only for Redoran NPCs you populate the filter like this.
enemyFactions = {
'redoran'
}
Are you able to test and confirm if everything works for you?
https://pastebin.com/3wPqe4Ts
I checked the "00 core\MWSE\config\MS" folder of the TR OST and I found no file that contains the regions you mentioned.
But you can edit one of the existing regional DM soundbanks and add your desired regions to the regionNames filter.
Not sure about Dagon Urul region. I think that's one of the regions that was renamed with the Dominins of Dust release.
It might not be reflected by the current configs. Do you know what the region was called before?
Well, anyways, i did try adding my own using the regionnames filter but it failed to play the music in interiors. no idea why lol
I'll see if I can add a new feature with a config option where the region from the last exterior cell carries over to an interior cell.
https://github.com/eMOElein/DynamicMusic/releases/tag/0.14-dev4