Sun Au *is* ULAW. (Or rather the most common format used for .au files is 8-bit ULAW.) Technically .au files can have PCM, or even some other less common formats; boomer only supports ULAW and PCM. (Hmm… it might support ALAW also, I don’t recall.)
There is *nothing* to be gained by removing it, since we convert it to PCM, and the conversion is practically free. (Its done by a very simple lookup table, no actual math is involved.) Removing ULAW would break legacy Sun audio apps. *Not* going to happen. Boomer has a lot of OSS code in it, but I thoroughly gutted it, and optimized the hell out of it. (Notably all the divisions that the OSS code did on each sample for mixing and same rate conversion were removed, and replaced with much simpler shift operations by applying some fairly straight-forward constraints. I also designed it to work better with the Solaris stack - including adding support for streams based audio consumers as well as ordinary /dev/dsp device use, and added interrupt-free audio processing as a purely local innovation. I did drop any hints of MIDI support, as they were largely useless for the Solaris community (at that time I was a Sun employee). We just wanted solid high performance audio support for folks with desktop and laptop systems, including support for high bit rate and surround sound channel support (all of which Boomer supports.) All this said, I can’t see any reason to do CELT in the kernel. The stuff has to be converted to PCM before it can be sent to actual audio hardware anyway, and PCM is already handled in the kernel (and boomer knows how to mix it, how to apply volume adjustments, etc.) So its just as easy to do that up in user space, and frankly there may be other reasons. For example, if floating point computations are required, then you *can’t* do it in the kernel (at least not without major contortions) — likewise getting access to MMX parts of the chip etc. are much easier in user land. Far easier to simply supply a CELT library that applications can make use of. (Likely this already exists.) Your understanding of CDDL and the software is, unfortunately, greatly flawed. The CDDL already gives us the unrevokable right to use, modify, and redistribute the software. No action from Oracle is necessary, or even desired. Furthermore, there is no legal entity such as an illumos foundation. (I had planned to start one, but this never got traction, and stalled out years ago.) Getting any action from Oracle, whatsoever, on illumos is unlikely to ever happen. They have yet to actually acknowledge that the project even exists, even after all these years. Furthermore, open sourcing generally requires attention from very senior mgmt at Oracle (usually Larry Ellision or Safra Catz I think), and none of them are going to even spend 10 seconds thinking about this, because there is no business justification for them to do so. If it doesn’t translate to money or shareholder value, they aren’t going to pay attention. Good thing it doesn’t matter if they do or not! - Garrett On Tue, Oct 3, 2017 at 9:29 PM John Howard <[email protected]> wrote: > Thanks for considering these audio issues and setting us straight about > the CELT->PCM 48 kHz synchronicity already in Boomer. However, I am still > arguing for a change toward innovation. > > There is no standard container format for CELT audio (or Dirac video) > yet. Let's upgrade Sun Au (which is PCM) with CELT to set a new standard. > Opus project gives us the opensource CELT->PCM player and recorder. (Be > sure to disable the two SILK modes to remove Microsoft's legal ability to > strangle competition from using CELT via controlling Opus.) > > (I went through the illumos audio subsystem code almost three years ago > before I switched from FreeBSD. All I remember is it looked like a > specialized prior version of Open Sound System with the MIDI support > disabled. No other opensource OS I knew about had done that. Not Linux. > Not FreeBSD. So here I am.) Boomer sounds like the solution I am looking > for. > > I did not want anyone to lose the existing PCM unless it needed upgrading > to synchronize with CELT. So I suggested an integration or plug-in > solution. The multi-channel streaming capability of Boomer might best be > integrated to directly support CELT's multi-channels content. Boomer does > not have to be abandonware. We would have a new container format for the > best two audio formats. > > PCM is never going away, nor should it. Popular Microsoft WAVe easily > transcodes to whatever PCM format is used by Sun Au. > > But ULAW is a different story. Old telecom codecs are irrelevant to a > move toward innovation. If ULAW is supported in the Sun Au container > format then it is clutter. And if ULAW is supported directly in the Boomer > audio subsystem then it is a mistake not to replace it with the best > realtime audio codec there. Sadly, if Boomer is so capable (and I trust > that it is) then why consider it abandonware? Abandon the clutter. > Support the innovation. > > While I have your attention: > If it is true that Oracle is shifting toward Linux then maybe there will > be a time soon they don't care anymore about Sun Au format or the > OpenSolaris project assets. Perhaps Oracle can assign the CDDL assets to > illumos Foundation, in that case. I am suggesting to be open to acquiring > the copyright for CDDL so the illumos derivation of OpenSolaris can > entirely control its own destiny. Oracle might want to rid itself of the > legal liability to defend the CDDL. > > -- John > P.S.: (There are innovations to discuss about the most popular file > system. But I am stopping so these multimedia innovations can be digested.) > > On Sat, Sep 30, 2017 at 10:40 AM, Garrett D'Amore <[email protected]> > wrote: > >> For most audio devices boomer runs at either 192kHz or 48 kHz. If I >> recall there are not any mainstream audio chips that prefer 44.1. Boomer >> has sample rate conversion to support many streams with various different >> sample rates. (For the record I was the lead engineer on Boomer. ) >> >> The ulaw compatibility is requires for support with legacy apps. The >> format is simple and boomer supports by conversion to pcm (48khz usually) >> under the hood. There is no point in removing it. >> >> Today you can stream pcm audio at any sample rate to 192kHz or ulaw (also >> any sample rate) and boomer just works. You can mix streams even with >> different formats and sample rates. >> >> Supporting other audio codecs is not the job of boomer, which is the >> kernel audio stack. Rather that should be done in userland which should >> then feed audio as pcm to boomer. >> >> - Garrett >> >> On Sat, Sep 30, 2017 at 5:08 AM John Howard <[email protected]> >> wrote: >> >>> On Tue, Sep 26, 2017 at 11:33 AM, Garrett D'Amore <[email protected]> >>> wrote: >>> >>>> Under the hood, you’re using the Boomer audio subsystem. This is the >>>> kernel audio you’re using, and it only understands very simple PCM and ULAW >>>> formats. (ULAW is required for compatibility reasons; it’s a simple low >>>> quality format.) >>>> >>> [..snip..] >>> >>> ULAW compatibility for what? Granted, preserving the current version of >>> the Au format requires it. But future final version of Au would not >>> require it. >>> >>> The Boomer audio subsystem is likely not using the 48 kHz sample >>> frequency at the heart of Opus CELT. I am guessing Boomer is using the >>> MIDI 44.1 kHz standard adopted for CD Audio PCM. MIDI 44.1 kHz audio >>> quality will always be worse than the 48 kHz design. Perpetual resampling >>> between the two by the subsystem will be a needless waste of CPU time. >>> That is why I suggest removing the old telecom ULAW and upgrading the PCM. >>> Why allow low-quality audio anymore? >>> >>> Simply integrate the best two forms of audio format into one final audio >>> system. Might as well retain the name Sun Au to attract burgeoning >>> interest specifically to illumos. >>> >>> I’d actually like to see the Sun audioplayer and audiorecord utilities >>>> go the way of the dodo. They are really old and crufty, written in a quite >>>> old dialect of C++, and difficult to extend. There are vastly superior >>>> alternatives available, such as gstreamer based utilities, etc. It would >>>> be trivial to implement an audioplay / audiorecord workalike on top of >>>> those utilities. (The audiotest and audioctl programs are much newer — >>>> delivered with Boomer, and need to remain in order to test and control the >>>> underlying audio drivers and hardware, however.) >>>> >>> [..snip..] >>> >>> Agreed. Opus CELT provides commandline audio player and recorder tools >>> which were used to test improvements during its development. Simply use >>> these two and upgrade the kernel handling of PCM to eliminate the >>> resampling between 48 kHz CELT & PCM. CELT supports multichannel HD sound >>> systems. And CELT offers that in realtime Internet audio for live music >>> broadcasting. Consider how the iPod MP3 iTunes craze sustained Apple long >>> enough to develop the iPhone. Successful products are stepping stones into >>> the future. >>> >>> (illumos-based Internet Radio servers using CELT and PCM Au would be an >>> improvement. Initially, there are few clients to receive in that format. >>> This is why I suggested reusing the familiar Real media container formats.) >>> >>> I just thought it would be easiest to replace the Sun Audio at the >>> kernel level with a one-time upgrade. >>> >>> It’s kind of sad, but in truth boomer is sort of abandonware. Meaning >>>> I’m not working on it anymore, and I don’t know of anyone else that is. >>>> This is as much as or more from lack of demands as lack of interest on my >>>> part. Truthfully almost nobody uses illumos on the desktop/laptop, and for >>>> those that do the software we have (boomer wise) is normally adequate. >>>> >>>> - Garrett >>>> >>> >>> This is why it needs to be finalized, at the kernel level, by someone >>> who knows where to change it. >>> >>> I agree there are currently few users of Sun Audio. Ideal time to >>> change it if it is going to be changed at all. >>> >>> Few PC users are aware of illumos. Many are confused into thinking >>> LInux is Unix. Most are unconcerned because their PC is pre-installed with >>> Windows. Genuine Unix as a stepping stone must appeal to the personal >>> side. For example, Epson provides an opensource Linux driver that >>> generically controls all their Home Office printers using their ESC/P >>> language. Increasingly, people are working from their homes. Simply >>> having the generic driver from Epson pre-installed would open opportunities >>> for illumos-based distros that align with personal trends. The same idea >>> applies to pre-install support for the best opensource multimedia services, >>> which has much wider appeal. Added directions to use illumos don't prevent >>> its traditional uses. So, yeah, I want to direct a unique distro with wide >>> appeal to PC users. >>> >>> -- John >>> >>> On Tue, Sep 26, 2017 at 8:27 AM John Howard <[email protected]> >>>> wrote: >>>> >>>>> I would like CELT integrated or plugged into Sun Audio player/recorder >>>>> and the AU format. CELT is better than proprietary MP3 and a considerable >>>>> innovation. Opus consists of CELT, Microsoft (Skype) SILK, and SILK + >>>>> CELT >>>>> hybrid. SILK is designed for a congested Internet causing Realtime Audio >>>>> packet loss, which is irrelevant to non-Skypers. Safely ignore the hybrid >>>>> mode support and SILK. OPUS CELT is the current improved version and >>>>> sufficient for Realtime Audio play and record. I used Opus alot on >>>>> FreeBSD >>>>> to record better-than-CD-quality audio. CELT is the best open source >>>>> audio >>>>> codec available. >>>>> >>>>> In illumos I have only tested using the AudioHD device driver and the >>>>> Sun Audio player of the sample PCM AU files. Sounds great on my desktop >>>>> PC. I don't know what sound system is being used underneath. All the >>>>> obsolete telecom codecs supported by Sun AU should be removed, leaving >>>>> only >>>>> fast paths for PCM and CELT handling. >>>>> >>>>> Another needed innovation is Dirac video codec accelerated by the >>>>> GPU. Dirac got a bad rap from a college kid writing a Signal/Noise Ratio >>>>> critique to graduate, and a publish-or-perish person trying to move up. >>>>> Its reputation was sabatoged before it got off the ground because it >>>>> competes with proprietary MPEG4. Dirac is the best open source video >>>>> codec >>>>> available. Some specialized tweaks can make it even better. It is still >>>>> available from GStreamer despite its corporate abandonment. >>>>> >>>>> Heirloom Toolchest at SourceForge modernized Sun tools and Caldera >>>>> tools under the CDDL. Heirloom replaces many of the CLOSED BINS such as >>>>> pax, od, sed, tail, tr. Its troff tool produces excellent PDF with >>>>> micro-typography taken from TeX. Heirloom Unix commands can be used >>>>> without interfering with existing Unix commands (or GNU tools). All the >>>>> Heirloom Tools were upgraded to use UTF-8 and can be extended to use Big >>>>> Endian UTF-32. This changes the fundamental unit of Information >>>>> Technology. It potentially affects the design of Text Devices, and any >>>>> program event loop. System software and User software will be affected by >>>>> it. >>>>> >>>>> Ideally, the Real Audio and Real Video and Real Text formats should be >>>>> upgraded with these three innovations to multimedia along with JPEG2000 >>>>> Real Image. Real Time Streaming Protocol using these formats is still >>>>> available from GStreamer despite widespread abandonment of the proprietary >>>>> Real Networks codecs in favor of MPEG4 and MP3. It is the proprietary >>>>> Real >>>>> container format that is still useful. Their Helix project opens it to >>>>> future innovation. Here it is. >>>>> >>>>> -- John >>>>> > *illumos-discuss* | Archives > <https://illumos.topicbox.com/groups/discuss/discussions/T83f198c8597cf8e3-M71095caeca2d04d839c86d36> > | Powered by Topicbox <https://topicbox.com> ------------------------------------------ illumos-discuss Archives: https://illumos.topicbox.com/groups/discuss/discussions/T83f198c8597cf8e3-Mdf138e575c8751f2754bd11c Powered by Topicbox: https://topicbox.com
