Development
Radio station management with Airtime
Audio broadcasters gained a valuable tool in late January with the 2.0 release of Airtime, a Linux-based radio station management suite. Although it started off targeting independent over-the-air news stations, Airtime has developed into a tool that can handle recording and programming streams delivered over the Internet, too. The new release adds more integration with online services of interest to broadcasters, as well as streamlining the configuration and workflow of running a broadcast service.
What is Airtime?
Airtime is developed by Sourcefabric, a Prague-based
non-profit that produces free software tools for independent media. Its
other projects include news-oriented content management and publishing
systems, and a recently launched book publishing platform. The group started in 1998 as the electronic media wing of the Media Development Loan Fund, a charity chartered to support "independent news outlets in countries with a history of media oppression
", before spinning off on its own in 2010.
Sourcefabric's origins have impacted its software projects in several key ways, however. For example, all of the products are built with internationalization and multilingual-output (often including simultaneous publication in several languages) from the start, which is not true of every CMS. But with Airtime, the original mandate — to develop station management software for radio broadcasters under oppression — resulted in a web-based design that allows users to configure and program broadcasting equipment from remote locations, even across national borders.
In practice, Airtime generates audio streams using the Liquidsoap stream-mixing framework, and can output the results simultaneously to Icecast or Shoutcast servers (as MP3 and/or Vorbis) or through a sound card connected to traditional over-the-air broadcasting equipment. It supports several audio source types, including a library of recorded files (which are indexed by PostgreSQL and may be stored in a remote location), live studio audio that is captured by Ecasound, and "playout" content mixed in a variety of ways by the Mixxx DJing application. The audio features include fade-in/fade-out, cue points, and automatic cutoff when a program reaches its scheduled end.
![[Calendar view]](https://static.lwn.net/images/2012/airtime-calendar-sm.png)
The station management features include a calendar-like system for programming shows, ads, and other audio, complete with user-configurable recurrence and re-broadcast settings. The programming interface allows drag-and-drop reordering of the schedule and of tracks within a given program, and full metadata searching through the station library. Individual user accounts can be configured to give producers and staff access to program only their own shows, and administrators can monitor station status status and resources remotely. The media management component automatically imports and indexes new content, so staff can pre-record shows and drop them into the central storage location, where Airtime will pick them up for later playback.
Although Airtime itself is a management interface, the project also includes jQuery widgets that stations can add to their public-facing web sites to display information about the current on-air content and schedule information for the future.
Airtime is Linux-only, and while the project only makes official, packaged releases for Debian and Ubuntu, users of other distributions can download the source code and should be able to install it using the bundled installation scripts. In addition to Liquidsoap, Ecasound, and PostgreSQL mentioned above, Airtime depends on a variety of sound packages, although nothing too out-of-the-ordinary (assuming you do not count Liquidsoap's OCaml underpinnings as extraordinary). The code itself is written mostly in PHP, and is designed to work with Apache.
New in 2
The last major Airtime release (1.9) was in August of 2011. The project has been adding new features at a measured pace, so Airtime 2.0 is not a radical departure. However, it does implement some changes that can affect users and station administrators.
The most prominent is the ability to deliver output to up to three separate Icecast/Shoutcast streams simultaneously, potentially on three separate streaming servers. This allows stations to offer multiple bitrates, or to provide separate MP3 and Vorbis streams for listeners who prefer one or the other (although the limitation to three streams seems to be an arbitrary decision). A related feature is the ability to automatically upload clips or full programs to a station's SoundCloud account for non-live access from directly within the Airtime interface. Bulk uploads are supported, as are re-uploads, and complete control over the metadata and sharing settings of files.
A few lower-level improvements are potentially important to server administrators. 2.0 now supports PulseAudio as a sound server (in addition to ALSA, OSS, libao, and PortAudio), thus removing the need for administrators to manually uninstall PulseAudio, which was an increasingly tricky proposition once PulseAudio became the default sound server in common distributions.
The "media monitor" has also been enhanced in the new release. It is the component responsible for watching designated storage directories for new content and indexing added files. Previous releases failed to handle some common scenarios, such as renaming directories, and could occasionally attempt to index a new file while it was still being copied into storage, thus corrupting the index data. There is new error-checking to prevent to users from inadvertently editing the same program simultaneously, which could also result in undefined behavior.
Many more of the improvements in the new release fall under the banner of simplifying station management through the web front-end. This is in keeping with the project's stated focus to "reduce the time and effort station managers and DJs spent on behind-the-scenes work
", and most of the changes are said to have originated in feedback from existing Airtime users.
![[Playlist builder]](https://static.lwn.net/images/2012/airtime-playlist-sm.png)
The changes include a simpler interface to the playlist builder, a more configurable calendar/schedule editor that remembers a user's view settings between visits, and the ability to "live preview" a program directly from the browser (in previous releases, previewing a program from the web required using an auxiliary application such as VLC). There are some security-hardening fixes as well (such as input validation and a reCAPTCHA option that is triggered when there is a series of failed login attempts), and more settings have been exposed in the web frontend that previously required editing .htaccess or php.ini. Finally, there are new widgets in the administration interface to monitor disk space usage and service status, and theme-able HTTP error pages.
Stay tuned
Sourcefabric lists an assortment of real radio stations using Airtime on its "Who's Using" page; they are scattered around Europe, Africa, and Asia. Some are commercial stations, others are community broadcasters or non-profits. Unfortunately, if you do not happen to live near one of the FM transmitters, your only option for listening to Airtime programming "live" is through one of the Icecast/Shoutcast feeds.
Anybody contemplating their own Airtime deployment has one other new option, though. Alongside the debut of the 2.0 code, Sourcefabric announced the availability of "Airtime Pro," a hosting service that offers Airtime in a variety of month-to-month plans. Naturally, this service is geared for Internet streaming and not AM or FM broadcasting, but for many users that may suffice.
Sourcefabric has offered customization services and support packages to commercial users of its products in years past; now that it is an independent organization it is presumably responsible for finding sustainable revenue streams. Given the project's commitment to "free as in freedom", hosted services are preferable to offering the software as open-core or another business model.
The project has an extensive roadmap for Airtime, hinting at more features and eventually a REST API. Airtime may only account for a fraction of a percent of the all the active radio stations on the globe, but it is a field currently dominated by expensive, proprietary software solutions — which, if nothing else, means the project has huge potential for growth.
Brief items
Quotes of the week
LibreOffice 3.5 released
The Document Foundation has announced LibreOffice 3.5. Some of the new features in this release include: a built-in grammar checker for English and several other languages (Writer); an improved importer of custom shapes and Smart Art from PPT/PPTX and a feature for embedding multimedia/colour palettes into ODF documents (Draw); a new multi-line input area and new Calc functions conforming to the ODF OpenFormula specifications (Calc); and a new integrated PostgreSQL native driver (Base).PyPy 1.8 released
Version 1.8 of the PyPy Python interpreter is out. "The main highlight of the release is the introduction of `list strategies`_ which makes homogenous lists more efficient both in terms of performance and memory. This release also upgrades us from Python 2.7.1 compatibility to 2.7.2. Otherwise it's "business as usual" in the sense that performance improved roughly 10% on average since the previous release."
Wayland and Weston 0.85.0 released
The first official releases of the Wayland display system, now split into two pieces called "Wayland" and "Weston," are now available. What's not immediately available is a lot of information about what capabilities are in this release or how usable it is. "Wayland is the protocol and IPC mechanism while Weston is the reference compositor implementation. The 0.85 branch in both repositories is going to be protocol and interface stable. We have a series of protocol changes on the table before 1.0 but this branch marks a stable point before we jump into that."
Newsletters and articles
Development newsletters from the last week
- Caml Weekly News (February 14)
- LibreOffice Development Summary (February 13)
- Perl Weekly (February 13)
- PostgreSQL Weekly News (February 12)
The Chromium Blog on the future of JavaScript
The Chromium Blog has an overview of the new JavaScript features expected in a major revision of the language next year. "A proxy simulates a JavaScript object or function, and can customize just about any aspect of their behaviour that you can imagine. This is a real power feature, that takes reflection to a new level and can be used to implement various advanced abstractions and interfaces."
Day: A New Approach to GNOME Application Design
GNOME design team member Allan Day writes about ideas in GNOME 3 application design on his blog. In the article, he looks at the use of maximized windows, views, primary toolbars, and more. The design team is documenting these ideas in a new version of the GNOME Human Interface Guidelines (HIG). "There are many other application design patterns that we've been working on, including application menus, a new grid view for displaying collections of content, in-app notifications, new models for dialogs, nice full screen controls and a sidebar list pattern. Together, these provide the opportunity to create applications that efficient, modern, elegant, and a pleasure to use."
Wayland - Beyond X (The H)
The H has posted a lengthy introduction to the Wayland display server project. "Wayland is only as useful as the applications and toolkits it supports. Applications built for Xfce, GNOME and LXDE use the GTK+ toolkit. Porting the toolkit to Wayland makes the use of Wayland transparent to the application. From an application's point of view, it is still using the common UI elements, buttons, scrollbars, text areas, sliders and checkboxes, that it has always used; but further down the graphics stack, in the backend, these are now translated so they are rendered with an appropriate graphics library into Wayland buffers."
Page editor: Jonathan Corbet
Next page:
Announcements>>