Sysex write to unrecognised address

Developer's Forum for discussion of bugs, code, and other developmental aspects of the Munt Project.

Sysex write to unrecognised address

Postby realnc » 2012-6-12 @ 16:31

First, I'd like to thank you guys for the absolutely incredible work on Munt! It sounds amazing! Especially the high-profile games (see "Monkey Island") sound indistinguishable to the real thing.

I spotted a possible issue with "Heart of China", where Munt (mt32d under Linux using the ALSA driver), prints this when the game starts:

"Sysex write to unrecognised address 52000a, len 7"

I'm using current Git Master of Munt. I'm attaching a MIDI file which reproduces the issue. (It's GZipped since .mid isn't listed as an allowed attachment type.) Sound is OK though. It does seem to sound a tiny bit different, but I can't quite place it.

(For comparison, this is on real hardware: http://youtu.be/Q2iv2RSXkXA)

This post is about the "unrecognised address" warning of course, the possible difference in the sound might not be related to it.
You do not have the required permissions to view the files attached to this post.
realnc
Member
 
Posts: 143
Joined: 2010-10-13 @ 11:02

Re: Sysex write to unrecognised address

Postby sergm » 2012-6-14 @ 07:28

Hi, realnc!

First, thanks for your kind words. :)
I really hope we'll see the day when Munt will sound precisely and really *indistinguishable* to the real things, but unfortunately, not today.

With regards to the mentioned message, this address seems to be unused according to the docs. FYI, there are a number of games known to send bogus SysExes and notes to the device. These include SysExes with invalid addresses, illegal values, notes with pitches out of range the real device can play, etc. Real devices either just ignore such a crap or clamp invalid values, so does Munt. There's no particular harm with it but the MIDI data could be a bit less in size. :)
One of the reasons could be the fact those tracks were composed using different MIDI devices and thus, rudiments like that remain.

Here're some thoughts about the mentioned difference in sounding, i.e. annual development progress report. :)))

While KG and I worked hard last year on emulation of synthesized partials and I hope we’ve achieved remarkable accuracy in this field, there’re still problems around.

I think the nastiest one is the PCM interpolation algorithm. We use for now exact linear interpolation whereas LA-32 chip doesn’t due to presumable lack of a multiplication unit onboard. It seems that PCM wave played with quite low pitch is interpolated in somewhat rough way. Because of this, LA-32 chip introduces high pitched noise, and Munt doesn’t. For example, “Potion” timbre as reported by ripsaw8080 viewtopic.php?t=27560&start=300

Moreover, Munt for now uses precise float maths for computations whereas LA-32 is assumed to use logarithmic fixed point maths. In consequence, one can see big difference in FFT spectrum analysis graph, though barely hearable.

And finally, reverb for modes 0-2 is still off and inaccurate, but there is a hope to finish it in the near future.
sergm
Oldbie
 
Posts: 734
Joined: 2011-2-23 @ 16:37

Re: Sysex write to unrecognised address

Postby realnc » 2012-6-14 @ 13:50

sergm wrote:First, thanks for your kind words. :)
I really hope we'll see the day when Munt will sound precisely and really *indistinguishable* to the real things, but unfortunately, not today.

Still, when I switched from the ScummVM MT-32 emu (old version of Munt I think?) to the newest Munt Git master, I was like "WTF?" Very impressive.

With regards to the mentioned message, this address seems to be unused according to the docs. FYI, there are a number of games known to send bogus SysExes and notes to the device. These include SysExes with invalid addresses, illegal values, notes with pitches out of range the real device can play, etc. Real devices either just ignore such a crap or clamp invalid values, so does Munt. There's no particular harm with it but the MIDI data could be a bit less in size. :)
One of the reasons could be the fact those tracks were composed using different MIDI devices and thus, rudiments like that remain.

Ah, OK. All is normal then I guess.

And thanks for the status update. Munt really has come a long way.

I think the nastiest one is the PCM interpolation algorithm. We use for now exact linear interpolation whereas LA-32 chip doesn’t due to presumable lack of a multiplication unit onboard.

I took a class in numerical analysis, but I never heard about doing interpolation without division :-/ Maybe it used pre-calculated results and used the nearest match (but since I'm not familiar AT ALL with the internals of the hardware, maybe I should refrain from doing guesswork.)
realnc
Member
 
Posts: 143
Joined: 2010-10-13 @ 11:02

Re: Sysex write to unrecognised address

Postby sergm » 2012-6-14 @ 14:36

realnc wrote:I took a class in numerical analysis, but I never heard about doing interpolation without division :-/ Maybe it used pre-calculated results and used the nearest match (but since I'm not familiar AT ALL with the internals of the hardware, maybe I should refrain from doing guesswork.)


Hmm, in fact, guesswork is the main approach we used until now. :) The internals of those LA-32 and the reverb master chip are still unavailable for us. The accuracy we have today was achieved solely via digital sample analysis, no less. So, any ideas are appreciated and should be worked out.

I guess, there is no multiplication / division unit in those chips because of that logarithmic maths that is know to be used (actually, the PCM ROM contains the data in such format). Thus, it seems to be either a sort of bit shifts / additions algorithm or a table transform you mentioned. But we're still unsure about it.
sergm
Oldbie
 
Posts: 734
Joined: 2011-2-23 @ 16:37

Re: Sysex write to unrecognised address

Postby Mau1wurf1977 » 2012-6-14 @ 21:03

Also note that The Heart of China is optimised for the MT-32 (Old) and MUNT AFAIK tries to replicate a CM-32L.

Games like this will sound off on a real CM-32L too.
User avatar
Mau1wurf1977
l33t++
 
Posts: 7652
Joined: 2010-8-27 @ 04:15
Location: Western Australia

Re: Sysex write to unrecognised address

Postby HunterZ » 2012-6-14 @ 21:04

Mau1wurf1977 wrote:Also note that The Heart of China is optimised for the MT-32 (Old) and MUNT AFAIK tries to replicate a CM-32L.

Is that true even if you supply MT-32 ROMs instead of CM-32 ones?
User avatar
HunterZ
l33t++
 
Posts: 6057
Joined: 2003-1-31 @ 19:04
Location: Seattle

Re: Sysex write to unrecognised address

Postby Mau1wurf1977 » 2012-6-14 @ 21:20

HunterZ wrote:Is that true even if you supply MT-32 ROMs instead of CM-32 ones?


I don't know :oops:

But I did read that the MUNT team are using a CM-32L as their reference.
User avatar
Mau1wurf1977
l33t++
 
Posts: 7652
Joined: 2010-8-27 @ 04:15
Location: Western Australia

Re: Sysex write to unrecognised address

Postby HunterZ » 2012-6-14 @ 21:28

I guess that makes it more useful to me anyways, since I have a real MT-32 but not a real CM-series synth.
User avatar
HunterZ
l33t++
 
Posts: 6057
Joined: 2003-1-31 @ 19:04
Location: Seattle

Re: Sysex write to unrecognised address

Postby NewRisingSun » 2013-10-09 @ 15:47

realnc wrote:"Sysex write to unrecognised address 52000a, len 7"
That address is used on the CM-32P part of the CM-64, which listens on MIDI channels 11-16. This system exclusive message disables those channels. It is a leftover from an earlier version of the MT-32 sound driver, the version used with SCI0 games (remember that Dynamix uses Sierra sound drivers internally), which sent out AdLib song data on channels 11-16, and which would therefore have a CM-64 play MT-32 and (garbage) AdLib song data simultaneously were it not for that system exclusive message.
NewRisingSun
Oldbie
 
Posts: 777
Joined: 2005-9-02 @ 02:26

Re: Sysex write to unrecognised address

Postby sergm » 2013-10-09 @ 15:56

Thanks, NewRisingSun. That explains the intention.
sergm
Oldbie
 
Posts: 734
Joined: 2011-2-23 @ 16:37


Return to MT-32 Development

Who is online

Users browsing this forum: No registered users and 1 guest