VOGONS


First post, by Dominus

User metadata
Rank DOSBox Moderator
Rank
DOSBox Moderator

Referencing the problem at Munt Mac OSX version discussion that the Munt driver is only being used when the real hardware is not plugged in.

I wonder whether one can adapt https://ccrma.stanford.edu/~craig/articles/li … midi/testout2.c to DOSBox' Coremidi driver.
The relevant part is that this code seems to send to *all* ports

//////////////////////////////
//
// playPacketOnAllDevices -- play the list of MIDI packets
// on all MIDI output devices which the computer knows about.
// (Send the MIDI message(s) to all MIDI out ports).
//

void playPacketListOnAllDevices(MIDIPortRef midiout,
const MIDIPacketList* pktlist) {
// send MIDI message to all MIDI output devices connected to computer:
ItemCount nDests = MIDIGetNumberOfDestinations();
ItemCount iDest;
OSStatus status;
MIDIEndpointRef dest;
for(iDest=0; iDest<nDests; iDest++) {
dest = MIDIGetDestination(iDest);
if (status = MIDISend(midiout, dest, pktlist)) {
printf("Problem sendint MIDI data on port %d\n", iDest);
printf("%s\n", GetMacOSStatusErrorString(status));
exit(status);
}
}
}

While DOSBox sends to a specific one (I think)...
https://sourceforge.net/p/dosbox/code-0/HEAD/ … midi_coremidi.h

But I'm not very good at programming and easily get confused 😀

Windows 3.1x guide for DOSBox
60 seconds guide to DOSBox

Reply 1 of 4, by Qbix

User metadata
Rank DOSBox Author
Rank
DOSBox Author

coremidi in dosbox wants a number, not a name.

see

if(conf && conf[0]) destId = atoi(conf);

(atoi is Ascii TO Integer)

Water flows down the stream
How to ask questions the smart way!