You are not logged in.

#1 2015-01-18 07:59:07

stri
Member
Registered: 2014-06-09
Posts: 75

jack2-dbus and pulseaudio

Hi,

After I log into KDE I start jack with the following script:

#!/bin/bash                                                                                                                                                                 
                                                                                                                                                                            
jack_control start                                                                                                                                                          
sudo schedtool -R -p 20 `pidof jackdbus`                                                                                                                                    
jack_control eps realtime true                                                                                                                                              
jack_control ds alsa                                                                                                                                                        
jack_control dps device hw:MID,0                                                                                                                                            
jack_control dps rate 44100                                                                                                                                                 
jack_control dps nperiods 2                                                                                                                                                 
jack_control dps period 1024                                                                                                                                                
sleep 5                                                                                                                                                                     
/usr/bin/a2jmidid -e &
sleep 5
sudo schedtool -R -p 20 `pidof a2jmidid`
qjackctl &
sleep 5
sudo schedtool -R -p 20 `pidof qjackctl`

similar to what is suggested in the Arch wiki.

To test if pulseaudio works, I do

 cat /dev/urandom |pacat 

and it doesn't work (but it works before starting jack with the script above).

My question is: Should this work (I think so), and if yes, why doesn't it?

If I understood  this correctly, pulse and jack should be made to work together the new new way, by putting

load-module module-jackdbus-detect

in /etc/pulse/default.pa, and mine looks like this:

#!/usr/bin/pulseaudio -nF
#
# This file is part of PulseAudio.
#
# PulseAudio is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# PulseAudio is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with PulseAudio; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.

# This startup script is used only if PulseAudio is started per-user
# (i.e. not in system mode)

.nofail

### Load something into the sample cache
#load-sample-lazy x11-bell /usr/share/sounds/gtk-events/activate.wav
#load-sample-lazy pulse-hotplug /usr/share/sounds/startup3.wav
#load-sample-lazy pulse-coldplug /usr/share/sounds/startup3.wav
#load-sample-lazy pulse-access /usr/share/sounds/generic.wav

.fail

### Automatically restore the volume of streams and devices
load-module module-device-restore
load-module module-stream-restore
load-module module-card-restore

### Automatically augment property information from .desktop files
### stored in /usr/share/application
load-module module-augment-properties

### Should be after module-*-restore but before module-*-detect
load-module module-switch-on-port-available

### Load audio drivers statically
### (it's probably better to not load these drivers manually, but instead
### use module-udev-detect -- see below -- for doing this automatically)
#load-module module-alsa-sink
#load-module module-alsa-source device=hw:1,0
#load-module module-oss device="/dev/dsp" sink_name=output source_name=input
#load-module module-oss-mmap device="/dev/dsp" sink_name=output source_name=input
#load-module module-null-sink
#load-module module-pipe-sink

### Automatically load driver modules depending on the hardware available
.ifexists module-udev-detect.so
load-module module-udev-detect
.else
### Use the static hardware detection module (for systems that lack udev support)
load-module module-detect
.endif

### Automatically connect sink and source if JACK server is present
.ifexists module-jackdbus-detect.so
.nofail
load-module module-jackdbus-detect channels=2
.fail
.endif

### Automatically load driver modules for Bluetooth hardware
.ifexists module-bluetooth-policy.so
load-module module-bluetooth-policy
.endif

.ifexists module-bluetooth-discover.so
load-module module-bluetooth-discover
.endif

### Load several protocols
.ifexists module-esound-protocol-unix.so
load-module module-esound-protocol-unix
.endif
load-module module-native-protocol-unix

### Network access (may be configured with paprefs, so leave this commented
### here if you plan to use paprefs)
#load-module module-esound-protocol-tcp
#load-module module-native-protocol-tcp
#load-module module-zeroconf-publish

### Load the RTP receiver module (also configured via paprefs, see above)
#load-module module-rtp-recv

### Load the RTP sender module (also configured via paprefs, see above)
#load-module module-null-sink sink_name=rtp format=s16be channels=2 rate=44100 sink_properties="device.description='RTP Multicast Sink'"
#load-module module-rtp-send source=rtp.monitor

### Load additional modules from GConf settings. This can be configured with the paprefs tool.
### Please keep in mind that the modules configured by paprefs might conflict with manually
### loaded modules.
.ifexists module-gconf.so
.nofail
load-module module-gconf
.fail
.endif

### Automatically restore the default sink/source when changed by the user
### during runtime
### NOTE: This should be loaded as early as possible so that subsequent modules
### that look up the default sink/source get the right value
load-module module-default-device-restore

### Automatically move streams to the default sink if the sink they are
### connected to dies, similar for sources
load-module module-rescue-streams

### Make sure we always have a sink around, even if it is a null sink.
load-module module-always-sink

### Honour intended role device property
load-module module-intended-roles

### Automatically suspend sinks/sources that become idle for too long
load-module module-suspend-on-idle

### If autoexit on idle is enabled we want to make sure we only quit
### when no local session needs us anymore.
.ifexists module-console-kit.so
load-module module-console-kit
.endif
.ifexists module-systemd-login.so
load-module module-systemd-login
.endif

### Enable positioned event sounds
load-module module-position-event-sounds

### Cork music/video streams when a phone stream is active
load-module module-role-cork

### Modules to allow autoloading of filters (such as echo cancellation)
### on demand. module-filter-heuristics tries to determine what filters
### make sense, and module-filter-apply does the heavy-lifting of
### loading modules and rerouting streams.
load-module module-filter-heuristics
load-module module-filter-apply

# X11 modules should not be started from default.pa so that one daemon
# can be shared by multiple sessions.

### Load X11 bell module
#load-module module-x11-bell sample=bell-windowing-system

### Register ourselves in the X11 session manager
#load-module module-x11-xsmp

### Publish connection data in the X11 root window
#.ifexists module-x11-publish.so
#.nofail
#load-module module-x11-publish
#.fail
#.endif

### Make some devices default
#set-default-sink output
#set-default-source input

### Additional modules for better interaction with KDE4
load-module module-device-manager

and /etc/asound.conf looks like this:

pcm.pulse {
    type pulse
}

ctl.pulse {
    type pulse
}

pcm.!default {
    type pulse
}

ctl.!default {
    type pulse
}

Still it doesn't work, so I opened up pavucontrol as suggested, which shows that pacat outputs directly to the soundcard, and not to a pulseaudio jack sink (it should do the latter). So that's the problem, right?


How can I fix this?

Thanks a lot for your help!!
Stefan

Offline

#2 2015-01-18 08:39:04

stri
Member
Registered: 2014-06-09
Posts: 75

Re: jack2-dbus and pulseaudio

Update:

I haven't found out how pacat will play (except for altering its ouput from the soundcard to the pulse sink in pavucontrol), but that wasn't my original problem.

Actually my problem was that I couldn't play youtube videos when jack was active. The problem was in KDE: I opened "Audio and Video Settings" and in the "Audio Hardware Setup" there is an card called "Independent devices" and its device is the pulseaudio jack sink. If I choose that, youtube works!

Thanks,
Stefan

Offline

Board footer

Powered by FluxBB