General MIDI v2 Support (CASIO PX-360M)

Have questions? Just saying hello? This is the place.
No explicit, hateful, or hurtful language. Nothing illegal.
Post Reply
pcm
Posts: 4

Post by pcm »

I have a problem with CASIO PX-360M used as output MIDI device. As it is GM2 piano, it wants bank select command to choose percussion.
If I select percussion channel (9) in the Syntesia options - all sounds ok, I hear percussion. But when I play any melody - percussion and metronome played as piano.

I have MIDI channels map attached. Can you help configure Synthesia to use my piano?
CASIO MIDI.png
CASIO MIDI.png (40.92 KiB) Viewed 2520 times
Nicholas
Posts: 13132

Post by Nicholas »

pcm wrote: 09-07-21 4:01 pmIf I select percussion channel (9) in the Syntesia options - all sounds ok, I hear percussion.
Which option are you using to select channel 9 percussion? Using channel 10 for percussion is hard-coded (in a few dozen places) in Synthesia.

Looking at the manual (PDF link), I'm wondering if they're using "percussion" and "drums" to mean different things. Channel 10 is showing as "drums" and the list on page A-6 shows the usual list of non-melodic sounds that everyone else calls "percussion" (like the 3rd table at the bottom of the official page).

Maybe their "channel 9 percussion" is for things like timpani, which use the whole key range for one voice instead of a different sound on each key?

Regarding bank select, Synthesia doesn't know much about them and filters them out (from being sent by songs) by default (because they have a tendency to cause trouble on non-bank-select aware digital pianos). If you have song files that contain bank select messages, you can toggle them back on from Settings --> Advanced --> Bank Select Messages.
pcm
Posts: 4

Post by pcm »

Nicholas wrote: 09-08-21 10:09 amWhich option are you using to select channel 9 percussion? Using channel 10 for percussion is hard-coded (in a few dozen places) in Synthesia.
Sorry, I'm selected channel 8.

Steps to reproduce:
  1. Start Synthesia
  2. In the menu "Settings / Advanced / MIDI Data" turn off options "Instrument Change Messages" and "Bank Select Messages"
  3. Close Synthesia
  4. Turn on piano with USB cable detached
  5. In the menu "MIDI / MIDI in port" select "A"
  6. Press "Grand piano" key (to set all channels to default state
  7. Connect USB cable and Start Synthesia
  8. Go to menu "Settings / Music Devices / Music Output / CASIO USB-MIDI"
  9. Select channel 8 or 10 in the "MIDI Channel" option
  10. Press "Test"
In that case I hear percussion, the same on both channels 8 and 10. On channels 1-4 I hear instruments that I select on the piano menu as "Upper 1", "Upper 2", "Lower 1", "Lower 2". On all other channels I hear GM piano. If I select melody to play - all instruments sounds messed up. Some play strings instead of piano, some piano instead of voices, but percussions played correctly.

If then I turn on options "Instrument Change Messages" and "Bank Select Messages", all channels will play GM Piano (in test). But when I select some melody to play, all instruments played correctly instead of Percussion and Metronome - both sounds as GM piano.
Nicholas
Posts: 13132

Post by Nicholas »

Thanks for the detailed explanation. That was very clear.

If you try the following, does it change any of the behavior you described? (This assumes the PC or Mac version of Synthesia.)

1. Hold your Shift key while launching the app to show the configuration window.
2. Find the "Midi.Reset.Gm2Reset" option in the list.
3. Add a check to the Value box.
4. Close the configuration window.

That will add a full "GM2 Reset" SysEx message to the list of things Synthesia sends out (roughly) between each screen. I'm wondering if that will change the behavior of channel 8.

I suppose I haven't asked: I'm guessing the end goal is to have things sound correct regardless of the under-the-hood channel details, correct? That is, if we can get your keyboard to consistently play percussion on channel 10 (like every other digital piano) and melodic voices on channel 8 (also like other models), you would call that a solution? Or did you want to use channel 8 for percussion?

Please let me know what you find out after the above experiment. Thanks!
pcm
Posts: 4

Post by pcm »

Nicholas wrote: 09-09-21 10:23 amIf you try the following, does it change any of the behavior you described? (This assumes the PC or Mac version of Synthesia.)

1. Hold your Shift key while launching the app to show the configuration window.
2. Find the "Midi.Reset.Gm2Reset" option in the list.
3. Add a check to the Value box.
4. Close the configuration window.
Thank's, Nicholas, this solves the problem.
I'm using PC version. I turned back on "Instrument Change Messages" and "Bank Select Messages", turned on "Midi.Reset.Gm2Reset".
On "Settings / Music Devices / Music Output / CASIO USB-MIDI" channel 10 sounds correct - percussion, all other sounds as GM Piano.
Then I selected "All channels" and in songs all instruments now played correct.
Nicholas wrote: 09-09-21 10:23 amI suppose I haven't asked: I'm guessing the end goal is to have things sound correct regardless of the under-the-hood channel details, correct? That is, if we can get your keyboard to consistently play percussion on channel 10 (like every other digital piano) and melodic voices on channel 8 (also like other models), you would call that a solution? Or did you want to use channel 8 for percussion?
Definitely what I wanted. Just to get all sounds correct from different songs (embedded and added).

Thank you for help!
Nicholas
Posts: 13132

Post by Nicholas »

That's for the follow-up. That's good to hear it got everything to behave "normally".

I'm guessing the default settings for all those channels listed in that first image you attached is something proprietary to Casio. But upon receiving a GM2 Reset, the keyboard is forced to be well-behaved because it knows the MIDI messages it's about to receive will be expecting the usual channel configuration (ch.10 percussion, etc.).
Bavi_H
Posts: 115

Post by Bavi_H »

I realize the issue is already solved, but I just wanted to add for this piano, I think you could have also used Synthesia's Midi.Reset.GmReset setting instead.

FYI: The Casio PX-360M manual does shows instrument sounds can be selected using bank MSB numbers and program change numbers, but they're not the standard GM2 assignments. In fact, the manual mentions "This Digital Piano confirms to General MIDI Level 1 (GM)" -- but doesn't mention GM2. And the Casio PX-360M MIDI Implementation document mentions that the GM2 reset message behaves like a GM reset message on this piano.

(When I read this yesterday, I was thinking of suggesting turning on the Midi.Reset.GmReset option, but I thought that setting might already be on by default in Synthesia. And the Casio PX-360M MIDI Implementation document doesn't specifically detail what the GM Reset message does on this piano, so I wasn't sure if it would reset correctly.)
pcm
Posts: 4

Post by pcm »

Nicholas wrote: 09-09-21 11:05 pmThat's for the follow-up. That's good to hear it got everything to behave "normally".

I'm guessing the default settings for all those channels listed in that first image you attached is something proprietary to Casio. But upon receiving a GM2 Reset, the keyboard is forced to be well-behaved because it knows the MIDI messages it's about to receive will be expecting the usual channel configuration (ch.10 percussion, etc.).
Yes. This piano has 3 MIDI in presets ("ports") A, B and C. I provided the table for A as it looks most suitable for Synthesia. Default port is C, it is selected every time piano boots up. But with GM Reset options enabled Synthesia works correct regardless of selected port. Below you can see B and C tables.
CASIO MIDI B.png
CASIO MIDI B.png (41.28 KiB) Viewed 2466 times
CASIO MIDI C.png
CASIO MIDI C.png (67.71 KiB) Viewed 2466 times
Bavi_H wrote: 09-10-21 12:37 amI realize the issue is already solved, but I just wanted to add for this piano, I think you could have also used Synthesia's Midi.Reset.GmReset setting instead.
Thank's for suggestion. I'm tested Midi.Reset.GmReset (selected it and deselected Midi.Reset.Gm2Reset). In this case piano behave the same, so I think for this model any of this two options will work.
Post Reply