In this discussion, I will provide with some guidelines on where and how to launch your journey into the world of audio coding. I will discuss a few of the pitfalls which aspiring developers, including myself, have encountered in getting started, and provide some solutions on how to defeat them! Finally, I will show how no matter the background or age, you will be able to get a foothold in this industry with the right approach and ambition.
Josh's path into audio programming has been anything but typical - as a moderately successful DJ and music producer, he found himself broke with his career at a halt at the age of 37 with no idea what to do with his life. In 2015, he decided to try his hand at code, enrolling in the Music Computing course at Goldsmiths University. During his 2nd year at university, he was so excited by the new skills that he was learning that he decided to start a YouTube Channel called The Audio Programmer, where he teaches people audio programming as he learns new skills. Since then, the channel has grown into one of the largest communities for audio development on the web, with video tutorials, podcasts, written blogs, and a discussion group of nearly 2,000 audio developers of all levels from around the world. Since graduating, he has had the opportunity to work with some of the most amazing companies in the world, including Ableton and ROLI / JUCE. The roles he has served in have been widely varied - project / product management, consultancy, event organization, and of course, software development. He has also been working on his own app called Scratch Champion, which uses the power of machine learning to help teach DJ’s how to scratch. A prototype of the app has showcased with Intel in New York and San Francisco, and has earned accolades from some of the top DJ’s in the world.
There are a lot of tricky problems to solve when dealing with background tasks. This talk delves in to them, building a task running system from first principles and solving common pitfalls one by one. Once that’s done we’ll look at how to build this system in to a real world app using patterns that are compose-able and reusable.
Using strict types and free functions enables you to write far less code which contains less bloat and is more expressive.
David Rowland is the director of software development at Tracktion Corporation, working primarily on the digital audio workstation, Waveform and the engine it runs on. Other projects over the years have included audio plugins and iOS audio applications utilising JUCE. David has a passion for modern C++ standards and their use to improve code safety and brevity.