The Right Tool For the JobEngineers can use a variety of programming languages to create applications. Which is best depends on several factors, including the operating system the application will run under, the size of the application, the skill of the programmer and the need for speed.
C++ is a flexible, efficient and powerful language. It has been used for commercial software development for about 15 years, and is supported by a wealth of editors and debuggers. It is an object-oriented language that requires the programmer to know a bit about the workings of microprocessors.
C++ is more difficult to learn that some languages; and with flexibility and power comes the potential to create programs with subtle bugs that can be difficult to locate and repair. Memory leaks and overwrites are common problems for novice programmers.
Java was introduced around 1996 by Sun Microsystems. It is based on C++, but simplified. The developers of Java left out the capabilities of C++ that got programmers into trouble. Java produces an intermediate form called byte- code, which runs on a platform-specific Java Virtual Machine, or JVM. This means programmers can write code once and use it on several platforms, such as Macintosh, UNIX or Windows, saving development time.
Programming in Java is similar to programming in C++, involving the development of objects. Developers can create either standalone applications or applets, which run within a Web browser.
Visual Basic is now part of Microsoft’s.NET development environment, which includes VB, C#, J# and C++. VB is probably the easiest language to learn; a beginner can be creating simple Windows applications in short order. A novice programmer can get a long ways in VB by dragging list boxes and buttons onto an interface and writing minimal code. A wealth of third-party ActiveX libraries makes it easy to add complex functionality to home-grown applications quickly. Of particular interest to radio developers are SwiftSoft’s libraries of ActiveX components for streaming audio and multimedia.
Because VB is simplified, users don’t learn many of the complexities of programming such as memory management, requiring additional study if they decide to move up. Visual Basic code tends to be larger and less efficient than that of other languages, making large programs run slower and take more space in memory. Another limitation is that VB can only be used for Windows and Web-based applications, making it unsuitable for cross-platform development.
Python is an interpreted, interactive, object-oriented programming language often compared to Java. In addition to program development, it can be used as an extension language for applications that need a programming interface.
Python applications are portable, running on Windows, UNIX, MacOS and other platforms. The Python language is copyrighted, but freely usable and distributable, even for commercial use. Free downloads are available at www.python.orgSince the earliest days of radio, a creative spirit has been a part of the broadcast engineering tradition. In the beginning, engineers built their own equipment because there were no commercially manufactured products. The tradition continued, and in later years it wasn’t unusual to see stations with much of the equipment built on site.
Today’s consolidated radio landscape is a different environment from that of years past. But while opportunities to scractch build audio and RF gear are few, the creative spirit lives on, often in the form of homebrew software engineering projects. Engineers are crafting their own software to fill unique needs, perhaps because off-the-shelf solutions are too expensive, or simply for the fun of it.
Let’s look over the shoulders of a few people who have been busy writing their own code.
VB at ‘BZ
Mark Manuelian, engineering manager at WBZ in Boston, used his Visual Basic programming skills to save his station the cost of purchasing commercial software. Over time his program evolved to fill several needs.
(click thumbnail)Cédric Maufroy of L.E.A. in France created a centralized management tool to handle control of their network of processors via a Virtual Private Network
The sales staff needed access to the station’s commercial library in order to provide clients with spec spots and commercial copy, he said. Manuelian sought to enhance the shared production software of the automation system and to add the ability to e-mail audio files to clients.
Manuelian wrote a player in VB which met the requirements of the WBZ sales department. Later the software was modified to streamline newsroom operations.
He also wanted to speed up the playlist editor and create an effective way of checking the selected cuts. The first major revision of his player was to add a playlist editor that was compatible with the on-air system.
At last summer’s Democratic National Convention, the news department needed an easy screen for on-air playback of news cuts. The player program was again revised to include an “on air” playback screen and some library database maintenance routines.
“Today the program is installed on more than 50 computers and used regularly by news writers, editors, the production department, sales staff and program department managers.” He said, “Purchasing existing software would have cost at least $30,000, and would not have had all the needed functionality.”
Radio’s transition to the digital age has brought with it special challenges for visually-impaired operators. Ruth Phinney, program director for WXXI Reachout Radio in Rochester, N.Y., supervised the transition of the radio reading service from an analog to a digital infrastructure that uses ENCO’s DAD software.
“Being a very graphically-based software, DAD has presented some unbelievable challenges,” she said. ENCO’s Gene Novacek developed a short program which would enable DAD to interface with Window-Eyes, a screen reading application for visually-impaired computer users.
Since the system had to work in a live studio, feeding the output of Window-Eyes to a speech synthesizer was not practical. Instead the screen reader interfaced with Freedom Scientific’s Power Braille 40, a $4,500 device that presents screen data as 6-dot or 8-dot refreshable Braille.
A PBB-24 Programmable Button Box from Broadcast Tools is used to change between selections within ENCO quickly. A series of keyboard shortcuts for DAD was devised, eliminating the need for a mouse.
Phinney said maintaining the interface software is an ongoing challenge, as it needs to be revised each time a new version of DAD is released.
Most of Reachout Radio’s board operators are sighted and must use DAD in the conventional way. During those times, the Window-Eyes interface simply is turned off.
One man, one voice
Aligning a RPU yagi antenna from a remote site is usually a two-man job, with one engineer at the receiver relaying the signal strength back to the other, who is at the remote site aiming the transmitting antenna.
Paul Shulins, director of technical operations for Greater Media in Boston, figured out an easier way. Station personnel can dial a number on their cell phone, make a couple of quick menu selections with the keypad and hear a voice speaking the receiver signal strength, making antenna alignment a one-man job.
The 0-5 volt signal strength sample from the RPU receiver was connected to an analog-to-digital converter and scaled so 5 volts corresponded to 100 percent.
Shulins added a telephony card manufactured by Talking Technology to a PC, recorded a female voice speaking the numbers 1 to 100, corresponding to receiver signal strength, and stored them as audio files on the PC’s hard drive. Next he wrote a simple program in Basic that sends an audio file corresponding to signal strength to the Talking Technology board. The signal strength reading is updated about once per second.
“It would have been possible to do this with voice synthesis,” he said, “but the quality of a recorded voice, especially with numbers, is much better.”
The cost for such a project is surprisingly modest.
(click thumbnail)WXXI Reachout Radio uses a program by ENCO that enables the DAD system to interface with a screen reading application for visually-impaired users. Here, Andy Shields uses the new setup. Photo by Scott Fybush
“Any 386 machine running DOS with a 20 MB hard drive is fine,” Shulins said. “The PC card from Talking Technology costs between $200 and $300.”
This application is a small part of the telephone interface Shulins has developed for the five Greater Media Stations in Boston. Around 700 status items can be accessed via telephone, and users can also control the routing switcher to assign an audio feed to a subcarrier generator for use at remote sites.
Managing a radio network with hundreds of transmitter sites practically begs for custom solutions. Cédric Maufroy, general director of L.E.A. in Le Bourget, France, has the job of maintaining the network’s Omnia audio processors. Doing the job by hand was costly in engineering resources.
Maufroy and his team created a centralized management tool to handle a number of tasks related to their processors, which are connected to L.E.A.’s headquarters via a Virtual Private Network, or VPN.
They wrote a common software API (Application Programming Interface) so the application would interact with different types of processors. Currently the software works with Omnia3, Omnia3 Turbo, Omnia4, Omnia5 and Omnia6 devices. The API was written in C/C++ with Microsoft Visual Studio.net.
Maufroy’s control software is delivered on a key USB, usable directly without installation on the computer. No data remains on the computer once the key USB is removed, protecting the software from illegal copies and unauthorized access to the system.
(click thumbnail)Paul Shulins created this talking receiver-strength device to help with aligning RPU shots.
An administration tool can authorize or prohibit access to each parameter of the processor for each USB key. User profiles create a screen interface specific to each type of user, from beginning to expert. The change of interface is dynamic at the moment of user log-on. The remote control software is written in C++.
Maufroy developed a high-level GUI for management of the processor database, as well as the server for automation of audio processor update tasks. This tool was developed in Pascal with Delphi 7 Enterprise. Using it the engineer can index transmitter sites and information about processors on the network; create and schedule tasks for a group of processors, for example, updating preset content for a subset of processors at 3 a.m.; create and store L.E.A.-designed presets; create logsheets of actions that succeeded and failed and synchronization of the database with the processors already installed.
Maufroy’s software also allows remote audio monitoring of sites via tuners located at the transmitter sites, enabling quality checks and remote diagnosis of audio problems.
Tell us about your custom solutions. Send a letter to the editor at firstname.lastname@example.org.