VOGONS


USB-MIDI interfaces

Topic actions

First post, by HunterZ

User metadata
Rank l33t++
Rank
l33t++

I'm just wondering what USB-MIDI interfaces people are using, and under which OSes, and how well they work.

I originally purchased an early version of the M-Audio MIDISport Uno a few years ago to use under Windows XP, to interface DOSBox with my Roland SC-88 and MT-32 synths. It worked fine (occasional buffer overflows on the MT-32 unless I slowed DOSBox down) until I built a new Win7 x64 desktop, where it became unusable because M-Audio was dragging their feet working on 64-bit drivers.

Out of frustration, I then purchased an E-mu (aka Creative) Xmidi 1x1 Tab early this year. It worked fine in Windows 7 x64 at first (as far as I could tell), but after more extensive use recently I discovered that it has some issues with MT-32 SysEx checksum errors. Even worse, QFG1EGA and QFG2 sound wrong in DOSBox and ScummVM for some reason even if I slow down the SysEx to avoid the checksum errors. I tried testing with both E-mu and Microsoft drivers for the device, and the result is the same.

I recently switched back to my MIDISport Uno, having noticed that M-Audio finally released Windows Vista/7 x64 drivers a month or two ago. It seems to work fine other than the old buffer overflow issues, so I guess I'll put the E-mu back in the storage bin that the M-Audio had been sitting in (the irony!).

I did send a support request to E-mu, and got a response that wasn't particularly helpful ("uninstall your M-Audio interface and try again" etc.). I'm debating whether to jump through their hoops just to see what happens, but I know nothing will come of it.

Reply 1 of 10, by Mau1wurf1977

User metadata
Rank l33t++
Rank
l33t++

I got the cheapest one I could get on eBay.

Works perfect! OS is W7 Pro 64bit. No drivers needed, W7 / XP installs everything on its own.

Also works from inside XP Mode (Microsoft Virtual Machine) which is free for W7 customers and basically gives you a free XP VM.

I have never seen a checksum error, but of course plenty of buffer overflow messages on my MT-32 (Old).

What DOSBox cycles do you set? I recommend 6000 for games that use a 386DX33 and 3000 for older games that run well on a 386SX16...

Looks like this:

dsc01722nj.jpg

Reply 2 of 10, by HunterZ

User metadata
Rank l33t++
Rank
l33t++

It's been too long since I've used my MIDISport Uno regularly to remember the best cycle settings.

The Xmidi 1x1 Tab needed around 1800 or less to avoid the checksum errors in QFG1&2, but as I said the MT-32 seemed to reject the SysEx data even when it didn't give an error. It also gave checksum errors in ScummVM even though ScummVM has a hard-coded 40ms delay in its driver code.

Reply 3 of 10, by Mau1wurf1977

User metadata
Rank l33t++
Rank
l33t++

Sorry the Cycles are meant to be for the game (so it doesn't run too fast / too slow).

3000 or 6000 DOSBox cpy cycles are perfect for most 386 era games.

I The generic MS driver has nothing to adjust. It "just works"...

Tried other cables maybe?

Checksum points to a data transmission error right? It could also be your MT-32 unit you know...

Reply 4 of 10, by HunterZ

User metadata
Rank l33t++
Rank
l33t++
Mau1wurf1977 wrote:

Sorry the Cycles are meant to be for the game (so it doesn't run too fast / too slow).

I took it to mean DOSBox cycles for making the game successfully transfer the SysEx data to the MT-32. I don't consider cycle settings for general gameplay to be immediately relevant.

I tend to run most games at either 3000-4000 cycles or auto/max, with a recent exception being Starflight.

I The generic MS driver has nothing to adjust. It "just works"...

I've never seen a driver that had something to adjust. I was referring to DOSBox.

The Xmidi 1x1 Tab runs with either generic MS drivers or special E-mu drivers that are supposed to be better. The checksum errors and wrong sounds in QFG1/2 occur with either driver.

The MIDISport Uno only works with the M-Audio drivers because it's too old and different to work with the MS driver (needs the driver to upload some kind of firmware every time it is powered on).

Tried other cables maybe?

Checksum points to a data transmission error right? It could also be your MT-32 unit you know...

I only get checksum errors and bad sound with the E-mu Xmidi 1x1 Tab. I only get buffer overflows with the M-Audio MIDISport Uno. This indicates that the interfaces are likely at fault for their respective issues.

The buffer overflows seem to be a more common issue, and rcblanke's experimental sysex delay feature seems to work around it (as do low DOSBox cycle settings usually): Re: DosBox v0.70 MIDI handling for the rev00 MT-32 Roland synth

Last edited by HunterZ on 2010-12-20, 23:21. Edited 1 time in total.

Reply 5 of 10, by Mau1wurf1977

User metadata
Rank l33t++
Rank
l33t++

You mean "buffer overflow"?

That shouldn't be interface specific at all. It's down the game and weather they accounted for these 40ms delays or not.

Xmidi 1x1 Tab needed around 1800

So you are referring to CPU cycles here?

Seeing you have 2 MIDI adapters, you can do a midi capture with the second device and send me that file.

That way I can rule out if your cable or MT-32 might be the cause...

Reply 6 of 10, by HunterZ

User metadata
Rank l33t++
Rank
l33t++
Mau1wurf1977 wrote:

You mean "buffer overflow"?

Doh! Fixed my post. Yes, for some reason the phrase "buffer underrun" is stuck in my head from something else, so I tend to type it accidentally when I'm not thinking carefully.

That shouldn't be interface specific at all. It's down the game and weather they accounted for these 40ms delays or not.

The thing is, I almost never see buffer overflow errors with the Xmidi 1x1 Tab. I almost wonder if the Xmidi 1x1 Tab itself is having its own buffers overrun, causing it to drop SysEx data from the stream before it gets to the MT-32, which in turn causes to MT-32 to complain of a checksum error due to the missing or corrupted data.

It's also worth noting that the checksum errors seem to happen almost immediately upon start of the SysEx send.

Xmidi 1x1 Tab needed around 1800

So you are referring to CPU cycles here?

Everywhere that I've said "cycles" in this thread, I have been referring to the DOSBox "cycles=" setting.

Seeing you have 2 MIDI adapters, you can do a midi capture with the second device and send me that file.

That way I can rule out if your cable or MT-32 might be the cause...

I suppose I could try to capture the output, but I'm not quite sure how I'd hook things up. If I hook the Xmidi 1x1 Tab's output to the MIDISport Uno's input, for example, then I'd be trusting the latter's ability to capture the input without issues.

I also don't know if I have a female-to-female MIDI cable/adapter, so I may need to run it through one of my synths and hope that it passes SysEx correctly (the SC-88 should be able to do this, though, as I usually have my MT-32 connected to it in a MIDI THRU configuration).

Reply 7 of 10, by butterfly

User metadata
Rank Member
Rank
Member

Silli question:
Can you use it as MIDI output device in DOSBox?

Reply 8 of 10, by HunterZ

User metadata
Rank l33t++
Rank
l33t++
butterfly wrote:

Silli question:
Can you use it as MIDI output device in DOSBox?

Yes, that's primarily what I use them for: connecting DOSBox to my Roland synths 😀 They also work with ScummVM.

If I type mixer /listmidi in DOSBox, I get a numbered list of MIDI devices. I can then choose which device number to use via the midiconfig= setting.

Reply 9 of 10, by butterfly

User metadata
Rank Member
Rank
Member

It's cool, I couldn't get my cheap USB MIDI device to work in Windows 7 like I used to do in Window XP

I wonder if any MAME version supporting MIDI output as DOSBox and SCUMMVM do

Reply 10 of 10, by HunterZ

User metadata
Rank l33t++
Rank
l33t++

I'm not aware of any arcade games that use MIDI. If they do, then I imagine that MAME would probably try to emulate their synthesizers in software for more accurate sound.