[LAU] Noob needs help using jack
len at ovenwerks.net
Sat Jun 15 18:27:59 UTC 2013
On Sat, June 15, 2013 9:32 am, Mario R. Osorio wrote:
> First of all, I'm a complete noob and might need help in more than one
> I am helping someone who is conducting a research.
> For this, she will be making dozens of phone interviews, for which I'm
> using google voice.
Be aware that the google voice (assuming the same technology as the gmail
phone app) has higher latency than some of the others (including skype).
> She needs to play sounds to the guests/interviewed persons (using vlc or
> audacious) and I need to record everything that is going on; the
> conversation and the playback.
I think a mix of idjc, jackdbus and pulse (with the jack-pulse bridge
module installed) should work. Please note that because of the multiple
codecs running at the same time, you need a modern machine. I have managed
to get this to work using my ten year old P4, but it was just barely and I
had to play with the latency of jack to balance performance with working
at all. idjc has it's own audio file player built in and I would use that
instead of vlc or audacious as they do (at least audacious does) strange
things when set to jack as an output :)
I am not sure which version of ubuntustudio you have. There have been
issues with the pa-jack bridging in the past and there are some features
available now which were not a few versions ago. One of the important ones
is that pa used to bridge as many lines as the audio interface would
handle... 10 ins and outs in my case which used much more CPU than just
the two lines I needed :)
browser with google voice, talks to pulse. Pulse is bridged to jack, two
lines each way, and set to not auto connect (auto connect is to audio
idjc has a port called phone in out (connect to pulse) as well as local
mics from the sound card. They would all be connected using the
connections pannel in qjackctl for example. Once you have it figured out
save it as a session. Set idjc not to stream, but to record.
The order of running things is important:
-pulse runs at login.
-start jackdbus with qjackctl and confirm that the pulse ports show up.
(in qjackctl connections)
-in pavucontrol, set the default output to jacksink and the default
capture (input) to jack source. (green check box)
-Connect the pulse ports to the idjc phone ports.
-Connect mics as needed (idjc allows you set up however many mic or stereo
inputs as you need)
(this would be the place to create a session. in qjackctl the
patchbay would be the place for this)
-make your google voice connection and verify all the sound goes both
ways. (If the person on the other end of the line can't hear the audio
playback from the file player you may have to connect the line back to
pulse to the program output instead of the phone port.)
-Set up record and go.
All audio playback should be headphones :)
I would have two computers in the same room and try it all out. The second
computer would be the remote and so should be able to have any OS on it
that can handle google voice.
> We might also need to, while recording, play sounds from youtube.
Any youtube audio would get mixed in with the audio coming from your
remote google voice conversation. Pavucontrol will allow you to control
the levels of the two signals for balance.
Using just pulse is possible, but less controllable. For that, you just
need to get familiar with pavucontrol. It's use for these kinds of things
is not obvious :) The thing to remember is that with PA a connection only
exists when it is being used. That is Audacity will only have an input to
connect to when the record button is active... so pause ->record->make
connections->set levels->release pause to record. Applications made for
jack (not audacity which has jack as an addon) open a jackport at
application start and it stays open as long as the application is running.
Just like in the analogue world where a tape machine always has an input
plug and the cable that connects to it doesn't move just because you hit
the stop button.
More information about the Linux-audio-user