From alsa-devel-owner@alsa.jcu.cz  Sun Feb 28 22:11:12 1999
Received: from entry.jcu.cz (IDENT:perex@entry.jcu.cz [160.217.1.111])
	by marvin.jcu.cz (8.9.1a/8.9.1) with SMTP id WAA07389;
	Sun, 28 Feb 1999 22:09:21 +0100
Date: Sun, 28 Feb 1999 22:09:21 +0100 (CET)
From: Jaroslav Kysela <perex@jcu.cz>
To: Paco Andres Verdu <f.andres@usa.net>
cc: alsa-devel@alsa.jcu.cz
Subject: Re: Another mixer change proposal
In-Reply-To: <Pine.LNX.3.96.990228130341.418A-100000@Trantor.Trnet.org>
Message-ID: <Pine.LNX.3.96.990228215258.11253J-100000@entry.jcu.cz>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Reply-To: alsa-devel@alsa.jcu.cz
Sender: alsa-devel-owner@alsa.jcu.cz
Precedence: list

On Mon, 1 Mar 1999, Paco Andres Verdu wrote:

> On Sat, 27 Feb 1999, Abramo Bagnara wrote:
> 
> > Jaroslav Kysela wrote:
> > 
> > > 2) Would be also the mixer to control PCM voice volumes?
> > >    - I don't think it. The mixer would control only the output volumes.
> > >      We must probably extend PCM for balance (or better PCM voice
> > >      volume setup). This volume setup wouldn't be only left and right, but
> > >      probably more universal to satisfy all things.
> > 
> > The possible manipulation of PCM output are potentially infinite:
> > - 3D
> > - Balancing
> > - Routing
> > - Bass
> > - Treble
> > - Equalizer
> > ...
> > 
> > We can't choose now which we will introduce at kernel level.
> > I think that the better way is to give the possibility to loaded modules to add
> > PCM manipulation and contemporary to add mixer control or switch in a dynamic
> > way.
> 
>   For soundcards based on Dream's sam9407 dsp (Guillemot Maxisound series,
> Hoontech ST series, Terratec EWS, etc) a more universal volume setup
> would be helpful ( it has four speaker volumes), but Abramo's proposal would
> be better suited since these soundcards have the ability to dynamically
> reconfigure to add/remove devices (i.e .- none/2/3/4 bands equalizer, 2/4
> speaker output, add/remove devices (surround, reverb, echo, ...), etc), the
> possibility of adding/removing mixer controls, and PCM manipulation would
> allow to support these features on the kernel.
> 
>   Since these features can be applied to any of the soundcard's channels
> (MIDI syntetiser, static wave (voices), input from the codec and PCM
> (dynamic) wave), May be these effects could be implemented as
> dynamically loaded sound processing modules (mixer channels) whose
> input/output could be routed (with routing switches) to another channels
> (the main sound output for instance).
> 
>   That way an application should be able to say: turn on the equalizer
> switch (that would make a 2/3/4 bands switch available to the application),
> set the switch to two bands (that would make four sliders avaiable, two for
> gain and two for center freq. ), connect it's input to the codec's output
> and it's output to the main output.
> 
>   The changes needed to the actual ALSA mixer structure should be minimum,
> mainly to allow for dynamic registering/unregistering of devices (channels)
> and sliders.
> 
>   To summarize it : A mixer is composed of switches (routing and nonrouting
> ones) and channels (devices), which in turn are composed of switches and
> sliders. The number of of channels, switches and sliders should be
> dynamically variable after having registered the device,  maybe an
> 'update_mixer' function ?.

The dynamic mixer change is very hard nightmare for me and the application
programmers, but the idea is nice.

>   That way a four speaker volume control could be represented by : a switch
> that selects between 2/4 speakers, and a set of 2/4 (depending on the switch's
> position) sliders to control the volume on each speaker.
> 
>   I think that the volume settings of each device should be done on the
> mixer (as they are done in real world) rather than in the device itself, buy
> maybe a pointer on each device, whose volume could be set, to it's
> associated mixer channel would be helpful.

I don't think so. The balance of voice among speakers (or subvolumes for 
each speaker) and the final volume for speakers are different things. 

							Jaroslav

-----
Jaroslav Kysela <perex@jcu.cz>
Academic Computer Centre, University of South Bohemia
Branisovska 31, C. Budejovice, CZ-370 05 Czech Republic


