Reply 20 of 148, by vladr
- Rank
- Oldbie
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.
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.
I'll send 'em some messages when I'm not so bogged down with everything and the kitchen sink.
Yes, it’s my fault.
Hello everyone. Here's a link to the progress I'm currently making on MT-32 emulator for DosBox. Any help is appreciated.
*stares*
...
you're supposed to keep us updated, not update your own site, *cough*.
Yes, it’s my fault.
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.
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.
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.
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.
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.
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.
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.
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.
Presently, I've been using game music to compare my results to what I should be getting. Specifically, I've been comparing my emulated music with what's heard in the MP3's at Queststudios.
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"?
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... 😜
Originally posted by canadacow 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...
I don't know...I've heard some pretty bad stuff...
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.)
It sounds more or less like some Gameboy (not advance) music :p.
Haha... Yeah... probably because time variant filter is missing. I just can't get it to sound anywhere close to what it should -- and what I do have takes too much processing power.
Originally posted by canadacow Then prepare to be amazed.
Well, I wouldn't call it good, but I have heard worse. I actually recognized part of the original tune in there...it's a start.