UTS Data Arena
  • home
  • projects
  • dive in
  • about
  • calendar
UTS Data Arena
projectsdive inaboutcalendar

Wiki


No pages

Audio Software

Pipewire & Wireplumber - update Feb 2024

We are moving from Pulseaudio & Jack to a newer Audio system based on Pipewire and Wireplumber.

This config is still in-the works (Feb 2024) and should be ready soon.

In the meantime, here's a great blog on Linux Audio

Pulseaudio and Jack Audio (prior 2024)

Pulseaudio is the regular linux desktop audio system. Most desktop apps connect to pulseaudio. Spotify uses pulseaudio. It is well established, and well known.

The Pulseaudio Volume Control (called pavucontrol) is another desktop app/window. It has separate volume controls for each running app (see Playback tab), and Master volume controls for everything (see Output Devices). You'll find a volume control for most movies and web-browsers on pavucontrol. On solo2 we generally keep this window open in the top-right corner of screen-1.

Usually pulseaudio connects straight to the ALSA linux audio subsystem directly. However, the Data Arena has inserted the JACK Audio system in-between. See diagram below.

Jack provides a Professional level of Linux Audio typically found on a "DAW" (Digital Audio Workstation). Most linux systems select one or the other. The Data Arena however has integrated them - the stack operates as: PulseAudio -> Jack -> ALSA. This means just about everything works. Regular Desktop Audio speaks to PulseAudio, which passes audio through Jack. All the Jack tools work as well. ALSA is the underlying (relatively simple) Audio Layer which all Linux Systems run.

AudioSoftwareStack_01.Screenshot_20230613_180313

Audio File Format

Although the Data Arena has 16 speakers, the audio file format expects 22 channels. Think of it as allowing for future expansion. Channels 17–22 are expected to be blank, though it doesn't matter: they're ignored.

A simple .wav file will work. It can be test played on Solo with the unix command:

$ aplay myTestAudio.wav

Here is a 22-Channel wav audio test file (20MB) which you can download:

DA Audio Test WAV 22 Channels

20.9 MB

Here is the same file in ogg vorbis format, which allows 22-channels, but is a much smaller sized file (0.1MB)

DA Audio Test OGG 22 Channels

118 kB

When you play this file in the Data Arena, each speaker reports in turn its speaker-number. Speaker number 1 says "one". Then speaker number two then says "two", and so on up to 14. Speakers 15 and 16, being bass LFE speakers, say "fifteen" and "sixteen", but these sound like a very low "boombooohm", "boomboohm".

See the picture below. If you load this test-file into a multi-channel audio recorder like Audacity you will see 22 tracks. The first track, Track 1, is channel 1, which is speaker 1, which is to the left of the door when you enter the Data Arena. Track 14 is channel 14, which is speaker 14, which is just to the right of the Data Arena door. Tracks 15 and 16 are the seperate LFE/Bass tracks. Tracks 17 to 22 are blank.

Loaded into Audacity the 22-track file looks like this

AudacityLoadedWith22Tracks.png

Notice (above) the first line (track one) only has one sound sample on it, right at the beginning. That is because that speaker reports "one!" at the start of the audio playback and then stays silent (flat line) while all the other speakers report their speaker number. Standing in the Data Arena, you hear "one two three four ...." from each speaker, going clockwise around the room. Notice the diagonal arrangement of samples...

If you wish to create spatial audio effects, this can be done in software (such as Audacity, or the equivalent) and rendered out to the 14 channel ring. So long as you deliver the audio tracks to the right channels it will work. For instance, ambient room effects can be created.

22 Channel Audio can be added to any movie file such as mpeg or avi and it will play back as expected. Solo will see the audio tracks inside the mpeg movie and send the audio to the RME Fireface. ffmpeg can be used to add video and audio together. sox is a useful linux tool to manipulate audio.

Reaper

reaper_logo.jpg

REAPER is a complete digital audio production application for computers, offering a full multitrack audio and MIDI recording, editing, processing, mixing and mastering toolset.

REAPER supports a vast range of hardware, digital formats and plugins, and can be comprehensively extended, scripted and modified.

Reaper can be used to create spatial visualisation and processing of stereo, surround, or multichannel audio (up to 64 channels).

There's a lot more technical information about Reaper here.

The Linux version of Reaper 5.979 is installed. To run it open a linux shell (Konsole terminal window) and type:

$ reaper

Live playback - OpenAL

This is where things will get interesting. We have OpenAL installed on Solo, which means interactive audio, or software which creates interactive 3D Audio can drive the audio in realtime.

Interesting Fact: The Stereo Video Player software used in the Data Arena "bino" has been compiled with the OpenAL libraries to playback audio in the Data Arena.

Audio via Matlab

Matlab can be used to generate live audio in the Data Arena, through Matlab running on Solo. More on this soon.

Audio & Video Manipulation via ffmpeg commands

Here's some example ffmpeg commands to show how easy it is to manipulate video and audio. In each example, hopefully you can recognise the input filenames as inFile.mpg and inFile.wav and so on, and the output files with names like outFile.mp4.

To COMBINE 2 files into one, say a video file and an audio file, you could do this:

$ ffmpeg -i inFile.mov  -i inFile.wav -c:v copy -c:a copy outFile.mp4

Many many formats are known by ffmpeg, so don't worry if your inFile is an avi, or mpeg, or mp4 etc. To Strip the Audio from a movie file, leaving just an audio file as output, you could do this:

$ ffmpeg -i infile.mp4 -vn -acodec copy outFile.aac

ffmpeg can be installed on OSX via brew. Have a look here. There's a lot of examples of how to use ffmpeg to manipulate video and audio. For example see here.

mediainfo

When working with video and audio files it is really useful to be able to see what is contained in a media file. There are many ways to do this. in the Data Arena we use a program called mediainfo.

Here's an example which shows what's in the "Ogg Vorbis" format audio test file above.

$ mediainfo DA_TestAudio_16VoicedChannels_22tracks_S16_LE.ogg

General
Complete name                            : DA_TestAudio_16VoicedChannels_22tracks_S16_LE.ogg
Format                                   : Ogg
File size                                : 115 KiB
Duration                                 : 10 s 759 ms
Overall bit rate mode                    : Variable
Overall bit rate                         : 87.6 kb/s
Album                                    : UTS Data Arena Audio Testfile
Track name                               : 16 Channels Named
Performer                                : Ben Simons
Recorded date                            : 2015
Comment                                  : This file is 22 tracks, tracks 1-14 are speakers in a ring, 15-16 LFE, 17-22 are blank

Audio
ID                                       : 1980622912 (0x760DE840)
Format                                   : Vorbis
Format settings, Floor                   : 1
Duration                                 : 10 s 759 ms
Bit rate mode                            : Variable
Bit rate                                 : 2 112 kb/s
Channel(s)                               : 22 channels
Sampling rate                            : 44.1 kHz
Compression mode                         : Lossy
Stream size                              : 2.71 MiB
Writing library                          : libVorbis (Now 100% fewer shells) (20180316 (Now 100% fewer shells))
Last updated 22 Feb 2024
Hardware
Reaper Mixing