sound in FreeBSD , opinions

Hi, I dont wanna make a "versus" topic , but OSS or PULSEAUDIO ?

what sounds better and have more quality?

my scenario is:

sound output through mi nvidia card to the tv , and then to the home theather

I was move to pulseaudio because of /usr/ports/multimedia/kodi , I need an equalizer so bad, and a got it, sounds good
and plus this settings in daemon.conf

Code:
realtime-scheduling = yes
resample-method = src-sinc-best-quality
default-sample-format = float32le
default-sample-rate = 44800

and in OSS all my life , bitperfect enabled and a modified port of
/usr/ports/multimedia/audacious gtk2 version

I'm not a audiophile , but allways have a good ear
the music all in .flac format and movies...I dont care much

besides, I noticed that /usr/ports/multimedia/audacious has become very slow when turn up o turn down the volume and
the basic visualizations become too slow too, this using OSS (with and without bitperfect enabled,using the analiog output of my motherboard,using the legacy version of audacious,etc)
But with pulseaudio not,everything is working fine

sorry for the offtopic, but opinions , guys?
what you preffer? Oss or Pulseaudio?
and if is Pulseaudio, what can I do to improve sound quality to the best quality?
 
There is really no comparison.

sound(4) is the engine of FreeBSD digital audio. OSS is the interface. Pulseaudio is the server, consuming sound(4) via its OSS backend.

Pulseaudio can only sound nominally as good as OSS, not better. Does it per default? I think it does.
 
OSS if you want high quality audio including pass-through and bit-perfect audio. Pulseaudio often interferes with things (bit-perfect audio, passthrough), causes lagg and was the reason I migrated my HTPC from Ubuntu to FreeBSD.

With Kodi and OSS, using a NVidia GT1030 for HDMI Output, I get:
  • Pasthrough audio up to and including TrueHD 7.1 with Atmos and DTS:X 7.1
  • PCM up to 7.1 channels in 24bit with 192 kHz (HDMI limit)
  • Bit-perfect audio (PCM)
Tips:
Use a desktop environment that does not force Pulseaudio on you. MATE is a good option.
If you want to keep your environment Pulseaudio-free, build from Ports and put into your /etc/make.conf:
Code:
OPTIONS_UNSET+=PULSE
OPTIONS_UNSET+=PULSEAUDIO

If you want Kodi to use OSS, build it without any of the audio options, it will then default to OSS.
 
OSS if you want high quality audio including pass-through and bit-perfect audio. Pulseaudio often interferes with things (bit-perfect audio, passthrough), causes lagg and was the reason I migrated my HTPC from Ubuntu to FreeBSD.

With Kodi and OSS, using a NVidia GT1030 for HDMI Output, I get:
  • Pasthrough audio up to and including TrueHD 7.1 with Atmos and DTS:X 7.1
  • PCM up to 7.1 channels in 24bit with 192 kHz (HDMI limit)
  • Bit-perfect audio (PCM)
Tips:
Use a desktop environment that does not force Pulseaudio on you. MATE is a good option.
If you want to keep your environment Pulseaudio-free, build from Ports and put into your /etc/make.conf:
Code:
OPTIONS_UNSET+=PULSE
OPTIONS_UNSET+=PULSEAUDIO

If you want Kodi to use OSS, build it without any of the audio options, it will then default to OSS.

Yes, I build kodi from ports , OSS sounds good, but the only reason what I'am using pulseadio is the missing equalizer(this is a kodi missing feature) but still...
 
Yes, I build kodi from ports , OSS sounds good, but the only reason what I'am using pulseadio is the missing equalizer(this is a kodi missing feature) but still...
I'd improve the output devices before using software to mask it.

I'd rather EQ at the receiver/amp before the speakers: No software on the OS involved (no extra latency/resources; consistent any-OS), and probably more authentic to what's altered (what's a 22Hz slider on software Treble really doing behind-the-scenes? and is it technically doing the same when it's DAC'd to analog speakers, or getting altered more on the OS/driver paths after software EQ? dropping 22Hz a bit on software EQ might cause extra noise to compensate the missing stuff on the receiver; or something, software EQ is fun stuff I'd rather not deal with :p)


Outside of 90s sound cards, DirectSound, and ALSA, I assume anything on the OS today adds latency or produces inconsistent/unreproducible output; I want audio unmodified as-is from the player to the host device's output port as much as possible (like ASIO).
 
I'd improve the output devices before using software to mask it.

I'd rather EQ at the receiver/amp before the speakers: No software on the OS involved (no extra latency/resources; consistent any-OS), and probably more authentic to what's altered (what's a 22Hz slider on software Treble really doing behind-the-scenes? and is it technically doing the same when it's DAC'd to analog speakers, or getting altered more on the OS/driver paths after software EQ?)
exactly, I read about that, the users of kodi explain that way, there is no need for an equalizer, the external hardware do that, but I dont have money to buy hardware improvements
Still use software equalizers...
 
the external hardware do that, but I dont have money to buy hardware improvements
What's the TV and home theater?
  • I have my laptop hooked to a TV HDMI, and my TV has EQ options (not ideal but better than laptop speakers)
  • When I used a headless DVD player as a speaker receiver for my laptop I could do the EQ on the receiver (temporarily connected a TV and did it in menus)
  • Really old 1900s receivers had buttons/knobs and made it easy :p
  • Worst-case I had a random subwoofer that came from a DVD home theater kit (no EQ; was a speaker amp basically), but sound was fine depending on the speaker connected to it
 
Sometimes I wonder, what's the hangup on enabling some audio systems on FreeBSD and disabling others?

I just compile my stuff from ports, from scratch, and enable all the sound systems available: OSS, JACK, Pulseaudio, Pipewire, SND, Portaudio, ALSA... they don't take up much room, either as distfiles or compiled stuff. And the payoff is that I don't have to bother with some individual sound system not working. :P
 
Sometimes I wonder, what's the hangup on enabling some audio systems on FreeBSD and disabling others?

I just compile my stuff from ports, from scratch, and enable all the sound systems available: OSS, JACK, Pulseaudio, Pipewire, SND, Portaudio, ALSA... they don't take up much room, either as distfiles or compiled stuff. And the payoff is that I don't have to bother with some individual sound system not working. :P
I disliked the idea of installing pulseaudio when trying to install obs-studio and didn't install obs-studio for a while :p (I installed it eventually and it ended up not being able to record from windows or something)

I don't like building core software or having build environments for em, and OBS Studio seems like it'd have a lot of dependencies.
 
I disliked the idea of installing pulseaudio when trying to install obs-studio and didn't install obs-studio for a while :p (I installed it eventually and it ended up not being able to record from windows or something)

I don't like building core software or having build environments for em, and OBS Studio seems like it'd have a lot of dependencies.
Really sounds like a case of tossing the baby out together with the bath water... don't like Pulseaudio, so you miss out on OBS Studio 😂

In my case, if it compiles, I build it, and don't give a rat's ass about anything else.
 
I only have oss on my box. I had to change a setting in firefox to get sound to play on youtube videos via oss:-

about:config
and set ' media.cubeb.backend = oss' (its a string)

Virtual oss is very useful too, I used that to get bluetooth audio working on the thinkpad. I'm still learning about that, I've put it on one side, I need to go back to it at some point.
 
While talking about sound... I've just got a new 4K monitor which doesn't have any speakers. It has a headphone jack output though. Can anyone recommend a good set of small wired speakers I can use? I seem to remember logitech used to make them? I don't need a sub, I want really small ones.
 
I did a test of some cheap USB dac's recently.


The main gotcha I found was that setting hw.snd.default_auto to 1 didn't appear to work as I expected, namely to set hw.snd.default_unit to the most recently plugged in sound device. It does switch back to the onboard dac when I pull the usb dac out though. It's a pain having to manually assign the default_unit each time I plug the usb dac in. Did I misunderstand something or do something wrong? I couldn't get that part to work. Other than that it all worked.
 
What's the TV and home theater?
  • I have my laptop hooked to a TV HDMI, and my TV has EQ options (not ideal but better than laptop speakers)
  • When I used a headless DVD player as a speaker receiver for my laptop I could do the EQ on the receiver (temporarily connected a TV and did it in menus)
  • Really old 1900s receivers had buttons/knobs and made it easy :p
  • Worst-case I had a random subwoofer that came from a DVD home theater kit (no EQ; was a speaker amp basically), but sound was fine depending on the speaker connected to it

its true, the home theater have bass,treble and middle settings(level from 1 to 6) but I want eq frecuencies , and the tv have equalizer but for internal speakers only (I use hdmi arc sound output)
 
OSS has very strong equalizer features but there is no nifty graphical tool installed by default. You can take a look at the command line way, see FreeBSD Mixer or install something like audio/fossmixer to name just one option.

Personally, I do not want the computer to mess with equalization, that is part of the job of the audio processor (some people refer to this as "pre-amp").
 
I run jackd on top of the sound hardware and then route the master through the Jamin mastering plugin for EQ etc. and a pulseaudio demon on top (I don't play music through pulse, pulse is for software that doesn't offer jack support). But that happens not to be on FreeBSD right now, I dunno how many obstacles are there on FB.

The demons should be directly change sound quality, your transducers (speakers, headphones, microphones) are much more important.
 
Now I discover virtual_oss , I got it running as root, but I cannot use the virtual_equalizer

any guide to setup?
 
I'm using pulseaudio, as when I've first tried audio on FreeBSD, any ports I've tried didn't work well with direct OSS at the moment (maybe FreeBSD 3.x or 4.x, if I recall correctly), but almost all of them worked fine when I enabled PULSEAUDIO option and rebuild / reinstall them.
Maybe it was oldest OSS stack.
 
I'm using pulseaudio, as when I've first tried audio on FreeBSD, any ports I've tried didn't work well with direct OSS at the moment (maybe FreeBSD 3.x or 4.x, if I recall correctly), but almost all of them worked fine when I enabled PULSEAUDIO option and rebuild / reinstall them.
Maybe it was oldest OSS stack.
There was no Pulseaudio at the time FreeBSD 3.x or 4.x was around - which was 25 years ago. Quite possible that OSS did not work well back then, it was basically completely different from today. Did you manage to install Pulseaudio on FreeBSD 4 (respect!) or are we talking apples and oranges here?
 
There was no Pulseaudio at the time FreeBSD 3.x or 4.x was around - which was 25 years ago. Quite possible that OSS did not work well back then, it was basically completely different from today. Did you manage to install Pulseaudio on FreeBSD 4 (respect!) or are we talking apples and oranges here?
I've not recorded the date I first installed pulseaudio. So used the term "maybe". What's the point was "it was qute old days".

Tracking the first commit to audio/pulseaudio/Makefile, it was Revision 175253 at Sat Oct 14 08:35:50 2006 UTC (19 years ago).
And tracking the date releng/* is tagged for release/*.0, 6.2.0 was at 2007-01-11 22:54:45 +0000 and 6.1.0 was at 2006-05-06 19:24:13 +0000.
 
There was no Pulseaudio at the time FreeBSD 3.x or 4.x was around - which was 25 years ago. Quite possible that OSS did not work well back then, it was basically completely different from today.

There was VoxWare, first sound for open source x86 Linux and BSD.
(proprietary Unixen like SCO had their own sound APIs)

After a few years it became standard and renamed or redubbed as OSS. I think this first version had problems with multiplexing clients and was basically running devices in exclusive mode. Thus both of the systems looked on further - in our case Luigi Rizzo wrote pcm kernel module retaining OSS interface, in Linux case ALSA was booted - different thing but with internal OSS compatibility.

Meanwhile the original VoxWare/OSS author and 4Front company started to roll out a closed next-gen OSS successor.

Technically, unless you install 4Front OSS there is no OSS running anywhere, its just some other pieces of software are using its interface specification.
 
Back
Top