VOGONS


MT-32 emulation

Topic actions

  • This topic is locked. You cannot reply or edit posts.

Reply 20 of 148, by vladr

User metadata
Rank Oldbie
Rank
Oldbie
Snover wrote:

It's quality, not quantity that counts. Please do *NOT* submit the URL to other sites, don't want a swarm of wannabes showing up and doing nothing but noise.

V.

Reply 24 of 148, by canadacow

User metadata
Rank Member
Rank
Member

I understand how you'd like more input in the emulation. Only I'm doing this for myself first, then for everyone else interested. That doesn't mean I'm going to ignore what people suggest, but rather that this is something I'm really interested in and I would rather work at my own pace. What I've posted today is a point in the emulation that I feel I've gotten to where I'll benifit more from other people's input rather than what I can figure out on my own.

Reply 25 of 148, by Snover

User metadata
Rank l33t++
Rank
l33t++

Well, yeah, it'd be GOOD, so that, like, it could be documented how it all works, instead of just having some magical cure-all code. You need to be a little less selfish and actually let other people learn from what is being done. (Difficult, I know, but try.)

Yes, it’s my fault.

Reply 26 of 148, by canadacow

User metadata
Rank Member
Rank
Member

Hah... documentation on the stuff I've implemented is already available. Where there is no documentation available, I'm simply guessing. I don't feel my guesses are set in stone, as such, I don't see much point in documenting until I'm finished. Likewise, the exponential nature of the MT-32 patch rom was a simple guess.

I'm not trying to be selfish. I'm free to collaboration... I'd just rather spend more time making educated guesses and implementing them rather than discussing why I might make those educated guesses.

Reply 27 of 148, by Snover

User metadata
Rank l33t++
Rank
l33t++

So you're doing all this based upon educated guesses and heresay? Last I checked an emulator is supposed to replicate functions PRECISELY, not 'roughly similarly'.

63.64% complete seems a rather ambitious number for a bunch of guesses.

I'm not trying to short-change the work you've done but without knowing exactly what you are thinking nobody else can do work on your stuff quickly and easily.

Yes, it’s my fault.

Reply 28 of 148, by canadacow

User metadata
Rank Member
Rank
Member

Without proper documentation all I can do is make guesses. On the other hand, obvious stuff like triangle waveform generation doesn't need documentation. But take for instance my frustration with the time variant filter. The patches are comprised of several coefficients. The coefficients are well documented, however, what they mean isn't documented. For example, partial 1 of AcouPiano1's TVF has a cutoff frequency coefficent of 76. Now what does this mean? Is it 76% of half of the sampling rate? Is it 76% of some set rate? Its it inverted... i.e. 24% of the whole sampling rate? And the variables within the envelope itself... Are these relative the cutoff frequency? Are those changes to the cutoff frequency from some point? I have no idea. So I have to guess, but my guess doesn't sound right, so I have to keep guessing. No point in documenting it here. Feel free to experiment with interpretations and tell me what you find.

Reply 29 of 148, by vladr

User metadata
Rank Oldbie
Rank
Oldbie

Guys, let's not argue over these things.

Pretty much all of canadacow's emulation now is based on guesses, it can't be otherwise. Even what is documented represents one out of many possible behaviours (i.e. usually what is documented are "typical cases", even in simple instances such as SysEx uploads). Sound-wise, what has been validated with the MT-32 in canadcow's code has been validated based on analogue recordings, and probably most of that was "by ear" anyway, which is a much more educated guess... but still a guess. And we have not reahced the reverb/chorus stage yet. 😁

It is clear that a "true" MT-32 emulation will not happen before I solder together the digital recording rig. Once that is done it will be obvious what the exact envelope functions are, how the square and triangular waves are really generated, what the filter characteristics are, what the PCM sample format is, how PCM samples are resampled/interpolated, whether the MT-32 reverb and chorus effects are linear or not and what their FIR is if they are, indeed, linear, etc. But until then canadacow's DosBox-specific emulation will have to do, just as Tatsuyuki's code "had to do" before Jarek's "true" emulation came along replacing Tatsuyuki's code.

V.

Reply 30 of 148, by canadacow

User metadata
Rank Member
Rank
Member

Vladr,
You just gave me a great idea. I don't have an MT-32 (which is one of my inspirations for writing this emulator... yeah, I know I could just get one off eBay... but where's the fun in that?) so I was wondering if you could do me a big favor. Its really been bothering me that the partial numbers don't match up with their order in the ROM. Could you record the PCM partials by themselves without any envelope, pitch modification or TVF? From there, could you send me the sample files you generate? This would be the biggest help I could imagine at this point.

Reply 31 of 148, by vladr

User metadata
Rank Oldbie
Rank
Oldbie

Oh, crap, you *don't* have an MT-32?

OK, I'll see what I can do (I had a "test" program a while ago for doing exactly that kind of stuff, before giving up on the distortion introduced by the DAC/wire/ADC).

Anything else you would like (like the envelopes and square/triangular waves)? Beware, however, that at least with analogue recording the envelopes are not piecewise-linear and don't seem exponential either (and the inflexion changes on the relative levels of the envelope stages). Moreover, the square waves are not really square (more like very badly low-passed square) and the triangular look more like odd-quarter-cycle sines than triangulars. All this, of course, was done on a single partial with reverb/chorus off and TVF at 100.

Anyway, I'll start with the samples, I'll upload some mp3's here when I get the chance. If you want more stuff (e.g. a particular MIDI file to play) go ahead and ask.

V.

Reply 33 of 148, by Nicht Sehr Gut

User metadata
Rank l33t
Rank
l33t

Originally posted by vladr But until then canadacow's DosBox-specific emulation will have to do, just as Tatsuyuki's code "had to do" before Jarek's "true" emulation came along replacing Tatsuyuki's code.

My sentiments exactly. BTW, does anyone have a compiled Win32 DosBox with this MT32 code "active"?

Reply 34 of 148, by canadacow

User metadata
Rank Member
Rank
Member

Sadly, for all I have emulated, this version sounds pretty poor. I have it posted so people can download the source and work on it along side me. More or less, if you just ran what I had now, after about 30 seconds you'd realize anything is better than what you're hearing... 😜

Reply 36 of 148, by canadacow

User metadata
Rank Member
Rank
Member

Then prepare to be amazed. I've uploaded a comparision audio file to my site http://www.artworxinn.com/alex so you can hear what a real MT-32 sounds like compared to my crap emulation.

I hope your ears don't bleed afterwards.

(Optimistically, I believe that once I get correct documentation and accurately matched partials, only minor parts of the source code will have to change to improve the sound.)