It's not as powerful as something like PureData but it does give you a simple and intuitive introduction to DSP and audio synthesis.
Ask HN: How to get started with audio programming?
41–50 of 123 posts
Re: Ask HN: How to get started with audio programming?
#42You can absolutely make a nice synth that takes input from pretty much anything you can attach to a computer.
And as everyone else has said - theAudioProgrammer is good too.
(Edit) - Pure Data (PD) is an open source alternative to Max which is free. I've heard people recommend it but never used it myself.
Re: Ask HN: How to get started with audio programming?
#43I started with Csound and Cabbage framework[1] which I used to create some VST plugins.
Then I moved to javascript lands (as everyone already has runtime called web browser) and I am creating sort of DAW using webaudio. I used Tone.js, but it was somewhat confusing, so I started my own library[2].
It's not finished yet but I have already nice and usable demo - comb organ playable with computer or MIDI keyboard with built-in "tape recorder"[3]. Good news is that is open source so you can actually stole some ideas from me.
[1]: https://cabbageaudio.com/
[2]: https://github.com/severak/cyber-music-studio/blob/main/js/h...
[3]: https://severak.github.io/cyber-music-studio/regenschori.htm...
Re: Ask HN: How to get started with audio programming?
#44Re: Ask HN: How to get started with audio programming?
#45Re: Ask HN: How to get started with audio programming?
#46[0] - https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_A...
Re: Ask HN: How to get started with audio programming?
#47Ross Bencina also has some good articles about the realtime aspect. Basically, you shouldn't use locks and should become intimately familiar with ring buffers :)
Re: Ask HN: How to get started with audio programming?
#48Re: Ask HN: How to get started with audio programming?
#49My advice would be to start with JUCE. It's a great framework for audio development, and has a lot of example projects for making plugins and hosts. Audio programming is definitely tricky and something of a black art. Even making a simple square wave synth that doesn't sound crap is surprisingly difficult, because of unintuitive artefacts engendered by the sampling theorem. (In a nutshell you have to make the square…
If you want to do anything useful you'll need a GUI which can control the parameters of the audio plugin. The GUI will communicate with the audio thread at control rate. The audio thread will usually pick up messages from the GUI via a ring buffer. And by the way, this can happen in reverse, e.g. for level meters, where you do a moving average of squared amplitude (RMS), and output this as a control rate. You can use ring buffers for this, but another approach is to use atomic variables. And in x86 architectures you can actually even use just regular variables because of its strong memory architecture.