fbpx
  Friday, 13 May 2022
  67 Replies
  5.8K Visits
6
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. :)
1 month ago
·
#14932
0
Votes
Undo

The Bank Select messages in ALMONDS.MID and SOMEBAND.MID look like a mistake to me:

The Bank Select messages happen a long time after the initial Program Change.
The Bank Select messages do not have a Program Change message after them.


You are right, I had to accept the bank changes when I receive a program change. Thanks
1 month ago
·
#14922
0
Votes
Undo
ALMONDS.MID It contains a bank selection like XG, as you mentioned not all files contain an XG reset so I check only bank selection 127 and 126, if it contains one of these then it is percussion but I am seeing that it can create erroneous results like this, obviously this file does not have a battery.

what dou you recommend?

The Bank Select messages in ALMONDS.MID and SOMEBAND.MID look like a mistake to me:
  • The Bank Select messages happen a long time after the initial Program Change.
  • The Bank Select messages do not have a Program Change message after them.

ALMONDS.MID, Bank and Program messages on Channel 3:
  Position  Kind            Channel  Value 1                 Value 2
-------- -------------- ------- ---------------------- -------
1:1:000 Program Change 3 29 (Overdriven Guitar)
37:3:226 Control Change 3 32 (Bank Select LSB) 127
37:3:226 Control Change 3 0 (Bank Select MSB) 127
37:3:226 Control Change 3 32 (Bank Select LSB) 127
37:3:226 Control Change 3 0 (Bank Select MSB) 127
37:3:226 Control Change 3 0 (Bank Select MSB) 127

ALMONDS.MID, Bank and Program messages on Channel 4:
  Position  Kind            Channel  Value 1                 Value 2
-------- -------------- ------- ---------------------- -------
1:1:000 Program Change 4 30 (Distortion Guitar)
21:4:316 Control Change 4 32 (Bank Select LSB) 46
44:2:388 Control Change 4 0 (Bank Select MSB) 127

SOMEBAND.MID, Bank and Program messages on Channel 3:
  Position  Kind            Channel  Value 1                 Value 2
-------- -------------- ------- ---------------------- -------
1:1:000 Program Change 3 32 (Acoustic Bass)
77:4:362 Control Change 3 0 (Bank Select MSB) 0
1 month ago
·
#14921
0
Votes
Undo
These files do not contain the microsoft ID do you have any that do?
FF 7F 03 00 00 41

I'm sorry, I thought I confirmed the files at that link had the Sequencer-Specific Meta Event with the Microsoft Manufacturer ID.

Here are some files that do have it:

CANYON.MID or CANYON.MID
PASSPORT.MID or PASSPORT.MID
1 month ago
·
#14920
0
Votes
Undo


These files do not contain the microsoft ID do you have any that do?
FF 7F 03 00 00 41

ALMONDS.MID It contains a bank selection like XG, as you mentioned not all files contain an XG reset so I check only bank selection 127 and 126, if it contains one of these then it is percussion but I am seeing that it can create erroneous results like this, obviously this file does not have a battery.

what dou you recommend?
2 months ago
·
#14809
0
Votes
Undo
Yes, I believe it does. I have not come across a file that does this, but this part

02 -> Data (00=OFF, 01=MAP1, 02=MAP2)

selects whether it is normal (instrument), or MAP1/MAP2 (percussion)

So if you had
F0 0A 41 10 42 12 40 10 15 00 0F F7

that should assign a standard instrument channel to channel 10.

We may have to wait for someone with a GS instrument to verify ;)

Actually, I manually edited a test file that Sema provided a while ago for setting custom GS drums. I moved the notes to channel 10 and modified the SYSEX as above.

My editor needs to be updated to reflect this possibility :p

Both Winamp and MidiPlayer played an organ on channel 10.


timidity plays it as percussion as well
2 months ago
·
#14808
0
Votes
Undo
Thanks :D
2 months ago
·
#14767
0
Votes
Undo
What happens with a program change on channel 10 in GM?

For a strictly GM1 system, a program change on channel 10 would have no effect. For every other system (GM2, GS, XG) a program change on a percussion channel is what is used to select the different percussion "kits" (For example, Room Kit, Jungle Kit, Techno Kit). Each kit will usually have all of the sounds found in the standard kit, but modified in some way, such as added reverb, echo, extra bass, etc, or an entirely new batch of sounds that still relate to the originals.

Page 6 of the GM1 specs show the only drum map available in GM1. A program change will not have any effect.
https://www.midi.org/specifications/midi1-specifications/general-midi-specifications/general-midi-1

Page 32+ of the GM2 specs show the drum maps available in GM2. A program change will select any of these kits.
https://www.midi.org/specifications/midi1-specifications/general-midi-specifications/general-midi-2

See page 187 of the SC-8850 manual to see what drum kits (sets) are available on this particular device (it is a GS device). A program change will select any of these kits.
https://cdn.roland.com/assets/media/pdf/SC-8850_OM.pdf

See page 63+ of the XG specs to see the kits for XG. A program change will select any of these kits.
http://www.jososoft.dk/yamaha//pdf/xgspec.pdf
2 months ago
·
#14766
0
Votes
Undo
What happens with a program change on channel 10 in GM?
2 months ago
·
#14748
0
Votes
Undo
Just to clarify the use of channel 10 for rhythm, or not, in the various specifications.

The General MIDI specification, i.e. version 1, says the following (I quote):
Key-based Percussion is always on channel 10.

The GM2 specification says a lot more (again I quote):
2.4 Melody Channels and Rhythm Channels
[required]
A Melody Channel is a Channel that can select timbres or sounds from the GM2 Sound Set. These timbres are Programs
in Bank 79H/xxH (79H/00H, 79H/01H, 79H/02H, etc.).
A Rhythm Channel is a Channel that can select timbres from the GM2 Percussion Sound Set. These timbres are
Programs in Bank 78H/xxH.
Any Channel can be used as a Melody Channel, including Channel 10. Channels 10 and 11 can be used as Rhythm
Channels (see Bank Select). Channel 10 defaults to a Rhythm Channel and Channel 11 defaults to a Melody Channel.
[optional]
Any Channel can be used as a Rhythm Channel by sending the Bank Select message 78H/xxH followed by a Program
Change message. GM2 scores that use this optional message may be incompatible with some GM2 devices.


The GS and the XG implementations both follow the GM2 specs. in this respect, so melody instruments can be on all 16 channels.
Channel 11 is the one normally chosen for an extra drum set.
The normal way of switching between melody and rhythm is by the Bank Select MSB, although a SysEx message is an alternative.

JohnG.
2 months ago
·
#14744
0
Votes
Undo
Yes, I believe it does. I have not come across a file that does this, but this part

02 -> Data (00=OFF, 01=MAP1, 02=MAP2)

selects whether it is normal (instrument), or MAP1/MAP2 (percussion)

So if you had
F0 0A 41 10 42 12 40 10 15 00 0F F7

that should assign a standard instrument channel to channel 10.

We may have to wait for someone with a GS instrument to verify ;)

Actually, I manually edited a test file that Sema provided a while ago for setting custom GS drums. I moved the notes to channel 10 and modified the SYSEX as above.

My editor needs to be updated to reflect this possibility :p

Both Winamp and MidiPlayer played an organ on channel 10.
2 months ago
·
#14743
0
Votes
Undo

And finally, for the GS percussion channel assignment SYSEX.
Information about this can be found.... in the manual? I'll have to dig through my stuff when I have more time to see where I got it from. I just did a quick look through the SC-8850 manual but didn't see it, but I'm sure it's in there. SYSEX explanations start around page 229.
https://cdn.roland.com/assets/media/pdf/SC-8850_OM.pdf

// GS Custom Percussion Assignment
// F0 0A 41 (10) 42 12 [40 1A 15] [02] 0F F7
// [.. 1x ..] x = part# / (probably) ch# 1-9, 0, A-F
// [0y] y = type: 0 = standard, 1 = drum map 1, 2 = drum map 2


I finally understand this (page 238)
40 1x 15, x is channel by default there is only percussion on channel 10 (MAP1), the only thing different is that x=0 represents channel 10
F0 -> Exclusive status
0A -> variable length
41 -> ID number Roland
10 -> Device ID
42 -> Model ID
12 -> Command ID -> DT1
40 -> Address MSB
1A -> Address (A is channel, page 237)
15 -> Address LSB
02 -> Data (00=OFF, 01=MAP1, 02=MAP2)
0F -> Checksum (page 245)
F7 -> End


Channel

x=0 -> channel 10
x=1 -> channel 1
...
x=9 -> channel 9
x=A -> channel 11
...
x=F -> channel 16


does this mean that channel 10 could be used as an instrument channel?
2 months ago
·
#14718
0
Votes
Undo
I have looked at the list of names of another model but the same brand and they also change, which makes these MSB numbers completely useless.
If you are purely looking for display purposes, the best you can do is a best guess.
What I have done is used a specific list for GM, another for GS, and another for XG. I use the most complete lists I could find, which are based on the newest/most complete devices of each type. This gives me the broadest coverage. You will never have a 100% accurate list for every bank select and every device. I recently added allowing the loading of a custom instrument list (as I wanted it to match what was in the soundfonts I am using). You may want to try something along those lines.

See these screenshots of a GS file loaded in my instrument editor. I have a quick toggle so you can view it in any of the three modes in case the file does not detect the mode, or you are planning on converting it to another format.
It shows a few things:
- Names (at least for MSB 0, LSB 0, which should the GM bank in any GM compatible device) are all variations of essentially the same thing. Once you go in to higher number banks, you will see more differences.
- If you don't have a name/instrument for something, generally it will "fall back" to what is in the default bank. This isn't always the case, but most devices should handle this. The MIDI implementation charts in the device manuals usually show what sound will play if a particular bank selection does not exist. I have seen ones that will play the default bank sound, ones that will play the previously selected sound, and in Yamaha devices, certain specific banks (like SFX Bank) that will play no sound if a valid one is not selected. (in my example, all of the instruments are using MSB 0 LSB 1, which is not a "standard" GS setting, but is probably a valid variation used in the device the file was created in, and my software displays the default bank names for the items)
- If you allow custom naming, any missing things can be supplied by the user/customized to a particular device. There are tons of CakeWalk Instrument Definition Files that have been made by many people that cover a huge amount of specific devices. These are text file that list all of the instruments in a particular device.
Files for various Yamaha devices can be found here:
http://www.jososoft.dk/yamaha/ins_files.htm
Five ins files come with Sekaiju if you download it. I posted a few of them earlier, and I use some of them for my naming. A google search will yield additional files.
My custom naming files come from the soundfont info in VirtualMIDISynth. It lists all of the instruments in a particular soundfont, and I copy those in to a text file that I can load in my editor. This way, I can have instruments that are an exact match for what I have available, and if anyone else makes a file following this format, those can be loaded as well.
2 months ago
·
#14715
0
Votes
Undo
I have looked at the list of names of another model but the same brand and they also change, which makes these MSB numbers completely useless.


This is quite normal.
Usually the top end product will have "Instruments" that are not available in the lower price range.

Instruments vary in VSTs too.
Below you'll find two trumpets from different VST libraries from the same company. Both called Trumpet1_KS (KS=key switch).
You'll notice that the range of MIDI controllers implemented with one trumpet is significantly different from the other one.

Trumpet1-GPO5.jpg


Trumpet1-JaBB.jpg

One is an orchestral trumpet, the other for Jazz.
Clearly, the MIDI controllers used for the Jazz trumpet will do absolutely nothing with the orchestral trumpet.

This, as far as I'm concerned, is one of the interesting joys of MIDI, tailoring each file to play at its best with the hardware/software at your own disposal.
Of course, others will differ.
2 months ago
·
#14714
0
Votes
Undo
Carlos,

I've just had a quick look at the Bank Charts for my main two devices, Yamaha MU90r and Korg NS5r. I was specifically looking for a sound called Santur which appears in a couple of XG midi files I like. Actually, this sound has the same codes (MSB, LSB and PC) to select it in both devices. Most of the other sounds in the tables nearby were also the same on both devices. At least they had the same name, so I guess they would be similar enough. I've not looked further than this.

The Yamaha device is explicitly XG, the Korg is not.

So I suppose it's pot luck - some sounds may be the same. If you use a specific 'extra/banked' sound in a midi files, then maybe you need to check if it appears on other devices? Not an easy task, I agree.

Geoff
2 months ago
·
#14711
0
Votes
Undo
I have looked at the list of names of another model but the same brand and they also change, which makes these MSB numbers completely useless.
2 months ago
·
#14698
0
Votes
Undo
Really, most devices are a law unto themselves, and there is no absolute role as to how the sounds are prganised. However, the manual should tell you how to select the individual sounds.

VERY generally, the sounds are organised into 'banks'. Carlos's piano seems to have a default GM bank for GM, which is reasonable. Then things may work like GS, in that many of the default sounds may have alternatives, selected via different MSB codes. I assume that in GS, if you select an 'alternate' sound, then you replace the basic sound with the alternate and leave all the other sounds alone.

XG, I'm not so sure. Here, if you select a sound from a bank, maybe using MSB and LSB and PC, what happens. I've always assumed that this uses the selected sound, and it could be used anywhere (any track/channel) without affecting everything else, but is that the case. Looking at the XG bank charts, then each bank has the full 128 sounds, which are mostly the standard sounds, but some will be new, i.e. specific to that bank. Are you selecting the new sound ONLY, or are you using the bank, which might affect other sounds as well. Surely NOT, as you can, I believe, select sounds from different banks, at the same time?

Geoff
2 months ago
·
#14697
0
Votes
Undo
I have a piano that has 400 tones
128 are GM tones MSB=0
6 Drum Set GM2 MSB=120
266 I don't know what type they are because the MSB is different from 121 so it's not GM2 or GM
For example:
Stereo Grand Piano: Program Change = 0, MSB = 2
Music BOX 1: Program Change = 10, MSB = 2
Music BOX 2: Program Change = 10, MSB = 1
Dance Square Pad 2: Program Change = 90, MSB = 50
almost matches GS list https://github.com/jazz-soft/JZZ-midi-GM/blob/master/data/gs-sc8850.txt
2 months ago
·
#14696
0
Votes
Undo
What you get, Carlos, will depend entirely on the device and how, or even whether, it interprets or ignores the GM On.

My old Cheetah MS6 , which is pre General MIDI, will completely ignore the GM On message and produce whatever has been programmed into the first memory area.
My Yamaha AN1x synth the same, as is my Yamaha VL70m wind synth. I suspect many other synths are the same.

However, more modern Sound Modules like my Roland SC8850 and my Yamaha MU1000 will produce a grand piano sound on PC 1 (0) whether or not a GM On is sent.

I don't suppose that's a lot of help!
JohnG.
2 months ago
·
#14694
0
Votes
Undo
GM defines the 128 sounds that there are, so if it is not active, what remains? Only the midi standard, but this does not ensure that there is a piano in program 0, is that correct?
2 months ago
·
#14692
0
Votes
Undo
What Bavi-H suggests is partly true,

One primary purpose of a GM System On message is to reset ALL controllers to their default state.
On all ports, all channels.

The command actually does more than a Reset All Controllers as it also resets Bank Select MSB and LSB to zero as well as Program Change to 1 (or 00H if you prefer).
Resets Pitch Bend range to +/- 2 and so on and various other functions.
These are all laid out right near the start of the last section, before the Appendix, of the Complete MIDI spec., the Developer Guidelines.

So, a GM On, in effect, does a complete reset of everything in a MIDI sound module, as well as defining a standard sound set.

When playing back one SMF after another, it's a very useful way of resetting e.g. Channel Volume (after a fade), Pitch Bend back to +/- 2, Expression back to 127, etc. with just one command at the start of the file. But it's also important to note that it can take some devices more than 100ms to implement it.

So the GM On should be at the very start followed a good number of "ticks" later of the GM2 On / XG On / GS On as required.
The Meta Data can be included at the very start of the SMF but any Bank Selects and Program Change messages need to come later.

The two dozen pages of the Developer Guidelines really are and essential read (in my view) for anyone intending to be creative with MIDI files.

JohnG.
  • Page :
  • 1
  • 2
  • 3
  • 4
There are no replies made for this post yet.
Be one of the first to reply to this post!