Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 76414

Summary: hydrogen-0.9.0 OSS output only produces noise on PPC
Product: Gentoo Linux Reporter: Michael Kiermaier <michael.kiermaier>
Component: New packagesAssignee: PPC Porters <ppc>
Status: RESOLVED FIXED    
Severity: major CC: sound
Priority: High    
Version: unspecified   
Hardware: PPC   
OS: All   
Whiteboard:
Package list:
Runtime testing required: ---

Description Michael Kiermaier 2005-01-02 08:02:08 UTC
I have a G3 iBook 800 MHz Rev. 2.2 with vanilla kernel 2.6.10. The kernel ALSA driver as well as OSS emulation are activated, for the kernel config see below.

I did not succeed in getting hydrogen-0.9.0 to play flawless sound
hydrogen can play via OSS and via JACK.

OSS:
running hydrogen gives the message:
$ hydrogen
[WARNING]   PreferencesMng      [readXmlString] Using default value in QTStyle

Hydrogen 0.9.0 [Jan  2 2005] - Copyright 2002-2004 Alessandro Cominu
Compiled modules:  (Alsa seq) (FLAC) (Jack) (OSS) (LRDF)

Hydrogen comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details

[LadspaFX::getPluginList] reading directory: /usr/lib/ladspa
[LadspaFX::getLadspaFXGroup]
[LadspaFX::getPluginList] reading directory: /usr/lib/ladspa
[WARNING]   Hydrogen            [audioEngine_setupLadspaFX] m_pSong=NULL
[WARNING]   OssDriver           Can't set realtime scheduling for OSS Driver

Now I open a demo file and klick on play. All I get is white noise (could this be a PPC endian-problem?)

OSS-output of other applicatians (of course not parallel to hydrogen) was just fine.

JACK:
In files->preferences I changed the output to jack and restarted hydrogen. jackd was running at 44.1 kHz. Now I got this on hydrogen startup:

hydrogen
[WARNING]   PreferencesMng      [readXmlString] Using default value in QTStyle

Hydrogen 0.9.0 [Jan  2 2005] - Copyright 2002-2004 Alessandro Cominu
Compiled modules:  (Alsa seq) (FLAC) (Jack) (OSS) (LRDF)

Hydrogen comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details

[LadspaFX::getPluginList] reading directory: /usr/lib/ladspa
[LadspaFX::getLadspaFXGroup]
[LadspaFX::getPluginList] reading directory: /usr/lib/ladspa
[WARNING]   Hydrogen            [audioEngine_setupLadspaFX] m_pSong=NULL
jack_create_thread: error 11 creating real-time thread by inheritance: Resourcetemporarily unavailable
[ERROR]     Hydrogen            [audioEngine_startAudioDrivers] Error starting audio driver [audioDriver::connect()]
[ERROR]     Hydrogen            [audioEngine_setupLadspaFX] nBufferSize=0
[ERROR]     NullDriver          [setBpm] not implemented yet
[ERROR]     NullDriver          [setBpm] not implemented yet

And in hydrogen there immediately appear two error windows:

(1) Jack driver: Cannot activate client
(2) Error starting audio driver.


I should remark that the jack output of alsaplayer -o jack worked, so there should not be a problem with jackd.


relevant part of kernel-config:
#
# Advanced Linux Sound Architecture
#
CONFIG_SND=m
CONFIG_SND_TIMER=m
CONFIG_SND_PCM=m
CONFIG_SND_RAWMIDI=m
CONFIG_SND_SEQUENCER=m
# CONFIG_SND_SEQ_DUMMY is not set
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=m
CONFIG_SND_PCM_OSS=m
CONFIG_SND_SEQUENCER_OSS=y
# CONFIG_SND_VERBOSE_PRINTK is not set
# CONFIG_SND_DEBUG is not set
#
# Generic devices
#
CONFIG_SND_VIRMIDI=m
#
# ALSA PowerMac devices
#
CONFIG_SND_POWERMAC=m


# emerge info
Portage 2.0.51-r8 (default-ppc-2004.1, gcc-3.4.3, glibc-2.3.4.20041102-r0, 2.6.10 ppc)
=================================================================
System uname: 2.6.10 ppc 750FX
Gentoo Base System version 1.6.8
Python:              dev-lang/python-2.2.2,dev-lang/python-2.3.4 [2.3.4 (#1, Sep 16 2004, 23:11:34)]
distcc 2.18.3 powerpc-unknown-linux-gnu (protocols 1 and 2) (default port 3632)[disabled]
dev-lang/python:     2.2.2, 2.3.4
sys-devel/autoconf:  2.13, 2.59-r6
sys-devel/automake:  1.8.5-r2, 1.5, 1.9.3, 1.6.3, 1.7.9, 1.4_p6
sys-devel/binutils:  2.15.90.0.3-r4
sys-devel/libtool:   1.5.10-r2
virtual/os-headers:  2.4.18-r2, 2.4.22
ACCEPT_KEYWORDS="ppc ~ppc"
AUTOCLEAN="yes"
CFLAGS="-O2 -pipe -mcpu=750 -fsigned-char -mpowerpc-gfxopt"
CHOST="powerpc-unknown-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.2/share/config /usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3/share/config/usr/lib/X11/xkb /usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-O2 -pipe -mcpu=750 -fsigned-char -mpowerpc-gfxopt"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs ccache distlocks"
GENTOO_MIRRORS="ftp://gentoo.inode.at/source/ ftp://linux.rz.ruhr-uni-bochum.de/gentoo-mirror/ http://gd.tuwien.ac.at/opsys/linux/gentoo/"
LDFLAGS=""
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X aalib alsa apache2 apm arts audiofile berkdb bitmap-fonts blas bzlib caps cdparanoia crypt cups dba divx4linux doc dvd encode exif f77 flac font-server fortran gcj gd gdbm gif gnome-libs gphoto2 gpm gtk gtk2 guile icq imlib innodb jack jack-tmpfs java jpeg kde ladcca ladspa lcms libcaca libwww live lzo mad maildir matroska monkey motif mpeg mysql ncurses nls objc offensive oggvorbis opengloss pam pdflib perl png ppc python qt readline samba sasl sdl slang sndfile speex spell ssl tcltk tcpd tetex theora tiff truetype truetype-fonts type1-fonts usb wmf xine xml xml2 xmms xprint xv xvid xvmc zlib video_cards_radeon"
Comment 1 Michael Kiermaier 2005-01-02 08:11:04 UTC
When I run hydrogen on JACK as root (the above report was as user), I get:
# hydrogen
[WARNING]   PreferencesMng      [readXmlString] Using default value in QTStyle

Hydrogen 0.9.0 [Jan  2 2005] - Copyright 2002-2004 Alessandro Cominu
Compiled modules:  (Alsa seq) (FLAC) (Jack) (OSS) (LRDF)

Hydrogen comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details

[LadspaFX::getPluginList] reading directory: /usr/lib/ladspa
[LadspaFX::getLadspaFXGroup]
[LadspaFX::getPluginList] reading directory: /usr/lib/ladspa
[ERROR]     JackDriver          [JackDriver::init] Jack server not running? (jack_client_new)
[ERROR]     Hydrogen            [audioEngine_startAudioDrivers] Error starting audio driver [audioDriver::init()]
[WARNING]   Hydrogen            [audioEngine_setupLadspaFX] m_pSong=NULL
[ERROR]     Hydrogen            [audioEngine_setupLadspaFX] nBufferSize=0
[ERROR]     NullDriver          [setBpm] not implemented yet

and I get only 1 error window:
"Error starting audio driver"


The OSS behaviour seems to be the same independent from user/root.
Comment 2 Michael Kiermaier 2005-01-02 09:38:41 UTC
another update:

running hydrogen/jack as root works. (I was stupid enough to run jackd as user and hydrogen as root in my last posting.) So concerning the jack output it seems to be some permission problem.
Comment 3 Michael Kiermaier 2005-01-02 14:45:33 UTC
Finally I learned how to handle realtime capabilities on a 2.6 kernel. I got hydrogen + jack working for normal users.

There is still the noisy ALSA output.
Comment 4 Eric Shattow 2005-01-09 21:04:47 UTC
check your sample rates.
Comment 5 Michael Kiermaier 2005-01-10 01:43:27 UTC
The term ALSA should have been OSS in my last comment, sorry.

In my opinion a wrong sampling rate would result in too low/high and too slow/fast sound, but not in white noise.
Nevertheless I checked all available sampling rates (22.05, 44.1, 48) in the OSS output configuration of hydrogen, and get noisy sound all the time (as expected).

My guess is still that we have some PPC endianness problem.
Comment 6 Jeremy Huddleston (RETIRED) gentoo-dev 2005-05-04 14:43:40 UTC
when you say OSS, I assume you are using the kernel's oss emulation drivers.  What happens when you use alsa-oss useland oss emulation?
Comment 7 Joe Jezak (RETIRED) gentoo-dev 2005-05-07 18:54:37 UTC
The OSS plugin was passing Little Endian data to OSS which was expecting Big Endian (Or vice versa...).  I've added a patch that swaps the data and had it apply for ppc only.