VOGONS


Reply 1380 of 1394, by linedef-5

User metadata
Rank Newbie
Rank
Newbie

This is a great piece of software, thanks for your efforts. I have a couple questions:

1. What is the criteria you use for labeling a midi file GM, GS, XG, etc.? I have some midi files that use GS percussion (keys > #81 or < #35) but still show up as GM in the playlist. Is it because there's no way to tell if it's GS or XG percussion? It would be great if I could catch those files.

2. When I was troubleshooting something else and monitoring the midi output, I noticed FSMP sends a set of reset CC# messages plus a SysEx reset if one is selected. But the set of messages is different for each reset type (No SysEx, GM, GS, etc.). For example, sometimes a bank msb/lsb is sent, but other times they're not. What is the reasoning for the different reset messages?

Thank you!

Reply 1381 of 1394, by Falcosoft

User metadata
Rank Oldbie
Rank
Oldbie
linedef-5 wrote on 2022-09-24, 04:43:
This is a great piece of software, thanks for your efforts. I have a couple questions: […]
Show full quote

This is a great piece of software, thanks for your efforts. I have a couple questions:

1. What is the criteria you use for labeling a midi file GM, GS, XG, etc.? I have some midi files that use GS percussion (keys > #81 or < #35) but still show up as GM in the playlist. Is it because there's no way to tell if it's GS or XG percussion? It would be great if I could catch those files.

2. When I was troubleshooting something else and monitoring the midi output, I noticed FSMP sends a set of reset CC# messages plus a SysEx reset if one is selected. But the set of messages is different for each reset type (No SysEx, GM, GS, etc.). For example, sometimes a bank msb/lsb is sent, but other times they're not. What is the reasoning for the different reset messages?

Thank you!

Hi,
1. This is based solely on SysEx messages. More detailed info:
Re: Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi

2. Not exactly, the always sent controller messages are the same for GM/GM2/GS/XG. The main difference is the sent SxsEx message (GM On, GM2 On, GS Reset, XG Reset respectively). To ensure that even synths that do not support the selected Sysex reset type get a reasonable starting default , default instrument set, All Notes Off etc. messages are always sent. (If you want to send only the selected SysEx messages you should use the Custom SysEx option and select GM_ON.syx, GS_ON.syx etc.)

The No SysEx option is somewhat different, it sends some more non-SysEx messages for synths that do not support SysEx resets at all.
It's mainly for Creative cards, FM Synths etc. E.g. SB Live! does not support GM/GS Resets but supports banks so default Bank controllers are sent.

It's true for all reset options that the overall sent Controller and Note off messages can vary depending on the current state of the synth.
If a previously played Midi modified e.g. controllers 64, 91,93 then default values for these controllers are also sent.
If a played Midi sent some Note On messages without corresponding Note Offs then missing Note Offs are also sent.

Website, Facebook, Youtube
Falcosoft Midi Player + Munt VSTi + BassMidi VSTi topic

Reply 1382 of 1394, by linedef-5

User metadata
Rank Newbie
Rank
Newbie
Falcosoft wrote on 2022-09-24, 06:22:
Hi, 1. This is based solely on SysEx messages. More detailed info: Re: Falcosoft Soundfont Midi Player + Munt VSTi + BassMi […]
Show full quote
linedef-5 wrote on 2022-09-24, 04:43:
This is a great piece of software, thanks for your efforts. I have a couple questions: […]
Show full quote

This is a great piece of software, thanks for your efforts. I have a couple questions:

1. What is the criteria you use for labeling a midi file GM, GS, XG, etc.? I have some midi files that use GS percussion (keys > #81 or < #35) but still show up as GM in the playlist. Is it because there's no way to tell if it's GS or XG percussion? It would be great if I could catch those files.

2. When I was troubleshooting something else and monitoring the midi output, I noticed FSMP sends a set of reset CC# messages plus a SysEx reset if one is selected. But the set of messages is different for each reset type (No SysEx, GM, GS, etc.). For example, sometimes a bank msb/lsb is sent, but other times they're not. What is the reasoning for the different reset messages?

Thank you!

Hi,
1. This is based solely on SysEx messages. More detailed info:
Re: Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi

2. Not exactly, the always sent controller messages are the same for GM/GM2/GS/XG. The main difference is the sent SxsEx message (GM On, GM2 On, GS Reset, XG Reset respectively). To ensure that even synths that do not support the selected Sysex reset type get a reasonable starting default , default instrument set, All Notes Off etc. messages are always sent. (If you want to send only the selected SysEx messages you should use the Custom SysEx option and select GM_ON.syx, GS_ON.syx etc.)

The No SysEx option is somewhat different, it sends some more non-SysEx messages for synths that do not support SysEx resets at all.
It's mainly for Creative cards, FM Synths etc. E.g. SB Live! does not support GM/GS Resets but supports banks so default Bank controllers are sent.

It's true for all reset options that the overall sent Controller and Note off messages can vary depending on the current state of the synth.
If a previously played Midi modified e.g. controllers 64, 91,93 then default values for these controllers are also sent.
If a played Midi sent some Note On messages without corresponding Note Offs then missing Note Offs are also sent.

This is perfect, thank you for the detailed response. Here is what I noticed:

  • "No Sysex" sends Bank MSB and LSB
  • "GM2" and "NX" send Bank MSB only
  • "GM", "GS", and "XG" don't send either message

Why do GM2 and NX send Bank MSB? Also, is there anything wrong with sending Bank MSB and LSB for everything? I may leave it on "No Sysex" for convenience, so I was curious about the difference.

Edit: Here is a MIDI-OX capture

Spoiler

No SysEx:
B0 00 00 1 --- CC: Bank MSB
B0 20 00 1 --- CC: Bank LSB

GM:
SYSX: F0 7E 7F 09 01 F7 (GM System On)

GS:
SYSX: F0 41 10 42 12 40 00 7F 00 41 F7 (GS Reset)

XG:
SYSX: F0 43 10 4C 00 00 7E 00 F7 (XG System On)

GM2:
SYSX: F0 7E 7F 09 03 F7 (GM2 System On)
B0 00 00 1 --- CC: Bank MSB

NX:
SYSX: F0 50 2C 20 7E 1F 00 00 7F 00 F7 (Technics Reset?)
B0 00 00 1 --- CC: Bank MSB

Common:
C0 00 -- 1 --- PC: Acc. Grand Piano
B0 79 00 1 --- CC: Reset Cntrl
B0 7B 00 1 --- CC: All Notes Off
B0 78 00 1 --- CC: All Sound Off
D0 00 -- 1 --- Channel Aft (already done by Reset All Controllers?)
B0 0B 7F 1 --- CC: Expression (already done by Reset All Controllers?)
E0 00 40 1 --- Pitch Bend (already done by Reset All Controllers?)
B0 65 00 1 --- CC: RPN MSB
B0 64 00 1 --- CC: RPN LSB
B0 06 02 1 --- CC: Data Entry MSB

Reply 1383 of 1394, by Falcosoft

User metadata
Rank Oldbie
Rank
Oldbie
linedef-5 wrote on 2022-09-24, 09:25:
This is perfect, thank you for the detailed response. Here is what I noticed: […]
Show full quote

This is perfect, thank you for the detailed response. Here is what I noticed:

  • "No Sysex" sends Bank MSB and LSB
  • "GM2" and "NX" send Bank MSB only
  • "GM", "GS", and "XG" don't send either message

Why do GM2 and NX send Bank MSB? Also, is there anything wrong with sending Bank MSB and LSB for everything? I may leave it on "No Sysex" for convenience, so I was curious about the difference.

What version of Midi Player are you using? With latest version 6.1.1 GM2 and NX resets do not send Bank select messages at all:
Output of GM2 reset captured by MIDI-OX:

TIMESTAMP IN PORT STATUS DATA1 DATA2 CHAN NOTE EVENT
0004EBE0 2 6 F0 Buffer: 6 Bytes System Exclusive
SYSX: F0 7E 7F 09 03 F7
0004EC13 2 6 C0 00 -- 1 --- PC: Acc. Grand Piano
0004EC13 2 6 B0 79 00 1 --- CC: Reset Cntrl
0004EC14 2 6 B0 7B 00 1 --- CC: All Notes Off
0004EC14 2 6 B0 78 00 1 --- CC: All Sound Off
0004EC14 2 6 D0 00 -- 1 --- Channel Aft
0004EC14 2 6 B0 0B 7F 1 --- CC: Expression
0004EC14 2 6 E0 00 40 1 --- Pitch Bend
0004EC14 2 6 B0 65 00 1 --- CC: RPN MSB
0004EC15 2 6 B0 64 00 1 --- CC: RPN LSB
0004EC15 2 6 B0 06 02 1 --- CC: Data Entry MSB
0004EC17 2 6 C1 00 -- 2 --- PC: Acc. Grand Piano
0004EC17 2 6 B1 79 00 2 --- CC: Reset Cntrl
0004EC17 2 6 B1 7B 00 2 --- CC: All Notes Off
0004EC17 2 6 B1 78 00 2 --- CC: All Sound Off
0004EC17 2 6 D1 00 -- 2 --- Channel Aft
0004EC17 2 6 B1 0B 7F 2 --- CC: Expression
0004EC17 2 6 E1 00 40 2 --- Pitch Bend
0004EC18 2 6 B1 65 00 2 --- CC: RPN MSB
0004EC18 2 6 B1 64 00 2 --- CC: RPN LSB
0004EC18 2 6 B1 06 02 2 --- CC: Data Entry MSB
0004EC1A 2 6 C2 00 -- 3 --- PC: Acc. Grand Piano
0004EC1A 2 6 B2 79 00 3 --- CC: Reset Cntrl
0004EC1A 2 6 B2 7B 00 3 --- CC: All Notes Off
0004EC1A 2 6 B2 78 00 3 --- CC: All Sound Off
0004EC1A 2 6 D2 00 -- 3 --- Channel Aft
0004EC1A 2 6 B2 0B 7F 3 --- CC: Expression
0004EC1A 2 6 E2 00 40 3 --- Pitch Bend
0004EC1B 2 6 B2 65 00 3 --- CC: RPN MSB
0004EC1B 2 6 B2 64 00 3 --- CC: RPN LSB
0004EC1B 2 6 B2 06 02 3 --- CC: Data Entry MSB
0004EC1D 2 6 C3 00 -- 4 --- PC: Acc. Grand Piano
0004EC1D 2 6 B3 79 00 4 --- CC: Reset Cntrl
0004EC1D 2 6 B3 7B 00 4 --- CC: All Notes Off
0004EC1D 2 6 B3 78 00 4 --- CC: All Sound Off
0004EC1D 2 6 D3 00 -- 4 --- Channel Aft
0004EC1D 2 6 B3 0B 7F 4 --- CC: Expression
0004EC1D 2 6 E3 00 40 4 --- Pitch Bend
0004EC1E 2 6 B3 65 00 4 --- CC: RPN MSB
0004EC1E 2 6 B3 64 00 4 --- CC: RPN LSB
0004EC1E 2 6 B3 06 02 4 --- CC: Data Entry MSB
0004EC20 2 6 C4 00 -- 5 --- PC: Acc. Grand Piano
0004EC20 2 6 B4 79 00 5 --- CC: Reset Cntrl
0004EC20 2 6 B4 7B 00 5 --- CC: All Notes Off
0004EC20 2 6 B4 78 00 5 --- CC: All Sound Off
0004EC20 2 6 D4 00 -- 5 --- Channel Aft
0004EC20 2 6 B4 0B 7F 5 --- CC: Expression
0004EC20 2 6 E4 00 40 5 --- Pitch Bend
0004EC21 2 6 B4 65 00 5 --- CC: RPN MSB
0004EC21 2 6 B4 64 00 5 --- CC: RPN LSB
0004EC21 2 6 B4 06 02 5 --- CC: Data Entry MSB
0004EC23 2 6 C5 00 -- 6 --- PC: Acc. Grand Piano
0004EC23 2 6 B5 79 00 6 --- CC: Reset Cntrl
0004EC23 2 6 B5 7B 00 6 --- CC: All Notes Off
0004EC23 2 6 B5 78 00 6 --- CC: All Sound Off
0004EC23 2 6 D5 00 -- 6 --- Channel Aft
0004EC23 2 6 B5 0B 7F 6 --- CC: Expression
0004EC23 2 6 E5 00 40 6 --- Pitch Bend
0004EC24 2 6 B5 65 00 6 --- CC: RPN MSB
0004EC24 2 6 B5 64 00 6 --- CC: RPN LSB
0004EC24 2 6 B5 06 02 6 --- CC: Data Entry MSB
0004EC26 2 6 C6 00 -- 7 --- PC: Acc. Grand Piano
0004EC26 2 6 B6 79 00 7 --- CC: Reset Cntrl
0004EC26 2 6 B6 7B 00 7 --- CC: All Notes Off
0004EC26 2 6 B6 78 00 7 --- CC: All Sound Off
0004EC26 2 6 D6 00 -- 7 --- Channel Aft
0004EC26 2 6 B6 0B 7F 7 --- CC: Expression
0004EC27 2 6 E6 00 40 7 --- Pitch Bend
0004EC27 2 6 B6 65 00 7 --- CC: RPN MSB
0004EC27 2 6 B6 64 00 7 --- CC: RPN LSB
0004EC27 2 6 B6 06 02 7 --- CC: Data Entry MSB
0004EC29 2 6 C7 00 -- 8 --- PC: Acc. Grand Piano
0004EC29 2 6 B7 79 00 8 --- CC: Reset Cntrl
0004EC29 2 6 B7 7B 00 8 --- CC: All Notes Off
0004EC29 2 6 B7 78 00 8 --- CC: All Sound Off
0004EC29 2 6 D7 00 -- 8 --- Channel Aft
0004EC2A 2 6 B7 0B 7F 8 --- CC: Expression
0004EC2A 2 6 E7 00 40 8 --- Pitch Bend
0004EC2A 2 6 B7 65 00 8 --- CC: RPN MSB
0004EC2A 2 6 B7 64 00 8 --- CC: RPN LSB
0004EC2A 2 6 B7 06 02 8 --- CC: Data Entry MSB
0004EC2C 2 6 C8 00 -- 9 --- PC: Acc. Grand Piano
0004EC2C 2 6 B8 79 00 9 --- CC: Reset Cntrl
0004EC2C 2 6 B8 7B 00 9 --- CC: All Notes Off
0004EC2C 2 6 B8 78 00 9 --- CC: All Sound Off
0004EC2C 2 6 D8 00 -- 9 --- Channel Aft
0004EC2C 2 6 B8 0B 7F 9 --- CC: Expression
0004EC2C 2 6 E8 00 40 9 --- Pitch Bend
0004EC2C 2 6 B8 65 00 9 --- CC: RPN MSB
0004EC2D 2 6 B8 64 00 9 --- CC: RPN LSB
0004EC2D 2 6 B8 06 02 9 --- CC: Data Entry MSB
0004EC2F 2 6 C9 00 -- 10 --- PC: Drums
0004EC2F 2 6 B9 79 00 10 --- CC: Reset Cntrl
0004EC2F 2 6 B9 7B 00 10 --- CC: All Notes Off
0004EC2F 2 6 B9 78 00 10 --- CC: All Sound Off
0004EC2F 2 6 D9 00 -- 10 --- Channel Aft
0004EC2F 2 6 B9 0B 7F 10 --- CC: Expression
0004EC30 2 6 E9 00 40 10 --- Pitch Bend
0004EC30 2 6 B9 65 00 10 --- CC: RPN MSB
0004EC30 2 6 B9 64 00 10 --- CC: RPN LSB
0004EC30 2 6 B9 06 02 10 --- CC: Data Entry MSB
0004EC32 2 6 CA 00 -- 11 --- PC: Acc. Grand Piano
0004EC32 2 6 BA 79 00 11 --- CC: Reset Cntrl
0004EC32 2 6 BA 7B 00 11 --- CC: All Notes Off
0004EC32 2 6 BA 78 00 11 --- CC: All Sound Off
0004EC32 2 6 DA 00 -- 11 --- Channel Aft
0004EC33 2 6 BA 0B 7F 11 --- CC: Expression
0004EC33 2 6 EA 00 40 11 --- Pitch Bend
0004EC33 2 6 BA 65 00 11 --- CC: RPN MSB
0004EC33 2 6 BA 64 00 11 --- CC: RPN LSB
0004EC33 2 6 BA 06 02 11 --- CC: Data Entry MSB
0004EC36 2 6 CB 00 -- 12 --- PC: Acc. Grand Piano
0004EC36 2 6 BB 79 00 12 --- CC: Reset Cntrl
0004EC36 2 6 BB 7B 00 12 --- CC: All Notes Off
0004EC36 2 6 BB 78 00 12 --- CC: All Sound Off
0004EC36 2 6 DB 00 -- 12 --- Channel Aft
0004EC36 2 6 BB 0B 7F 12 --- CC: Expression
0004EC36 2 6 EB 00 40 12 --- Pitch Bend
0004EC36 2 6 BB 65 00 12 --- CC: RPN MSB
0004EC37 2 6 BB 64 00 12 --- CC: RPN LSB
0004EC37 2 6 BB 06 02 12 --- CC: Data Entry MSB
0004EC39 2 6 CC 00 -- 13 --- PC: Acc. Grand Piano
0004EC39 2 6 BC 79 00 13 --- CC: Reset Cntrl
0004EC39 2 6 BC 7B 00 13 --- CC: All Notes Off
0004EC39 2 6 BC 78 00 13 --- CC: All Sound Off
0004EC39 2 6 DC 00 -- 13 --- Channel Aft
0004EC39 2 6 BC 0B 7F 13 --- CC: Expression
0004EC3A 2 6 EC 00 40 13 --- Pitch Bend
0004EC3A 2 6 BC 65 00 13 --- CC: RPN MSB
0004EC3A 2 6 BC 64 00 13 --- CC: RPN LSB
0004EC3A 2 6 BC 06 02 13 --- CC: Data Entry MSB
0004EC3C 2 6 CD 00 -- 14 --- PC: Acc. Grand Piano
0004EC3C 2 6 BD 79 00 14 --- CC: Reset Cntrl
0004EC3C 2 6 BD 7B 00 14 --- CC: All Notes Off
0004EC3C 2 6 BD 78 00 14 --- CC: All Sound Off
0004EC3C 2 6 DD 00 -- 14 --- Channel Aft
0004EC3C 2 6 BD 0B 7F 14 --- CC: Expression
0004EC3C 2 6 ED 00 40 14 --- Pitch Bend
0004EC3D 2 6 BD 65 00 14 --- CC: RPN MSB
0004EC3D 2 6 BD 64 00 14 --- CC: RPN LSB
0004EC3D 2 6 BD 06 02 14 --- CC: Data Entry MSB
0004EC3F 2 6 CE 00 -- 15 --- PC: Acc. Grand Piano
0004EC3F 2 6 BE 79 00 15 --- CC: Reset Cntrl
0004EC3F 2 6 BE 7B 00 15 --- CC: All Notes Off
0004EC3F 2 6 BE 78 00 15 --- CC: All Sound Off
0004EC3F 2 6 DE 00 -- 15 --- Channel Aft
0004EC3F 2 6 BE 0B 7F 15 --- CC: Expression
0004EC40 2 6 EE 00 40 15 --- Pitch Bend
0004EC40 2 6 BE 65 00 15 --- CC: RPN MSB
0004EC40 2 6 BE 64 00 15 --- CC: RPN LSB
0004EC40 2 6 BE 06 02 15 --- CC: Data Entry MSB
0004EC42 2 6 CF 00 -- 16 --- PC: Acc. Grand Piano
0004EC42 2 6 BF 79 00 16 --- CC: Reset Cntrl
0004EC42 2 6 BF 7B 00 16 --- CC: All Notes Off
0004EC42 2 6 BF 78 00 16 --- CC: All Sound Off
0004EC43 2 6 DF 00 -- 16 --- Channel Aft
0004EC43 2 6 BF 0B 7F 16 --- CC: Expression
0004EC43 2 6 EF 00 40 16 --- Pitch Bend
0004EC43 2 6 BF 65 00 16 --- CC: RPN MSB
0004EC43 2 6 BF 64 00 16 --- CC: RPN LSB
0004EC43 2 6 BF 06 02 16 --- CC: Data Entry MSB

OutPut of NX Reset captured by MIDI-OX:

TIMESTAMP IN PORT STATUS DATA1 DATA2 CHAN NOTE EVENT
00066284 2 6 F0 Buffer: 11 Bytes System Exclusive
SYSX: F0 50 2C 20 7E 1F 00 00 7F 00 F7
000662E9 2 6 C0 00 -- 1 --- PC: Acc. Grand Piano
000662E9 2 6 B0 79 00 1 --- CC: Reset Cntrl
000662E9 2 6 B0 7B 00 1 --- CC: All Notes Off
000662E9 2 6 B0 78 00 1 --- CC: All Sound Off
000662EA 2 6 D0 00 -- 1 --- Channel Aft
000662EA 2 6 B0 0B 7F 1 --- CC: Expression
000662EA 2 6 E0 00 40 1 --- Pitch Bend
000662EA 2 6 B0 65 00 1 --- CC: RPN MSB
000662EA 2 6 B0 64 00 1 --- CC: RPN LSB
000662EB 2 6 B0 06 02 1 --- CC: Data Entry MSB
000662ED 2 6 C1 00 -- 2 --- PC: Acc. Grand Piano
000662ED 2 6 B1 79 00 2 --- CC: Reset Cntrl
000662ED 2 6 B1 7B 00 2 --- CC: All Notes Off
000662EE 2 6 B1 78 00 2 --- CC: All Sound Off
000662EE 2 6 D1 00 -- 2 --- Channel Aft
000662EE 2 6 B1 0B 7F 2 --- CC: Expression
000662EE 2 6 E1 00 40 2 --- Pitch Bend
000662EE 2 6 B1 65 00 2 --- CC: RPN MSB
000662EF 2 6 B1 64 00 2 --- CC: RPN LSB
000662EF 2 6 B1 06 02 2 --- CC: Data Entry MSB
000662F1 2 6 C2 00 -- 3 --- PC: Acc. Grand Piano
000662F1 2 6 B2 79 00 3 --- CC: Reset Cntrl
000662F1 2 6 B2 7B 00 3 --- CC: All Notes Off
000662F2 2 6 B2 78 00 3 --- CC: All Sound Off
000662F2 2 6 D2 00 -- 3 --- Channel Aft
000662F2 2 6 B2 0B 7F 3 --- CC: Expression
000662F2 2 6 E2 00 40 3 --- Pitch Bend
000662F2 2 6 B2 65 00 3 --- CC: RPN MSB
000662F3 2 6 B2 64 00 3 --- CC: RPN LSB
000662F3 2 6 B2 06 02 3 --- CC: Data Entry MSB
000662F5 2 6 C3 00 -- 4 --- PC: Acc. Grand Piano
000662F6 2 6 B3 79 00 4 --- CC: Reset Cntrl
000662F6 2 6 B3 7B 00 4 --- CC: All Notes Off
000662F6 2 6 B3 78 00 4 --- CC: All Sound Off
000662F7 2 6 D3 00 -- 4 --- Channel Aft
000662F7 2 6 B3 0B 7F 4 --- CC: Expression
000662F7 2 6 E3 00 40 4 --- Pitch Bend
000662F7 2 6 B3 65 00 4 --- CC: RPN MSB
000662F8 2 6 B3 64 00 4 --- CC: RPN LSB
000662F8 2 6 B3 06 02 4 --- CC: Data Entry MSB
000662FA 2 6 C4 00 -- 5 --- PC: Acc. Grand Piano
000662FA 2 6 B4 79 00 5 --- CC: Reset Cntrl
000662FA 2 6 B4 7B 00 5 --- CC: All Notes Off
000662FB 2 6 B4 78 00 5 --- CC: All Sound Off
000662FB 2 6 D4 00 -- 5 --- Channel Aft
000662FB 2 6 B4 0B 7F 5 --- CC: Expression
000662FB 2 6 E4 00 40 5 --- Pitch Bend
000662FC 2 6 B4 65 00 5 --- CC: RPN MSB
000662FC 2 6 B4 64 00 5 --- CC: RPN LSB
000662FC 2 6 B4 06 02 5 --- CC: Data Entry MSB
000662FE 2 6 C5 00 -- 6 --- PC: Acc. Grand Piano
000662FE 2 6 B5 79 00 6 --- CC: Reset Cntrl
000662FE 2 6 B5 7B 00 6 --- CC: All Notes Off
000662FF 2 6 B5 78 00 6 --- CC: All Sound Off
000662FF 2 6 D5 00 -- 6 --- Channel Aft
000662FF 2 6 B5 0B 7F 6 --- CC: Expression
00066300 2 6 E5 00 40 6 --- Pitch Bend
00066300 2 6 B5 65 00 6 --- CC: RPN MSB
00066300 2 6 B5 64 00 6 --- CC: RPN LSB
00066300 2 6 B5 06 02 6 --- CC: Data Entry MSB
00066302 2 6 C6 00 -- 7 --- PC: Acc. Grand Piano
00066302 2 6 B6 79 00 7 --- CC: Reset Cntrl
00066302 2 6 B6 7B 00 7 --- CC: All Notes Off
00066303 2 6 B6 78 00 7 --- CC: All Sound Off
00066303 2 6 D6 00 -- 7 --- Channel Aft
00066303 2 6 B6 0B 7F 7 --- CC: Expression
00066304 2 6 E6 00 40 7 --- Pitch Bend
00066306 2 6 B6 65 00 7 --- CC: RPN MSB
00066306 2 6 B6 64 00 7 --- CC: RPN LSB
00066307 2 6 B6 06 02 7 --- CC: Data Entry MSB
00066307 2 6 C7 00 -- 8 --- PC: Acc. Grand Piano
00066307 2 6 B7 79 00 8 --- CC: Reset Cntrl
00066308 2 6 B7 7B 00 8 --- CC: All Notes Off
00066308 2 6 B7 78 00 8 --- CC: All Sound Off
00066308 2 6 D7 00 -- 8 --- Channel Aft
00066308 2 6 B7 0B 7F 8 --- CC: Expression
00066308 2 6 E7 00 40 8 --- Pitch Bend
00066309 2 6 B7 65 00 8 --- CC: RPN MSB
00066309 2 6 B7 64 00 8 --- CC: RPN LSB
00066309 2 6 B7 06 02 8 --- CC: Data Entry MSB
0006630A 2 6 C8 00 -- 9 --- PC: Acc. Grand Piano
0006630A 2 6 B8 79 00 9 --- CC: Reset Cntrl
0006630A 2 6 B8 7B 00 9 --- CC: All Notes Off
0006630B 2 6 B8 78 00 9 --- CC: All Sound Off
0006630B 2 6 D8 00 -- 9 --- Channel Aft
0006630B 2 6 B8 0B 7F 9 --- CC: Expression
0006630C 2 6 E8 00 40 9 --- Pitch Bend
0006630C 2 6 B8 65 00 9 --- CC: RPN MSB
0006630C 2 6 B8 64 00 9 --- CC: RPN LSB
0006630C 2 6 B8 06 02 9 --- CC: Data Entry MSB
0006630F 2 6 C9 00 -- 10 --- PC: Drums
0006630F 2 6 B9 79 00 10 --- CC: Reset Cntrl
0006630F 2 6 B9 7B 00 10 --- CC: All Notes Off
00066310 2 6 B9 78 00 10 --- CC: All Sound Off
00066310 2 6 D9 00 -- 10 --- Channel Aft
00066310 2 6 B9 0B 7F 10 --- CC: Expression
00066311 2 6 E9 00 40 10 --- Pitch Bend
00066311 2 6 B9 65 00 10 --- CC: RPN MSB
00066311 2 6 B9 64 00 10 --- CC: RPN LSB
00066311 2 6 B9 06 02 10 --- CC: Data Entry MSB
00066313 2 6 CA 00 -- 11 --- PC: Acc. Grand Piano
00066313 2 6 BA 79 00 11 --- CC: Reset Cntrl
00066313 2 6 BA 7B 00 11 --- CC: All Notes Off
00066316 2 6 BA 78 00 11 --- CC: All Sound Off
00066316 2 6 DA 00 -- 11 --- Channel Aft
00066316 2 6 BA 0B 7F 11 --- CC: Expression
00066317 2 6 EA 00 40 11 --- Pitch Bend
00066317 2 6 BA 65 00 11 --- CC: RPN MSB
00066317 2 6 BA 64 00 11 --- CC: RPN LSB
00066317 2 6 BA 06 02 11 --- CC: Data Entry MSB
0006631A 2 6 CB 00 -- 12 --- PC: Acc. Grand Piano
0006631A 2 6 BB 79 00 12 --- CC: Reset Cntrl
0006631A 2 6 BB 7B 00 12 --- CC: All Notes Off
0006631A 2 6 BB 78 00 12 --- CC: All Sound Off
0006631A 2 6 DB 00 -- 12 --- Channel Aft
0006631A 2 6 BB 0B 7F 12 --- CC: Expression
0006631B 2 6 EB 00 40 12 --- Pitch Bend
0006631B 2 6 BB 65 00 12 --- CC: RPN MSB
0006631B 2 6 BB 64 00 12 --- CC: RPN LSB
0006631B 2 6 BB 06 02 12 --- CC: Data Entry MSB
0006631D 2 6 CC 00 -- 13 --- PC: Acc. Grand Piano
0006631D 2 6 BC 79 00 13 --- CC: Reset Cntrl
0006631D 2 6 BC 7B 00 13 --- CC: All Notes Off
0006631D 2 6 BC 78 00 13 --- CC: All Sound Off
0006631D 2 6 DC 00 -- 13 --- Channel Aft
0006631D 2 6 BC 0B 7F 13 --- CC: Expression
0006631D 2 6 EC 00 40 13 --- Pitch Bend
0006631E 2 6 BC 65 00 13 --- CC: RPN MSB
0006631E 2 6 BC 64 00 13 --- CC: RPN LSB
0006631E 2 6 BC 06 02 13 --- CC: Data Entry MSB
00066320 2 6 CD 00 -- 14 --- PC: Acc. Grand Piano
00066320 2 6 BD 79 00 14 --- CC: Reset Cntrl
00066320 2 6 BD 7B 00 14 --- CC: All Notes Off
00066320 2 6 BD 78 00 14 --- CC: All Sound Off
00066320 2 6 DD 00 -- 14 --- Channel Aft
00066320 2 6 BD 0B 7F 14 --- CC: Expression
00066321 2 6 ED 00 40 14 --- Pitch Bend
00066321 2 6 BD 65 00 14 --- CC: RPN MSB
00066321 2 6 BD 64 00 14 --- CC: RPN LSB
00066321 2 6 BD 06 02 14 --- CC: Data Entry MSB
00066323 2 6 CE 00 -- 15 --- PC: Acc. Grand Piano
00066323 2 6 BE 79 00 15 --- CC: Reset Cntrl
00066323 2 6 BE 7B 00 15 --- CC: All Notes Off
00066323 2 6 BE 78 00 15 --- CC: All Sound Off
00066323 2 6 DE 00 -- 15 --- Channel Aft
00066323 2 6 BE 0B 7F 15 --- CC: Expression
00066324 2 6 EE 00 40 15 --- Pitch Bend
00066324 2 6 BE 65 00 15 --- CC: RPN MSB
00066324 2 6 BE 64 00 15 --- CC: RPN LSB
00066324 2 6 BE 06 02 15 --- CC: Data Entry MSB
00066326 2 6 CF 00 -- 16 --- PC: Acc. Grand Piano
00066326 2 6 BF 79 00 16 --- CC: Reset Cntrl
00066326 2 6 BF 7B 00 16 --- CC: All Notes Off
00066326 2 6 BF 78 00 16 --- CC: All Sound Off
00066326 2 6 DF 00 -- 16 --- Channel Aft
00066327 2 6 BF 0B 7F 16 --- CC: Expression
00066327 2 6 EF 00 40 16 --- Pitch Bend
00066327 2 6 BF 65 00 16 --- CC: RPN MSB
00066327 2 6 BF 64 00 16 --- CC: RPN LSB
00066327 2 6 BF 06 02 16 --- CC: Data Entry MSB

Also, is there anything wrong with sending Bank MSB and LSB for everything?

Yes, sending default bank select messages (0) can cause problems in case of GM2/NX and sometimes even in case of XG.
In case of GM2 the default bank MSB for melodic channels is 121 and for drum channels is 120. So by default channel 10's bank MSB is set to 120 and other channel's bank MSB to 121 by a GM2 reset. So sending bank 0 to all channels results in no drums on channel 10. But even sending bank MSB 120 to all melodic channels can cause problems. E.g. in case of Bassmidi (that only partly emulates GM2) sending bank MSB 120 means that Bank 120 from the loaded soundfont will be used instead of the capital tones (bank 0). So this behavior is implementation specific. It's best to leave it to the synth engine what bank defaults it uses for different channels in case of a GM2 reset and not to send explicit bank select values.
The same is true for NX that uses Bank MSB 38 for drum channel and Bank MSB 32 to instrument channels by default.
XG uses Bank MSB 127 for drum channels so channel 10's bank MSB should be set to 127 on a reset. But some XG implementations handle channel 10 as a drum channel even if Bank MSB is set to 0. But not all.

D0 00 -- 1 --- Channel Aft (already done by Reset All Controllers?)
B0 0B 7F 1 --- CC: Expression (already done by Reset All Controllers?)
E0 00 40 1 --- Pitch Bend (already done by Reset All Controllers?)

What Reset All Controllers message does is implementation specific and some synths do not support this message at all.

Website, Facebook, Youtube
Falcosoft Midi Player + Munt VSTi + BassMidi VSTi topic

Reply 1384 of 1394, by linedef-5

User metadata
Rank Newbie
Rank
Newbie
Falcosoft wrote on 2022-09-24, 17:07:

What version of Midi Player are you using? With latest version 6.1.1 GM2 and NX resets do not send Bank select messages at all:

I'm using 6.1.1 64-bit. I figured out what's causing it though. I had the CTF option enabled and the extra bank message doesn't occur with it disabled.

Reply 1385 of 1394, by Falcosoft

User metadata
Rank Oldbie
Rank
Oldbie
linedef-5 wrote on 2022-09-24, 17:28:
Falcosoft wrote on 2022-09-24, 17:07:

What version of Midi Player are you using? With latest version 6.1.1 GM2 and NX resets do not send Bank select messages at all:

I'm using 6.1.1 64-bit. I figured out what's causing it though. I had the CTF option enabled and the extra bank message doesn't occur with it disabled.

If you use CTF then you should also select an instrument definition that corresponds the given mode otherwise the the default bank MSB/LSB can be invalid for the given instrument definition and will be corrected by the CTF mechanism. E.g. Bank MSB 120 is invalid in case of a Roland GS instrument definition. Select the GM1_GM2.ins and General Midi Level 2 Melodic & Drum instrument definition for both Drum and Melodic channels if you want to use GM2 Midis/GM2 mode with a GM2 compatible synth.

Website, Facebook, Youtube
Falcosoft Midi Player + Munt VSTi + BassMidi VSTi topic

Reply 1387 of 1394, by linedef-5

User metadata
Rank Newbie
Rank
Newbie

Falcosoft, I have a feature request: please add "Reset" to the system tray context menu. This would be very convenient for poorly behaved programs. No need to restore the window, press reset, then minimize to tray.

Also, pitch bend sensitivity isn't set to default on play/next/prev when using the GM/GS/etc. reset options. Stop and reset are fine. The Windows softsynth doesn't set it back to default. I'm not sure if there are other synths with this behavior. Attached are two test files. They should sound different when played back to back. If they sound the same, pitch bend sensitivity isn't being reset. It might be worth checking what happens with the other RPN messages as well. I haven't tested those.

Attachments

Reply 1388 of 1394, by Falcosoft

User metadata
Rank Oldbie
Rank
Oldbie
linedef-5 wrote on 2022-09-25, 20:52:

Falcosoft, I have a feature request: please add "Reset" to the system tray context menu. This would be very convenient for poorly behaved programs. No need to restore the window, press reset, then minimize to tray.

Also, pitch bend sensitivity isn't set to default on play/next/prev when using the GM/GS/etc. reset options. Stop and reset are fine. The Windows softsynth doesn't set it back to default. I'm not sure if there are other synths with this behavior. Attached are two test files. They should sound different when played back to back. If they sound the same, pitch bend sensitivity isn't being reset. It might be worth checking what happens with the other RPN messages as well. I haven't tested those.

Hi,
1. OK, here is a new test version for you to try:
https://falcosoft.hu/midiplayer_62_test.zip
Reset function has been added to system tray context menu and Pitch Bend range RPN has been added to Next, Prev reset sequence.

2. This is a bug in MS GS soft synth (not the only one). None of the other synths I have tested works this way. If a synth knows GM/GS resets (MS GS soft synth does know them) then it has to reset all parameters to GM/GS defaults. Pitch Bend range +2/-2 semitones is GM/GS default. MS GS soft synth wants to emulate the Roland SC-55 that resets all its parameters properly. Maybe other RPNs/NRPNs have the same problem as you suggested but I do not think Midi Player has to correct all errors that MS should correct (Its used NRPNs are not documented publicly anyway). Using MS GS soft synth is not the best choice anyway. There is no such aspect/feature of MS GS soft synth that alternatives cannot do better.

Website, Facebook, Youtube
Falcosoft Midi Player + Munt VSTi + BassMidi VSTi topic

Reply 1389 of 1394, by linedef-5

User metadata
Rank Newbie
Rank
Newbie
Falcosoft wrote on 2022-09-26, 14:54:
Hi, 1. OK, here is a new test version for you to try: https://falcosoft.hu/midiplayer_62_test.zip Reset function has been added […]
Show full quote

Hi,
1. OK, here is a new test version for you to try:
https://falcosoft.hu/midiplayer_62_test.zip
Reset function has been added to system tray context menu and Pitch Bend range RPN has been added to Next, Prev reset sequence.

2. This is a bug in MS GS soft synth (not the only one). None of the other synths I have tested works this way. If a synth knows GM/GS resets (MS GS soft synth does know them) then it has to reset all parameters to GM/GS defaults. Pitch Bend range +2/-2 semitones is GM/GS default. MS GS soft synth wants to emulate the Roland SC-55 that resets all its parameters properly. Maybe other RPNs/NRPNs have the same problem as you suggested but I do not think Midi Player has to correct all errors that MS should correct (Its used NRPNs are not documented publicly anyway). Using MS GS soft synth is not the best choice anyway. There is no such aspect/feature of MS GS soft synth that alternatives cannot do better.

1. It works perfectly, thank you!

2. "(not the only one)." I'm curious now, what other bugs have you noticed? While not a bug, the lack of reverb and chorus is definitely a big issue. Btw, I tested a few more RPNs. Both coarse/fine tuning and modulation depth range are reset correctly by MS GS synth. So there's no need to worry about those at least. I don't think this synth is the best choice either, but unfortunately I have no control over what another person is using to play music.

Reply 1390 of 1394, by Falcosoft

User metadata
Rank Oldbie
Rank
Oldbie
linedef-5 wrote on 2022-09-26, 16:51:

2. "(not the only one)." I'm curious now, what other bugs have you noticed?

To be fair MS Soft Synth worked fairly well on Win 9x/Win XP. GM and GS mode were almost perfect and the synth did not react to XG reset SysEx at all.
But since Vista they messed up GS mode with a non-working capital tone fallback (in case of invalid Bank + Program combination you hear nothing) and they implemented a non-working XG mode (you lose channel 10 drum channel).
I reported these bugs to MS first in 2007 and then in 2010 but no reaction or fixes since then.
https://social.msdn.microsoft.com/Forums/wind … udiodevelopment

Website, Facebook, Youtube
Falcosoft Midi Player + Munt VSTi + BassMidi VSTi topic

Reply 1392 of 1394, by Falcosoft

User metadata
Rank Oldbie
Rank
Oldbie
sofakng wrote on 2022-10-06, 17:00:

Falcosoft, are you planning to update the Munt VSTi plugin to Munt v2.7.0 ?

Thanks!

Hi,
Usually I only release a new version of Munt VSTi when a new FSMP version is also ready to be released. The only exception from this rule when really important fixes/features are included in a new version of mt32emu library.
I have just checked and have not noticed such fixes/features. The only notable feature that could influence Munt VSTi is the addition of MT-32 control ROM v.2.03 support.
Do you want to use this ROM version with Munt VSTi?

Website, Facebook, Youtube
Falcosoft Midi Player + Munt VSTi + BassMidi VSTi topic

Reply 1393 of 1394, by sofakng

User metadata
Rank Member
Rank
Member

Ahhh, OK. Thanks for the information.

No, I don't need to use that ROM version.

To be honest, I'm in the process of tearing down my MIDI boxes (MT-32, SC55mk2, RetroWave OPL3) and switching to software solutions. (I'm tired of troubleshooting ground loops, noise issues, etc)

Anyways -- Do you have a donation address/e-mail I can send a few dollars to? I have a feeling I'll be asking a few questions in the future 😀

EDIT: Here's a question (haha) ... Can FSMP output to a dedicated secondary screen? I know I can connect an HDMI monitor but it would be neat if it can output over serial/USB to a special display, etc.

Reply 1394 of 1394, by Falcosoft

User metadata
Rank Oldbie
Rank
Oldbie
sofakng wrote on 2022-10-06, 18:11:

EDIT: Here's a question (haha) ... Can FSMP output to a dedicated secondary screen? I know I can connect an HDMI monitor but it would be neat if it can output over serial/USB to a special display, etc.

I do not fully undersatand your question. Output what? Midi or rendered audio?
BTW FSMP can output Midi signal to any Midi Out ports and rendered audio to any Wave Out devices. That's all.

Website, Facebook, Youtube
Falcosoft Midi Player + Munt VSTi + BassMidi VSTi topic