On this blog we are dealing with the topic of audio programming. But what is it actually?
Programming is the art of writing programs to be run on machines. Audio here means the sound in general. So audio programming is writing software that is concerned with sound.
There are many purposes of audio programming:
- Synthesis: whether of music or speech, a lot of audio software is written to generate some sort of audible output solely from the input parameters.
- Coding: encoding to a certain format or form and decoding from it to the original (or nearly original) value. For example, that is where MP3 codec comes into play.
- Enhancement: very often the aim of the program is to reduce noise, increase intelligibility etc. of music or speech recordings. An important area of development is the hearing-aid industry.
- Post-processing & data analysis: multiple algorithms have been developed that use microphone data in a variety of ways. Separating speakers from mixture recordings or health monitoring are two examples. Automatic speech recognition algorithms should also be mentioned here.
- Effects: sound effects make up a big set of algorithms used in both hardware (digital stage effects) and software (audio plug-ins in Digital Audio Workstations).
- Computer games: immersive sound plays a key role in computer games. With the development of Virtual Reality a lot of pressure has been put on the feeling of realistic propagation of sound in virtual space.
- Simulation: code may be written to establish the acoustic characteristics of a room or a material.
- Equipment management: studio and measurement equipment needs software to run, so-called drivers. This area is particularly difficult for beginners, since drivers need to be fast, compact and reliable in every possible situation.
- Streaming: efficient network algorithms are used in many of the streaming platforms like Spotify, Tidal or iTunes.
The knowledge basis for audio programming consists of:
- programming (programming language, software design, application architecture)
- digital signal processing (DSP)
- acoustics (sound as a physical phenomenon)
- physiology and psychology of hearing
- music theory
- probablity theory and stochastic processes
To really master the audio programming skill, to be able to “code sound” you need to get a good grasp of the above. And that’s what WolfSound is all about!