# wac2wav converter

March 14, 2016

Automated acoustic monitoring is gaining momentum worldwide. Alberta is stepping up to the game by implementing automated recording unit (ARU) based monitoring programs. An improved command line tool is here to help in the process.

The Bioacoustic Unit of the Alberta Biodiversity Monitoring Institute (ABMI) and the Bayne lab at the University of Alberta collaborates on best practices for using acoustic technology. The amount of information collected each year by these organizations is measured in dozens of terabytes, and is steadily increasing. Efficient and secure storage for all these files is the most immediate challenge, but the next one is closing the gap between data collection and data processing.

Processing all the recordings from the field requires significant computing resources. The first step is converting the wac files to wav, so that a a wider variety of software tools can be used to analyze the information in the files. The wac format is a proprietary file format developed by Wildlife Acoustics, a company that specializes in bioacoustics monitoring systems.

The fact that the acoustic units manufactured by Wildlife Acoustics are widely used in Alberta might represent a vendor lock-in. Luckily for us, the pressure on the company (see here and here, thanks Luis J. Villanueva-Rivera) led to the company releasing a command line tool under the GPL license for facilitating wac-to-wav file conversion (see source code here, here, and here).

The story might have ended right there. But the C code worked with standard input and output. It took some time and help (thanks John) to figure out exactly how one should use the command line tool. Here is the solution:

cat input_file.wac | ./wac2wavcmd > output_file.wav


Isn’t that ugly? One would expect something like:

./wac2wavcmd input_file.wac output_file.wav


The good news is that the modified version (also released under GPL license) does just that. It has been tested on Linux, Mac OS X and Windows 10. It also removes all the clutter the original program prints to the terminal. The only difference is that the program is called wac2wav instead of wac2wawcmd. See the description and source code on GitHub. (Note: the leading ./ can be omitted if the program is added to the path.)

We are one step closer to a truly cloud based bioacoustic platform!

#### Shiny slider examples with the intrval R package

The intrval R package is lightweight (~11K), standalone (apart from importing from graphics, has exactly 0 non-base dependency), and it has a very narrow scope: it implements relational operators for intervals — very well aligned with the tiny manifesto. In this post we will explore the use of the package in two shiny apps with sliders.