Suggestion: Simple API + Advanced mixer matched with "all" bakends

Roger Larsson roger.larsson at norran.net
Wed Sep 8 04:18:26 BST 2004


On Monday 06 September 2004 15.26, Matthias Kretz wrote:
> Hi Dik,
>
> A few questions:
> - How do you think should the applications "know" what Channel to use?
> - How should the user select what Channel an app should use?
> - How should the Channels be configured?
> - Since the Channel is a part of the interface the backend has to
> implement, it's pretty much a "plugin" already. Do you think that's enough,
> and if not why not?

Hmm... Think big... Channels might connect to other applications etc.

That sounds like jack.
But the applications themselves do not know what other application they
are connected to... The user "wires" them in another application.
(I am missing a default wiring to output, but they might have fixed this)
Then there also is a working plugin system... And everything is done
to produce a professional audio environment.

http://jackit.sourceforge.net/docs/faq.php

Do also take a look at qjackctl one of the applications used for 
"wireing" (yes it is written with Qt)

http://qjackctl.sourceforge.net/qjackctl-ss1.html

Think big again... Multichannel sound and output?

Hmm... OpenAL or ALSA(?)

There might be more "frameworks" out there that we do not know
about... lets announce our requirements and then let the best
implementation win :-)

There might not even emerge a clear winner.
* I would like a minimal system - ALSA direct. (ALSA can do mixing and
resampling and is in the best position to utilise HW resources to offload the 
CPU).
	_No_ sound server in this implementation. Codecs will be loaded within
	the application.
* In other environments the speakers are not even connected to the computer 
running the application, you need to use it in a networked environment - nmm?
* And then some gladly would take a performance hit to get the best possible
 quality sound (filters are floating point) - jack?
* While others connect a 5.1 speaker system to their computer and would
  kill for putting it into good use - OpenAL backend where channels are 
located in 3D around the user.

I like the suggestion but some clarifications are needed:
	* Channel	- media format is not specified, logical to group related things
				 (mono, stereo, multi channel audio, media)

				- volume, I interprete this as "Not application specific, nor the master"
					But I think there is a common use case where you want to adjust
					the volume of the last started application.

					Another is to adjust the master volume (Hey, I would like an automatic
					control [i.e. low when the rest of my family is sleeping]. :-)

					And I would like a standardized way of launching an anvanced
					mixer/wirer/channel selector [Dik Takken touched this subject too]
					This application should know about and be able to configure "all"
					backends.
					* Mute other channels when audio arrives on VoIP...
					* Wire a channel to line input (not affected my mixer settings)
					 for recording.
					* - - -

This part added after I read Aaron J. Seigos message "KDE4 MM ..."

End user:
	Uses applications that uses media. Should never need to open
	the mixer application. Defaults/initial setup should produce sound... :-)
Advanced user
	+ Can adjust mixer from within one application (KMix? As KPart?)
Advanced user (with specific needs).
	Can change backend, still with same UI.

Framework integration maintainer:
	Writes the simple API.
	Adds/Maintains the frameworks functionality in KMix.

Application (developer)
	Plays media with simple API (optionally selects one channel (group)).
	+ mixer widget
Multimedia Application (developer)
	+ multiple channels
	+ KPart based mixer?
Advanced Multimedia application (developer)
	+ open additional input channels (could control visualisations, but...)
	+ might use Mixers interface directly to do rewiring.

	What about this for an interface?
		Play(url, channel="default", window=none)

		When a window is supplied for audio files it will show the visualisation
		(configurable per channel?) selected in the rewire/mixer application.
		When no window is supplied for a video stream, only audio is played back.

     or
	uses whatever multimedia framework it want to use, but not in a mode
	that would prevent output from other KDE applications [there is a need
	to query KDE what backend it uses...]


What additional functionality would Noatun/Juk/... require?
	Effects and Equalizer would be handled by the mixer.

/RogerL



More information about the kde-multimedia mailing list