[Top][All Lists]
[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