Architect of Waveform DAW & real-time C++ programming expert.
Listen on
Sign up for WolfSound’s newsletter!
Introduction
Dave Rowland is the CTO of Audio Squadron: a group of audio-related companies. More specifically, he’s the architect and the lead developer of the Waveform digital audio workstation (DAW) and an Audio Manager of Prism Sound (which focuses on audio hardware manufacturing). He’s also a very successful speaker, having given talks at conferences like Audio Developer Conference or C++ on Sea.
Given the popularity of Dave’s talks and his 11-year long (as of 2024) experience in developing the Waveform DAW and its open source engine, I am incredibly excited to have him on the WolfTalk podcast.
During the interview, we learn not only Dave’s story but we also discuss the challenges of building real-time audio software including DAWs and learning C++, software architecture, and high-performance real-time programming concerning audio. Dave shares a ton of highly useful tips and resources so you don’t want to miss out on this one!
Note: If you like the podcast so far, please, go to Apple Podcasts and leave me a review there. You can do so on Spotify as well. It will benefit both sides: more reviews mean a broader reach on Apple Podcasts and feedback can help me to improve the show and provide better quality content to you. You can also subscribe and give a like on YouTube. Thank you for doing this 🙏
Episode contents
From this podcast episode, you will learn:
- how Dave organizes his day for maximum productivity,
- which tools he’s leveraging on the day-to-day basis,
- how he went from being a music technology student to a freelance audio developer to the lead developer on the Tracktion DAW (now Waveform),
- how he approaches creating his widely acclaimed conference talks,
- which resources to use to learn high-performance real-time programming.
This podcast was recorded on March 25, 2024.
Dave’s tips on being a good audio programmer
- If you want to learn something, teach it.
- Have good test coverage and benchmarks.
- Write down the requirements (for the project you’re working on).
- Write tests.
- Give talks.
- Approach programming as problem solving.
- Use tools available to you.
- Talk to other programmers.
- Real-time programming is hard because it cannot be tested; RADSan (Realtime-Safety Sanitizer) may help in that.
- Try NOT to do stuff to optimize; use a profiler.
References
Below you’ll find all people, places, and references mentioned in the podcast episode.
- People
- Dave Rowland
- Tom Mitchell
- Julian Storer
- Woody from Mackie
- Dave Christenson from Mackie
- Before he worked for Mackie was the lead singer of the 80’s pop band The Stabilizers
- Roland Rabien
- Cesare Ferrari
- Fabian Renn-Giles
- Timur Doumler
- Wolfram from Tracktion
- University of the West of England
- Music Systems Engineering: apparently replaced by Audio and Music Technology
- Programming languages
- C
- C++
- JUCE C++ framework (podcast sponsor 🎉 )
- NanoRange library
- flux library
- TartanLlama/expected library
- magic_enum library
- fmt formatting library
- Rust
- bash scripting language
- Max/MSP
- Python
- Scratch
- CMajor
- Companies
- dRowAudio: Dave’s freelance company from before Tracktion
- Audio Squadron: a group of audio-related companies consisting of
- Tracktion Corporation
- Tracktion DAW, currently Waveform
- Tracktion Engine: fully featured DAW engine
- pluginval: audio plugin validation tool
- Prism Sound
- SADiE
- DAW + dedicated hardware
- 2JW Design
- Tracktion Corporation
- Mackie
- Native Instruments group
- SoundStacks
- Roli
- PACE
- CMajor Software Ltd.
- Programming concepts
- Builder pattern
- Model-View-Controller pattern
- JUCE’s ValueTree
- Audio Unit: plugin format from Apple
- Seqlock: implementation by Timur Doumler
- Resources to learn C++ and audio programming
- online conference recordings
- finance industry
- game industry
- Read-Copy-Update talk by Timur Doumler
- Low-latency C++ talk by Timur Doumler
- Fedor Pikus’s talks
- David Gross’s talks
- E.g., “Trading at light speed”
- Daniel Anderson talks
- Dave’s talks
- Real-time 101 (with Fabian Renn-Giles)
- Optimising a real-time audio processing library
- JUCE’s ValueTree
- Audio-related communities
- Conferences
- JUCE Summit (now Audio Developer Conference)
- CppCon
- Cpp on Sea
- C++ Online
- Meeting Cpp
- CppNow
- Tools
- XCode
- CLion
- Github Actions
- Azure Pipelines
- Apple Clang
- Realtime-Safety Sanitizer (RADSan)
- ChatGPT
Thank you for listening! 🙏
Who should I invite next? Let me know in the comments below!
Comments powered by Talkyard.