VOGONS


First post, by ChAoS Overlord

User metadata
Rank Newbie
Rank
Newbie

When I tried the MT-32 version of the loom intro, it sounded out of tune. So I compared it to the OGM version of a real MT-32 and indeed it's quite out of tune.

Compare for yourself: http://s-island.mixnmojo.com/music/01_-_The_Overture.zip
http://s-island.mixnmojo.com/music/01_-_The_Overture.ogg

For playback I used both windows media player and media player classic. Also the main theme isn't quite correct, it's most importantly the violin that sounds bad.

What is the cause, what can be done about it?

Reply 3 of 13, by KingGuppy

User metadata
Rank Member
Rank
Member

It hopefully sounds better than it did in 0.1.2, but it's still pretty awful. I'll try to have another look at this track soon (it's been pointed out to me before).

The cause of the problem is that Munt doesn't emulate the MT-32 perfectly yet. There's not much you can do except wait for an update or help the project.

Reply 6 of 13, by Snover

User metadata
Rank l33t++
Rank
l33t++

Come on now, is my English really that bad? 😉 What I wanted to know was, what methods does it use to instruct what the pitch of an instrument being played is? I know that there is the master tune, and I can assume that from the tuning problems that exist there are tunings for each channel and/or instrument, but I don't know much more than that. How similar to General MIDI is MT-32 MIDI?

Yes, it’s my fault.

Reply 7 of 13, by HunterZ

User metadata
Rank l33t++
Rank
l33t++

I think you mean "how is the pitch encoded in the MIDI data comprising the song?"

I'm not expert, but I think the MT-32 is largely compatable with General MIDI in terms of what controller events do what. The instrument maps are of course incompatable, but mostly in terms of what number maps to what instrument. Custom instrument settings are programmed into the MT-32 via SysEx commands, which are specific to the unit. However, SysEx commands are usually only sent at the beginning of the song.

In MIDI, pitch is a value that is sent as part of the "note on" event, unless you're talking about pitch bends while a note is already playing - those are a separate event, although I don't remember the specifics off the top of my head.

Reply 9 of 13, by KingGuppy

User metadata
Rank Member
Rank
Member

If you look through the sysex manual, you'll see layer upon layer of pitch variables. They all interact in weird and wonderful ways. There's the master pitch (global), key shift and fine tune (per-patch), coarse and fine tuning (per-partial), the pitch envelope with LFO (per-partial)...

Then there's the key number given in the MIDI message, the pitch bend controller, velocity (which can influence the pitch envelope), etc. The effect of these can generally be adjusted per-partial, too.

Each PCM sample is recorded at a different rate, so that needs to be determined properly too (taken from the control ROM, but stored in a format that I'm not 100% sure I've worked out correctly).

Other variables not obviously related can also have an impact on the perceived pitch.

I've probably forgotten several things. Getting the pitch exactly right is certainly non-trivial, especially without digital samples.

Reply 10 of 13, by HunterZ

User metadata
Rank l33t++
Rank
l33t++

Hmm... And when I run the MIDI output of Loom in SCUMMVM across MIDI-OX I can see that it sends a glob of stuff, including SysEx commands and Pitch Bend events.

KingGuppy: I hope to soon acquire an MT-32, and I have an oscilliscope. If it helps, I would be willing to do any kind of non-invasive gruntwork testing that you can think up, but bear in mind that I'm a software engineer not an electrical engineer, except at a barely casual/hobby/one-year-of-physics-and-an-intro-to-EE-class-in-college-and-my-dad-was-an-EE level. For example, I don't really know much about how to use the oscilliscope, except turning it on and poking the probe around and tweaking a few knobs to get a pretty wave :p

Reply 11 of 13, by KingGuppy

User metadata
Rank Member
Rank
Member

What we need for digital samples is something like this:

http://www.saelig.com/ANT16.htm

But with either a HUGE buffer, or the ability to stream the data live to the PC without buffering.

HunterZ, thanks for the offer. I can't immediately think of something you could do with an oscilloscope to help, unless it has capabilities similar to the above. We basically already use the audio inputs on PCs to act as oscilloscopes on the audio outputs.

Reply 12 of 13, by Marauder

User metadata
Rank Newbie
Rank
Newbie

It's been out of tune since day one. Personally I got tired to the slow progress of the project and now I have real MT-32 coming in the mail.

Even though Munt could reach 100% emulation someday, it never can emulate MT-32 sitting on my table 😀

Reply 13 of 13, by Serious Callers Only

User metadata
Rank Member
Rank
Member

Another game that *seems* to me to be out of tune is gabriel knight (1). I don't have a real mt32 to test it. But the game sounds real bad. The install said it install new soundfounts into the mt32.