fluid-dev
[Top][All Lists]
Advanced

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

Re: [fluid-dev] Soundfont banks


From: jimmy
Subject: Re: [fluid-dev] Soundfont banks
Date: Thu, 12 Jul 2012 10:04:41 -0700 (PDT)


--- On Wed, 7/11/12, David Henningsson <address@hidden> wrote:

> The XG spec is the easy one to find:
> 
> http://web.archive.org/web/20060926124939/http://www.yamaha.co.uk/xg/reading/pdf/xg_spec.pdf

I believe I have read that document before.  It's some 20, or 30 years old 
guideline.  Later, Yamaha had some XG-Lite labeling on lower-priced keyboards 
and sound modules, which is less than the XG label on higher priced arranger 
keyboards.

I mentioned much of what I knew relating to XG before on this mailing list.  
Anyway, let me share a more up-to-date items and my views on XG and GM again 
here.

Compare that XG-spec to the CC0/CC32 tables for numerous Yamaha arranger 
keyboards since the date of that old XG-specs, there have been many 
improvements "well beyond" what was mentioned in that XG-spec document.

Synth and workstation keyboards are geared toward instrument voice-tweaking, 
for both live performance as well as studio recording.  Arranger keyboards are 
geared toward one-man-band players in live performance, arranger keyboards have 
much better MIDI related soundbanks pre-assembled.  Here's a place to look for 
Yamaha arranger keyboard manuals:

   http://www.yamaha.co.jp/manual/english/
   
Top-of-the-line arrangers are the Tyros series:

   Tyros, Tyros2, Tyros3, Tyros4
   
Currently, right below that price range would be the PSR-S series:

   PSR-S900, PSR-S910

Older generation higher-end keyboards prior to the Tyros and PSR-S series 
include:

   PSR-9000, PSR-8000, PSR-2000, PSR-3000, PSR-4000, PSR-5000, PSR-6000, 
PSR-7000...
   
There are even more similar models in those numbering range, which are slight 
enhancements to those base series.

I mention those, so those who are interested can get the manuals, go to the 
appendix section and look up the soundbank mapping with the CC0/CC32 numbers.  
Even down to individual instrument for normal instrument sound, or drum note 
mappings.

Those who want to look at some XG-MIDI files, one zip-archive of a few dozen 
files is here:

   psrtutorial.com/songs/Yamaha/XGCurrent.zip
   
Not all of them use multiple drum channels, I din't look through all of them, 
but here are a few within this archive which use 2 drum channels:

   YamahaCurrent/Dance/Lost YME '97.mid
   YamahaCurrent/Dance/Ambient by Sam Sketty YME '96.mid
   YamahaCurrent/Dance/Matrix YME '97.mid
   YamahaCurrent/Dance/Cop Out by Sam Sketty YME '96.mid
   YamahaCurrent/Dance/Space Cat by Sam Sketty YME '96.mid
   YamahaCurrent/Dance/Galactic Invasion by David Reading YME '96.mid
   YamahaCurrent/SmoothJazz/Low Down by Sam Sektty YME '97.mid
   YamahaCurrent/SmoothJazz/Steely by David Kelly YME '96.mid
   YamahaCurrent/SmoothJazz/Animate1 Yamaha '96.mid
   YamahaCurrent/Latin/Farolillo Yamaha '96.mid

I believe this one setup drums on 3 different channels:

   YamahaCurrent/Dance/JazzJung Yamaha '96.mid

Make sure you run FluidSynth in XG mode with:

    -o synth.midi-bank-select=xg

Note that some of those FluidSynth console messages may refer to various 
soundbank numbers that could not be found.  Beware that those soundbank numbers 
might not be acurrate, because FluidSynth currently ignore CC0 (MSB) portion of 
the soundbank number, particularly in XG mode.  With my patch, the reported 
numbers would be the accurate soundbank numbers, which will help in working on 
a more accurate soundbank mapping strategies.

I don't consider any of those XG-MIDI files being in contradiction to the GM 
specs at all.  If anything, they are some examples of how one may interpret the 
GM specs.

As such, I would recommend folks who don't have the official GM, and GM2 specs 
to take a peek at the Tyros and PSR-S900 manuals for some examples of soundbank 
mapping using CC0/CC32 numbering.

Might as well, inspecting some of the multiple drum-channel usages in the 
XG-MIDI files for some understanding of the GM2 "suggesting" 2 drum channels 
being explicitly mentioned in GM2 specs.  Again, in my opinion, using multiple 
drum channels is in no way violating the original GM specs at all.  Only the 
narrowest-minded people would stick to the explicit "channel 9 for drum" as 
"the only drum channel allowed", especially now that some examples have been 
shown, along with GM2 specs.




> Apart from GM1, GM2, XG and GS, I don't know of any other
> specification 
> or standard, so I'm not sure exactly what you mean with
> "MIDI-1", 
> "MIDI-2", or "Full MIDI specs" which you talk about below.
> Could you 
> explain these three terms, where you find specifications for
> them, and 
> so on?

I suppose I use MIDI-1 and MIDI-2 to refer to GM1 and GM2 specs.  Although, I 
totally disagree with your definition of "GM-mode" not allowing soundbank 
switching (not allowing CC0/CC32) as the full GM1 specs.

You implied that the "no soundbank switching" as "the GM specs".  I call that 
the "minimalist, default soundbank in GM-mode", provided as a "compatibility 
mode" back in the era when most instruments did not even have a "single" 
complete soundbank.  GM specs also include CC0/CC32.  Without numerous CC# 
events, it wouldn't be MIDI standard at all.  

By "default soundbank", I mean that GM specs allows for using CC0/CC32 to 
change to other soundbanks.  But if no such additional soundbank was available 
for that CC0/CC32 combo, it would revert to use the "default soundbank".

Of course, interpretation from 20, 30 years ago was the struggle to provide 
even one common soundbank for all hardwares.  Nowaday, if any musical 
instrument come out providing just one single soundbank, make sure your 
calendar didn't show April 1st.





> I'm also open to extending the XG mode to make use of that
> feature, once 
> that feature is complete.

Let me state my opion again here, that XG is just a play on GM-specs.  If 
FluidSynth has proper support for GM specs, XG should not be a big deal.

GM-specs include numerous CC# messages.  Currently my point of contention is 
lack of full CC0/CC32 support (which is part of GM-specs).  For those 
interested, a list of those can be found here:

   http://home.roadrunner.com/~jgglatt/tech/midispec/ctllist.htm
   
I don't even know most of those things.  Even the

   CC7   Volume (coarse)

was at one time referred by some as "Master volume" for some hardwares, 
probably a carry over from some MIDI-controller, or some simple synth with just 
a few sounds which transmits on only a single channel.  More recently it is 
used more appropriately as "channel volume".

GM specs do not explicitly forbid drumset usage in other channels.  It simply 
suggest that channel 9 be used for drum.  What if someone want to use more than 
one drum-sets at the same time?  GM specs didn't explicitly address that, but a 
flexible GM implementation should not forbid such usage either.

GM2 suggests 2 specific channels for drums.  What if someone want to use 3 drum 
channels, or use some other channel for drum instead?  One of the XG-MIDI files 
above wanted 3 drum channels.  Don't tell me that is against some specs, please.

I brought it up because I want people to realize that softwares should be 
flexible to accommodate numerous different intrepretations, configurations and 
variations even years down the road.  It comes down to having a flexible 
interpretation to begin with.  If "drums was said to be on channel 9 by the GM 
specs" was the only interpretation, then there would be no options what-so-ever 
for drums to be used on any other channels at all.  Such is just sad, IMHO.

I was at a live hard-rock concert once, where there were two "over-full" 
drumsets on the stage, played by two drumers at the same time.  It's not 
impossible.  Hey, gutarists do it, symphonies do it, let the drummers do it.

Jimmy




reply via email to

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