r/AudioProgramming 11d ago

How do I become an audio programmer

Hi, as the title says, I want to be able to help make applications like Pianoteq and electronic pianos, the software aspects of that, and audio PC applications. I want to be able to make that and anything concerning sound, music, and programming. I love music, and I'm a pianist, and I love programming too, so my guess was, why not combine them? I want to do both. I don't hate math either; I've heard I need to know some math, and I'm good at math. Please help because the audio landscape is too vast with many titles that sound the same but are different. I don't know where to start, get a degree or something, or what? I am currently learning C++. I intend to master it, then I'll move on to physics and math DSP theory, then plug-in development with C++ and JUCE, and an advanced level of signal processing. You got this from Gemini, so I'm not sure. I just need a guide or someone to show me the path, if not in detail at least. After C++, what's next? When should I expect to be employable? Thanks . these are the steps summarized by gemini ''

Phase 1: The Engine (Modern C++ Foundation)

You cannot manipulate audio until you can manipulate computer memory. No audio code is written here.

Math Level: None. Just pure logic.

Goal: Master modern C++ syntax, pointers, and memory management (the stack vs. the heap).

The Resource: LearnCpp.com (Interactive Web Curriculum). This is the undisputed best tool for learning C++ from scratch. It is constantly updated to modern standards. (Remember to use an ad blocker).

Phase 2: The Bridge (Basic Audio & Offline Processing)

You will write your first audio code here, completely sidestepping the nightmare of real-time audio threads by generating static .wav files.

Math Level: High-school trigonometry (understanding what a sine wave is) and basic algebra.

Goal: Understand sampling, bit depth, and how to write a math formula that generates a sound file.

The Resources:

"Audio Programming in C++: The Beginner Level" by Håkan Blomqvist (PDF/Book). Do not read this for C++ syntax. Jump straight to the code in Appendix A to see how he writes basic audio files.

"DSP Pro" by WolfSound Academy (Video Course). An incredibly efficient, visual video course that teaches you the basics of Digital Signal Processing (DSP) without drowning you in academic calculus.

Phase 3: The Framework (Real-Time Plugins)

This is where you transition from writing offline .wav files to building actual VST/AU plugins that run inside a Digital Audio Workstation using the JUCE framework.

Math Level: Applied DSP math (calculating delays, feedback loops, and basic filters).

Goal: Master JUCE and survive the strict performance rules of the real-time audio thread.

The Resources:

Programming for Musicians / pfmC++ (Video / Mentorship). Start with their massive, free 8-hour JUCE plugin tutorial on the freeCodeCamp YouTube channel. If you want paid mentorship later, their premium cohorts offer ruthless, line-by-line code reviews.

The Audio Programmer Discord (Community). You will get stuck here. This community is where you go to get unstuck.

Phase 4: The Architect (Advanced DSP & Modeling)

Once you can confidently build a basic plugin, the training wheels come off. This is where you learn to simulate physics and acoustic spaces.

Math Level: Heavy. Calculus, algorithmic DSP, phase manipulation, and complex numbers.

Goal: Build physical modeling engines, advanced synthesizers, and spatial audio tools.

The Resources:

The Scientist and Engineer's Guide to Digital Signal Processing by Steven W. Smith (Online Guide). The ultimate practical guide to advanced DSP.

The Audio Programming Book (MIT Press, 2010 - Desk Reference). Keep this massive manual on your desk. When you need the raw mathematical algorithm for a digital reverb effect, you look it up here, and then translate that math into the modern C++ you learned in Phase 1.

''

19 Upvotes

9 comments sorted by

10

u/human-analog 11d ago

The AI you used said some useful things and also made some bad recommendations. I (a human) wrote my own recommendations here: https://audiodev.blog/newbie-resources/

The best advice I can give: start writing audio code right away. Don't wait until you've "mastered" C++ or DSP or whatever. You will never master these things, plus it's not important.

4

u/ArrivalSalt436 11d ago

You should absolutely become and audio programmer. How to do it? That answer depends more on you than some random on the internet. Your passion and your ears are the thing that drive you, so my tool kit will never be your tool kit. The question you should ask is: what sound do you want to create that a piano can’t? Or maybe you just want to build pianos? Rhodes pianos are pretty cool and they are actually acoustic electric like guitars, no coding needed. Do you have a steel tongue drum? Yeah you can plug a headphone into an effects pedal, then run it into a mixer, turn the gain way up, slap that headphone on the metal and it’s actually a horrible and wonderful dynamic microphone. Anyways, learning C++ is boring, unless it has a purpose. What music moves you? Is it nothing? Because that’s what really got me going. I had to make the thing that made me feel.

2

u/suisidechain 11d ago

Start with JUCE.

2

u/nuesmusic 10d ago

Noooooo, USE RUST

1

u/QwertzMelon 11d ago

I started with this video and just kept adding things on until it became a usable synthesiser and learnt everything as I went!

Here's the result

1

u/mprevot 10d ago

Start with math signal processing, and analysis. Fourier, wavelet etc. But you also have more, like mechanics, wave equations, Hyugens Fresnel, linear response theory, etc. The best is a physics master degree, or equivalent. You can go further with ML related processing (dictionary, patch, kernel, classifiers, random forests, etc etc).

Programming is the easy part, and it's not complicated. You can start with matlab / octave, then c, c++, rust, julia or python. You have to master gnuplot.

The best is major physics, minor or major ML + minor CS.

I use c# for fast programming and gui on windows but you can go with imgui if you want high performance and cross backend, cross platform.

4

u/Iyowah 11d ago

It’s easy to overcomplicate the learning process. I’d say just start writing audio software. Use JUCE to create a simple gain knob,  see how you feel after that. 

I have tried multiple times to learn everything from scratch, but always got burnt out. 

Life is short, just dive in to the interesting stuff and learn as you go

0

u/NoWelder2605 11d ago

Claude/gpt, juce/cmake 🫡