[Top][All Lists]

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

Re: [fluid-dev] Continuous controllers

From: Ben Gonzales
Subject: Re: [fluid-dev] Continuous controllers
Date: Fri, 24 Jun 2016 13:36:37 +1000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1

Hi Element.

Comments below.

On 24/06/16 11:28, Element Green wrote:
Hello Ben,

On Thu, Jun 23, 2016 at 6:47 PM, Ben Gonzales <address@hidden> wrote:
Hi Chris and Jean-Jaques.

Thank you for your excellent responses.  I have been using CC11, and have programmed it into my EWI-USB. Here is my project site:


The original poster on this thread, fenderbenders, has one of my RPi configurations, but he would like to use CC2, and I presume that was the reason for his enquiry. I haven't done much with soundfonts, so I decided to try to modify my soundfont to accommodate the CC2, but ran into difficulties, hence my questions.

If you are just using straight FluidSynth you could probably use the MIDI router, if it is just a matter of remapping CC2 to CC11.  Sorry if I'm oversimplifying the task, I haven't been paying much attention to this email thread.

These commands would translate CC2 controller messages to CC11.

router_begin cc
router_par1 2 2 0 11

The router_par1 command takes the first parameter of the CC command (the CC number itself) and checks to see if it is between min and max (2 2), so it will only match CC2.  It then multiplies it by 0, which makes it 0 and then adds 11 to make it CC11 and passes it along to the synth with whatever value it had.  You could also alter the value if need be using the router_par2 command I believe.

I want to be able to use the RPi either a) as a MIDI router to an external synth, or b) with FluidSynth, so I really need to change the channel on the EWI itself. I would use the FS router command if I wasn't wanting to use the RPi as a router. A big part of my project was to make a better user interface for the EWI-USB. The one that it comes with is good, but cumbersome.

Your answers have helped a lot, but there is still one issue that I don't understand. See the yellow arrow in the screen-shot in the following link:


I don't know what the second controller in the "Amount source" does. That was my Q3 earlier, but I don't think I explained myself well enough. Hopefully the picture will clarify what I'm after.

The Amount Source is just an additional control source.  Modulators allow for up to 2 control sources.  Each of these sources get mapped to a value between -1 and 1 according to the mapping function applied to the source (linear/concave/convex/switch, bipolar/unipolar, increasing/decreasing, etc).  Both sources then get multipled together and also get multiplied by the amount value before being added to the destination generator (synthesis parameter).  Each modulator has an additive effect on the resulting value.  There are a bunch of default modulators which cause SoundFont instruments to respond to some of the defined MIDI controllers as expected (volume control, pitch bender, etc).  When attempting to modify one of these, you have to first define a modulator which reverses the effect of the default modulator (adds a value with the opposite sign).  Then you can define a new modulator which has the desired effect, otherwise both modulators will be active (the default one and the user defined one).

Swami really needs to show these default modulators and allow for easily negating them.  This is on my TODO list.  Otherwise its rather complicated figuring out what the default modulators are and adding one which negates it's effect (see section 8.4 on page 41 of the SoundFont 2.4 spec http://freepats.zenvoid.org/sf2/sfspec24.pdf). 

More details on the modulator mathematical model can be found in section "9.5.1 Controller Model Theory of Operation" on page 51.  There are of course many other details in the specification as well.

Thanks, that clears it up

On a side note, is there a good reference for using SWAMI? It's a fantastic program, but I don't understand a lot of what it does.

No, there is no user manual currently unfortunately, yet another TODO item.  A README file is in the source code, but it is pretty outdated at this point, but may provide some helpful info:

Feel free to ask questions on the swami-devel mailing list.  Me or someone else will be happy to help.

I didn't realise there was a swami-devel list. OK.

FluidSynth and Swami are great programs. Thanks


reply via email to

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