MIDITrail can use multiple output ports:
(Unfortunately my midi player FSMP can only handle 32 channel files in bassmidi soft synth mode)
But even MIDITrail cannot play these 32 channel demo files correctly but can play other 32 channel files like this:
Salamander 2 - Sensation [SC-88Pro 32ch].7z:
The whys require some explanation and correcting some misconceptions:
Ok, I think I get it. The midi player I am using is only sending out signal on ONE midi port (which only handles 16 tracks). The demosong I was playing uses a full 32 track setup so things are getting botched.
I have been searching for hours now without luck. Does anyone know a MIDI player for windows that I can use to send all 32 tracks on the two midi ports on my soundcard?
Tracks and channels are 2 different things. A 'Track' is only an organizing concept in SMF (Standard Midi File) files an totally independent from channels that are part of the Midi protocol. E.g. You can have 65535 tracks in a midi file that still use only 16 channels and players can play such a file without problems. Also Type 0 SMF files only use 1 track but can use all 16 channels in the only 1 track.
The Midi protocol itself is restricted to only 16 channels, you can only encode channels 0-15 in a midi message. The upper 4 bits in a status byte are the event type and the lower 4 bits are the channel information. E.g. '0xC2' is a Program change message (0xC0) intended to channel 2 (0x02). So channels can only be 0x0 - 0xF.
Then how 32 channel playback is possible? Only by using more than one port (16 channel domain). It does not matter if the connection is serial or midi cable/USB one domain/port cannot handle more than 16 channels.
The problem is a midi player has to know which tracks belong to which port. This information has to be present in the SMF file as a meta event. There are 2 kinds of events that multi-port capable players understand: 1. 0x21 'MIDI Port preference' and 0x9 'Device Name'. Unfortunately these demo files use none of them, but only contain information in the 'Track name' meta event such as ': PartA 1ch.' and : 'PartB 1ch.' Unfortunately no players understand this automatically. So the only way to play these files correctly is to use a sequencer and assign/route the different tracks according to this 'Track name' information.
I have made a modified version of Y4002_02.MID with the necessary meta information included so that multi-port capable players (including MIDITrail) should play it correctly:
I have also made a video about playing the modified file: