VOGONS


Munt Reloaded - Development

Topic actions

Reply 300 of 965, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author

The sound effect timbre called "Potion" in Rex Nebular is not working correctly. It's a high-pitched ringing tone combined with a ratcheting sound... hard to describe. Supposed to be some sort of klaxon, but is only a low rumbling in the emulation. It sounded the same in the May 5 build.

Potion is used in the damaged engine room of Rex's spaceship, where there is a veritable symphony of sound effects. I made a capture that contains all sysex messages, but other types of messages are limited to channel 3 in order to focus on Potion. The sound gets louder as Rex approaches its source, and I've corrected the panpot with a midi.cpp hack.

Rex Nebular, like the SCI remake of Space Quest 1, is one of those games that requires you to physically swap the left and right channels on the MT-32 output to get correct positioning because there is no compensation in software for the MT-32's backward panpot controller. Is there an option to invert panpot in the emulation? If not, it could be useful in some cases.

Attachments

  • Filename
    rex_potion.zip
    File size
    2.78 KiB
    Downloads
    80 downloads
    File license
    Fair use/fair dealing exception

Reply 304 of 965, by endre1952

User metadata
Rank Newbie
Rank
Newbie

Amazing accuracy - for the most part! Something I did notice: listen to the intro/menu music of Death Track and compare it to a real Roland MT-32/CM-32L or compatible. Unless I'm mistaken, something is wrong at one certain point, sounds different from the real thing.

Reply 305 of 965, by sergm

User metadata
Rank Oldbie
Rank
Oldbie

Could you be a little more specific? I encountered some strange things that dtrack.exe sends to the emu, e.g. Sysexes intended for different device manufacturer. 😒 But it doesn't load any custom timbres and the menu track plays 4 standard patches only. Attaching recordings (partial) making the difference clear would be really great!

Reply 306 of 965, by endre1952

User metadata
Rank Newbie
Rank
Newbie

The problem I'm talking about starts at 0:08. I've made a recording from both a first gen. MT-32 and a CM-64.

Attachments

  • Filename
    Dtrack.rar
    File size
    2.14 MiB
    Downloads
    71 downloads
    File license
    Fair use/fair dealing exception

Reply 308 of 965, by KingGuppy

User metadata
Rank Member
Rank
Member

Due to androidi's constant nagging that reverb was too loud, I looked into it and noticed that there are different resistors on the reverb channels than the non-reverb/dry channels. I've reduced the default reverb gain to what I think is appropriate based on the schematic, though we'll double-check later with analogue samples.

Reply 309 of 965, by sergm

User metadata
Rank Oldbie
Rank
Oldbie

I've seriously updated the synth engine and the synth app. It now uses rendering method similar to DSound (which has been also deprecated yet, amazing! I love M$ guys) in terms of using single circular buffer. And there is a DOSBox-like mode called RENDER_EVERY_MS. The main goal is hunting for lowest possible latency. 😀 30 ms is an absolute minimum for WDM driver model due to the internal KSmixer delay. But I get very close to that 😎 even closer then PortAudio guys with DSound...

What I've found interesting is that when using the RENDER_EVERY_MS mode the CPU load drops dramatically down to ~0. This is somewhat unnatural.

I hope this is a feature of Windoze performance counters, not the synth engine...

Reply 310 of 965, by sergm

User metadata
Rank Oldbie
Rank
Oldbie

At last we measured the performance for various buffer sizes. In short, the buffer of 1 ms which is used in DOSBox doesn't give neither any benefit nor degrades the performance. So, that 0 CPU usage is caused by the Windoze performance monitor which is blind to see so short peaks 😀

Reply 311 of 965, by NewRisingSun

User metadata
Rank Oldbie
Rank
Oldbie

I'm having problems with the June 3rd build of mt32emu.exe. Constant crackling. The same problem was in the June 1st build, but there I could fix it by increasing the latency to 70+. Now the latency field is grayed out.

Reply 314 of 965, by sergm

User metadata
Rank Oldbie
Rank
Oldbie

@ykhwong:
Since KG made the all-floats commit these gains and volume are essentially the same in terms of overdrive cracklings. So, if you, for example, lower the master volume twice and double the gain, the result will be the same.
However, I'm not experienced any overdrives after KG found the reverb gain lower at the analogue output. At all. The only way to get it overdriven is setting the output gain far above 1.0 (100 in the driver).

Reply 315 of 965, by sergm

User metadata
Rank Oldbie
Rank
Oldbie

@NewRisingSun:
Yep, the default latency value seem to be too low. The whether the cracklings appeared depends on many factors as CPU capability, audio card driver, number of running processes etc...
I keep the builds from May, 31 as a "stable" version. Moreover, I doubt this ring buffer algorithm works reliable on every system due to it uses WinMM API in the way DSound like which in fact is not intended for.
As for grayed fields, the settings now get from the mt32emu.ini, the single source for both the driver and the app. The sample rate and latency fields are grayed since when changing to take effect the app is required to restart now. So, you should specify the latency higher in the mt32emu.ini and it'll be fine.
Besides, it's very probable that we remove sample rate completely since there is too many code for now bound to the 32000Hz value.
But thanks, NewRisingSun. I'll increase the default latency ASAP to make it more reliable.

Reply 316 of 965, by ykhwong

User metadata
Rank Oldbie
Rank
Oldbie

@sergm: Thanks for your explanation.

sergm wrote:

However, I'm not experienced any overdrives after KG found the reverb gain lower at the analogue output.

I still find minor cracklings in Little Witch though. If you want I can take a sample and post it here.

Reply 317 of 965, by sergm

User metadata
Rank Oldbie
Rank
Oldbie

I trust you 😀

There is an explanation for it. See, we mix the LA output with the reverb output together whereas the real device mix these in analogue mixer. So, at the extreme levels we’ve got an overdrive and the real device haven’t. There is a possibility to send to the application all the channels separated and use operating system’s mixer or even hardware mixer supplied by the audio card (with 3d enabled).

BTW, we could check whether Little Witch overdrives the real device 😉

Reply 318 of 965, by Fahrenheit

User metadata
Rank Newbie
Rank
Newbie

Hello guys,

Sorry to disturb you while you're hard at work. I've read almost all the posts from this topic and I still don't understand if/how dosbox with Munt can work on Mac OS X ? Can you enlighten me ?