--- On Wed, 7/11/12, David Henningsson <di...@ubuntu.com> 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 _______________________________________________ fluid-dev mailing list fluid-dev@nongnu.org https://lists.nongnu.org/mailman/listinfo/fluid-dev