Latest LQ Deal: Linux Power User Bundle
Go Back > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Slackware This Forum is for the discussion of Slackware Linux.


  Search this Thread
Old 01-07-2011, 08:17 AM   #1
Registered: Jun 2010
Posts: 115

Rep: Reputation: 47
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.
Old 01-07-2011, 12:31 PM   #2
Registered: Sep 2006
Location: wroclaw, poland
Distribution: slackware 12.2, scientific linux 6.4, knoppix 7.2, salix 14.1
Posts: 896

Rep: Reputation: Disabled
Many thanks for info.
Old 01-08-2011, 02:54 PM   #3
Registered: Jun 2010
Posts: 115

Original Poster
Rep: Reputation: 47
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!

Last edited by linuxs64; 01-09-2011 at 11:54 AM.
1 members found this post helpful.
Old 01-09-2011, 01:52 AM   #4
Registered: Aug 2009
Location: Netherlands
Distribution: Slackware64-current
Posts: 167

Rep: Reputation: 38
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.
Old 01-09-2011, 07:12 AM   #5
Registered: Jun 2010
Posts: 115

Original Poster
Rep: Reputation: 47
when starting/testing playback, turn volume to 0 and increase slowly to protect the ears/speakers.
Old 01-09-2011, 07:40 AM   #6
Senior Member
Registered: Dec 2008
Posts: 1,041

Rep: Reputation: 150Reputation: 150
Originally Posted by JackHair View Post
..., highs and mids are a lot clearer, ...
Using hydroelectricity instead of thermal power station can achieve the same result.
Old 01-09-2011, 11:31 AM   #7
LQ Guru
Registered: Jan 2009
Location: Gordonsville-AKA Mayberry-Virginia
Distribution: PocketWriter/MinimalX
Posts: 5,087

Rep: Reputation: 337Reputation: 337Reputation: 337Reputation: 337
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!

Last edited by linus72; 01-09-2011 at 11:33 AM.
Old 01-09-2011, 12:15 PM   #8
Registered: Jun 2010
Posts: 115

Original Poster
Rep: Reputation: 47
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.

Last edited by linuxs64; 01-09-2011 at 07:00 PM. Reason: add notes on mp3 requirements, foobar2k configs
Old 01-09-2011, 12:17 PM   #9
LQ Guru
Registered: Nov 2003
Location: Canada
Distribution: Slackware
Posts: 7,292

Rep: Reputation: 2687Reputation: 2687Reputation: 2687Reputation: 2687Reputation: 2687Reputation: 2687Reputation: 2687Reputation: 2687Reputation: 2687Reputation: 2687Reputation: 2687
Originally Posted by linus72 View Post
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.

Last edited by dugan; 01-09-2011 at 12:30 PM. Reason: posted wrong information
Old 01-14-2011, 08:08 PM   #10
Registered: Jun 2010
Posts: 115

Original Poster
Rep: Reputation: 47
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?

Last edited by linuxs64; 01-14-2011 at 11:46 PM. Reason: add OSSv42 MIDI info
Old 01-15-2011, 02:19 AM   #11
Registered: Jun 2010
Posts: 115

Original Poster
Rep: Reputation: 47
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"?

Last edited by linuxs64; 01-15-2011 at 02:46 AM.


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off

Similar Threads
Thread Thread Starter Forum Replies Last Post
OpenCV 2.0 compile error in -current mlpa Slackware 17 01-06-2011 05:17 AM
[SOLVED] Digikam from SBo does not compile on 64-current of 2010-03-09 gargamel Slackware 10 03-21-2010 05:28 PM
LXer: Wine 1.1.23 Released With Various Fixes LXer Syndicated Linux News 0 06-05-2009 11:50 PM
Slackware64, trying to compile wine with SBo suid0 Slackware 6 05-27-2009 09:48 AM
Mandrake 10.1 MAJOR fixes released! GO GET EM'! Micro420 Mandriva 18 11-06-2004 12:47 AM

All times are GMT -5. The time now is 08:41 AM.

Main Menu
Write for LQ is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration