VOGONS


First post, by canadacow

User metadata
Rank Member
Rank
Member

Poll: Do you own an MT-32 or L/A Synth variant?

  • 3 votes (27%) 3 votes (27%)
  • 8 votes (73%) 8 votes (73%)

Well... I finally found where that bright sound was going. Seems I had my emulator mixing at 32000hz (the rate the real MT-32 mixes at) and DosBox's mixer set at 22050hz. As such, all the high frequencies I was generating were been downsampled out by the mixer. In the latest binary release then, I've included a dosbox.conf file that makes sure the mixer sampling rate matches the MT-32's sampling rate. I've made a whole bunch of other big changes to this update. Eventually I'll start toying with the reverb settings and whatnot to make that more accurate in its sound compared to the MT-32. As for everything else, I'm still trying to nail down the exact parameters of the lowpass filter (you can hear the effects of this at its worst in the whistle in the SQ3 sample). After that I think I've just about got it. The drums haven't sounded better and a lot of the horned instruments match what I hear on the MT-32. Enjoy. As always, grab it at:

http://www.artworxinn.com/alex

P.S. Snover... how come there's no mention of my emulator on the main MT-32 Emulation page you set up? The last thing mentioned is the decoding of the ROM.

Reply 1 of 8, by Zorbid

User metadata
Rank Member
Rank
Member

The drums sound good indeed, but that's all I can hear... 😀
I tried both Sq3 and MI1. In SQ3 I can hear the drums, and one high pitched bell, which is probably a drum sound, and in MI1, I can't hear anything. I guess you forgot something when you compiled the version you uploaded... Or am I missing something?

About tone deafness, the latest SQ3 and MI1 samples you posted is still out of tone for me... I'm probably more sensible than you are. I'd really like to hear the patterns I asked you in the other thread.

I thought that you used a wrong value for the half tones but the following stuff seems to be right...

for(f=12;f<109;f++) {

int octave = (f / 12) - 6;
int note = f % 12;

int cents = (octave * 100) + (note * 100);
//int freq = (int)((double)262 * \
pow((double)2,(double)((double)cents/1200)));
int freq = (int)(TUNING * \
pow( 2.0, ((double)f - 69.0) / 12.0 ));
freqtable[f] = freq;
divtable[f] = (int)( ((float)SETRATE / (float)freq) );
divtable[f] = divtable[f] << 16;

And about the poll, yes, I have a MT-32, but I don't have the cable to plug it into my sound card... 25€ is too much for me ATM. As Snover suggested, I may build one some day, or borrow one from a friend...

Last edited by Zorbid on 2003-07-21, 16:13. Edited 1 time in total.

Reply 2 of 8, by canadacow

User metadata
Rank Member
Rank
Member

Thanks for letting me know. It was an old version of the waveform file that was throwing it off. The most recent zip has the correct version and I've personally tested it. (Though this one has reverb turned off... it was feedbacking too weird for my taste.)

Reply 3 of 8, by canadacow

User metadata
Rank Member
Rank
Member

I've posted an intermediate release that fine tunes the sound. Hopefully this one is better tuned than last night's release. If you downloaded before 14:45GMT (10:45AM EDT) then download the latest zip for a moderately improved sound.

Reply 4 of 8, by Zorbid

User metadata
Rank Member
Rank
Member

How do you proceed exactly to tune your emulator?

Do you use something else than games? Can you create your own midi files to test stuff separately?

Wouldn't it be easier for you to create a custom build of DOSBox that saves the 0x330 port output along with timing information to a file, and a MT-32 player, customisable on the fly (with the ability to load/save configs, maybe?), that reads these files, so you don't have to recompile everytime you change a parameter? You wouldn't have the overhead of the CPU and VGA emulation...

Why don't you try to write the low pass filter as close as possible from the original one, be it very slow, then try to find a faster way to come close to it?

Reply 5 of 8, by teamster1975

User metadata
Rank Member
Rank
Member

Hi Canadacow!
I've been following your progress quietly since the beginning and it is definitely sounding better and better!
In the few games that I've tried it sounds as though two or three channels of the song are out of tune and the rest are fine, ie perfect drums, bass and background tracks but the leads are slightly off.
I've noticed that if there are several lead instruments some of them can be perfectly in tune but the others are slightly off making the sound a lot worse than it actually is.

You're a clever bloke and I take my hat off to you 😀

Regards from England
Matthew

Reply 6 of 8, by canadacow

User metadata
Rank Member
Rank
Member
Zorbid wrote:
How do you proceed exactly to tune your emulator? […]
Show full quote

How do you proceed exactly to tune your emulator?

Do you use something else than games? Can you create your own midi files to test stuff separately?

Wouldn't it be easier for you to create a custom build of DOSBox that saves the 0x330 port output along with timing information to a file, and a MT-32 player, customisable on the fly (with the ability to load/save configs, maybe?), that reads these files, so you don't have to recompile everytime you change a parameter? You wouldn't have the overhead of the CPU and VGA emulation...

Why don't you try to write the low pass filter as close as possible from the original one, be it very slow, then try to find a faster way to come close to it?

Actually, for most of my parameter comparision I use a Dos based L/A synth program inside DosBox. I'll run both at the same time; with my real MT-32 on my PC and my emulator on my laptop.

Since I use Visual C++ it builds incrementally anyway, so compiles of DosBox normally only take fractions of a second as I'm tweaking parameters. Of course, my ultimate goal once I'm completely satisfied with my emulation is to separate the code from DosBox. I have no intention of ever forcing the main developers of DosBox to incorporate my code. Its been a convenient springboard but my ultimate intention is to make a Linux driver/Windows WDM driver out of my emulator. I've stayed in DosBox this long because what I create is immediately useful and intuitively understandable to everyone else to use and test. Making into it a driver (with later upgrade versions and installs) will complicate things so I'm saving that until last (when the sound is identical to the real thing!)

Finally, with regard to the low pass filter, I've since discovered (when I matched DosBox's mixer sampling rate with my sampling rate) that what I had was pretty good all along. Again, its a matter of getting the interpretation of the lowpass cutoff and envelope parameters correct. This is complicated by the key follow and velocity parameters influencing the cutoff frequency. It really is only a matter of time though before I have these nailed down.

Reply 7 of 8, by canadacow

User metadata
Rank Member
Rank
Member
teamster1975 wrote:

You're a clever bloke and I take my hat off to you 😀

Regards from England
Matthew

Thanks for the support! Hopefully I should have all the bugs worked out relatively soon and have a full fledged emulator in no time.