All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Charbonnel <thomas@undata.org>
To: ALSA development <alsa-devel@alsa-project.org>
Subject: [RFC] hdsp plans and alsa integration
Date: Mon, 09 Feb 2004 12:58:04 +0100	[thread overview]
Message-ID: <402775CC.9070902@undata.org> (raw)

Hi,

I've been thinking for some time now about allowing several applications 
to access the hsdp matrix mixer in a cooperative way. Basically I want 
several applications to share the current state of the matrix mixer and 
be aware of the changes being made to it.
The problem at the moment is that hdspmixer does not directly reflects 
the hardware because it adds a software attenuation stage on the 
physical outputs (the third row of faders). Any change on this row is 
interpreted tracking back all the signals routed to the specified 
output, applying the proper attenuation and converting this to standard 
mixer calls. This renders the alsa ctl callback mechanism useless, 
because if another application accesses the mixer ctl, hdspmixer will 
have no way to interpret it properly.
I first thought of implementing the output attenuation stage directly in 
the driver but I now believe it would be a very bad idea to do this in 
kernel space (heavy computation, particularly with the new hdsp madi 
cards). So I came up with the idea of writing a userspace daemon that 
will access the card's mixer and be the keeper of this extended mixer 
representation. I would also write a library to handle communication 
with the daemon, and provide a callback mechanism to warn all the 
clients of changes made to the extended mixer. The daemon could be 
controled also from the network, which would make the whole system very 
flexible. You could have hdspmixer running on a machine without any hdsp 
hardware, controling the mixer of different hdsp cards on different 
other machines on the network. You could easily control the mixer from a 
pd patch, or a ladspa plugin, or ardour through an enhanced set of jack 
monitoring calls. A nice point would also be to have the daemon provide 
an optional ramping mechanism on mixer changes to avoid zipper noises 
and make it usable in live mixing situations.

Now my question is does that fit within the scope of alsa ? Mabe the lib 
could be integrated to alsa-lib and the daemon to alsa-tools ?
Any comment on this is welcome.

Thomas




-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn

             reply	other threads:[~2004-02-09 12:58 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-02-09 11:58 Thomas Charbonnel [this message]
2004-02-17 15:48 ` [RFC] hdsp plans and alsa integration Takashi Iwai

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=402775CC.9070902@undata.org \
    --to=thomas@undata.org \
    --cc=alsa-devel@alsa-project.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.