[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: Dave Serls
Subject: Re: [fluid-dev] SoundFont Memory Sharing between fluidsynth instances
Date: Sat, 9 Aug 2008 05:37:09 -0600

On Sat, 9 Aug 2008 11:21:46 +0200
Lutz Morelater <address@hidden> wrote:

> Hi,

   Disclaimer:  I'm using a patched qsynth 0.2.5 
   My audio PC is just coming back online, so I can't verify the following.
> 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

   Each engine has many settings (like resources).  Not sure how this is
   handled for modification in the GUI qsynth.  You can alter the 'Settings' 
   for each engine prior to startup in your $HOME/.qt/qsynthrc file.  This path
   is $HOME/.config/rncbc.org/Qsynth.conf  in the new version, I think,
> -s, --server
>         Create and start server [default = no]

   you will want 'yes'.
> 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?

  I have been able to do that.  Each fluid server thread (engine) should have
  a different 'shell.port' value.  When you telnet to each instance specify
  that port (9800,9801,9802,etc).

> 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.
   Not familiar with keykit.

> 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)?
  the routing commands are multi-statement; this might be a bit onerous in use. 
  I've a crude homebrew telnet that can issue canned 'macro-like' fluidsynth 
  I wouldn't advise it, unless you wanted to write some 'C'.  


> 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,
> _______________________________________________
> fluid-dev mailing list
> address@hidden
> http://lists.nongnu.org/mailman/listinfo/fluid-dev

*   Dave Serls                                 Littleton, CO, USA      *
*   dashs.denver.co.us                         dashs.com               *

reply via email to

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