fluid-dev
[Top][All Lists]
Advanced

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

Re: [fluid-dev] FluidSynth tuning and more commits


From: David Henningsson
Subject: Re: [fluid-dev] FluidSynth tuning and more commits
Date: Sun, 20 Sep 2009 05:06:39 +0200
User-agent: Thunderbird 2.0.0.23 (X11/20090817)

address@hidden skrev:
> The reverb and chorus
> fluid_synth_* routines are also problematic areas, since double floating
> point values are being assigned, which aren't atomic on SMP machines. 
> This could potentially lead to synthesis glitches when values are being
> assigned.

Couldn't we just send them through the queue then, just as we do with e
g synth gain?

> I'm a little bit perplexed in regards to the tuning routines though.  It
> seems that it allows for arbitrary per MIDI note tuning modifications,
> using floating point values in cents.  Tunings are added by instrument
> bank and program #s.  What is strange, is that it seems these tunings
> only take effect when fluid_synth_select_tuning() is called, to activate
> an existing tuning on a given bank and program.  What is strange, is
> that this is never called in the FluidSynth code base, meaning that
> tunings will only be active if an external application activates them,
> which seems to defeat the purpose of bank:program tuning assignment.  It
> seems to me like a tuning should be automatically used when a
> bank/program change occurs, if there is an assigned tuning for the given
> bank/program.  The tuning infrastructure should probably also be
> integrated with MIDI tuning standards, for assigning tunings via MIDI. 
> It seems like the tuning system is currently not entirely complete.  Any
> opinions on this?

After having read some of the stuff listed here:
http://www.midi.org/techspecs/midituning.php
...some things clear a bit - then bank and prog numbers are not the same
as the instrument banks and progs.
What's actually missing, are calls to fluid_synth_select_tuning() from
the RPN_TUNING_PROGRAM_CHANGE and RPN_TUNING_BANK_SELECT switches in
fluid_synth_cc_LOCAL.

Btw, what's also seems to be missing are implementations of
DATA_ENTRY_INCR and DATA_ENTRY_DECR, for both RPN and NRPN...?

I had a quick look at the code and fixed two memory leaks. You could
review my changes to ensure they are correct.

// David





reply via email to

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