[LAU] Requesting MIDI port and/or audio port of an application

Crypto crypto at online.de
Mon Aug 11 09:03:21 EDT 2008


I agree it is both confusing to explain and difficult to get it as well. So 
let me try again in other words:

I am considering to use keykit as a kind of host application that evaluates 
incoming MIDI events (sent by an external electric organ's MIDI interface), 
starts external applications according to these incoming MIDI events and 
sends data (that means MIDI data and configuration data for the application).

It is important for me to have control over any option that fluidsynth has 
when run from the system command line interface. "Any option" here especially 
(but not only) means the shell like commands that You can enter in fluidsynth 
after You have started it from the system command line.

 It is not sufficient for me to use qsynth as a wrapper for fluidsynth 
instead, because then I cannot tell a particular fluidsynth instance to 
create 32 channels and another to create 48 channels, and I also cannot tell 
one particular instance of fluidsynth to create a new MIDI router without 
using the GUI.

When fluidsynth is run from within qsynth, qsynth is in charge for and in 
control of any fluidsynth instance running from within qsynth. As far as I 
understand it, there is no way for me to send configuration data to a 
fluidsynth instance running inside qsynth. Or - there is a trick I do not yet 
know of.

I also cannot tell keykit (as far as I understand it) to connect instance #1 
of fluidsynth to my electric organ and instance #2 to connect to the sytem's 
MIDI through (for example).

That is why I need both application name and it's MIDI ports at the same time.

I understand that keykit knows about all MIDI connections that exist on my 
system, but it does not know which external application created which one of 
them. Also, in the "Port Enabler" tool and the "Port Map" tool only keykit's 
own port show up.

If You start up Qjackctl, fluidsynth (no qsynth; connect to jack) and keykit 
(latest version is able to connect to jack), enable in and out port for MIDI 
in keykit, then You can see in Qjackctl in window "Connection" in tab "ALSA" 
that there shows up something like:

Readable Clients/ Ouput Ports:
14: Midi Through
131: keykit

Writeable Clients / Input Ports:
14: MIDI Through
130: FLUID Synth (3571)
131: keykit

In contrast to this, look at tab "MIDI":
Readable Clients / Output Ports:
midi_capture 1
midi_capture 2

Writeable Clients / Input Ports:
midi_playback 1
midi_playback 2
midi_playback 3
midi_playback 4

From that latter - how do You know, that midi_playback 3 comes from fluidsynth 
and not keykit itself? Or from which application it comes at all?

It is this list that is given by jack_lsp, and in this list the different 
applications cannot be distinguished from each other.

Am I missing something myself now?


Am Montag, 11. August 2008 14:11:44 schrieb Paul Davis:

> i feel that you are confused. keykit doesn't need to know identities of
> applications. you *might* want to know how many MIDI ports it should
> create, but you can get qjackctl to take care of the interconnects.
> am i missing something?
> --p

More information about the Linux-audio-user mailing list