Learn Audio DSP: YouTube tutorial series

DSP, Plugin and Host development discussion.
RELATED
PRODUCTS

Post

In an effort to force myself to practice audio DSP algorithms, I have started putting together a video tutorial series where I explain the basics of audio DSP. I am aiming to teach music technology enthusiasts and other curious people just enough DSP for them to really get how common effects and synthesizers work by doing some mathematical hand waving, and pointing to relevant references for those interested in getting more theoretical. I think there is a real gap in the literature between Max/MSP level of technical detail and books that presume a degree in EE that I am hoping to fill with these videos by making them inviting to not-as-technical people.

Here's the link to the first part:
https://youtu.be/tx_cjBjZ2zM

I have many more ideas for videos in the future where I want to cover waveform generation, delay, modulation effects, distortion and non-linear effects, etc. I would love to hear your feedback on this first lesson!

Post

Yes, there is little in truly hands-on visual type learning in this area (that is, non-dry text).. so I appreciate the time you're taking to cover Audio DSP.

For an advanced theme, off in the distant future, would you be willing to consider taking the knowledge learned in the Octave series into making a VST plugin?
Last edited by VitaminD on Wed Aug 24, 2016 11:37 pm, edited 1 time in total.

Post

I would absolutely like to go over making a VST plugin, and I've already had tons of people say that's what they want to learn the most. To be honest, I've only tinkered with that technology, but it's what I want to work towards. too. Trust me when I say that you will be happy to have studied DSP in an environment other than C++ when you start working on a VST though. Making a VST only makes sense if you already understand how the audio algorithms work.

Post

Surprised this didn't get more comments, but I see 167 views and 10 likes on the actual YT vid so you must be doing something well.

I'm happily awaiting the next in the series!

Post

there were several points here i expounded upon a few days back, but (aside from time off to post on forums) i'm currently too obligated to spend the time watching, but i will post to commend the stated objective here.

you should also go over the 2.4 vst sdk with borland fclt :hihi:
you come and go, you come and go. amitabha neither a follower nor a leader be tagore "where roads are made i lose my way" where there is certainty, consideration is absent.

Post

Edit
Last edited by matt42 on Sun Aug 28, 2016 3:24 am, edited 1 time in total.

Post

xoxos, what were the points you expounded earlier? Also C++ arcana is far from what I want this series to be about, partially because I don't know those things. :P

I see a lot of people online say they want to learn C++ to make a VST, but my gamble is that what they actually mean is they want to learn some DSP theory, and then learn the bare minimum of C++ required to make their algorithm run in real time. I think it's the most interesting and creative part of making a plug-in, so that's what I've decided to focus on.

Post

great video, looking forward to seeing more ...
(I think quite a few on the Axoloti forum will be interested in it, so I'll cross post it there)

Post

Edit

Post

Just wanted to give everyone an update in case anyone wanted to follow these, but I have just finished part two of the series. This next episode is about the basics of sampling and generating waveforms. I cheat a little bit and use waveforms that alias just to explain a naive approach, I'll cover bandlimiting and other such ideas in the future.

Here's the link to the video:
https://youtu.be/L6uxAPAyPvo

Thanks everyone!

Post

Interesting! Thank you!

Post

danpprince wrote:Here's the link to the video:
https://youtu.be/L6uxAPAyPvo
Very nice tutorial videos, Dan!

And I hadn't worked with Octave on my Mac in some time, so I didn't known about the convenient GUI of version 4, thanks!

I have one disagreement, though—about not knowing what is between samples. I think your point may have been that we only need to know the sample values and don't need to worry about what's between the samples, but you double down several times, including, "We don't actually have any idea what the signal looks like between these samples." I don't think this is a good message for the beginners you are addressing.

First, it we're taking about the digital signal itself, of course, the answer is that there is nothing between the samples—the samples are all we have. But I assume you mean what they are representing, which is the corresponding analog signal. Still, there is only one case where we don't have any idea—the case where sampling limitations may not have been observed (that is, the signal may be under-sampled).

Literally, in the case of your example, you already know that you sampled a sine wave, so that's pretty trivial—you know it's the rest of the sine wave between points. But even assuming you're talking about an arbitrary set of samples, we have a very good idea. In fact, in the ideal sense we know exactly—or as close as numerical precision will allow—it's a lowpassed version of the samples—again, because we must assume that the sampling was bandlimited (it would be a pretty confounding issue if we were doing all this nice stuff for horrible audio).

Sorry if I seem picky. I've had frustrating discussions with people who firmly believed that "we have no idea" what's between the samples. Discussions were frustrating because they struggled mightily with the concept of oversampling. After all, if you don't have any idea what's between the sample, then you cannot raise the sample rate and expect to maintain the same signal you started with. (The reason we zero-stuff is because "nothing" translates to zero when you increase the number of samples.)

(PS—don't take my word count to indicate that I think this significantly mars the nice job on the video. it doesn't. I just wanted to make my point clear.)
My audio DSP blog: earlevel.com

Post

Hi earlevel, thanks for the feedback. As you are saying, I now think around 8:00 I kind of add an inappropriate amount of emphasis to the uncertainty between samples that I sort of added off the cuff as an attempt to drive the point home, but I see how it could have been misleading if this is your first exposure to the concept. I will add in an overlay on YouTube to try and tone down the assertion that I make there. While I realize now that it may seem contradictory to beginners, I first bring up the idea of sampling at around 2:30 where I say that we can perfectly reproduce every frequency under Nyquist. I did have the information in there at an earlier part, but I will try and rectify this so it is a little more clear to the section in question.

Thank you for putting in the effort to make your point abundantly clear, I appreciate that you thought it was worth correcting! :)

Post

danpprince wrote:Hi earlevel, thanks for the feedback. As you are saying, I now think around 8:00 I kind of add an inappropriate amount of emphasis to the uncertainty between samples...
Thanks, Dan, I wasn't even considering that you might add an overlay, but yes, it's really only that one heavy emphasis point that puts it over the top. Meanwhile, nice work, and I even took your cue to download Octave 4. I've used it in the past (via AquaTerm and Gnuplot, if I recall correctly), having used Matlab long ago (ack, the untold 1-based indexing—oh well); this is much better.
My audio DSP blog: earlevel.com

Post

Thanks Dan!
very useful resource. go ahead!
a.

Post Reply

Return to “DSP and Plugin Development”