Live data from Hacker News

Ask HN: How to get started with audio programming?

news.ycombinator.com

81–90 of 123 posts

Re: Ask HN: How to get started with audio programming?

#81
post #56
post #17

You can try to build an visual audio editor and learn everything else from there, step by step.

That is how I learned the very basics of web audio and modular synthesizers at once (here's the result https://github.com/spectrome/patchcab ). Setting a clear goal makes the learning much easier.

Looks cool

Re: Ask HN: How to get started with audio programming?

#83
The Will Pirkle books are excellent, and he did a new edition of the synthesizer one. "Designing Software Synthesizer Plugins in C++: With Audio DSP"

Also, you can learn a ton by looking at various other higher level languages do it: Csound, SuperCollider, PureData are all open source.

Oli Larkin made a brilliant page of resources on github: https://github.com/olilarkin/awesome-musicdsp

Re: Ask HN: How to get started with audio programming?

#84
Shameless plug but I put together some Jupyter notebooks that walk through several of the fantastic books recommended in this thread: https://github.com/khiner/notebooks

I wanted to help myself and other folks develop better intuitions around the material, particularly focusing on short animations to develop better visual intuition along with working code examples of the material in the books.

Books covered (with a notebook for each chapter):

* Musimathics volumes 1 & 2 by Gareth Loy

* Introduction to the DFT by Julius Smith

* Introduction to Digital Filters by Julius Smith

* Physical Audio Signal Processing by Julius Smith

also a couple not directly about audio but helpful for the domain:

* Coding the Matrix by Philip Klein

* Accelerated C++ by Andrew Koenig and Barbara Moo

Hope someone gets some value from these - have fun!

Re: Ask HN: How to get started with audio programming?

#85
I second the recommendation of Steven W. Smith's dspguide.com, which will get you from (I think) zero to a profound understanding of DSP. I've also learned a lot from Julius O. Smith's Physical Audio Signal Processing, which I see a couple of other people have also recommended: https://ccrma.stanford.edu/~jos/pasp/

But if you're using an existing computer music programming environment like Csound (used in The Audio Programming Book), SuperCollider, or PureData, you can make a mini-synth which takes input from the computer keyboard without any of that stuff! (Stay away from Max/MSP; it's proprietary.)

The most fun I've had with audio programming has been bytebeat, though: http://canonical.org/~kragen/bytebeat. I didn't invent bytebeat but I did write that page about it.

Also, there are a lot of the hassles involved in audio latency on CTSS-derived OSes like MacOS, Linux (especially Android), or Microsoft Windows; it's easy to end up with 100+ ms of latency, and hard to do better than 10 ms, and either of those is a super shitty musician experience. If you do your stuff on an Arduino or similar microcontroller instead, those problems evaporate, and your computer music system will fit into an effects pedal. You need a DAC and, if you're taking audio input, an ADC; the built-in PWM and ADC in a standard AVR may not be sufficient. (And, beware, a 31.25 kHz PWM carrier can go right through a stereo system and burn out your venue's tweeters if it's turned up high enough. Filtering is required.)

Re: Ask HN: How to get started with audio programming?

#86
post #76

I manage a team in this field presently; the answer to your question depends on whether you want to be gainfully employed doing so, or not. Web Audio API and JUCE are the modern building blocks for mostly everything out there; if you're familiar with these, that's a really good place to start. If you're looking for something accessible, SOUL is an excellent domain-specific scripting language that leverages JUCE under…

What is the Web Audio API used for?

This for instance:

https://tonejs.github.io/

Go wild:

https://tonejs.github.io/demos

Re: Ask HN: How to get started with audio programming?

#87

If you're new to programming, it might also help you to get started with Max/MSP and YouTube videos that already show you how to make the mini-synth you're after (terrible as a programming environment but great as a learning/prototyping tool). The Computer Music Tutorial by Curtis Roads is a good companion here if you want inner workings. You might be able to snag a PDF copy online to see if it's for you. Audio Progr…

There are other programming toolkits for audio programming as well, like pure data and JUCE. Idk maybe it’s just me but I’m an experienced programmer and I’ve spent hours learning max/msp and really don’t like the visual aspect. I like programming in vim normally and zipping around the file manipulating text very efficiently without ever taking my hands off the keyboard. Max/msp is the exact opposite, everything is d…

you might prefer SuperCollider. the syntax and style are a bit bizzare, but the idea is basically if Max were Smalltalk — an entire self-contained audio programming environment where everything’s accessible as code.

Re: Ask HN: How to get started with audio programming?

#89
Since we are all here, I have a question. I personally am much more interested in audio sample triggering and/or loop based production in this context than synthesis/wave generation -- and it seems like the overwhelming majority of tools are focused on the latter.

In my head, I'm imagining a more programmatic approach to "arrangement of samples and loops," as in, instead of, or perhaps complementing, the classic "grid" or "buttons" view -- something like,e.g.:

- Specify 4/4 @ 95bpm for the piece

- Sample 1, a drum loop stretched/and or pitched

- Sample 2, a hit on the 2nd beat of each interval

- Sample 3, a simple electric piano melody, repeating over X intervals.

- Sample 4, a pad with an echo/reverb

etc. Now, what should be easy to do is to switch out, e.g. which drum loop, or change your piano to a trumpet. I get that MIDI is okay for this -- but is of course better for the latter situation and not great for effects and audio samples.

Your Abletons and so forth are not bad at this, of course, but - and maybe this what I'm describing -- Ableton's features -- but doable in vim, perhaps with the ability to create functions et al on the fly, which strikes me as a potentially powerful way to "group" musical sounds/ideas/intervals/melodies/chords/effects etc etc

Re: Ask HN: How to get started with audio programming?

#90
post #89

Since we are all here, I have a question. I personally am much more interested in audio sample triggering and/or loop based production in this context than synthesis/wave generation -- and it seems like the overwhelming majority of tools are focused on the latter. In my head, I'm imagining a more programmatic approach to "arrangement of samples and loops," as in, instead of, or perhaps complementing, the classic "gri…

Sounds like you might be more interested in live coding. Overtone [1] can do what I think you are describing, and more--it's a frontend to SuperCollider, which has all the audio synthesis stuff you aren't interested in, but it can trigger samples fine. Of course, if Clojure isn't your thing, there are other live coding tools out there. I'm partial to Orca [2] myself.

[1] https://github.com/overtone/overtone

[2] https://github.com/hundredrabbits/Orca

Post reply on HN