-   Slackware (
-   -   OSSv42-2004 released, fixes SBo compile error in -current (

linuxs64 01-07-2011 09:17 AM

OSSv42-2004 released, fixes SBo compile error in -current
Encountered error when building OSSv42-2003 (SBo) in -current, upgrading to OSSv42-2004 fixed the problem.

OSSv42-2004 was released 2 days ago:
download page

SBo page

If you use slackware for audio entertainment or work, OSS is the preferred choice for sound quality. It works with jack and wine.

igadoter 01-07-2011 01:31 PM

Many thanks for info.

linuxs64 01-08-2011 03:54 PM

Found another problem (and solution), so I'm going to document it here.

Using custom -current kernel with pre-empt, installed gsb-current, then switched from alsa to ossv42-2004 without problems.

Installed jackd, qjackctl, jamin and other jack-aware apps (ie gsb totem via gstreamer, mplayer, smplayer etc), no xruns but with stutter and mild pops during playback when routed via jamin to any of the apps above.

Solution: Source


Making OSS work with Jackd

(OSSv4.2 only) You can make OSS ignore jackd's request for exclusive ownership of the device by setting "excl_policy" in /usr/lib/oss/conf/osscore.conf. This will make jackd use vmix, preventing both of the side-effects above.

edit file /usr/lib/oss/conf/osscore.conf, uncomment section in bold below

# By default the O_EXCL open() flag can be used to bypass the virtual mixer.
# Setting excl_policy to 1 or 2 makes OSS ignore O_EXCL. A setting of 1
# ignores O_EXCL from all but root processes, while a setting of 2 always
# ignores O_EXCL.

note: my problem is solved when jackd uses vmix (part of oss mixer name ossxmix)

if using gsb, use gconf-editor to configure gstreamer routing to jack


go to system->gstreamer->0.10->default
input value
jackaudiosink buffer-time=2000000 connect=*auto OR none*
into audiosink, musicaudiosink, or chataudiosink

note* : auto will auto-connect all jack-aware apps as they appear, none will not connect anything but connections can be done manually in qjackctl
Just by switching to OSSv4, music playback is enhanced with greater details of high and mids (depending on soundcard, but much better than stock alsa for sure). Jamin as an equalizer is needed for balance. Next is to try wine with jack for foobar2k!

JackHair 01-09-2011 02:52 AM

It's been years since I last used OSS, I'm happy I decided to try after I saw your post. As you say, highs and mids are a lot clearer, but I love the lower latency vs ALSA most. Thanks linux64.

linuxs64 01-09-2011 08:12 AM

when starting/testing playback, turn volume to 0 and increase slowly to protect the ears/speakers.

guanx 01-09-2011 08:40 AM


Originally Posted by JackHair (Post 4218034)
..., highs and mids are a lot clearer, ...

Using hydroelectricity instead of thermal power station can achieve the same result.

linus72 01-09-2011 12:31 PM

hey guys
this is great, I have not used OSS except awhile back when using Tinycore
It is much better than ALSA, but check this out, I have a nVidia 4000mx and it's using a AC'97

this is what I get


[root@nfluxos guest]# ossdetect -v
Detected Nvidia nForce2
USB support available in the system, adding USB driver
Detected Generic USB audio/MIDI device (BETA)


[root@nfluxos guest]# ossinfo
Version info: OSS 4.2 (b 2004/201101091452) (0x00040100) GPL
Platform: Linux/i686 #2 SMP Mon Oct 11 14:52:09 CDT 2010 (nfluxos)

Number of audio devices:        2
Number of audio engines:        7
Number of MIDI devices:                0
Number of mixer devices:        1

Device objects
 0: osscore0 OSS core services
 1: oss_ich0 Nvidia nForce2 interrupts=177986 (178610)
 2: oss_usb0 USB audio core services

MIDI devices (/dev/midi*)

Mixer devices
 0: ICH AC97 Mixer (ALC650) (Mixer 0 of device object 1)

Audio devices
Nvidia nForce2                    /dev/oss/oss_ich0/pcm0  (device index 0)
Nvidia nForce2 S/PDIF out        /dev/oss/oss_ich0/spdout  (device index 1)

  /dev/dsp -> /dev/oss/oss_ich0/pcm0
  /dev/dsp_in -> /dev/oss/oss_ich0/pcm0
  /dev/dsp_out -> /dev/oss/oss_ich0/pcm0
  /dev/dsp_ac3 -> /dev/oss/oss_ich0/pcm0
  /dev/dsp_mmap -> /dev/oss/oss_ich0/pcm0
  /dev/dsp_multich -> /dev/oss/oss_ich0/pcm0

Does anyone know if I can improve it in some way or does it look OK as it is?
How do I add,etc a MIDI, as it says "Number of MIDI devices: 0"??

EDIT: Oh, I heard ALSA is better if using a AC97, is that true?
OSS just sounds so much better!

linuxs64 01-09-2011 01:15 PM

Can't help much with midi as I've not used any, but my ossinfo output looks similar to yours.


bash-4.1# ossinfo
Version info: OSS 4.2 (b 2004/201101071410) (0x00040100) GPL
Platform: Linux/i686 #1 SMP PREEMPT Fri Jan 7 17:08:59 SGT 2011 (darkstar)

Number of audio devices: 2
Number of audio engines: 6
Number of MIDI devices: 0
Number of mixer devices: 1

Device objects
0: osscore0 OSS core services
1: oss_cmpci0 CMedia CM8738 interrupts=6446198 (20662237)
2: oss_usb0 USB audio core services

MIDI devices (/dev/midi*)

Mixer devices
0: CMedia CMPCI (Mixer 0 of device object 1)

Audio devices
CMedia CM8768 (rev 68) /dev/oss/oss_cmpci0/pcm0 (device index 0)
CMedia CM8768 (playback only) /dev/oss/oss_cmpci0/pcm1 (device index 1)

/dev/dsp -> /dev/oss/oss_cmpci0/pcm0
/dev/dsp_in -> /dev/oss/oss_cmpci0/pcm0
/dev/dsp_out -> /dev/oss/oss_cmpci0/pcm0
/dev/dsp_ac3 -> /dev/oss/oss_cmpci0/pcm0
/dev/dsp_mmap -> /dev/oss/oss_cmpci0/pcm0
/dev/dsp_multich -> /dev/oss/oss_cmpci0/pcm0
/dev/dsp_spdifout -> /dev/oss/oss_cmpci0/pcm0
/dev/dsp_spdifin -> /dev/oss/oss_cmpci0/pcm0
Happy to report wine and foobar2k works with oss-via-jack. OSS works too, just select accordingly as below.


setup wine using winecfg, go to tab: Audio,
- select JACK driver
- set Hardware Acceleration to Full,
- sample rate 48KHz
- bits 16

install foobar2k
- requires gdiplus for missing icons/images [install winetricks from SBo, then winetricks gdiplus]
- setup foobar2k, go to menu: Library -> Playback ->
--- DSP Manager, activate Resampler (PPHS), configure to 48KHz
--- Output -> Device: select Wine jack DirectSound driver
Start jackd/qjackctl before launching foobar2k. Must start playing an audio track before jack/qjackctl can see it.

If you customize foobar2k using components, some additional software maybe required (wmp10, vcrun6 etc), can be installed using winetricks. A brief tutorial on components & required software here.

Displaying CJK or non-english fonts can be added using winetricks, then set them for use in foobar2k: Library -> Display -> Default UI -> Color and Fonts.

Notes on mp3 in wine: requires some other deps before building wine. sh configure in wine source directory will show the deps required (mp3-something, libsane, isdn etc). By the way, oss and jack must be built and configured to work before building wine.

MP3 in 64-bit slackware works too but must satisfy the dependency mentioned above. Get access to a 32-bit machine and copy the dep packages to 64-bit OS, then use alien's convert utility. May require more config if wine doesn't find it.

foobar2000 lovely configs: weblog screenshots
component requirements are listed on the weblog, MS Scripting Control could be problematic under wine.

dugan 01-09-2011 01:17 PM


Originally Posted by linus72 (Post 4218450)
How do I add,etc a MIDI, as it says "Number of MIDI devices: 0"??

AFAIK, the "official information" is limited to this:

My TiMidity SlackBuild sets it up in server mode. I don't know if it can be made to work under OSS though.

linuxs64 01-14-2011 09:08 PM

To enable MIDI support, edit the configure script file itself and include as described below.


Command line arguments of the configure script


By default (in OSS v4.1) MIDI support is disabled. If you like to do hacking with MIDI you can enable it by using --config-midi=YES.
Source: RELNOTES.TXT from file oss-v4.2-build2004-src-gpl.tar.bz2

in OSSv42, MIDI is enabled by default.

Been looking for ways to enable equalizer support in Totem (Movie Player) or a system-wide equalizer for OSSv42. Anyone know how?

linuxs64 01-15-2011 03:19 AM

Upgrade OSSv4 resampler for higher quality audio
Warning: Protect your ears/speakers before testing. Slowly increase volume from 0.


quality - quality to use for conversion, supported values are:

0 - D lowest quality (normally equals to low quality)
1 - L low quality (spline interpolation)
2 - M medium quality (lagrange interpolation)
3 - H high quality
4 - HX high quality (high quality with extra precision)
5 - P production quality
6 - PX production quality (prod quality with extra precision)
(PX is currently disabled because it causes a crash)

source: ossv4x-source/kernel/framework/include/grc3.h
As seen above, there are 7 levels of audio resampling available in OSSv4x. Default is 0-3.


# Set GRC3 min/max conversion quality setting to 3 to conserve space.
# TODO: Add support for configurable quality settings.



source: ossv4x-source/configure
To make available these resamplers, edit the configure script (in the source) as described above, then use the modified source to compile OSSv4x.

Note that level 6 (production quality with extra precision) is not for use, as it causes crash. The UI (ossxmix) also cannot configure it post-install as it is not implemented (see blue line above). However, it can be configured via ossmix (see below).


$ ossmix vmix0-src 5

Selected mixer 0/CMedia CMPCI
Known controls are:
vol [<leftvol>:<rightvol>] (currently 100:100)
synth [<leftvol>:<rightvol>] (currently 0:0)
synth.rec ON|OFF (currently OFF)
pcm [<leftvol>:<rightvol>] (currently 100:100)
speaker <monovol> (currently 0)
line [<leftvol>:<rightvol>] (currently 0:0)
line.rec ON|OFF (currently OFF)
mic <monovol> (currently 0)
mic.rec ON|OFF (currently ON)
cd [<leftvol>:<rightvol>] (currently 0:0)
cd.rec ON|OFF (currently OFF)
rec [<leftvol>:<rightvol>] (currently 0:0)
igain [<leftvol>:<rightvol>] (currently 0:0)
aux1 [<leftvol>:<rightvol>] (currently 0:0)
aux1.rec ON|OFF (currently OFF)
mutectl.linemute ON|OFF (currently ON)
mutectl.cdmute ON|OFF (currently ON)
mutectl.micmute ON|OFF (currently ON)
mutectl.line1mute ON|OFF (currently ON)
jackctl.rear2line ON|OFF (currently ON)
jackctl.cen2line ON|OFF (currently ON)
jackctl.bass2line ON|OFF (currently ON)
jackctl.cen2mic ON|OFF (currently ON)
mixext.spkmode <FRONT|SPREAD> (currently SPREAD)
mixext.dualdac ON|OFF (currently OFF)
mixext.micboost ON|OFF (currently OFF) ON|OFF (currently OFF)
spdif.loop ON|OFF (currently OFF)
spdif.record ON|OFF (currently OFF)
spdif.imon ON|OFF (currently OFF)
spdif.polrev ON|OFF (currently OFF)
spdif.copyprot ON|OFF (currently OFF)
spdif.optical ON|OFF (currently OFF)
vmix0-enable ON|OFF (currently ON)
vmix0-rate <decimal value> (currently 48000) (Read-only)
vmix0-channels <Stereo|Multich> (currently Stereo)
vmix0-src <Fast|High|OFF> (currently Production)
vmix0-outvol <monovol> (currently 24.9 dB)
vmix0-invol <monovol> (currently 25.0 dB)
vmix0.pcm1 [<leftvol>:<rightvol>] (currently 25.0:25.0 dB) ("multiqueue0:src")
vmix0.pcm2 [<leftvol>:<rightvol>] (currently 25.0:25.0 dB)
vmix0.pcm3 [<leftvol>:<rightvol>] (currently 25.0:25.0 dB)
vmix0.pcm4 [<leftvol>:<rightvol>] (currently 25.0:25.0 dB)
Whenever ossxmix (the UI) is launched, vmix0-src settings are reverted back to Fast or High, so apply command "ossmix vmix0-src 5" to set the sampling mode again. Higher sampling mode gives better audio quality, but uses more cpu cycles (5-10%).

Source: How to enable "production quality with extra precision"?

All times are GMT -5. The time now is 01:09 AM.