The MIDI Forum

  Friday, 11 November 2016
  19 Replies
  8.2K Visits
Hello everyone! I'm so glad I found this forum. Hopefully someone will be able to help me out with a rather strange problem.

First things first. I use Winows 8.1, Coolsoft's VirtualMIDISynth and soundfonts to listen to and study MIDI files. I also use a screenreader because I'm blind and unfortunately, every notation/MIDI editing program seems to be inaccessible for screenreaders.

A few weeks ago, a professional transcriber sent me a MIDI file to study. It has 16 channels and 43 tracks. Every time I try to play it, instruments keep being played by the wrong instruments: strings play strings and horns, timpani play timpani and clarinets etc. The transcriber suggested the problem was caused by my devices not being able to handle that amount of tracks, so he sent me separate files for woodwinds, brass etc., which worked better but still not perfect.

At first I thought the transcriber made a mistake while exporting this file from Sibelius because such a thing has never happened before, but an online app is able to extract all the individual tracks without any problem. I should also add that the app has a function to systematically delete tracks, and the more tracks I delete, the more normal the file sounds in general, which is obviously no solution as the file has to be complete. A friend of mine who uses Mac also told me the instruments were scrambled when he played the file on his computer.

Which leads me to the question: Is there anyone in this group who would be prepared to take a look at the file, or who would e able to join all the separate files I extracted? I have absolutely no idea what's going on here, but since I'm able to play every single MIDI file except this one, I'm guessing the problem is in the file. Please do note the file has got to remain private.

In case it helps, I will copy-paste some specifications generated by MIDItransform below.

Best wishes, Vincent

Channel 0 instruments ---
Track 14: 70 - Bassoon
Track 34: 11 - Vibraphone
Track 35: 8 - Celesta
Channel 1 instruments ---
Track 15: 70 - Bassoon
Track 36: 0 - Acoustic Grand Piano
Track 38: 48 - String Ensemble 1
Track 38: 45 - Pizzicato Strings

Channel 2 instruments ---
Track 17: 60 - French Horn
Track 37: 46 - Orchestral Harp
Track 40: 48 - String Ensemble 1
Track 40: 45 - Pizzicato Strings

Channel 3 instruments ---
Track 1: 73 - Flute
Track 18: 60 - French Horn
Track 41: 48 - String Ensemble 1
Track 41: 45 - Pizzicato Strings

Channel 4 instruments ---
Track 2: 73 - Flute
Track 19: 60 - French Horn
Track 42: 48 - String Ensemble 1
Track 42: 45 - Pizzicato Strings

Channel 5 instruments ---
Track 3: 72 - Piccolo
Track 20: 60 - French Horn
Track 39: 48 - String Ensemble 1
Track 39: 45 - Pizzicato Strings

Channel 6 instruments ---
Track 4: 73 - Flute
Track 13: 71 - Clarinet
Track 21: 56 - Trumpet
Channel 7 instruments ---
Track 5: 68 - Oboe
Track 16: 70 - Bassoon
Track 22: 56 - Trumpet
Channel 8 instruments ---
Track 6: 68 - Oboe
Track 23: 56 - Trumpet
Track 26: 57 - Trombone
Channel 9 instruments ---
Track 29: 0 - Acoustic Grand Piano

Channel 10 instruments ---
Track 7: 68 - Oboe
Track 24: 57 - Trombone
Channel 11 instruments ---
Track 8: 69 - English Horn
Track 25: 57 - Trombone
Channel 12 instruments ---
Track 9: 71 - Clarinet
Track 27: 58 - Tuba
Channel 13 instruments ---
Track 10: 71 - Clarinet
Track 28: 47 - Timpani
Channel 14 instruments ---
Track 11: 71 - Clarinet
Track 32: 9 - Glockenspiel
Channel 15 instruments ---
Track 12: 71 - Clarinet
Track 33: 9 - Glockenspiel

Track Lengths:
Track 0 --- Start byte: 14, Length: 578
Track 1 --- Start byte: 600, Length: 12393
Track 2 --- Start byte: 13001, Length: 11918
Track 3 --- Start byte: 24927, Length: 5691
Track 4 --- Start byte: 30626, Length: 1684
Track 5 --- Start byte: 32318, Length: 11780
Track 6 --- Start byte: 44106, Length: 10224
Track 7 --- Start byte: 54338, Length: 3298
Track 8 --- Start byte: 57644, Length: 1948
Track 9 --- Start byte: 59600, Length: 2834
Track 10 --- Start byte: 62442, Length: 10794
Track 11 --- Start byte: 73244, Length: 13712
Track 12 --- Start byte: 86964, Length: 2748
Track 13 --- Start byte: 89720, Length: 1273
Track 14 --- Start byte: 91001, Length: 3705
Track 15 --- Start byte: 94714, Length: 2881
Track 16 --- Start byte: 97603, Length: 1637
Track 17 --- Start byte: 99248, Length: 6705
Track 18 --- Start byte: 105961, Length: 7982
Track 19 --- Start byte: 113951, Length: 7778
Track 20 --- Start byte: 121737, Length: 7430
Track 21 --- Start byte: 129175, Length: 4813
Track 22 --- Start byte: 133996, Length: 5066
Track 23 --- Start byte: 139070, Length: 5209
Track 24 --- Start byte: 144287, Length: 5509
Track 25 --- Start byte: 149804, Length: 5453
Track 26 --- Start byte: 155265, Length: 5279
Track 27 --- Start byte: 160552, Length: 2623
Track 28 --- Start byte: 163183, Length: 4235
Track 29 --- Start byte: 167426, Length: 413
Track 30 --- Start byte: 167847, Length: 3884
Track 31 --- Start byte: 171739, Length: 281
Track 32 --- Start byte: 172028, Length: 2133
Track 33 --- Start byte: 174169, Length: 353
Track 34 --- Start byte: 174530, Length: 2346
Track 35 --- Start byte: 176884, Length: 3970
Track 36 --- Start byte: 180862, Length: 18633
Track 37 --- Start byte: 199503, Length: 10557
Track 38 --- Start byte: 210068, Length: 15780
Track 39 --- Start byte: 225856, Length: 14460
Track 40 --- Start byte: 240324, Length: 17621
Track 41 --- Start byte: 257953, Length: 4791
Track 42 --- Start byte: 262752, Length: 4233

Track Names:
Track 0 --- The Flight To Neverland
Track 1 --- Flauto 1
Track 2 --- Flauto 2
Track 3 --- Ottavino
Track 4 --- Flauto 3
Track 5 --- Oboe 1
Track 6 --- Oboe 2
Track 7 --- Oboe 3
Track 8 --- Corno Inglese
Track 9 --- Clarinetto in MIb
Track 10 --- Clarinetto in SIb 1
Track 11 --- Clarinetto in SIb 2
Track 12 --- Clarinetto in SIb 3
Track 13 --- Clarinetto Basso in SIb
Track 14 --- Fagotto 1
Track 15 --- Fagotto 2
Track 16 --- Controfagotto
Track 17 --- Corno in FA 1
Track 18 --- Corno in FA 2
Track 19 --- Corno in FA 3
Track 20 --- Corno in FA 4
Track 21 --- Tromba in SIb 1
Track 22 --- Tromba in SIb 2
Track 23 --- Tromba in SIb 3
Track 24 --- Trombone 1
Track 25 --- Trombone 2
Track 26 --- Trombone Basso
Track 27 --- Tuba
Track 28 --- Timpani
Track 29 --- Grancassa
Track 30 --- Piatti Sospesi
Track 31 --- Piatti
Track 32 --- Glockenspiel
Track 33 --- Glockenspiel
Track 34 --- Vibrafono
Track 35 --- Celesta
Track 36 --- Piano
Track 37 --- Arpa
Track 38 --- Violini I
Track 39 --- Violini II
Track 40 --- Viole
Track 41 --- Violoncelli
Track 42 --- Contrabbassi

Notes in MIDI:
Notes for C --- 6846
Notes for Db --- 3066
Notes for D --- 9414
Notes for Eb --- 2428
Notes for E --- 5212
Notes for F --- 4952
Notes for Gb --- 3058
Notes for G --- 6456
Notes for Ab --- 1832
Notes for A --- 7182
Notes for Bb --- 2624
Notes for B --- 5924
6 years ago
Hi Vincent,

If you like you can send me the file and I'll take a look and try to sort out what's happening.
I run a forum called MIDI-tutorials and it will be easier if we discuss it there, if you wish.
It's here http://midi-tutor.proboards.com/.
You will need to create an account to post there. I'll look out for you.
Kind regards,
6 years ago
I will look in to the issue

Good Luck

Chris Seddio
6 years ago
Hello John, thank you for rour reply. I signed up to your forum and am awaiting approval now.
The information you posted looks very suspicious.
Once channel can only play one instrument at a time. The instrument on a channel can be changed at any time, but notes will only sound from one instrument.

Feel free to attach the MIDI file to this thread. I too would be interested to have a look for you.

It is possible to have more than 16 channels in a single file.
But this requires special meta events, FF 09 (device name, defined in RP-019) or FF 21(port number).

Many MIDI players do not support these events. In that case, you have to assign the tracks to different devices/ports manually.
A single MIDI cable is able to transport a maximum of 16 simultaneous MIDI channels. That means a maximum of 16 different musical instruments at the same time for a multitimbric synthesizer. That is a limitation of the MIDI protocol. Thirty years ago it was quite enough for most people. And if you needed more channels, you only had to add more MIDI cables (and buy more synthesizers, or better ones). There are no tracks beyond the MIDI files/sequencers. The track is only an organizational level,what matters is the channel from the synth point of view.

VirtualMIDISynth 1.x had the limitation of a single synthesizer device instance, which means only 16 channels or musical instruments at once. Fortunately, there is a new VirtualMIDISynth 2.0 in the kitchen, now in "release candidate" state that overcomes that limitation offering up to 4 instances (called devices in the program), or 64 channels. You need at least 3 devices for the 42 instruments of your file. You can download and try this free program from Claudio Nicora's (the author) page. I am only the Spanish translator. http://coolsoft.altervista.org/en/virtualmidisynth

Note that you will need to assign each track in your sequencer/player to the appropriate device that appear to Windows programs as "VirtualMIDISynth #1", "VirtualMIDISynth #2", etc. as Clemens said.

6 years ago
Thank you for that reply. Unfortunately, the new VirtualMIDISynth is of no use here because I can only play using one device atat time. Why would any music notation program export MIDI files that can't be played using straight-forward methods?
6 years ago
Hi Vincent,
From the amount of interest you've generated here, and offers of help, I think it might be advisable to attach the file to your next post here.

I suspect, from having a quick look at the original post, that there are two possibilities,
1. the file author has set each track to be a separate instrument, but has arranged to start a new instrument when the earlier one isn't playing.
2. the file has been designed to play across multiple MIDI ports. This is perhaps more likely.

I strongly suspect the latter.
With modern VST orchestral sample players (like Garritan GPO5) it has become commonplace to use multiple copies of a VST at once, each on its own MIDI port.
I'm not sure whether Coolsoft can handle that.
Note in the attached picture 16 tracks spread across 3 ports with channel numbers repeating.
Click on the picture to see it full size.
P.S. My apologies, I've just recalled that you're blind and probably therefore can't see the picture I attached. So sorry.
6 years ago
Right, I will attach the file.

I think possibility 2 is probably what is going on here, John. Though I must say it's quite absurd that a MIDI export has that same problem. This is the first (and probably only) file I've ever encounterd that was destined to play on different devices. CoolSoft can't handle that as you can only use one device at a time.
6 years ago
Right, I will attach the file.

I think possibility 2 is probably what is going on here, John. Though I must say it's quite absurd that a MIDI export has that same problem. This is the first (and probably only) file I've ever encounterd that was destined to play on different devices. CoolSoft can't handle that as you can only use one device at a time.

As for the picture, that's all right.
6 years ago
Right, I will attach the file.

I think possibility 2 is probably what is going on here, John. Though I must say it's quite absurd that a MIDI export has that same problem. This is the first (and probably only) file I've ever encounterd that was destined to play on different devices. CoolSoft can't handle that as you can only use one device at a time.

As for the picture, that's all right.
6 years ago
Okay, so attaching a file results in me posting three replies without attachment...
I have had a look at the file and the problem is as I suspected. Multiple tracks use the same MIDI channel, but the tracks don't contain any port information, even though it is clear they are intended to play on multiple devices.

I'm guessing the author of the MIDI file is using a DAW and virtual instruments, so everything sounds fine when playing the file in their DAW. However, when exporting to a MIDI file, some information is lost, which is creating the problem.

Furthermore, Vincent is using Media Player Classic for playback. I am not familiar with this software, but I strongly suspect it would ignore port information even if it was present in the MIDI file. MIDI playback is usually very basic in media players intended for audio playback.

6 years ago
Media Player Classic isn't that limited, actually. Lots of online MIDI converters/players can't handle it either. Really unfrotunate as the transcription is exquisite.
6 years ago
Hi Vincent,

The problem is that there is not, as far as I'm aware, a specific standard MIDI message to indicate a MIDI port number.
(Please correct me if I'm wrong here.)
That information will be proprietary to the sequencing software that creates the file.
The only way of exporting it is to use the file standard associated with the program, e.g. .cwp for Sonar, xgw for XGworks, etc.
That sort of division of channels across ports should, ideally for an smf, be indicated within some sort of text meta data embedded at the start of the file.
If you would like to attach the file to an e-mail to me, please send it to garsidejl at yahoo dot co dot uk.
I'm sure I don't have to add please replace the at sign and the dots with the appropriate symbols.

For play back I believe Anvil Studio may (N.B. may) allow you to assign more than one MIDI port.
The basic version of the program is free. (I have no association with Anvil.)
6 years ago
Hello again, John, I just sent you an e-mail containing the infamous file.
there is not, as far as I'm aware, a specific standard MIDI message to indicate a MIDI port number.

John, there are, in fact, two standard MIDI messages that represent a port in a MIDI file. Clemens mentioned both of them earlier in the thread. :)

Most DAWs and sequencers will support one or both of them, but few media players do. :(

6 years ago
Thanks for that Eddie, I'd overlooked that message.
Old age creeping on I imagine ;-)
(No spring chicken any more.)

I suppose the FF 21 is the best catch all.
6 years ago
Hi Vincent,

Thanks for the e-mail and attachment, it takes a while because we're in different time zones, I'm in the UK.

Now I can see what the author has done, and my second guess was correct. The MIDI file is designed to playback over multiple ports.
As is normal when creating a full orchestral core in a notation program, each instrument occupies a separate track, and 16 channels just doesn't come anywhere close to doing justice to it. Two ports can be enough, although three ports is not uncommon.

So, how to make this playback over just 16 channels?
Well, there are four horns "Corno in Fa" numbers 1 to 4. These could be combined into one channel.
There are three oboes, the same could be done with these. Three trumpets, ditto.

Clearly one would have to change the channel assignment, but make sure there was just one program change and other assignment of MIDI controllers, e.g. pan, channel volume, etc. for the group of instruments. Mostly with woodwind and brass, not strings, they are playing a chord, not in unison, or one is paying a melodic line.

Aha, not so with the horns, where they are playing in unison, likewise the celesta and harp.

Some are more problematical like the percussion sounds. I'm fairly sure there not tympani nor grancassa in the standard MIDI drum set, although a standard bass drum could be used for one.
There are two flute plus piccolo. These might be combined. Four clarinets, but one is in Mib rather than Sib and there's a bass clarinet too, as well as two bassoons and a contrabassoon.
With some fairly careful work it's possible that much of this could be combined to make a 16 channel file, but it would mean dropping a few instruments, so not a perfect rendering.
I'll do some preliminary work to the file for you and see how close I can get. It shouldn't take too long.
I'll drop the file back to you via e-mail.
  • Page :
  • 1
There are no replies made for this post yet.