When playing on Wine the extension StarsOfThePilgrimSoundtrack loads, but does not play music but is generating MCI errors in debuglog instead. Other sounds and the title track during the opening of Transcendence are playing just fine. This was also the case with 1.5 Error description in 1.6 is much more verbose. See following extract of Debuglog:

07/25/2015 19:54:11	--------------------------------------------------------------------------------
07/25/2015 19:54:11	Start logging session
07/25/2015 19:54:13	Transcendence 1.6
07/25/2015 19:54:13	Graphics quality maximum: 72 ms; 4 cores.
07/25/2015 19:54:15	backColor not supported: Resources\Worlds1.jpg.
07/25/2015 19:54:15	Loaded library: Collection\LRL15.tdb
07/25/2015 19:54:15	Loaded extension: Collection\OPS_ExtOsaka.tdb
07/25/2015 19:54:15	Loaded library: Collection\OPS_LibResOsaka.tdb
07/25/2015 19:54:16	Loaded extension: Collection\StarsOfThePilgrimHD.tdb
07/25/2015 19:54:16	Loaded extension: Collection\StarsOfThePilgrimSoundtrack.tdb
07/25/2015 19:54:17	Loading user collection.
07/25/2015 19:54:18	Loading news.
07/25/2015 19:54:18	All resources downloaded.
07/25/2015 19:56:26	MCI ERROR ProcessPlay MCIWndOpen [Collection\00820000\T1 - 04 - System - Katharine.mp3]: Invalid MCI device ID. Use the ID returned when opening the MCI device.
07/25/2015 19:59:04	Loaded game file version: 1069000
07/25/2015 19:59:07	MCI ERROR ProcessPlay MCIWndOpen [Collection\00820000\T1 - 04 - System - Katharine.mp3]: Invalid MCI device ID. Use the ID returned when opening the MCI device.
07/25/2015 20:02:54	MCI ERROR ProcessFadeIn MCIWndOpen [Collection\00820000\T1 - 03 - System - Eridani.mp3]: Invalid MCI device ID. Use the ID returned when opening the MCI device.
07/25/2015 20:03:19	MCI ERROR ProcessFadeIn MCIWndOpen [Collection\00820000\T1 - 04 - System - Katharine.mp3]: Invalid MCI device ID. Use the ID returned when opening the MCI device.
07/25/2015 20:06:00	MCI ERROR ProcessFadeIn MCIWndOpen [Collection\00820000\T1 - 03 - System - Eridani.mp3]: Invalid MCI device ID. Use the ID returned when opening the MCI device.
07/25/2015 20:08:52	MCI ERROR ProcessFadeIn MCIWndOpen [Collection\00820000\T1 - 03 - System - Eridani.mp3]: Invalid MCI device ID. Use the ID returned when opening the MCI device.
07/25/2015 20:09:28	MCI ERROR ProcessFadeIn MCIWndOpen [Collection\00820000\T1 - 04 - System - Katharine.mp3]: Invalid MCI device ID. Use the ID returned when opening the MCI device.
07/25/2015 20:22:29	MCI ERROR ProcessFadeIn MCIWndOpen [Collection\00820000\T1 - 04 - System - Katharine.mp3]: Invalid MCI device ID. Use the ID returned when opening the MCI device.
07/25/2015 20:29:26	MCI ERROR ProcessFadeIn MCIWndOpen [Collection\00820000\T1 - 03 - System - Eridani.mp3]: Invalid MCI device ID. Use the ID returned when opening the MCI device.
07/25/2015 20:31:45	MCI ERROR ProcessFadeIn MCIWndOpen [Collection\00820000\T1 - 03 - System - Eridani.mp3]: Invalid MCI device ID. Use the ID returned when opening the MCI device.
07/25/2015 20:41:59	MCI ERROR ProcessFadeIn MCIWndOpen [Collection\00820000\T1 - 03 - System - Eridani.mp3]: Invalid MCI device ID. Use the ID returned when opening the MCI device.
07/25/2015 20:42:28	MCI ERROR ProcessFadeIn MCIWndOpen [Collection\00820000\T1 - 03 - System - Eridani.mp3]: Invalid MCI device ID. Use the ID returned when opening the MCI device.
07/25/2015 20:49:58	MCI ERROR ProcessPlay MCIWndOpen [Collection\00820000\T1 - 07 - Human Space - Expanse.mp3]: Invalid MCI device ID. Use the ID returned when opening the MCI device.
07/25/2015 20:51:37	MCI ERROR ProcessFadeIn MCIWndOpen [Collection\00820000\T1 - 10 - Human Space - Phantom.mp3]: Invalid MCI device ID. Use the ID returned when opening the MCI device.
07/25/2015 20:59:06	MCI ERROR ProcessFadeIn MCIWndOpen [Collection\00820000\T1 - 10 - Human Space - Phantom.mp3]: Invalid MCI device ID. Use the ID returned when opening the MCI device.
07/25/2015 21:03:54	MCI ERROR ProcessPlay MCIWndOpen [Collection\00820000\T1 - 14 - Unknown Hostiles - Dogfight.mp3]: Invalid MCI device ID. Use the ID returned when opening the MCI device.
07/25/2015 21:06:48	MCI ERROR ProcessPlay MCIWndOpen [Collection\00820000\T1 - 13 - Unknown Hostiles - Marauders.mp3]: Invalid MCI device ID. Use the ID returned when opening the MCI device.
07/25/2015 21:07:32	MCI ERROR ProcessPlay MCIWndOpen [Collection\00820000\T1 - 15 - Unknown Hostiles - Defenseless.mp3]: Invalid MCI device ID. Use the ID returned when opening the MCI device.
07/25/2015 21:15:41	MCI ERROR ProcessPlay MCIWndOpen [Collection\00820000\T1 - 11 - Human Space - Paladin.mp3]: Invalid MCI device ID. Use the ID returned when opening the MCI device.
07/25/2015 21:32:00	End logging session
assumedpseudonym 27 Jul 2015:

 I’ve personally always found this rather odd, since March/Intro have always played just fine for me upon launching the game under Wine.

ferdinand 28 Jul 2015:

That is why i post this on ministry, there must be something different in handling music from the soundtrack. Haven't tested with 1.6.1 yet. I don't expect it to work but there has been some change in the music engine so who knows??

george moromisato 28 Jul 2015:

I'll take a look. The error implies that we're passing the wrong device ID.

ferdinand 13 Aug 2015:

Might also be something as simple as spaces in filenames. The only music that does play does not have spaces in the filename and is located in the Transcendence root.

george moromisato 23 Aug 2015:

Debugging

  • I tried renaming the file to one without spaces (as @ferdinand suggests) but it didn't work—I got the same error.
  • I added some debug code and it looks like WINE returns some strange notification codes for the MCIWNDM_NOTIFYMODE. The mode being reported doesn't match any of the known modes (play, stop, etc.) and the soundtrack manager never gets a notification that a track starts (or stops) playing.
  • It's possible the above is due to a bug in WINE.

I'm going to continue to defer this until I get more info.

george moromisato 6 Sep 2015:

Debugging

  • Shrike reported a problem with the music in 1.6.2 RC 1 identical to these symptoms, thus this can't be a problem with WINE exclusively.
  • I investigated a bit more and it turns out that the soundtrack engine was sending messages across threads. In particular, the MCI window was created on the main thread, but the commands to play/stop were being sent from the background thread.
  • In 1.6.2 RC 2, I changed this so all messages to the MCI window happen on the background thread (and the main thread thunks everything appropriately).
  • The above seemed to fix the problem, but then I saw the problem again on Ubuntu. Some more research led me to MCIWndClose. In Windows, this is automatically assumed if you try to open a second file (with MCIWndOpen). But I think Ubuntu doesn't allow this. Once I added an explicit MCIWndClose, then everything started working.
  • I left the multithreading changes, since they also have the benefit of preventing stutter, when it takes a while to open a music file.
ferdinand 7 Sep 2015:

Wow, think I'll download 1.6.2 RC2 as soon as possible. Would be nice to hear the soundtrack in the game on Ubuntu.
Looks like you have tackled the problem. Wine likes good coding ;-)