OSS Audio

Sid sid at bsdmail.com
Fri Dec 15 10:30:12 UTC 2017


That's good that Jack isn't needed.
It appears, as of the last few months or year, OSS is able to play sounds from different programs simultaneously.

What about physical input jacks for mic and line in?
  # cat /dev/sndstat
  installed devices
  pcm0: <Realtek ALC887 (Rear Analog)> (play/rec) default
  pcm1: <Realtek ALC887 (Front Analog)> (play/rec)
  pcm2: <Realtek ALC887 (Onboard Digital)> (play)
  pcm3: <Realtek ALC887 (Rear Digital)> (play)
  pcm4: <ATI R6xx (HDMI)> (play)
One cluster of physical inputs/outputs can be chosen, but using more than one set of inputs isn't always necessary.

There are different implementations of OSS, because it has been often forked or added into various projects, including under less permissive licenses, still under the OSS name, to many times become cluttered. This is common for a project of a permissive license to be taken in by various projects, such as ALSA, that use GPL or even proprietary licenses. Most forked OSS versions are made to suit or work under other sound architectures, applications or an OS's purposes, not necessarily making them better. I realize that FreeBSD's version of OSS is not depreciated, is fairly efficient, and is functional as it is what FreeBSD uses as /dev/sndstat. For the sound frontend, it depends on what the port/program has available from OSS, SNDIO or portaudio, to play on FreeBSD's OSS backend.

 
> blubee blubeeme gurenchan at gmail.com - Fri Dec 15 07:49:28 UTC 2017

>> If I can provide OSS audio/midi input and output for the tools that I use,
>> then I can do all the routing natively with OSS.

> There's nothing in FreeBSD that makes the sound architecture only support 1 audio device.
> These were issues with earlier versions of OSS implementation; please remember the days of rebooting your system to get new devices to show up.
 
> All those issues have been sorted out in OSS 4.0 and above.
 
> OSS API is like working with file descriptors;

> The open() system call
> The close() system call
> The read() system call
> The write() system call
> The ioctl() system call
> The select() and poll() system calls
> The mmap() system call
 
 
> Jack audio is NOT necessary, I already ported amsynth over to FreeBSD, they had a very old implementation of OSS backend for midi that just worked with my midi keyboard.
> I spoke to the developer and he also updated his code to the newest version of OSS, here's some code: https://github.com/amsynth/amsynth/commit/7171bd4d945c5938442b80f4276b7e096f06a3a0#diff-0b31b8315cadf5e7556f54a245817f90[https://github.com/amsynth/amsynth/commit/7171bd4d945c5938442b80f4276b7e096f06a3a0#diff-0b31b8315cadf5e7556f54a245817f90]
 
> There's a lot of misinfo out there about OSS being depreciated or dead, that's not the case.
> From looking at what's available OSS is one of the most straight forward and stable Audio API's out there.
 
> If you want to test for yourself, install audio/oss then run osstest and report back.
 
> There's ALSA plugins for OSS that would provide better audio vs the way things are implemented right now.


More information about the freebsd-ports mailing list