Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 14 Jul 2004 13:51:44 -0700
From:      4Front Technologies <dev@opensound.com>
To:        freebsd-multimedia@freebsd.org
Subject:   Re: Does anyone compose music using any of the portsfromthe/ports/audio collection in FreeBSD?
Message-ID:  <40F59CE0.1070008@opensound.com>

next in thread | raw e-mail | index | archive | help
> On Tuesday 13 July 2004 17:31, Axel Auweter wrote:
> 
>> AFAIK it has already been discussed that porting ALSA to FreeBSD seems
>> to be nearly impossible.
> 
> Dev Mazumar of 4Front Tech wrote here some time ago they had/were working on
> an alsa emulation in (commercial) OSS. Perhaps he can comment on the status
> of it right now (and if it's going to be available in the FreeBSD versions of
> OSS).
> 
>> Does anybody know, whether there are any plans or ongoing projects to
>> create a better sound architecture for FreeBSD than OSS?
> 
> It's rather a question of making applications support !ALSA or at least some
> middleware. Inventing yet another API and replacing OSS with it will not produce 
> application support out of thin air (but instead would leave FreeBSD
> without any application support at all).
> 
> 
> =2D-=20
>    ,_,   | Michael Nottebrock               | lofi@freebsd.org
>  (/^ ^\) | FreeBSD - The Power to Serve     | http://www.freebsd.org
>    \u/   | K Desktop Environment on FreeBSD | http://freebsd.kde.org

Hi,

I think ALSA is going to be really to port to FreeBSD (without a lot of internal 
changes to FreeBSD kernel) because of high dependance on the Linux's /proc file 
system and Linux system calls that just arn't available for FreeBSD. OSS apps 
for Linux work nicely with FreeBSD's Linux emulation (case in point, check out 
Skype for Linux).

I'm not sure how well a Linux binary that has a high reliance on /proc and other 
Linux oddities will work on FreeBSD. OSS is designed with "pure" UNIX sematics - 
read/write/ioctl/poll/mmap and nothing else. Ofcourse I could be wrong about 
porting ALSA. Just that from our experiences on developing the ALSA emulation, 
it looked highly suspect.

It's actually easier to add OSS support to most apps. The problem is that none 
of the app developers have really understood OSS sequencers because they are 
lowlevel. ALSA provides better high level abstraction but we have already done a
libOSSlib.a sequencer abstraction for OSS - nobody bothered with it. As for MIDI 
I/O, OSS already has powerful support for MIDI input and output that are also 
the basis for ALSA. Where ALSA seems to be ahead is in terms of sequencing and 
this part is in the ALSA libraries rather than the kernel drivers.

We started with a project called Cuckoo - as a proof of concept that ALSA isn't 
all that it's cracked up to be (except for MIDI and even in MIDI, they rely on
the OSS lowlevel MIDI/Sequencer drivers).

We just gave up trying to keep pace with ALSA that keeps changing on a weekly
basis - now the Cuckoo module will not compile on the latest ALSA drivers in the 
Linux 2.6.7 kernels. QNX used ALSA 0.5 and gave up trying to keep pace and now 
QNX Audio is something like ALSA but none of the ALSA apps can actually 
recompile on QNX without major work.

We are working on OSS v4.0 and we would like to first invite FreeBSD audio 
driver maintainers to sit down with us and implement all the new mixer extension 
features that will allow FreeBSD driver developers to extend the old OSS mixer 
APIs to support more pro audio devices. OSS's mixer extensions are sane and 
aren't like ALSA's flat space (try running alsamixer on SBLive in Linux and then
compare our OSS mixer in FreeBSD and you'll see how well it's designed).

We have some work to do in the MIDI Sequencer space. We plan to address this and
we'll be happy to share our work with FreeBSD developers. Just that right now, 
we see that MIDI isn't important for music creation. Companies like MAudio are 
more focussed on pro audio than MIDI. The M-Audio Revolution 7.1 audio card 
doesn't even have a MIDI port.

We do plan on doing proper ALSA emulation for audio and MIDI by completely 
rewriting the ALSA Libraries to use OSS rather than ALSA lowlevel drivers.  It 
can be done, just a whole lot of work is needed. It's a better approach than 
using the Cuckoo concept because ALSA keeps changing internally and the only 
thing relatively stable would be the ALSA libraries. I hope that we have the 
time and man power to pull this off.

Right now there are so many cooler things we can do with audio - like 3D 
spatialization and other neat features (check out 
http://www.oss3d.com/usite/tech.html)

BTW, we're working on OSS 3.99.1 for FreeBSD (please see my post on the open() 
call under the freebsd-hackers ML). If we can get that going, audio for FreeBSD 
will totally rock.



best regards

Dev Mazumdar
-----------------------------------------------------------
4Front Technologies
4035 Lafayette Place, Unit F, Culver City, CA 90232, USA.
Tel: (310) 202 8530		URL: www.opensound.com
Fax: (310) 202 0496 		Email: info@opensound.com
-----------------------------------------------------------



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?40F59CE0.1070008>