[LAU] Audio streaming work flow

Len Ovens len at ovenwerks.net
Sat Feb 2 19:57:13 UTC 2013


I have been fooling around with an Internet radio station setup. Just to
see what kinds of trouble might show up.

There seem to be two sides to broadcasting software. Audio and admin. I
don't know if I can really cover the admin side well, both rivendell and
airtime seem to work for that. For that matter I have heard of some 
people using windows apps for doing admin and playlist creation while
using Linux for audio streaming.

I will cover the audio part for now. Audio is divided into two parts,
studio and server. A number of people use a streaming service rather than
their own server because most people have a dynamic IP and so name service
is problematic. It is often cheaper to use a streaming service. In any
case the server side install seems to be trivial, install icecast2,
configure and run. I found that part easy. I set it up on a 10 year old
1.2Ghz Celeron box with Ubuntu Server installed. Quick and easy, basically
set up the passwords, enable and start the init.d/icecast2 script. Done.

The studio side takes a bit more. I will note here that the studio side
setup also makes a good podcast recorder. I am not so sure about live DJ
work as many live DJs consider video a large part of their show. I don't
know if they would consider the video part as truly separate or expect to
have one application that does it all.

The response I have gotten to mixxx is that it is "not ready" for prime
time use. My personal experience is that:
 a) it doesn't like the open nvidia driver (crashed xorg on me).
 b) it's window is too big for at least one of my screens (netbook).

I think the first problem is known and may even be fixed by now. But the
second is more troubling. Podcast recording or remote broadcast might well
want to be done on a small screen computer like a netbook or notepad. The
window is not even shrinkable to screen size with scroll-bars. Though once
the user got used to kb shortcuts that might not be an issue.

IDJC seems to be much better. It is the recommended studio solution for
airtime and interfaces well with jack. That is what I used for my setup
and at least one of our users uses it for their internet radio station as
well. It is small enough to be used on any screen... well maybe not a
smart phone :)  It allows the unattended streaming of prerecorded content
as well as mixing live audio with that. All audio content (including MP3s,
OGGs etc.) are decoded to audio at the rate jack is running and remixed
with whatever audio the users wishes to add. It has dedicated jack ports
for VOIP or landline audio available. It has jack ports for insert
purposes after mixing and before streaming. This allows the use of a
compressor or eq or even outboard equipment. This is also the place to get
audio out for live use or live broadcast (think transmitter, though I
would think it may go through some other stuff before that).

So far great. There is an online setup and use guide for IDJC that covers
about everything.

The last bit is still the roughest. Integration of desktop sounds with
jack. The most common use for this is VOIP generally skype, though the
problem is the same with almost all of these kinds of apps. The most
common thing is doing remote interviews and the most common work around is
to route audio outside the computer via pulse and then back in though
audio ports. The PA-jack bridge is getting better, but has two limitations
at this time. The PA that ships is 2.*, the new one I can find is 3.0 and
both of these have the same problem. The first is a bug where jack will
not start while PA is streaming. There is a fix, but it is not in any repo
yet... there is also a workaround... but that is not easy to set for
install.

The second problem for those with a sound card with more than two ports,
is that PA defaults to as many ports as the physical device has. The more
ports PA has to deal with the more CPU it uses... with an ICE1712 based
audio device that is 12/10. A default of stereo would be better. I am told
the version currently in git has the ability to set the number of
channels. I have asked for a default of two, but being able to set the
number is second best. It is possible to set the PA-jack bridge not to
auto connect and the method of doing so should be documented for this
workflow.

Using a jack session seems ideal with this workflow. The pa bridge can be
connected to the correct ports as they appear. The nice thing about using
the pa bridge for these things is that once PA is running it is always
there unlike many desktop apps that only show up when they are running and
therefore have to be manually connected after they connect to the sound
server.

Some good open conferencing SW that works with Jack and has OSX win
clients would be really nice.

The other possibility would be to have a logon or mode that is set up just
for this work flow. Jack would start first and run as the default sound
server. Pulse would be started after with sink and source modules started
from script rather than jack detect. These module do allow setting
channels. Other audio work flows might benefit from this kind of setup
too.

Len is out of breath.

-- 
Len Ovens
www.OvenWerks.net



More information about the Linux-audio-user mailing list