All of lore.kernel.org
 help / color / mirror / Atom feed
* alsa userspace interface
@ 2007-03-18  2:10 Andrea Guzzo
  2007-03-19 10:08 ` Clemens Ladisch
  0 siblings, 1 reply; 3+ messages in thread
From: Andrea Guzzo @ 2007-03-18  2:10 UTC (permalink / raw)
  To: alsa-devel; +Cc: Stefan Richter, linux1394-devel

Hi,

some months ago I wrote an alsa driver for the Apple iSight audio unit.
I released it with the name "lisight' and it's available here:  
"http://lisight.sourceforge.net".
It's both an ieee1394 driver and an alsa one. It uses ieee1394  
framework to communicate
with the device and it registers an alsa device to make isight  
microphone available to the system.

Recently I was talking on the linux1394 mailing list about its  
submission to the mainline
kernel but  we are wondering if it's possible to register an alsa  
device from userspace.
Actually it would be a better approach to make an userspace driver  
when dealing with
removable devices like firewire or usb ones.
When I started writing the lisight kernel module , I tried to figure  
out if there were a way
to register an audio device from userspace...
I had the possibility to interact with the ieee1394 framework through  
libraw1394
(that uses raw1394 kernel module to access the firewire bus from  
userspace)
but I didn't found any documentation (nor references inside kernel  
sources) regarding an
alsa userspace interface to implement device drivers.
Is there any working or experimental one? ... If not, are you  
planning to export such an
interface to let developers make userspace drivers to deal with  
removable audio devices
without requiring applications to support jack or similar frameworks?

Thanks

Andrea Guzzo

ps.
Another interesting use of an hypothetical  alsa userspace interface  
for device drivers implementation would be
the possibility to implement virtual audio devices ....for example  
you could implement a
transparent sound server that doesn't require applications to support  
it explicitly and to link specific
libraries, but it would be simply accessed like any other alsa device  
and , with the use of substreams, it would allow
multiple applications to access audio facilities.... but this is  
another story :P 

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: alsa userspace interface
  2007-03-18  2:10 alsa userspace interface Andrea Guzzo
@ 2007-03-19 10:08 ` Clemens Ladisch
  2007-03-19 11:36   ` Pieter Palmers
  0 siblings, 1 reply; 3+ messages in thread
From: Clemens Ladisch @ 2007-03-19 10:08 UTC (permalink / raw)
  To: Andrea Guzzo, alsa-devel; +Cc: Stefan Richter, linux1394-devel

Andrea Guzzo wrote:
> we are wondering if it's possible to register an alsa device from
> userspace.

It is not possible to register a kernel device from userspace, but it is
possible to write a plugin that is used by the alsa library like a
kernel device.

Have a look into the alsa-plugins package.

> Is there any working or experimental one?

The FreeBoB project is writing an ALSA plugin for some IEEE1394 devices.

> Another interesting use of an hypothetical alsa userspace interface  
> for device drivers implementation would be the possibility to
> implement virtual audio devices ....for example you could implement a
> transparent sound server that doesn't require applications to support  
> it explicitly and to link specific libraries, but it would be simply
> accessed like any other alsa device and, with the use of substreams,
> it would allow multiple applications to access audio facilities....
> but this is another story :P

This story is called dmix.  This plugin has been part of alsa-lib for
years, and it doesn't need a server.  :-)


Regards,
Clemens

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: alsa userspace interface
  2007-03-19 10:08 ` Clemens Ladisch
@ 2007-03-19 11:36   ` Pieter Palmers
  0 siblings, 0 replies; 3+ messages in thread
From: Pieter Palmers @ 2007-03-19 11:36 UTC (permalink / raw)
  To: Clemens Ladisch; +Cc: Andrea Guzzo, linux1394-devel, Stefan Richter, alsa-devel

Clemens Ladisch wrote:
> Andrea Guzzo wrote:
>> we are wondering if it's possible to register an alsa device from
>> userspace.
> 
> It is not possible to register a kernel device from userspace, but it is
> possible to write a plugin that is used by the alsa library like a
> kernel device.
> 
> Have a look into the alsa-plugins package.
Might I raise the documentation issue here? Last time I checked (1.0.9) 
it was very difficult to understand what exactly was going on.

Glancing at the current alsa-lib-plugins I see that there are some new 
ones that might help.

> 
>> Is there any working or experimental one?
> 
> The FreeBoB project is writing an ALSA plugin for some IEEE1394 devices.


We could implement iSight support in our framework, it wouldn't be that 
much work I guess. The only issue could be that we have a more pro-audio 
point of view. However it is probably beneficial to both parties to use 
FreeBoB, as we have tried to make device support as easy as possible, 
abstracting everything related to audio API's and FireWire. If you know 
the device & the framework, implementing support is a matter of days.

Note however that unless somebody starts to help out, the FreeBoB ALSA 
plugin might take some time.

One major issue with userspace audio drivers is that stock/distro 
kernels are not good enough to make it work reliably with acceptable 
latencies (we're talking a videoconferencing device here). Having to 
install a RT kernel is IMHO only justifiable for (dedicated) 'audio' 
boxes, and should not be something that is required for 
videoconferencing. And if you would want to use them on stock kernels, 
you need a way to get SCHED_FIFO as an ordinary user, which again is not 
available on stock distro's.

Pieter
FreeBoB

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2007-03-19 11:36 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-03-18  2:10 alsa userspace interface Andrea Guzzo
2007-03-19 10:08 ` Clemens Ladisch
2007-03-19 11:36   ` Pieter Palmers

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.