Does anyone compose music using any of the portsfromthe/ports/audio collection in FreeBSD?

Conrad J. Sabatier conrads at cox.net
Wed Jul 14 22:28:36 PDT 2004


On 14-Jul-2004 4Front Technologies wrote:
> 
> I think ALSA is going to be really [difficult] 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.

Yes, most unfortunate that is.  I do believe this is one area where
FreeBSD should concede the fact that the other guys are doing a better
job at it than we are, and not resist the idea of borrowing from them.

> OSS apps for Linux work nicely with FreeBSD's Linux emulation (case
> in point, check out Skype for Linux).

Perhaps, but still, native support is what we need and want.

Speaking of which, I was browsing 4Front's site the other day and was a
little disappointed to see that even the existing FreeBSD support is
not available for amd64.  Is that likely to change anytime in the
future?

> I'm not sure how well a Linux binary that has a high reliance on
> /proc and other Linux oddities will work on FreeBSD.

My guess would be "not very well at all".  :-)

> 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.

Perhaps it's time to consider that what's needed is a new framework for
sound development.  If the existing "pure Unix semantics" are
insufficient, then there's nothing wrong with a little innovation.
 
> 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.

That's a shame.  I suspect it may have largely to do with the fact
that, as someone else mentioned in this thread, until we have better
hardware sound device support -- say, the ability to interface a MIDI
keyboard or even simply supporting *all* of a particular card's
capabilities-- then whatever such a library may have to offer will
still be of limited usefulness.

> 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.

Yes, this seems to be the main, crucial "missing link".
 
> 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.

Is there any hope at all of the Unix sound development community ever
coming together and agreeing on a cross-platform standard?  This seems
to be what's really needed, IMHO.
 
> 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).

This brings to mind yet another problem we face in FreeBSD: it appears
to me that the number of people actively involved in audio driver
support and development are pitifully few, far fewer than are really
needed to provide a wide range of complete support for a good variety
of hardware.

I'd volunteer to help out myself (I'm a fairly competent C coder), but I
would need a "crash course" in pretty much *everything* having to do
with sound and kernel driver development (which, of course, is most
likely completely unrealistic to even think about).

> 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.

BROING!!!  MIDI is *the* single most important aspect of music creation
for most people.  I'm astonished to see such a statement.

> 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.

I don't know the first thing about this company or this card, so I
can't comment, other than to reiterate that MIDI is very, very
important for musicians.

> 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.

Well, this certainly sounds encouraging!  Is there a mailing list for
tracking the state of development?  I'm sure I'm not the only FreeBSD
user who'd be very interested in this.

> 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)

That's all very nice, too, but *please* keep MIDI in mind!  :-)
 
> 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.

Thank you very much for posting this; you've given me hope!  :-)

And please don't forget the amd64 platform, either.  :-)

Take care,

Conrad

-- 
Conrad J. Sabatier <conrads at cox.net> -- "In Unix veritas"


More information about the freebsd-multimedia mailing list