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 12:03:34 -0800 (PST)

Hi Josh,

Sorry, I missed the part you asked about specific MIDI
files that causes problem.  The last file on this list
is one that will cause trouble.

www.geocities.com/TheTropics/Cabana/4967/inicial.html
www.geocities.com/TheTropics/Cabana/4967/Amor_Eterno.mid
www.geocities.com/TheTropics/Cabana/4967/Ansiedad.mid
www.geocities.com/TheTropics/Cabana/4967/allanera.mid
www.geocities.com/TheTropics/Cabana/4967/Bailamos.mid
www.geocities.com/TheTropics/Cabana/4967/bamboleo.mid
www.geocities.com/TheTropics/Cabana/4967/besame.mid
www.geocities.com/TheTropics/Cabana/4967/caballo.mid

Fluidsynth will play all the other files fine.  On the
last file, it reset the drumset to be "Grand Piano". 
After that, if I try to go back and play the previous
files on this list, I hear "Grand Piano" for drums,
probably because the drums are never set/reset by
those files, except for the bad one that spoils it.

No matter what the GS specs.says.  The drumchannel
should never be set to "Gran Piano" if there is a
valid drumset available - don't you think?  Anyway, I
think the DRUM_INST_MASK constant in src/fluid_synth.h
should really be 128.  In the released code, it tries
to use DRUM_INST_MASK as an offset for the drum
channel selection, but that constant is erroneously
set to 

   #define DRUM_INST_MASK         ((unsigned
int)0x80000000)

Some of the channel 9 progarm change uses channel 128
or higher, some uses an offset from 128.

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



      
____________________________________________________________________________________
Looking for last minute shopping deals?  
Find them fast with Yahoo! Search.  
http://tools.search.yahoo.com/newsearch/category.php?category=shopping




reply via email to

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