[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 |
Hi,
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)?
Regards,
Lutz.
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,