Enabling Flash in Jack Audio

A number of remote controlled SDRs are now available on the web, making use of the latest Java and Flash technology. Flash and Java provide operability across operating systems. One can use Windows, Linux, Mac, or BSD systems with virtually no difference in appearance or function. It is fine for an individual user to operate one of these stations, but how could a monitoring team or club station enable multistation / multichannel capability? Jack Audio is the answer.

Jack Audio is an excellent collection of software components useful in not only digital audio workstations but also software defined radio stations. Using Jack Audio, it is possible to route audio from multiple web SDRs into a multichannel recorder. Another usage could be to direct dozens of SDR channels into a signal processor for multichannel playback. Jack is also useful for non-SDR applications where audio from the web is to be reprocessed and redistributed to other users.

Wide area / multistation networking is one application that could be useful to users of radio spectrum. Imagine the effectiveness of monitoring the US Air Force\'s GHFS network from five locations at once. Or perhaps maintaining continuous coverage of low earth orbiting weather satellites over an entire hemisphere. The possibilities are limited mostly by processing power, internet bandwidth and imagination. For the best sound, use a high definition audio interface for these signals.

The Jack Audio kit, in its basic form, does not recognize audio from flash applications. In Linux, additional software known as libasound2-plugins must be installed. The libasound2-plugins package can be downloaded and compiled from source code or obtained from most distros\' repositories.

ALSA must be configured to use the libasound2-plugins. Add the following /etc/asound.conf (or the equivalent ALSA config file for your linux version):


# Jack should recognize and play flash audio with the code below.

pcm.!default {
type plug
slave { pcm "jack" }
}


pcm.jack {
type jack
playback_ports {
0 alsa_pcm:playback_1
1 alsa_pcm:playback_2
}
capture_ports {
0 alsa_pcm:capture_1
1 alsa_pcm:capture_2
}
}


ctl.mixer0 {
type hw card 1
}

The configuration given above works well with streaming audio within one browser, one tab per audio source. Performance is affected by complex issues of latency when combining audio streams from different web sites in distant geographical locations. Time and phase differences are introduced to signals due to a number of factors including:

  1. Distance from transmitter to various receiver sites
  2. Latency within receivers
  3. Bandwidth available from receiver site to ISP (dial-up, DSL, Fiber?)
  4. Travel time through the internet to the end user\'s ISP
  5. Bandwidth available from ISP to end user (dial-up, DSL, Fiber?)
  6. Latency within the end user\'s computer system

One solution to the above, borrowed from radio astronomers and government surveillance specialists, is to encode time into the data. Then the signals can be re-constructed with the proper time / phase relationships and useful to the end user. Flash is probably not an adequate format for the kinds of radio work envisioned here, but it is a step toward establishing a supernetworked world of radio. Libasound2 certainly works for simple listening tasks, and with some further development, may find use in large scale multichannel / multisite radio networking.



Tags: Flashplayer Audio Routing, Jack Audio and Flash

©2005 - 2017 AB9IL, All Rights Reserved.
About, Contact Us, Links, Privacy, XML Sitemap, and HTML Sitemap.