--- On Thu, 2/10/11, "Pedro Lopez-Cabanillas" <pedro.lopez.cabanil...@gmail.com> wrote:
> > So bank numbers above 128 usually make no sense, which > is why MSB is > > ignored for XG (and why MMA style is not the > default...). We're kind of > > stuck between sf2's standard and XG's standard, and > need to figure out > > how to mediate between them. > > Agreed. This issue has been already posted and discussed in > this list, so here are some relevant excerpts and pointers. > The SoundFont2 PHDR sub-chunk has this header structure: > > struct sfPresetHeader > { > CHAR achPresetName[20]; > WORD wPreset; > WORD wBank; > WORD wPresetBagNdx; > DWORD dwLibrary; > DWORD dwGenre; > DWORD dwMorphology; > }; > > Where wBank is a 16bit field, like wPreset. But the > specification states the > range from 0 thru 127 for both the wBank and wPreset. > Document "sfspec21.pdf", page 27: > > "The WORD wPreset contains the MIDI Preset Number and the > WORD wBank contains > the MIDI Bank Number which apply to this preset. Note that > the presets are > not ordered within the SoundFont compatible bank. Presets > should have a > unique set of wPreset and wBank numbers. However, if two > presets have > identical values of both wPreset and wBank, the first > occurring preset in the > PHDR chunk is the active preset, but any others with the > same wBank and > wPreset values should be maintained so that they can be > renumbered and used > at a later time. The special case of a General MIDI > percussion bank is > handled conventionally by a wBank value of 128. If the > value in either field > is not a valid MIDI value of zero through 127, or 128 for > wBank, the preset > cannot be played but should be maintained." > > http://connect.creativelabs.com/developer/SoundFont/Forms/AllItems.aspx > > Regards, > Pedro > For soundfont bank number, what's wrong with creating some virtual sound bank look up scheme beyond 128, somehow, eventually, in XG mode, or Fluidsynth enhanced mode? Remembering MSB is the first step anyhow. Just because GM say channel 10 is drum doesn't mean it should be the only one. Or, that there are 128 banks in GM, doesn't mean we can't have, or use more than 128. Same goes for soundfont specs. Aim high, don't go for the bare minimum. Try to browse through various Cakewalk .ins instrument defintion files, or calculation formulae for Yamaha instrument banks. They use that to talk to those devices bi-directionally (record and/or playback), I think. They make use of the bank change MSB's, not throw them away. I am not a Cakewalk user, only glancing through bits of info. Rosegarden also use some instrument description file to talk to specific midi devices. With Timidity configuration file, one can use a virtual bank mapping to select a specific bank in one soundfont to override another bank in a different soundfont. How about Fluidsynth uses a configuration file to map some chunk of 128-LSB-bank-set to one of the MSB number? In other word, using multiple GM-soundfonts files, each would have a separate MSB number. What's wrong with that? Nothing. If anything, it opens up a whole new world of MSB to us. Jimmy _______________________________________________ fluid-dev mailing list fluid-dev@nongnu.org http://lists.nongnu.org/mailman/listinfo/fluid-dev