fluid-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [fluid-dev] MIDI Bank Select Test result


From: Pedro Lopez-Cabanillas
Subject: Re: [fluid-dev] MIDI Bank Select Test result
Date: Mon, 16 Aug 2010 14:31:14 +0200
User-agent: KMail/1.9.6 (enterprise 20070904.708012)

On Monday, August 16, 2010, Bernd Casper wrote:
> Hello Pedro,
> many thanks for your essential efforts into bank select mechanisms.
>
> I've tested the bank select mechanism in a jOrgan real-time scenario.
> I understood GS mode supports 128 banks numbered 0-127, each with 128
> patches numbered 0-127. I understood I've nothing to do with the
> "midi.bank-select" switch, when I want to use GS mode for default. The est
> soundfonts contained bank 0 patch 0 and 1, and bank 7 patch 6 and 7.
>
> According to your proposal I used the following message matrix for the
> default (GS) bank select ("CC32 is ignored"): CC00 = bank number (decimal,
> like numbering in the soundfonts)
> CC192 = patch number (decimal, like numbering in the soundfonts)
>
> Thus, my message sequences were:
>
> For bank 0 patches 0 and 1 select:
> CC00=0 | CC192=0
> CC00=0 | CC192=1
>
> For bank 7 patches 6 and 7 select:
> CC00=7 | CC192=6
> CC00=7 | CC192=7
>
> Selecting bank 0 patches worked correctly, selecting bank 7 patches gave
> the following error messages: fluidsynth: warning: Instrument not found on
> channel 0 [bank=896 prog=6], substituted [bank=0 prog=0] fluidsynth:
> warning: Instrument not found on channel 0 [bank=896 prog=7], substituted
> [bank=0 prog=0]
>
> What I'm doing wrong?
>
> Regards
> Bernd.

CC192 is a mistake. There is no CC192 in standard MIDI.

CC means a "Control Change" MIDI message, a 3 bytes message. The first byte is  
the status byte, with values from hex 0xB0 for channel 1 (176 dec) to 0xBF 
for channel 16 (191 dec). The second byte is the control number, 00 for bank 
select MSB, and the third byte is the actual control value, the bank number 
from 0 to 127 dec. http://home.roadrunner.com/~jgglatt/tech/midispec/ctl.htm

The "Program Change" (PC) MIDI message is a 2 bytes message. The first byte is 
the status byte, with values from hex 0xC0 for channel 1 (192 dec) thru 0xCF 
for channel 16 (207 hex). The second byte is the patch number from 0 to 127 
dec. http://home.roadrunner.com/~jgglatt/tech/midispec/pgm.htm

So, for bank 7 patches 6 and 7, in GS mode the messages would be:
CC0=7 followed by PC=6
CC0=7 followed by PC=7

The first message sequence for channel 1, in bytes:
Hex: B0 00 07 C0 06
Dec: 176 0 7 192 6

OTOH. The message "fluidsynth: warning: Instrument not found on channel 0 
[bank=896 prog=6]" means that you are not testing the last SVN version, 
because there is currently no way to send a bank=896 to fluidsynth in the new 
default GS mode.

Hope this helps.

Regards,
Pedro



reply via email to

[Prev in Thread] Current Thread [Next in Thread]