Breath controller in synths on Linux

I am a new Ardour user and I was looking at using and ewi electronic wind instrument with Ardour. looking online it seems that fluidsynth fairly recently implemented the breath controller response when used in a particular mode “PolyMono”, has anyone tried this and how would you configure it for use within Ardour?

Pinging this. It’s not really a Linux thing at all, would be the same for fluidsynth on any platform. I don’t see a way to change mode of the fluidsynth plugin. I can see that I could connect an Ardour MIDI track up via Jack to a running version of fluidsynth in this mode, and then route that fluidsynth audio back to an audio track. Would this be the best way to handle it? How would this interact with the export process?

fluidsynth is built into Ardour 5.12 and later (and likely a bit earlier too). Look for the “a-fluid” plugin from the “Ardour Team”.

No need to run it externally with JACK.

Yes, thanks. I did see that, but I didn’t see a way to configure it to be in the mode where it responds to breath control. Also I don’t actually own an EWI yet, so I can’t just play with it to see what it does :wink:

For reference, when running fluidsynth you’d do the following:

> setbreathmode 1 0 1 1
> breathmode
Channel    , poly breath , mono breath , breath sync
channel:  0, off         , off         , off        
channel:  1, off         , on          , on         
...

and now channel 1 is in “mono” mode (it only plays one note at a time) and it responds to breath control messages to modulate the single note.

at least that’s how I understand it… but I don’t know how you’d get the Ardour fluidsynth plugin to do something similar.

If I go the external route, what would I do? record the audio track while playing the MIDI track? Then if I want to redo the MIDI track, I’d re-record the audio track before exporting?

The plugin version is not configurable but heeds information from a soundfont. A .sf2 could mark a specific bank/patch as monophonic. The breath controller default is CC-2.
You cannot manually override that like you can with interactive command-line fluidsynth.

So by default the Ardour plugin heeds the CC-2 data? My understanding is by default the command line version doesn’t do anything with it.

I guess I could build up a soundfont specifically for wind type instruments by cutting and pasting from soundfonts I have… and mark them all as monophonic.

Do you actually have any experience with this? or is it more of an in-theory thing?

I’ve used https://www.polyphone-soundfonts.com/ to do some basic editing, and define exclusive groups for some drum soundfonts. For the case at hand, I don’t have any experience though.

Depends on what your goal is.

I’d probably use a MIDI track in Ardour (without a synth plugin). Then route MIDI to fluidsynth (the JACK app), and audio from there back into Ardour’s master-bus.
That way MIDI can be edited in Ardour, and Session > Export also works.

PS. Start fluidsynth before starting Ardour. That way Ardour re-establishes port connections.

1 Like