Hi Josh, I'm sure the different specs for GM, GS, XG, XG-lite basically made up their own "specific scenarios". >From what I see, each channel is like a patch cord into a mixer, if the Cello-ist broke a string, it may not be ideal but a Timpani-ist or a Guitar-ist from the openning band wouldn't mind jumping in as a replacement if they can play along,
The thing is I and possibly most other folks don't know and prefer not to know which MIDI files are GM, which are GS, which are XG. Especially, I don't want ot have to convert those files, or restart the player with different options for different MIDI files. I'd rather have the player plays through a pre-exisitng, or an impromptu playlist. I'd like the player to handle it reasonably (best that it can). Plus, I don't want to sit down to listen to a few random MIDI files and it sounded like the drummer and a few other musician walked off the stage on a live show -- if you know what I mean. I also don't want to hear the "Grand Pianno Quintet" either :-) Let's just say for a live band, if one musician couldn't make it to practice and someone else could only play a different instrument. It won't sound the same, but "maybe" it could sound the part. Obviously not going to work that well in substituting special drum/percussion for strings/brass, but better than throwing in "Grand Piano" for all the missing parts. That's just me talking pragmatically. I don't think we have to worry much about true GM MIDIs even though some GM soundfonts have different voice mapping and may not sound particularly great. The problem really is trying to map GS and XG files. And do that automatically, at least between songs. For me right now, I'm trying Stygmorgan for learning, which uses Yamaha styles with different MIDI segments within the style being repeated and changed (to different MIDI segments) on some cue from user interface events or pedal input. Most of those MIDI segments loop and change instruments. If you want the specific problematic styles to try, I can look up the URLs for you. As for instrument mapping from GS, or XG to GM, we could try, but it is going to be pretty involved. I'm not sure if continually looking up several different tables for each channel is going to affect real-time performance, but that's something I will try to remember with code changes. I already read that voices included with different low, mid, high end of the Yamaha keyboards aren't 1-to-1 mapping either. So Yamaha styles (MIDI with embbeded SysEx, pretty much the same format for Yamaha) from one keyboard has to be tweaked (using different voices) to sound right on a different Yamaha keyboard. Of course, I guess that some of those sounds could be merely special effects and volume tuned with different parameters for some shared instruments. I don't have a GS instrument list handy, but I recently search for XG instrument list and it seems the XG specifics are being withdrawn from Yamaha sites. I did manage to get the voice list for specific Yamaha keyboards. Here you can find some voice list for specific models in text format, or .xls: www.yamaha.co.jp/manual/english/zip/port/tyros2__en2.zip www.yamaha.co.jp/manual/english/zip/port/psr2000e2.zip www.yamaha.co.jp/manual/english/zip/port/dgx205e.zip I found their "text-format manual" search page at: www.yamaha.co.jp/manual/english/text/index.html By the way, the midi file I mentioned from the my first email: www.geocities.com/TheTropics/Cabana/4967/caballo.mid cause several channels to go away in verstion 1.0.7, and 1.0.8. It seems to play somewhat reasonable with my patch, fwiw. If I run into other troublesome suspects and need to ask for help handling them, people on this list will probably hear from me again. It is definitely not a threat ;-) Lot's of rambling from me, not sure any of it helps ;-) Take care, Jimmy --- Josh Green <[EMAIL PROTECTED]> wrote: > Hello Jimmy, > > I did a little research into this issue and found > that it is a bit more > involved than I had initially thought. I think it > would help to start > with looking at some example problem MIDI files. > Can you point out > specific ones which you are having issues with? > > Reading up on the subject of MIDI bank/program > switching I came up with > the following information: > > There are Sysex messages for switching into GM or GS > mode. Looking at > some of the MIDI files on the web page URL you > posted, I found one that > had a GS enable message. I'm curious how many MIDI > files actually have > these. > > When in GM mode, bank change messages should be > ignored altogether. > > Different banks specify different "flavors" of > similar sounds. A sound > module should substitute an instrument with the same > program number, if > it does not have one in the requested bank. > > > > I'm not sure yet the best way to handle this in > FluidSynth. I think a > good start would be to listen for the GM and GS > sysex init messages > which would modify the behavior accordingly. Also a > command line switch > for selecting among these different standards > manually. > > > GM enable > --------- > Initialize all channels except #10 to Program 1 > (Grand Piano). > Set channel #10 to bank 128:0 > Ignore bank change messages. > > GS enable > --------- > Setup channels like for GM > Use bank 0 if an invalid bank is selected. > > > Perhaps substituting bank 0 if an invalid > bank/program is selected > should be the default behavior, but that could cause > unexpected behavior > if someone isn't using a GM/GS bank. > > Any thoughts? Best regards, > Josh ____________________________________________________________________________________ Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it now. http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ _______________________________________________ fluid-dev mailing list fluid-dev@nongnu.org http://lists.nongnu.org/mailman/listinfo/fluid-dev