fluid-dev
[Top][All Lists]
Advanced

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

Re: [fluid-dev] invalid instrument/drum selection problem


From: jimmy
Subject: Re: [fluid-dev] invalid instrument/drum selection problem
Date: Mon, 7 Jan 2008 10:20:04 -0800 (PST)

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 <address@hidden> 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 





reply via email to

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