0
0

Troublesome MIDI Files

Proplem: A quater in the song a note starts but never stops so you hear that note until the song ends. You’ll see it it’s quite obvious.
[url=http://host-a.net/icuurd12b42/ironman.mid:3emwbpt4]Download ironman.mid[/url:3emwbpt4]

Same deal with this one
[url=http://host-a.net/icuurd12b42/schoolsout.mid:3emwbpt4]Download schoolsout.mid[/url:3emwbpt4]

Problem: At the start of the midi, special effects blurb on top of incomming chopper, anvil pays an electronic kindof woosh sound (though I cannot find it’s track in the editor) but FMOD does not play it.

[url=http://host-a.net/icuurd12b42/deep_purple_smoke_on_the_water.mid:3emwbpt4]Download deep_purple_smoke_on_the_water.mid[/url:3emwbpt4]

  • You must to post comments
0
0

Bump

  • You must to post comments
0
0

Thanks for the reports, it has taken a little while to fully look into these issues but I now have some answers for you.

Firstly with the smoke on the water MIDI I believe the problem is in the file itself, and not FMOD. Instead of the applause sound you should hear (musically accurate) you get a scream (unpleasant). If you have Cakewalk you can see there is a bank select done (for bank 2) then a program change for 126. What this means is in most programs that use the Microsoft MIDI synth to render the MIDI file you get the applause because the bank select (part of the GM2 standard) is not executed (defaults to bank 0). When using FMOD the bank select is executed, which causes a different sample in the DLS file to be loaded. The simple solution for you is to fix the MIDI file (I used cakewalk and removed the unwanted bank select event, it sounded correct then with FMOD).

As for the second issue, you have indeed found a bug there, what was happening is duplicate notes weren’t correctly keying off, so they were stuck in permanent sustain. This fix will be available in our next release.

  • You must to post comments
0
0

[quote="mathew":9e5uxyps]Thanks for the reports, it has taken a little while to fully look into these issues but I now have some answers for you.

Firstly with the smoke on the water MIDI I believe the problem is in the file itself, and not FMOD. Instead of the applause sound you should hear (musically accurate) you get a scream (unpleasant). If you have Cakewalk you can see there is a bank select done (for bank 2) then a program change for 126. What this means is in most programs that use the Microsoft MIDI synth to render the MIDI file you get the applause because the bank select (part of the GM2 standard) is not executed (defaults to bank 0). When using FMOD the bank select is executed, which causes a different sample in the DLS file to be loaded. The simple solution for you is to fix the MIDI file (I used cakewalk and removed the unwanted bank select event, it sounded correct then with FMOD).
[/quote:9e5uxyps]

Thanks.

I am not a MIDI expert. The most I have done with MIDIs is reading the file and display note ON note OFF on the screen. Though I am getting more and more acquainted with the format, I have no knowledge of the hardware interactions…

For the smoke on the water, you actually misheard the problem… hehehe, I actually made the same mistake… If you listen with Anvil or media player, the claps and screams are there… FMOD simply plays them louder. I almost reported THAT as a bug in the first place. There was something wrong with the file and could not put my finger on it and originally thought the scream was the problem. Because…

…The problem is the missing electronic wooosh with the incoming chopper sound (A track I cannot locate in Anvil). The fact that it is not played in FMOD makes you hear the claps and scream more intensely and makes you mistakenly focus on that part of the sound, fooling you into thinking that is the problem. In Anvil and Media Player, those claps and scream are there but very faint.

[quote:9e5uxyps]
As for the second issue, you have indeed found a bug there, what was happening is duplicate notes weren’t correctly keying off, so they were stuck in permanent sustain. This fix will be available in our next release.[/quote:9e5uxyps]

Ah, great.

I am working on a MIDI file display, like I said… I am starting to fully understand how truely complex the implementation of MIDI is… Made me go bananas a few times.

So many variations… I’m still trying to figure out how to calculate the note lengths for notes that do not have a note off.

  • You must to post comments
0
0

There are several differences about the playback of the "Smoke on the Water" MIDI between Windows Media Player and FMOD. I have looked through the MIDI file and I can see why.

As I said previously this MIDI file has been authored to make use of more sounds than the GM1 standard. If you go to [url=http://en.wikipedia.org/wiki/General_MIDI:1h2ogjk2]Wikipedia GM1[/url:1h2ogjk2] you can see the standard list of sounds, this is what Windows Media Player (and any application that uses the Windows MIDI mapper device) will use to play the file. When you use FMOD you have access to all the sounds in the GM2 standard which you can see at [url=http://en.wikipedia.org/wiki/GM2:1h2ogjk2]Wikipedia GM2[/url:1h2ogjk2]. Inside your MIDI file there are bank selects that tell FMOD which of the GM2 sounds to play (these are ignored by Windows Media Player). This is why you are getting different sounds played, there is no bug in FMOD here, it is just playing the samples that it has been instructed to play.

If you have the right tools you can alter the tracks so they play the desired sound samples in FMOD by removing the bank select events. For instance I am using Cakewalk to view these events, but you may have other tools that would work also.

And yes the MIDI implementation can be quite complex, with getting note lengths you need to look at articulation envelopes (i.e. the note release phase) for the notes that are played since some notes continue to play after they are keyed off (NoteOff). For notes that do not have a NoteOff you need to look for the next NoteOn of that same key (it’s an implied NoteOff).

  • You must to post comments
0
0

[quote="mathew":1zxaekin]There are several differences about the playback of the "Smoke on the Water" MIDI between Windows Media Player and FMOD. I have looked through the MIDI file and I can see why.

As I said previously this MIDI file has been authored to make use of more sounds than the GM1 standard. If you go to [url=http://en.wikipedia.org/wiki/General_MIDI:1zxaekin]Wikipedia GM1[/url:1zxaekin] you can see the standard list of sounds, this is what Windows Media Player (and any application that uses the Windows MIDI mapper device) will use to play the file. When you use FMOD you have access to all the sounds in the GM2 standard which you can see at [url=http://en.wikipedia.org/wiki/GM2:1zxaekin]Wikipedia GM2[/url:1zxaekin]. Inside your MIDI file there are bank selects that tell FMOD which of the GM2 sounds to play (these are ignored by Windows Media Player). This is why you are getting different sounds played, there is no bug in FMOD here, it is just playing the samples that it has been instructed to play.

If you have the right tools you can alter the tracks so they play the desired sound samples in FMOD by removing the bank select events. For instance I am using Cakewalk to view these events, but you may have other tools that would work also.

And yes the MIDI implementation can be quite complex, with getting note lengths you need to look at articulation envelopes (i.e. the note release phase) for the notes that are played since some notes continue to play after they are keyed off (NoteOff). For notes that do not have a NoteOff you need to look for the next NoteOn of that same key (it’s an implied NoteOff).[/quote:1zxaekin]

Cool thanks…

yes,, I am also looking for the next note on… Though, for some files, I still get a tiny line instead of a long one (tiny line playing a long note) because my code did not find another note ON or a note OFF. Must be either my code failed to find the next note on/off or possibly another event like after touch or pitch bend which I do not yet handle and should be considered?!? It’s not an fmod question but if you know, do tell :).

  • You must to post comments
0
0

When looking for a keyoff I believe it can only come from a NoteOff event, or a NoteOn with the same key. There are also key groups, so if a new note is in the same group as an already playing note, then the existing note should be stopped completely (not keyed off).

  • You must to post comments
0
0

[quote="mathew":3u7zhkvh]When looking for a keyoff I believe it can only come from a NoteOff event, or a NoteOn with the same key. There are also key groups, so if a new note is in the same group as an already playing note, then the existing note should be stopped completely (not keyed off).[/quote:3u7zhkvh]

Darn now that was not in the reference documents I used. First time I hear about groups…. Most of the time I have the problem, it’s when a chord is played. 4-five notes at the same time…

Thanks for the info.

  • You must to post comments
Showing 7 results
Your Answer

Please first to submit.