fbpx


The MIDI Forum

  Friday, 13 May 2022
  35 Replies
  1.1K Visits
2
Votes
Undo
  Subscribe
Hello, could someone lend me some "rare" MIDI files, for example midi 2 format or with SMPTE delta times, I can't find any and also the largest "common" midi file.
The largest midi file I have weighs 84.3Kb and my program takes 0.0137 seconds to read and analyze it, I would like to try something bigger
Thank you. :)
6 days ago
·
#14568
0
Votes
Undo
I don't think anybody have MIDI-2 files.
The one with SMPTE you can find at https://github.com/jazz-soft/test-midi-files
and that will also allow you create your own test files with any content you can imagine.
6 days ago
·
#14570
0
Votes
Undo
As Sema intimates you'll be lucky to find any MIDI 2 format files.
Why not?
The MMA standard for authoring MIDI 2 files hasn't been agreed or published yet.
Q.E.D. they don't exist ... yet!

I'm fairly sure you'll find some large files in the MIDI section of the Classicalarchives.com web site.
Just look for a suitable large, popular orchestral score, e.g. Rossini's overture to William Tell will give you 145k.

JohnG.
6 days ago
·
#14571
0
Votes
Undo
Thanks, I thought that already existed, since they talk about it in a file from 1996. :D
0
Votes
Undo
They are referring to what the Standard MIDI Files Specification calls a "format."
There are three formats of MIDI 1.0 files, numbered 0, 1 and 2.
6 days ago
·
#14573
0
Votes
Undo
Standard MIDI File specification (version 1) defines Type 0, Type 1, and Type 2. The Type 0 and Type 1 formats have been well used and supported by many products, but Type 2 format is extremely rare. Recently in the Standard MIDI File Working Group of the MIDI Association, members all agreed that they have never seen a Type 2 file.

The Standard MIDI File Working Group is currently working on a Version 2 specification to define support for the MIDI 2.0 Universal MIDI Packet data format.

Mike Kent
Chair of MIDI 2.0 Working Group
6 days ago
·
#14575
0
Votes
Undo
We had a discussion a few months back about Type 2 files, with some files I have marked as Type 2 in the header, but we had difficulty determining if anything actually used any Type 2 features. The files are attached to that thread.

https://midi.org/forum/11926-ways-to-determine-is-a-midi-is-type-0-or-1
5 days ago
·
#14576
0
Votes
Undo
We had a discussion a few months back about Type 2 files, with some files I have marked as Type 2 in the header, but we had difficulty determining if anything actually used any Type 2 features. The files are attached to that thread.

https://midi.org/forum/11926-ways-to-determine-is-a-midi-is-type-0-or-1


Thanks, download the files I'm going to see how they work, not even Musescore can read them, they look like normal files with the only difference that they are the first I've seen with system-exclusive events, some have many of these events
0xF0 0x7D 0x01 0x00 0x01 0x00 0x01 0x04 0x03 0x10 0x00 0xF7
0xF0 0x7D 0x03 0x63 0x6C 0x65 0x61 0x72 0x20 0x63 0x61 0x6C 0x6C 0x62 0x61 0x63 0x6B 0x00 0xF7
5 days ago
·
#14577
0
Votes
Undo
Oh, you needed a MIDI file of type 2, not a MIDI 2.0 file...
Attaching one made with the tool mentioned above...
5 days ago
·
#14579
0
Votes
Undo
Oh, you needed a MIDI file of type 2, not a MIDI 2.0 file...
Attaching one made with the tool mentioned above...

Yes, but they look the same as a midi format 1, I was expecting something like a Meta-Event Sequence Number per track
5 days ago
·
#14580
0
Votes
Undo
Carlos,

Yes, they may well look the same.

The essential difference is that a type 1 file has multiple tracks that play together, in the same time frame. A type 2 file also contains multiple tracks, that do not necessarity play in the same time frame - but as I understand it, MIGHT do.

I did see a type 2 file once, I think something from a game, and the delta time reset to 000 at the end of the first section. Don't know where this file is now. I think it came from Jonas.

The problem with such a file is that the playing software (not a normal SMF player) needs to expect such data, and know what to do with it. As in, do the separate parts need to be played together, or one after the other. This may be why type 2 files are so rarely used, it may well be much more more convenient to use multiple type 1 files which can be played back normally.

Geoff
5 days ago
·
#14581
0
Votes
Undo
I was expecting something like a Meta-Event Sequence Number per track

I've interpreted Type 2 MIDI files as being a way to store a collection of Type 0 MIDI files in a single file. I also imagined the Sequence Number and/or Sequence/Track Name meta events could be used at the beginning of each track in a Type 2 MIDI file to help identify each track as part of some overall collection. For example, I have imagined that a drum machine might export all of its drum patterns to a single Type 2 MIDI file, with each track representing one pattern, beginning with a Sequence Number meta event to store the pattern number. However, I have no idea if anything like this was ever actually done.


About Jason's example Type 2 MIDI files:

In the previous thread where Jason posted those example Type 2 MIDI files, there was some discussion about them being from a Star Wars video game. I investigated a little and believe they are from the LucasArts game Star Wars: Dark Forces. It looks like the music in that game is actually contained in GMD files. However, the content of a GMD file includes MIDI file chunks, so it would be easy to extract the MIDI file chunks from a GMD file into a separate MIDI file.

The page about GMD files says the System Exclusive messages they contain are part of LucasArts's iMUSE format. Wikipedia describes iMUSE is an "interactive music system" used "to synchronize music with the visual action in a video game so that the audio continuously matches the on-screen events and transitions from one musical theme to another are done seamlessly." So it appears the Type 2 MIDI file chunks inside those GMD files are used to store MIDI snippets that are switched between based on actions in the game.

they look like normal files with the only difference that they are the first I've seen with system-exclusive events, some have many of these events [F0 7D 01 00 01 00 01 04 03 10 00 F7] [F0 7D 03 63 6C 65 61 72 20 63 61 6C 6C 62 61 63 6B 00 F7]

Those System Exclusive messages use a "Manufacturer ID" of 7D. The MIDI 1.0 specification says:

"Special ID 7D is reserved for non-commercial use (e.g. schools, research, etc.) and is not to be used on any product released to the public. Since Non-Commercial codes would not be seen or used by an ordinary user, there is no standard format."

I interpret that to mean a System Exclusive message with Manufacturer ID of 7D should only be used for private purposes. (If you need to create System Exclusive messages for public use, The MIDI Manufacturers Association wants you to pay for a Manufacturer ID and publish the format of System Exclusive messages you create with it.) If the game only stores those System Exclusive messages in its private GMD file format, that's sort of a private use even though it was part of a publicly released commercial product, since they're technically not MIDI files.

By the way, I noticed that after the 7D byte, the next byte seems to be either 00, 01, or 03. If it is 03, then the following bytes are actually ASCII text ending with a 00 byte and the F7 byte that ends the System Exclusive message. These text commands are mentioned in the page about GMD files, but it only lists their patterns and says their meaning is unknown.
5 days ago
·
#14582
0
Votes
Undo
Carlos,

I had a dig in my drives, and I found the file I was thinking of.

May well have come from Jonas, you may already have got it. I think the file originates from a StarWars game of some type.

The header shows that it is a type 2 file.

I used the DECODE program on the file, which displays the contents as plain text. The vast bulk of the file is a normal music midi file, but attached on the end you will see two small sections, each of which has the delta time reset to 000. In one case, there's a note that is turned ON before the 'break', and turned OFF in the new section.

I attach a .zip file. This contains the original empire.mid, also my file empire.txt which is the text decoded version.

I think that the .mid file played OK using synthfont.

You may find this interesting?

Geoff
5 days ago
·
#14583
0
Votes
Undo

I used the DECODE program on the file, which displays the contents as plain text. The vast bulk of the file is a normal music midi file, but attached on the end you will see two small sections, each of which has the delta time reset to 000. In one case, there's a note that is turned ON before the 'break', and turned OFF in the new section.

I can't find where it resets the time delay to 0 doesn't it play all 3 tracks at once?
5 days ago
·
#14584
0
Votes
Undo
The data in the separate sections are held in the main file as separate tracks. There isn't any explicit reset to 000. But the fact that it's a type 2 file means that the data is not merged to a single time frame (as would happen with a type 1 file) but the sections remain sequential.

Note the note ON event near to the end of the main section, and no matching note OFF event. Then, the next section contains the matching note OFF, after a slight delay.

The DECODE program I have clearly understands something (I guess) about type 2 files.

Geoff
5 days ago
·
#14585
0
Votes
Undo

I've interpreted Type 2 MIDI files as being a way to store a collection of Type 0 MIDI files in a single file. I also imagined the Sequence Number and/or Sequence/Track Name meta events could be used at the beginning of each track in a Type 2 MIDI file to help identify each track as part of some overall collection. For example, I have imagined that a drum machine might export all of its drum patterns to a single Type 2 MIDI file, with each track representing one pattern, beginning with a Sequence Number meta event to store the pattern number. However, I have no idea if anything like this was ever actually done.


So each track in a format 2 file would be just as a format 0 file there is no format 1

The data in the separate sections are held in the main file as separate tracks. There isn't any explicit reset to 000. But the fact that it's a type 2 file means that the data is not merged to a single time frame (as would happen with a type 1 file) but the sections remain sequential.


Now I understand, I'm going to do some experiments with it.
5 days ago
·
#14586
0
Votes
Undo
I found the file I was thinking of. May well have come from Jonas, you may already have got it. I think the file originates from a StarWars game of some type. [...] I attach a .zip file. This contains the original empire.mid [...]
Yes, this empire.mid is exactly the same as the one from the previous thread Jason mentioned.

you will see two small sections, each of which has the delta time reset to 000. In one case, there's a note that is turned ON before the 'break', and turned OFF in the new section.
Note that the only places the tick position gets reset to zero is when a new track starts, so that is perfectly normal.

However, as you mentioned, near the end of the first track, there is a message to start a channel 3 G note that is never ended. And in the second track, the only note message that exists at all is a message to end the same channel 3 G note. Those unbalanced note messages are abnormal in usual circumstances.

Since these tracks are presumably MIDI snippets that a video game can switch between, it might possibly make sense to have a note split across snippets, but it would have to be handled carefully to avoid leaving a note stuck sounding. Alternatively, it could also just be some editing glitch that got left in the file.

doesn't it play all 3 tracks at once?
In a Type 2 MIDI file, the tracks are not intended to be played at the same time -- each track is a separate piece of music.

In the example Type 2 MIDI files extracted from Star Wars: Dark Forces, the tracks appear to be music snippets the game can switch between depending on the action happening in the game. According to my understanding, this seems similar to the idea behind a standard Type 2 MIDI file, but is a little bit different.

For example, I believe a standard Type 2 MIDI file should have appropriate set up messages at the beginning of every track. However in these example Type 2 MIDI files extracted from Star Wars: Dark Forces, only the first track in each file appears to have Program Change messages to set up the instrument sounds for each channel. Supposedly the other tracks would eventually be played at some point after the first track had started and reuse the same instrument sounds that were set up.
4 days ago
·
#14589
0
Votes
Undo
In a Type 2 MIDI file, the tracks are not intended to be played at the same time -- each track is a separate piece of music.


http://midi.teragonaudio.com/tech/midifile.htm

How do you know which sequence to play? In the case of the game file, it is special because it is controlled by the game itself. Does it have anything to do with this?
http://jac.michaeldrolet.net/SCS_10_Help/scs_options_mid_msc.htm
4 days ago
·
#14590
0
Votes
Undo
The MIDI Technical Fanatic's Brainwashing Center (midi.teragonaudio.com) contains pretty good descriptions of MIDI specifications, but be aware that it is not official and sometimes gets some details wrong. It's always a good idea to look at the official specifications in the midi.org Specs section first, then read other sites for comparison.

The official specification for Standard MIDI Files doesn't do a very good job of explaining the difference between Type 0, 1, and 2 MIDI files. The MIDI Technical Fanatic's Brainwashing Center page that describes Type 0, 1, and 2 MIDI files has more details. But it might still take a while of looking at example MIDI files and experimenting with MIDI file players and editors to get a good understanding of the differences.

Unfortunately, the Type 2 MIDI file format is so rare or non-existent that most MIDI software doesn't support it at all. I can give you my idea about how I think it should work, but be aware it is mainly just something that MIDI nerds like to talk about.


How do you know which sequence to play?
I like to imagine a Type 2 MIDI file is sort of like a zip file that contains several Type 0 MIDI files. You would have to let the user choose which track to play. They might only want to play one track. They might want to play all the tracks in order one after another.

If I were creating a MIDI file editor and I wanted it to open Type 2 MIDI files, then right after the user selects the file in the Open dialog box, I might want it to show a list of the tracks and let the user pick which one to work on. Then the editor would open that track and show it the same way it would show a Type 0 MIDI file. Later, the user could go back to the special track list window to add, remove, or re-order individual tracks and save the overall Type 2 MIDI file.

Alternatively, when the user opens a Type 2 MIDI file, I might want it to add all the tracks one after another on the same timeline in the editor, but show a special dividing line between tracks, and restart the timeline number labels at 0 seconds or bar 1 at the beginning of each track.

If I were creating a MIDI file player and I wanted it to open Type 2 MIDI files, I would probably load all the tracks as separate items in a playlist, so it can just play them one after another. I would also let the user remove or re-order the items in the playlist without affecting the original Type 2 MIDI file, only the playlist would be affected.


That page is about MIDI Show Control messages. MIDI Show Control messages are for controlling devices for a light show, smoke effects, or fireworks at a concert.
4 days ago
·
#14595
0
Votes
Undo
I like to imagine a Type 2 MIDI file is sort of like a zip file that contains several Type 0 MIDI files. You would have to let the user choose which track to play. They might only want to play one track. They might want to play all the tracks in order one after another.


That's what I was thinking but I wasn't sure if it was correct, it's still much better than just saying it's a midi type 2 which isn't supported like musescore or timidity does.
3 days ago
·
#14598
0
Votes
Undo
For LARGE MIDI files, you can have a look here:
http://www.midimusicadventures.com/queststudios/midi-soundtracks/complete-soundtracks/
These are soundtracks from old PC games made by Sierra/Quest Studios.

Some of the files are a collection of the entire soundtrack from a game merged in to one giant file. ROBIN-GS is 446 KB. Note though that some of the files may not be 100% "correct", as they may have artifacts left over from the original merging process (like invalid drum kits, or a mismatched MIDI file format mixed in with the others [old MT-32 vs GM vs GS]) so don't be alarmed if you come across something that doesn't look right, because there's a good chance it's not ;)
  • Page :
  • 1
  • 2
There are no replies made for this post yet.
Be one of the first to reply to this post!