[Top][All Lists]

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

Re: [fluid-dev] SoundFont Memory Sharing between fluidsynth instances

From: Lutz Morelater
Subject: Re: [fluid-dev] SoundFont Memory Sharing between fluidsynth instances
Date: Sat, 9 Aug 2008 11:21:46 +0200
User-agent: KMail/1.9.9


if I should go for qsynth then I will need something that enables me to send 
shell commands to any instance of fluidsynth loaded by qsynth.

I have found that qsynth supports some cli-commands (cli=command line 
interface) when it is started. At the moment I am not sure about the two 
following commands and what they mean.

-o, --option [name=value]
        Define a setting name=value

-s, --server
        Create and start server [default = no]

Can I send commands via cli while qsynth is running similar to the shell 
command line that fluidsynth offers? So I can send shell like commands to the 
instances of fluidsynth that are loaded by qsynth?

As I wrote several times (I guess) I am currently working on the MIDIfication 
of an old analogue electric organ. So far this project has been successful, 
so I am now implementing the things that I want to happen when I press push 
buttons, switches, drawbars.

Among other things I want to mimic a behaviour similar to stops of a church 
organ. That means I have to find a way to play more than one sound at a time 
on the same MIDI channel.

For the right hand manual (upper manual) I used to have 20 switches for 
sounds, and I have thought I could use one instance of fluidsynth to create 
20 different MIDI channels that could be made to play at the same time all 
playing a different sound. So here I need to route (this is the feature of 
fluidsynth shell I would like to use for that) one incoming MIDI NOTE ON 
event to 20 virtual channels in fluidsynth. I think this could work.

The trouble is that my soundfont file that I use is rather large, and three 
instances of fluidsynth would use up nearly all of my RAM available in my 
notebook. So this is about my former question about memory sharing between 
instances of fluidsynth. If this memory sharing only works with qsynth, then 
fine, I use qsynth.

But I still need to be able to control all instances of fluidsynth loaded into 
qsynth via a shell like command interface.

I have had a look at jorgan, but I do not like the idea of having a real time 
application running under java much - I suspect there will be a considerably 
larger delay than with a non-java MIDI application. Also jorgan looks rather 
complicated and there are things I cannot do with jorgan, such as sequencing 
let alone create a simple drum machine.

I have decided to use keykit for all the MIDI related programming stuff to 
implement a kind of server that filters incoming MIDI events, runs qsynth and 
fluidsynth and routes all required operations to them. Keykit can also do the 
sequencing things and work as a drum machine.

It is also important for me that keykit can assign shell commands to the cli, 
so that I could create virtual pipes issuing a cli command and then target 
MIDI commands to exactly the instance of fluidsynth that I need.

In other words (e.g.):
How do I tell qsynth to tell one instance of fluidsynth loaded into qsynth to 
start MIDI routing (via the shell command of fluidsynth)?


Am Freitag, 8. August 2008 16:19:15 schrieb Dave Serls:

>   No.
>   If you use qsynth, built for soundfont sharing, the memory will be
> shared. That's because the executable fluidsynth has no way of locating
> other fluidsynth processes (it's basically a front end for the fluidsynth
> API). Always wanted to patch the front-end (fluidsynth.c) to support this,

reply via email to

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