Thursday, December 25, 2008

Boomer Beta Source Code Posted

Boomer, aka PSARC 2008/318 -- the new audio subsystem for Solaris, and the project I've been working on for the last several months -- has released source code for our work in progress. A status update and link to the webrev is available here.


Phobos said...


I've been kind of following Boomer's and OSS' development for some time now, and I have a question...

I have read the documents on and as I understood there are no plans of supporting things like MIDI, because they are not supported on OSS at this time...

but then, I read posts like this one: by Hannu, wanting to add MIDI support to OSS 4.2... but also expressing his dissapointment at how different Boomer is from OSS now, and how difficult will it be to integrate new features from OSS into Boomer...

Isn't this something that should have been taken in account before?.. will new features from OSS be integrated in opensolaris?

Garrett D'Amore said...

MIDI support is not a priority for us right now. It is unlikely that will ever change... there just isn't that much call for it anymore. (It used to be much more important when audio devices were 8-bit only, and MIDI was required to get high quality music from computers.)

We originally planned to integrate OSS "as-is", but there were a rather large number of technical reasons why this was just not possible -- there were severe architectural limitations in the 4Front code base, and trying to fix them all and retain purity to the upstream source at the same time was not possible. (I can't really express the full list of issues publicly at this time, but the list was large.)

We decided rather intentionally to "cherry pick" the best parts of 4Front's code, as well as some Sun legacy (for example the conversions Sun had in legacy for ULAW and ALAW were much higher quality, and Sun drivers have support for suspend/resume and dynamic reconfiguration).

We believe in this case, that Sun and Solaris was best served by making the best possible implementation for the audio stack we could do, while retaining fidelity to the OSS APIs and compatibility with the legacy Sun APIs.

We believe that it will be possible to cherry pick some of the innovations that come from 4Front in the future, but we reserve to the right to decline to integrate features that we believe are not terribly relevant, or will cause more support issues than solve problems. (I believe MIDI falls into this category.)

Notably, we aren't the first OS to elect to take this approach. The same approach to 4Front's code base (cherry picking) has been used by both Linux and the BSDs. While many believe that the rationale was license based, I believe at least part of the rationale was technical in nature.