# PCM and VoxWare/OSS/ALSA



## Niatross (Dec 10, 2012)

Did FreeBSD and Linux go different routes when it comes to sound (Linux going the ALSA route and FreeBSD going the PCM route)?

To me, it looks like FreeBSD left the Linux written VoxWare sound driver (which later turned into OSS) and created their own sound driver from scratch.

Is this correct or do I have it all wrong?


----------



## SirDice (Dec 11, 2012)

I don't know where Linux is going, it seems to change every so often.

As far as I know the FreeBSD audio system was written from scratch and is mostly OSSv4 compatible.


----------



## Niatross (Dec 11, 2012)

SirDice said:
			
		

> I don't know where Linux is going, it seems to change every so often.
> 
> As far as I know the FreeBSD audio system was written from scratch and is mostly OSSv4 compatible.



Is OSSv4 only used for older sound cards in FreeBSD? Another question: Is OSSv4 only used when the GENERIC kernel and the "snd_driver" does not include a device driver for an older sound card?


----------



## SirDice (Dec 11, 2012)

Contrary to Linux FreeBSD has a single, complete, sound framework. All (soundcard) drivers use this framework. So it doesn't matter if it's an 'older' card or not.


----------



## Niatross (Dec 11, 2012)

SirDice said:
			
		

> Contrary to Linux FreeBSD has a single, complete, sound framework. All (soundcard) drivers use this framework. So it doesn't matter if it's an 'older' card or not.



I've aways used the snd_driver to find the correct kernel module, but when do you need to use OSSv4 (meaning...when do you need to pkg_add -v -r oss)?

I see some users having to install the OSS package to get their sound card working.


----------



## SirDice (Dec 11, 2012)

If the soundcard isn't supported by FreeBSD it _may_ be supported by audio/oss.


----------



## Niatross (Dec 11, 2012)

SirDice said:
			
		

> If the soundcard isn't supported by FreeBSD it _may_ be supported by audio/oss.



I'm getting a little confused now. I've aways used the snd_driver to find the correct kernel module. Isn't this method called PCM? Isn't PCM the newest FreeBSD sound framework? Isn't PCM the new FreeBSD sound system that has been built from scratch?

Read this and tell me what you think:

http://wiki.freebsd.org/Sound

Now why do we need OSS when we already have its successor (PCM)? Why isn't there PCM drivers for all these sound cards. Why is OSS even around anymore?

My "lame ass" is not getting what your saying. Can you put it in Layman's terms? The link (above) makes it sound like PCM is the successor to OSS. Then why are we using OSS device drivers for some sound cards...still?


----------



## SirDice (Dec 11, 2012)

PCM is Pulse Code Modulation and is one way of representing sound. It has nothing to do with the framework (API/ABI) itself.


----------



## Niatross (Dec 11, 2012)

SirDice said:
			
		

> PCM is Pulse Code Modulation and is one way of representing sound. It has nothing to do with the framework (API/ABI) itself.



What is the FreeBSD framework or sound system called then? Is it called OSS?


----------



## SirDice (Dec 11, 2012)

Does it matter? All you need to know is that it's mostly OSSv4 compatible.


----------



## Niatross (Dec 11, 2012)

SirDice said:
			
		

> Does it matter? All you need to know is that it's mostly OSSv4 compatible.



I've never used Linux, but I wonder if DMESG displays multimedia devices as PCM? Seems like it would...maybe not though...


----------



## Niatross (Dec 11, 2012)

SirDice said:
			
		

> If the soundcard isn't supported by FreeBSD it _may_ be supported by audio/oss.



One last question... How come the audio/oss drivers are not included in the base system? How come they are added as third party? Too much bloat to add them to the base system? Base system only includes the most popular OSS sound drivers?


----------



## SirDice (Dec 11, 2012)

audio/oss is not supported by the FreeBSD developers, it's a third party piece of kit. As such the sound system of FreeBSD has nothing to do with it. Even though they share a common API/ABI.

The drivers in the base are stuff that's been submitted/added by people like you and me.


----------

