[LAU] Streaming radio and calls from listeners

Len Ovens len at ovenwerks.net
Sun Jun 22 21:00:46 UTC 2014


Louigi Verona wrote:

> I am not able to use the telephone line. I can rely only on Skype or
> similar online services for calls, unfortunately. I should have 
> mentioned that, but I did not know someone is using an actual phone for 
> it nowadays.

Ok, I did the full setup minus the last step of encoding and streaming to 
the server.

I used idjc as my console. I installed skype and created an account.

My audio setup:
ice1712 audio card.
At the start of session jackdbus is started at 48k 2048/2, a2jmidid runs 
and pulse gets restarted so it sees jack. I already have all audio 
interfaces turned off in pulse so if jackdbus is not available there is 
only a "dummy" output. I use this:
http://www.ovenwerks.net/software/index.html
Which I have not yet packaged, and set to phone mode which is jack at 
128/2 and pulse->jack bridged and the cpu governor set to performance.
My studio mic (I happen to have a Peavy PVM 520NT dynamic set up just now) 
is into capture_1 through a mackie pre strip. Playback_1 and 2 go to 
studio monitors.

I start idjc and move the pulse lines to the matching idjc voip lines. If 
I was doing this all the time... ie, this computers job was radio studio, 
I would have pulse start without connections and use jack.plumbing or some 
session manager to make sure this are connected right... I haven't looked 
into it but I think idjc can do this part too.

I haven't made actual phone calls, but the "echo/sound test service" 
provides both incoming and outgoing audio, so I used that as it streamed 
audio to and from the skype server.

The output was recorded rather than streamed. The recording of both 
incoming and outgoing audio was clear and dropout free. I had an mp3 being 
played through idjc as well at the same time and that was mixed in fine 
too.

So if pulse is already running on your system, it is probably the easiest 
thing to use. It just works with pulse with no fussing needed. Using pulse 
means that the ports are always graphed and can remain connected all the 
time and any other desktop audio source can easily be used... for example 
a soundcloud track could be directly played from a browser or another voip 
client could be used for normal phone calls all without doing any extra 
setup.

Pulse has it's bad points for sure, but with a suitable machine (I have a 
newer i5 machine at 3.2 Ghz with 8Gram... nothing special) it is the cat's 
meow for this application.

Things to remember:
Streaming audio means DSP work. Generally all your content is encoded and 
the idea of decoding to live play of at least three mp3/ogg files while 
still encoding the output for streaming is a reality. Then adding skype 
adds an encoding and a decoding step as well. This is assuming that the "on
air talent" (dj) is playing music and talking to their next "on the phone" 
guest at the same time even if the phone audio is not being streamed at that 
time. This is where my old computer failed, it just ran out of CPU to do 
all that. This decoding includes sample rate changes too. I think skype 
likes 48k and then a lot of mp3 and oggs are 44.1k... though of coarse an 
effort could be made to make sure the file library is at the working 
sample rate which may reduce the cpu load some. I didn't have to do that 
in my test though.

On this machine with an mp3 playing and a skype call running my cpu 
was still less than 10% so there is still room for some audio optimization 
of the final stream before output. (is there an LV2 plugin for on air 
optimization? In any case all the bits are there) I suspect there is also 
room for an on air monitor running separately.



--
Len Ovens
www.ovenwerks.net



More information about the Linux-audio-user mailing list