Learn to develop audio applications


#1

Probably I'm OT on this forum, but I try anyway.

I'm studying C++ for about a year now, but I feel I'm still very far from achieving the goal of developing audio applications, and that's frustrating.
What should I do now? What books should I study? 
Someone recommended me this book "The Audio Programming Book". Do you think is it the right book?

Please, could you share your learning path with a novice?

Thank you.


#2

When I started with audio a long time ago, I played around with DirectSound, creating an application that can load a wave file and play it back. Since I was working with 3D audio at the time and audio in games, I set up an application that could play back sounds, position them in 3D space, pan them, pitch them etc.

If you want to use JUCE for audio perhaps start with something similar? Look at the JUCE demo and see what it does for audio? You could take a look at the sample browser I created (it's on GitHub) and can play back sounds. Maybe add features like pitching, panning etc?

Of course it depends where you want to go with this? Into creating VSTi?


#3

If you're somewhat confident in C++, why not just go ahead and create a small audio plugin? Think of an idea, and then create it. Even though it's great to be a skilled programmer before starting projects, it's my experience you also need apply your knowledge before it becomes meaningless just to code.

I had some previous years of experience coding before i started creating audio plugins, but i quickly became frustrated spending over 95% of my time managing sources, projects, compilations, gui etc. etc., and only 5% actually writing DSP - this was pretty demoralizing for me.

After giving it some thought, i started a huge project which basically was an audio plugin that functioned like an IDE. It is a wrapper around a compiler, console and a texteditor along with a simplified api and a crossplatform model, that allowed to write only relevant dsp part and let the plugin handle everything else. You can then compile, run and test it on the fly inside your daw of choice. That allowed me to suddenly write lots and lots of dsp code, learning much quicker and spending much more time on doing the interesting part.

It's beginning to sound like an advertisement, so i wont post a link for it here, but you can PM me if you want to learn more about the project.


#4

If you want to dive into DSP part and have almost zero experience in that field http://dspguide.com/ is a nice place to start imo. You can then avoid C++ for a time being and experiment with math in octave/matlab/etc.

If you want to quickly write something that would process sound without much math hassle you can grab something like http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt and try to implement VST with juce or iplug with gui like in Pro-Q or Electri-Q. Or even simplier volume/pan/stereo width/vu meter plugin. I'd also recomment http://naudio.codeplex.com/, there are some useful things to look at.

Some visualization tasks can be also interesting and challenging - goniometer, spectrometer, sonogram, waveform etc...

As being said above, the second path is almost no more than any other native desktop/mobile gui app development. I second that.


#5

Thanks to all of you.

I know it's a long learning path before mastering programming languages ​​and all the various topics related to audio. 

Yes, I would like to develop both standalone applications and plugins just for my needs and probably the suggestion to start my own project can be the best way to learn and create at the same time. 

Thanks for sharing your experience. ;-)