Opened 8 years ago

Last modified 7 years ago

#5320 new defect

MT-32 MIDI in OSX Broken Between 1.0 and 1.1 Releases

Reported by: SF/jpxdude Owned by: athrxx
Priority: normal Component: Engine: SCUMM
Keywords: Cc:
Game: Monkey Island 1

Description

Hi There,

It seems that from OSX version from 1.1.x and upwards, the MT-32 midi for Monkey Island VGA Floppy, Monkey Island 2 VGA, and Indiana Jones: FOA doesn't sound correct. The instruments sound wrong, and some are missing, there is also a weird bell noise in the 3 games mentioned. The hardware I'm using is a Roland CM-32LN, which works fine on version 1.0 and previous.

I've also tested the latest builds in Windows XP, with the same hardware, and the MIDI there is near-perfect in all games, so it only seems to be affecting the OSX versions. Has anyone else encountered this issue?

Ticket imported from: #3057005. Ticket imported from: bugs/5320.

Change History (17)

comment:1 Changed 8 years ago by digitall

Please could you confirm the status of Options->Midi->True MT-32 (Disable GM Emulation) option in both XP and OSX?

comment:2 Changed 8 years ago by SF/jpxdude

Hi!

I can confirm that for both Windows and OSX I have selected TRUE MT-32 (Disable GM) and have tried Mixed mode/Adlib both on and off.

For music device on OSX I select CoreMidi and Windows MIDI in Windows XP where I set my MIDI device as default in Windows.

comment:3 Changed 8 years ago by fingolfin

Very odd, the CoreMidi driver has not been touched at all.
And we *did* have some major changes to the MIDI/Music infrastructure recently, but those should (in theory at least) affect all ScummVM platforms, including windows...
Florian, any ideas?

I don't have my MT-32 hardware here, so I can't perform any regression bisecting myself, either :/

comment:4 Changed 8 years ago by fingolfin

Owner: set to athrxx

comment:5 Changed 8 years ago by athrxx

It is true that we did have a major change to the MIDI device detection code.
But I agree with Max that the backend drivers should have not been altered in a way that affects the output..

pxdude :
a) Can you confirm that this also happens with the official release build 1.1.1 (released around April 30th 2010)? The aformentioned changes started to take place on June 21th. Since Max assigned this item to me (and I am mostly responsible for those changes) it would be important to know whether this is really a driver or detection issue.
b) Can you confirm whether or not the MT-32 gets properly initialized when you start a Scumm game (Do you get the ScummVM version displayed in the display of your MT-32?)
c) Do you get wrong instruments right from the start or does this apply to loading savegames only?
d) What about other (non-Scumm) engines using MT-32 audio? Could you please try Simon the Sorcerer 1, Legend of Kyrandia 1, Kings Quest IV, Larry 3 or some other game with real MT-32 tracks?

To explain question c: I can confirm for Windows (however applying even to early scummvm versions like 0.11.0, maybe even earlier !):
When loading a saved game in Monkey Island 2 the MT-32 instruments are often incorrect. I can definitely say this for the Scabb Island cemetery scene. Instruments will be fine after a scene/music change. This might apply to other Scumm games, too.

comment:6 Changed 8 years ago by athrxx

Okay, I just noticed you said you have a CM-32L. So you obviously can ignore that question about the MT-32 display ;-)
The correct question would be: Does the message LED of your CM-32L flicker about 3 times immediately after starting a game (before any graphics come up) ?

comment:7 Changed 8 years ago by SF/jpxdude

Hi There!

Thanks for your reply! To answer your questions, the Roland CM-32LN does seem to initialize properly, and the midi light flickers.

In addition to this, I recently acquired a proper MT-32 from Japan, and did some testing with this, and the problem is still present. To answer your previous questions about the display, as soon as the games are started, it shows the SCUMMVM 1.1.1 (build number) message on the screen, and the midi light flickers fine.

The weird tinkle bell noise still occurs in both MI2 and Indiana Jones FOA with both the MT-32 and CM-32LN in parts (camp fire in MI2 and at the start of IA).

On the MT-32, when playing MI2 at the campfire scene after the intro, a MIDI BUFFER OVERFLOW error messages appears and stays on the screen. This doesn't happen with Indiana Jones, yet some of the weird sounds are still present.

I will try to record the noise at some point so you can get an idea. Thanks again for your help!

comment:8 Changed 8 years ago by athrxx

Thanks for your replay. Here again the question you left out :-)

Do you also have this prolem with the official release build 1.1.1 (downloadable here: http://www.scummvm.org/downloads/)? Or is this something that only happens with svn builds?

comment:9 Changed 8 years ago by SF/jpxdude

Hi there

Thanks for the reply! The problem occurs with version 1.1.1 and the SVN builds which follow this.

comment:10 Changed 7 years ago by SF/jpxdude

Hi All,

I just wanted to write again, because I felt like playing some of my old games recently, and decided to download the latest SCUMMVM build 1.3.1, and unfortunately I found that this problem with the weird wrong MIDI sound is still there.

As before, this problem only seems to be affecting the OSX version of SCUMMVM, and the Windows XP version is fine. If anyone is interested, I can try to make a recording of the sound so you can hear what I mean.

Also, just to add, when I play my games in DOXBOX, the weird sounds are not there, and it works fine, this seems to solely be affecting the Mac OSX build. Thanks in advance for your help!

comment:11 Changed 7 years ago by digitall

jpxdude: Thank you for the update on this bug.
1. Please could you test the latest v1.4.0pre daily build to confirm if this issue is present with the latest development source code: http://buildbot.scummvm.org/builds.html
2. Could you please attach a savegame at a very obvious point for replication i.e. MI2 and some small sound clips ("good" from WinXP and "bad" from OSX) at this point demonstrating the difference..

comment:12 Changed 7 years ago by digitall

Summary: Broken MT-32 midi in OSX ScummVM 1.1.x and SVNMT-32 MIDI in OSX Broken Between 1.0 and 1.1 Releases

comment:13 Changed 7 years ago by SF/jpxdude

Hey there!

Thanks for the fast reply, I only got home from work about an hour ago, so haven't been able to test until now.

I have tried the latest dev build as requested, which has a build date of Sept 5th, and is 1.4.0, but the problem is still there.

Instead of save files, I have made some youtube videos to show the problem. Ignore the video itself and listen to the sounds, here are the links below:

Monkey Island 2 Bad Sound
http://www.youtube.com/watch?v=fdR1skJa0YY
The sound comes in subtly from about 6 or 7 seconds, but you can hear it properly from about 19 seconds, it sounds like a weird bell noise

Monkey Island 2 Good Sound
http://www.youtube.com/watch?v=7R_5d-rZWSo
As you will hear, there are no problems with the sound here, it was recorded from exactly the same hardware, on the same machine, but in this instance through DOSBOX 0.74 for OSX. I will do a recording of scummvm for XP soon.

Here is a video of the weird sound from Indiana Jones and the Fate of Atlantis using SCUMMVM 1.3.1 OSX build with the weird sound:
http://www.youtube.com/watch?v=9S-O2zTNYGw
Notice how the weird sound appears from about 4 seconds into the video.

Please let me know if you need any more information, Thanks again for your help, and I hope this helps you solve the problem.

comment:14 Changed 7 years ago by digitall

jpxdude: I'm not an expert and I don't own a Mac, so I can replicate this directly, but I think I can hear what is going on. Sounds like incorrect instruments are being played from the MT-32.
This is probably because the GM Midi data is being sent instead of the MT-32 data.
This may be due to some of the missing/TODO code in backends/midi/coremidi.cpp (which is the driver used for MIDI ports on OSX) which only reports them as GM...

Can you indicate what settings you have currently selected under:
Options->Audio->Preferred Device
MIDI->GM Device
and MT32->MT-32 Device

I would suggest trying various settings to see if they have any effect on this issue:
As a first suggestion, try "SEQ", "Don't Use General MIDI" and "SEQ" respectively

It may be helpful to try chatting to the development team in real time in IRC, so that they can suggest things to try, patches to test etc.: #scummvm on freenode
If you are confident with compiling code etc, then it should be possible to lead you through bisection for this issue to determine the root cause.

comment:15 Changed 7 years ago by SF/jpxdude

Hi There,

Thanks for your reply, and sorry for the lack of reply, I have been quite busy and not able to test your suggestions yet.

I will try the settings you have suggested, although I know that GM emulation has been disabled, and also under all associated tabs I have selected CoreMidi which is the MT-32 and/or CM-32LN connected to my Mac.

Unfortunately I wouldn't know what to do as far as code is concerned :( If I get a chance, I will also test this out on my wife's Macbook Pro. The difference is that she is running Snow Leopard, whereas my machine is only running Leopard. I am not sure whether this has any bearing on the outcome, but it is worth a try.

comment:16 Changed 7 years ago by SF/jpxdude

Hey there,

Just wanted to update to say that I have tried various settings, turning of GM, and allowing only MT-32, and unfortunately this hasn't made a difference.

I have also tried this with the latest build and dev on my wife's Macbook Pro 13" 2010 model running Snow Leopard, and the problem is still there for both my MT-32, and CM-32LN devices.

Please let me know if there is anything else I can try. Thanks in advance!

-J

comment:17 Changed 7 years ago by SF/dominus

I can add that Exult has also problems with its MT32 code, which isn't too surprising since ScummVM and Exult share some code. Unfortunately Exult is experiencing this on all platforms. I'm going to see if I can find out more in comparing code between us. I only need to find one of the above games :)

Note: See TracTickets for help on using tickets.