[LAD] Proposals for JACK

Nikita Zlobin cook60020tmp at mail.ru
Tue May 22 23:35:54 UTC 2012

Hi all. Just returned from military services (mandatory period).
It is likely, that i was somehow unsubscribed from list.

In summary, proposed changes are joined in two parts:
1. A few advances for freewheel mode: waiting wheel and per client
free/waiting wheel mode.
2. Get support for any count of "rooms", as they are called in LADISH
therminology, but IMHO, a bit more flexible.

Waiting wheel.
Like freewheel, but doesn't speed up system. When performance is
enough, behave like without any mode (produce sound). And only when it
is not enough, automatically free wheel, until performance is enough

Per client time wheel management.
Clients could be joined into groups, where they have own time flow and
may interact as they are not in free/waiting wheel mode (pass
sound/MIDI each to others).

Other proposals, in two words:
- Ability to change master client (for now it is audio card) on the fly.
- Attaching of audio devices as clients with ability to change driver
  and its settings for each (i mean - for all devices; this feature
  should go with previous item).

Now about sctucture.
Some components are plugins, which are like LADSPA / LV2 / Other kinds
of audio plugins, but are optimized for use only on JACK (in short,
they are JACK modules).

JACK components:
* single plugin shell (types: plugin host, jack / alsa app) - just to
  load other plugins as audio applications, connecting them to other
  audio systems, like alsa or other jack instance, like jack app.
* Patchbay (types: plugin host, plugin). Master instance should
  be ran by already called plugin shell. Other instances may be loaded
  as plugins (making more rooms), or as jack applications. Time wheel
  mode changes affect all dependent clients, inluding other patchbays.
* JACK app interface (plugin)
* Adapter for other types of audio plugins (LADSPA, LV2, and
  so on). As you can see, such jack implementation may be jack app
  itself, and so - it is good to use existing work just as plugin host
  (like AMS, Ingen, Jost).

Such jack structure should allow easy implementation of both multiroom
session managers, like LADISH (which is forced for now to implement it
by self) and even allow nested sessions: i'm thinking about universal
modular session manager, which could be used as user session manager,
but also allow nested desktop sessions, and could be expanded by
plugins, adding integration to various systems, like X11 (to manage
windows), jack / alsa (no comments needed) and so on.

More information about the Linux-audio-dev mailing list