News:

Masm32 SDK description, downloads and other helpful links
Message to All Guests
NB: Posting URL's See here: Posted URL Change

Main Menu

MIDI testbed program

Started by NoCforMe, July 16, 2012, 07:44:49 AM

Previous topic - Next topic

dedndave

i think MPU-401 is really just a driver that provides support for legacy sound
i seem to recall an MPU-401 chip being used on SoundBlaster cards in days of old
likely that it uses the same hardware device
i am wondering if the device you select by this method must be the one selected in the control panel
meaning that - whatever device (i.e. driver) the user selects is the only one that the mixer sees

it would make sense because it would mean the MPU-401 driver
that everyone seems to have installed actually works   :P

sinsi

Wasn't MPU-401 a port to connect an external midi device to? From what I remember, if you had a keyboard (musical, not typing) you would plug it into the
game port on a Soundblaster and the computer could send MIDI messages to it and control it.

Nowadays your new musical instrument will have a USB port, that's why the MPU-401 is obsolete. Even your old one will get by with a MIDI-USB adapter.

dedndave

QuoteWasn't MPU-401 a port to connect an external midi device to?

i knew it was old stuff   :P

Zen

NO C FOR ME:
Very impressive initial attempt,...

A number of MIDI capable devices (especially those provided in commercial audio editing programs) are implemented as Direct Show plug-ins,...in older versions of DirectX. These are registered on your system as COM DLLs,...which means they can be enumerated by DirectX.
I know,...this concept sounds wrong,...I am referring not to audio hardware,...but, to software audio drivers (catagorized as DirectShow filters).
This accounts for the difference in enumerated MIDI devices returned from midiOutGetNumDevs,...and the actual number of MIDI capable devices that exist on your system. The vast majority of Direct Show filters are not audio devices,...and, it's a complete pain in the ass to enumerate them all,...and, then check their individual properties to locate the MIDI capable components.
In all honesty,...it's confusing as hell (especially if you are not familiar with COM activation).
Here are a number of MSDN references:
DirectShow Filters
The Filter Graph and Its Components
Alphabetical List of DirectShow Interfaces

NoCforMe

Quote from: dedndave on July 20, 2012, 06:14:34 AM
i am wondering if the device you select by this method must be the one selected in the control panel
meaning that - whatever device (i.e. driver) the user selects is the only one that the mixer sees

Don't think so. On my computah (Win2K Pro), you can select the "preferred" device for MIDI playback (i.e., a MIDI-out device) in Control Panel--> Sounds and Multimedia--> Audio tab. However, this has no effect on which devices you can select with my program (and presumably any other software that uses a similar selection method).

However, there is a checkbox titled "Use only preferred devices" (unchecked on my system), which may be able to limit the devices seen by external software to only the selected device; don't know.