We've been running Rivendell + Jack + Icecast + USB 16-Channel sound
device on an old P4 computer for a few years now without problems. In
fact the whole audio playback / routing thing has been incredibly stable.
Oh and I'm really giving Jack a workout as I'm actually feeding three
different stream decoders, looping in and out of a simple software based
audio processor (Jack Rack) configured to be a simple 1-band AGC for one
of the streams, as well as looping out of the multi channel sound device
to an emergency broadcast box + BT audio switcher, then back in before
it is sent to the transmitter stream, plus I have all kinds of routing
and switching going on to put other devices on the air like a Telos
ZIP/one CODEC, analog phone line, Skype, and VLC (with jack support)
playing network streams, with a bunch of buttons on Rivendell that have
ISB-Talkback funtions to remote broadcast sources and routing to Cue
channels and all kinds of fun stuff like that. All on this P4 that is
also busy at time doing importing from rdcatch or rdlibrary and/or
creating logs at the same time!
Here are things I am doing however:
1) I'm using a "real time" kernel (Debian's 3.2.0-3-rt-686-pae to be
exact).
2) Appear to have the real time parameters configured correctly (needed
even if you don't use a real time kernel I believe). Its the stuff
found in /etc/security/limits.d, Instructions found elsewhere (hint,
something like: @rivendell - rtprio 99, @rivendell - memlock 450000,
@rivendell - nice -10).
3) I'm using the "Darkice" stream encoder with Jack support (currently a
"binary" from a Ubuntu distro)
4) My jack settings are currently set to 512 frames/period and 4 periods
per buffer, and jack is running in realtime priority. This gives me a
46ms latency. This much latency setting seems to be mostly due to the
USB sound device as our backup Rivendell doesn't have one and is able to
run at 256 frames/period and only 2 periods/buffer, giving only 11.6 ms
of latency, but it is also a faster machine too but resides in a
different city and get used for other purposes as well.
5) I am NOT doing any of the tricky bonding of two or more sound cards
together like you can do in ALSA. This is normally a bad idea because
the clocks on each of these can drift independently of each other and
can cause lots of xruns.
6) Your problem could easily be that your sound device is simply not
stable enough for Jack operation. I experimented with Jack on a
Raspberry Pi and found it's "built-in" sound output device to be very
unstable, a cheap USB dongle sound device to be better, but still bad,
but the same model of USB sound device we are using for our normal On
Air computer (Presounus Audiobox 1818vsl) ran with reasonable stability
(but with very high latency). Try installing another sound device and
bonding Jack to it if you can. If you don't need Jack to be bonded to a
physical (real) audio device, perhaps you can use a fake virtual device
for it to clock-sync to.
_______________________________________________
Rivendell-dev mailing list
[email protected]
http://caspian.paravelsystems.com/mailman/listinfo/rivendell-dev