Gstreamer includes a jackaudiosink in the gstreamer-plugins-bad package. To get started install this package. You would also need some more stuff to get the whole thing working so just follow the below apt-get command,
shell$ sudo apt-get install gstreamer0.10-plugins-bad jackd jack-rack jack-tools patchage
Now to route the gstreamer audio data via JACK you need to do some tweaking to the gstreamer properties in gconf-editor.
shell$ gconf-editor
shell$ sudo apt-get install gstreamer0.10-plugins-bad jackd jack-rack jack-tools patchage
Now to route the gstreamer audio data via JACK you need to do some tweaking to the gstreamer properties in gconf-editor.
shell$ gconf-editor
Now navigate to /system/gstreamer/0.10/default. In the ‘audiosink’, musicaudiosink’ enter the following:
jackaudiosink connect=none
If you leave off the 'connect=none', the sink will automatically connect to the outputs of your soundcard in Jack. You may want this for default audio and chat (just remove 'connect=none'), but not for music if you want EQ, dynamics, etc. processing on it. You may want to change the description of the sinks as well...otherwise it just shows up as 'ALSA custom' in gnome-sound-properties.
Next, we make a rule for jack.plumbing. In the version of jackaudiosink that ships with Feisty, the outputs are by default named 'GStreamer:out_x'; In Gutsy, they are named by the program, so for Banshee, they would be 'Banshee:out_x'.
Save this in your home directory as '~/.jack.plumbing':
(connect "GStreamer:out_1" "jack_rack:in_1")
(connect "GStreamer:out_2" "jack_rack:in_2")
(connect "jack_rack:out_1" "alsa_pcm:playback_1")
(connect "jack_rack:out_2" "alsa_pcm:playback_2")
Save this in your home directory as '~/.jack.plumbing':
(connect "GStreamer:out_1" "jack_rack:in_1")
(connect "GStreamer:out_2" "jack_rack:in_2")
(connect "jack_rack:out_1" "alsa_pcm:playback_1")
(connect "jack_rack:out_2" "alsa_pcm:playback_2")
Now you need a script to automate it. Put this in a script (again, you may need to modify the jackd command to suit your set up, depending on what your primary soundcard is labeled as in ALSA, and if you have -RT kernel, running jack with '-R' will give you better performance), save it in your home folder, 'chmod +x' it:
jackd -dalsa -dhw:0 &
sleep 2
jack.plumbing &
sleep 1
jack-rack -n &
Now you're set. Try running that script, and if everything works, jack-rack should pop up. If it doesn't, jackd didn't start correctly. If you save a jack-rack file, you can tell jack-rack to load it in the script above by just adding the path to the file after the '-n'. If jack-rack popping up on every boot annoys you, get alltray (sudo apt-get install alltray) and run jack-rack like so: "alltray jack-rack -n &", and it will dock in your system tray.
Alternatively you could omit the jackd server start in the script and start it with the qjackctl and then run the above script for JACK plumbing.
Now run your favorite gstreamer audio application (exaile, banshee, rythymbox, etc.) and see if you have any sound when you hit play. If not, open patchage and manually connect the output pins from your sound application to the input pins of jack-rack (just drag and drop). Jack rack's output should already be connected to the outputs of your soundcard.
sleep 2
jack.plumbing &
sleep 1
jack-rack -n &
Now you're set. Try running that script, and if everything works, jack-rack should pop up. If it doesn't, jackd didn't start correctly. If you save a jack-rack file, you can tell jack-rack to load it in the script above by just adding the path to the file after the '-n'. If jack-rack popping up on every boot annoys you, get alltray (sudo apt-get install alltray) and run jack-rack like so: "alltray jack-rack -n &", and it will dock in your system tray.
Alternatively you could omit the jackd server start in the script and start it with the qjackctl and then run the above script for JACK plumbing.
Now run your favorite gstreamer audio application (exaile, banshee, rythymbox, etc.) and see if you have any sound when you hit play. If not, open patchage and manually connect the output pins from your sound application to the input pins of jack-rack (just drag and drop). Jack rack's output should already be connected to the outputs of your soundcard.
OR just to test with Gstreamer alone follow these steps:
Run the above script that pops up the JACK rack.
Now start your favourite gstreamer pipeline (example gst-launch0.10 audiotestsrc ! audiocovert ! jackaudiosink) and check if the audio data (sine in the example case) is routed via JACK.