[LAU] Synths (software vs hardware, speed)

Rui Nuno Capela rncbc at rncbc.org
Wed Aug 22 19:29:17 EDT 2007

Simon Williams wrote:
> Dave Robillard wrote:
>> On Wed, 2007-22-08 at 13:22 +0100, Simon Williams wrote:
>>> I'm now at the point where I can play midi files, and I have a midi
>>> keyboard connected and can play sounds to and from that.
>>> Timidity is rubbish, frankly, so I'm using fluidsynth, which works
>>> fine. However, for some reason I can't get qsynth to work.
>>> Qsynth1: Failed to create the MIDI driver (alsa_seq). No MIDI input
>>> will be available.
>>> No matter what settings I try, it always fails. The only useful
>>> message I ever got was for alsa_raw, when it said that the device
>>> didn't exist. For some reason I have /dev/snd/midiC1D0, but not
>>> /dev/snd/midiC0D0. So I temporarily symlinked them, but that didn't
>>> help- it wasn't complaining about a missing device any more, but it
>>> still couldn't create the midi driver and still wouldn't tell me why
>>> not.
>>> Also, both fluidsynth and timidity are too slow. Midi events are
>>> routed around instantly (tested with vkeybd and the keyboard I have
>>> plugged in), but there is a delay in playing anything sent to
>>> fluidsynth or timidity- about half a second or so.
>> Use a smaller (audio) buffer size.
> Adding the '-a jack' option to fluidsynth fixed it. I also added '-r
> 48000' to get the periods to match which probably helped.

have you read qsynth's homepage? `qsynth -a jack` would do the
same trick, and guess what? you just need to do it once alas qsynth
command line options "tries" to be as equivalent to fluidsynth's

however semantics might get in between and just probably something
starts to get persistent and thus not quite scriptable-wise at least as
far as fluidsynth is

maybe you did not get it noticed: `fluidsynth` and `qsynth` are both
front-ends to libfluidsynth.so (.dll in win32 port) the former is the
original shell command-line implementation, the later is just my qt gui
clone almost 4 years old already without any major design changes if I
may stand correct ;)

> Now that I know I can play midi in realtime, how do I start doing
> interesting things with it? Sure I've got fluidsynth, but my current
> keyboard only has 8 instrument buttons, and fluidsynth isn't much good
> for changing the instrument on the fly.

fluidsynth and qsynth both CAN change instruments on the fly

hint: having a real midi controller might help perhaps? one that would
send actual program-change (PC#) midi messages

its just the way fluidsynth/qsynth works

furthermore, each soundfont instrument is assignable to any of the
standard 16 midi channels you may find qsynth way far more manageable
in doing this kind of mapping than doing some hell of a "geeky" shell
scripting for fluidsynth but that's your choice of course :)

> So far I have 2 options:
> 1. Use the selectors on my keyboard to get whatever the first 8
> instruments are in my soundfont.

get over it: your 2 options are really 1) change your keyboard selectors
to send the proper midi #PCs or 2) you're stuck with what you have

please, do not take it as a fluidsynth/qsynth shortcoming there must be
some way for you to set which (knob) sets which instrument on your
keyboard controller whatever (is that a toy-keyboard? oops couldn't
hold that one :)~

> 2. Use another program to pick the instrument- but so far I haven't
> found anything that will let me pick a selection of instruments- I can
> only pick one and then the selectors on my keyboard don't do anything.

ah now that should explain something ... ;)

> Also, I would love to be able to mix together two or more instruments-
> and be able to specify the range, volume and fading of each one.
> As an example, so that I could have something like:
> 1. Piano sound- for everything except the last octave
> 2. Bass guitar- Mainly on lower half of the keyboard, fades out towards
> the middle
> 3. Flute or something- just on the last octave
> Also, when I get my hands on a decent midi controller keyboard I want to
> be able to use the extra buttons, knobs and sliders to control the
> mixing above, and things like auto drum accompaniment and other synth
> effects, but as yet I haven't seen any software which will let me do this.

actually those are features not rightly addressable to fluidsynth/qsynth
which as any other softsynth just reads incoming MIDI messages and
renders respective synthesized voice sounds

what you're after is some kind of MIDI patch librarian utility or else
specific to your hardware

please again notice that given the business (as in the busy sense of the
word) nature of most of the LADs you'll might be disappointed if you
don't volunteer yourself to give a real hand ... truth is you might be
out of luck if nobody else uses that same iron ...

> Any suggestions?

if anything of what i've just said didn't make you think (aye!) please
let us know more about the details and figures on what you have
(hardware, brands, models, etc) and what you're trying to do (if not

rncbc aka Rui Nuno Capela
rncbc at rncbc.org

More information about the Linux-audio-user mailing list