[Top][All Lists]

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

Re: [fluid-dev] Adding Poly/mono functionality to FluidSynth

From: Ben Gonzales
Subject: Re: [fluid-dev] Adding Poly/mono functionality to FluidSynth
Date: Fri, 1 Jul 2016 07:47:29 +1000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1

Hi Jean-Jacques

Thanks for that comprehensive answer. I was going to ask you for those instructions on how to use it - you beat me to it.

I have a Akai Professional EWI-USB. It is the simplest and cheapest of the Akai models, and doesn't have some of the more sophisticated functions of the 4000 and 5000 models. It is, nevertheless, very good.

I didn't explain myself well enough with the EWI/Guitar comment. What I meant was, in simplified terms, that if you were playing an EWI with a wind instrument voice (eg. clarinet) then you would probably want it in mode 3 all the time. The only issue with that would be if you wanted to play 2 notes at the same time (possible with some EWIs). If you were playing with a plucked string instrument voice (eg. guitar) then mode 0 would be more suitable. The implication of this is that I could put the synth into mode 3 and turn legato on for all my playing. This would be useful because my instrument does not send CC legato messages.

I think there are a few errors/typos in the PDF document. Many are French/English issues which don't effect the sense of the document (eg. controler not controller), but there are a few others:

- The use of "EWI". EWI is a registered trade mark of Akai Professional. It is not correct to call all wind controllers EWIs. It's like calling all vacuum cleaners "Hoovers". It may annoy users of the Yamaha models... "Wind Controller" is a better, but less convenient, term. Of course abbreviating it to "WC" has other connotations!

- Section 3.1.3, R2  says "The EWI detects the end of a legato passage and sends CC legato On". I think it should be "The EWI detects the START of a legato passage and sends CC legato On". Mine doesn't actually do that!

- Section 3.5.5 (a1) says "initialAtt. n2 < initialAtt. n1". I think it should be "initialAtt. n2 > initialAtt. n1"

I will get a chance to test the patch over the weekend.


On 01/07/16 06:14, CERESA Jean-Jacques ENAC/ENAC wrote:
Hi Ben,

Apart grammar and others spelling errors there are 2 typos error in my last post.

1) Please replace"Mode 0 is perceived less legato then mode 0" by "Mode 0 is perceived less legato then mode 3"
2) Please replace "channel 5 to 16 (11 channels)" by "channel 5 to 15 (11 channels).


Le 30/06/16, "jean-jacques.ceresa" <address@hidden> a écrit :
Hi Ben,

 >the legato commands. For a EWI, I think legato should be on all the
time if you are playing wind instruments. If you want to imitate a
guitar, then probably you  would want it off. Correct?

Well, it is necessary to be not confused by the terms.

 >For a EWI, I think legato should be on all the time....?
a) Are you talking about the ewi capability to be enabled(or not) for
sending MIDI CC legato On/Off  ? .
b) Are you talking about the ewi internal capability to disable a legato
manner playing from the musician ?
For both questions (a,b)  the response should be in the manual of your EWI.

Please  what is the model/builder of your EWI ?

Anyway, i insist that at the synthesizer receiver side (e.g fluidsynth +
polymono patch), the MIDI channel ignore CC legato On/Off
if this channel is set monophonic (by CC Poly/mono, Omni On/Off, or
fluidsynth shell commands, or fluidsynth API call).
Please read. There is a misspelling in the terms used by MIDI
specifications about CC legato On/Off.
This CC doesn't mean that the synthesiser must react legato/staccato.
The MIDI specs. (MIDI_MMA specifications.pdf  version 4.2  1995) says that :
  -on CC legato On the synthesiser MIDI channel must switch to
monophonic (regardless of the actual mode poly/mono of this channel).
  -on CC legato Off the synthesiser MIDI channel must return to the
state it was (poly/mono) prior receiving CC legato On.
So, simply  switching CC legato On/Off allows a musician to switch a
polyphonic Channel temporarily in monophonic in real time performance.
So, if the channel was already monophonic  on CC legato On/Off the
synthesizer becomes neutral (i.e it does nothing).

During the time the musician plays this 'monophonic channel' the fact
that the synthesizer reacts to the 'staccato/legato' musician playing is
entirely upon the synthesizer responsibility and is outside the scope of
MIDI specifications.
If the musician plays staccato , fluidsynth (+ polymono patch) will
react staccato.
If the musician plays legato , fluidsynth (+ polymono patch) will react
legato (in one of four mode called 'legato mode').

Now a complement about legato mode which is not clearly documented in
the patch pdf:
Mode 3: is straigtforward (i.e the synthesizer reacts to legato without
additionnal processing).
Mode 3 to 0: This mode from 2 to 0 are perceived less legato from one to
Mode 0 is perceived less legato then mode 0  (for the same musician
playing  manner).
To get this differents results, the synthetiser makes use of different
ways of triggering/retriggering of adsr generator.

If i was a EWI player i will choose legato mode 3 (default is 0),
because as explained this mode is neutral.
In other word in legato mode 3 the result depends of the musician
playing manner and hightly of soundfont ADSR preset
(apart of breathToInitialAttenuation modulator presence).

What can do an EWI player or a Keyboardist to try this patch ?:
1) Apply this path to the current source file (v 1.1.6) and build the
library executable (only the library is concerned).
2) Run the console application: fluidsynth with usual options and the
right soundfont file.
In this state the synthesizer is polyphonic on each of 16 channel.
Assuming your EWI is sending CC legato On/Off you don't need to skip to
steps (3,4).
2.1) Send a CC program change
2.2) And play on the ewi. If you play legato fluidsynth reacts legato
(in mode 0 ).
2.3) To display current legato mode type the following command:
This display the current legato mode of each MIDI channel.
2.4) to change channel 5 (zero based !) (assuming EWI playing on channel
5) to legato mode 3 , type the following command:
 >setlegatomode 5 3
Then verify your choice by the command:
You can iterate steps 2.1 to 2.4 any time by changing the preset or
legato mode or the playing manner (legato/staccato)

The following  steps are only necessary if your MIDI controler (Ewi,
Keyboard) don't send CC legato On/Off (I don't think that an Ewi is
unable to do that).
3) To put channel 5 in monophonic mode 1 (mono, omniOn),  type the command:
 >setbasicchannels 5 1 0
3.1) Then verify using the followings command
3.2) or verify using command
These commands shows that channel 0 to 4 (5 channels) are still
polyphonic, and channel 5 to 16 (11 channels) are set monophonic
Your channel 5 will react monophonic, it is ready , you can go to steps
2.1 to 2.4

Note: While you play on channel 5, if you feel a little alone, don't
hesitate to put an other EWI player on channel 6 or
a Keyboardist on channel 0 to get a live accompaniment and don't be
affraid if your heard that the keyboardist is able
to play polyphonic because is this setting you and your EWI friend are
the only one able to play real legato. But anyway
things can be reversed if you put channel 0 (Keyboard) in monophonic
mode and give a  separe breath controler to the keyboardist.

Thanks for responding to my questions above.

Le 29/06/2016 23:23, Ben Gonzales a écrit :
> Hi Jean-Jacques.
> Thanks for that info. I will try it.
> Re:the legato commands. For a EWI, I think legato should be on all the
> time if you are playing wind instruments. If you want to imitate a
> guitar, then probably you  would want it off. Correct?
> Ben

reply via email to

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