learning programming. the best path?

DSP, Plugin and Host development discussion.
RELATED
PRODUCTS

Post

whyterabbyt wrote: Sat Sep 21, 2019 9:27 am
parricide wrote: Sat Sep 21, 2019 9:04 amsorry for my ignorance, but i dont really know what those things are. i hear words thrown around but i dont really know what they mean. for example, i know i need a compiler, but i dont really know what a compiler does exactly (i assume it takes the code and turns it into an executable file or DLL etc?)
Sorry. A compiler turns the human-readable-language 'source' code into machine-runnable 'executable' code.

An IDE is an 'integrated development environment'. Generally, you also want a text editor for that source code, (and that can include one which 'understands' your source code to a certain extent to help with certain editing task), a debugger (which lets you interact with running machine code and relate that back to the source code) and a mechanism for compiling and linking multiple source code and library files. These can be separate tools, but an IDE integrates them.
things like SDKs too. i dont really understand what it is and what it is needed for etc (i assume this is a set of commands that are installed into the language that allow you to write scripts and get results you otherwise wouldnt be able to?)
Sort of. In the case of VST plugins its sort of a package of some prewritten definition code that you can access from your own code and almost a set of 'templates' that you have to 'fill in' with your own code.
Since you cant make something into a VST unless it has the functionality that defines what a VST has to do, the templates effectively provide the starting point of a VST that does nothing, and you modify that to do something.
The VST SDK is very bare-bones, it only really covers the data transfer between the host and the plugin; it has no user interface code for example.
So there are also third-party SDKs which sit 'on top' of VST, like JUCE and WDL, that provide a lot more prewritten functionality, especially UI stuff, and which can also sit on top of other audio plugin type consistently thus making it easier to develop cross-platform plugins.


thank you so much for your help <3
that makes a lot more sense now :)

as well as the tutorial mentioned above i also found a video series that seems to be quite good for somebody at my stage, but it is 11 years old.
would this still be okay to follow today? or would it cause more confusion because of changes?
obviously the tools would be newer than the ones used in the video (eg it uses visual C++ 2008, but i would be using your recommendation of the current visual studio), but i would assume it would be similar enough to still use today?

thanks

Post

The most likely problem is going to be that a tutorial from 11 years ago is likely to be for VST2, while Steinberg have been pushing the completely-different VST3 for several years now, to the point where they wont provide the VST2 SDK any more, and have now removed the VST2 compatibility that they'd been including in the VST3 SDK.
my other modular synth is a bugbrand

Post

the tutorial was not audio related, it was just for general getting started with C++

i am way too eager to get going so ive just started installing visual studio :D
i am following this tutorial at the moment: https://www.learncpp.com which seems to be great so far and easy to follow. i figured i should get learning the basics before i even touch audio anyway.

once ive learnt enough to move on to VSTs i assume it would just be a matter of "installing" the VST3 SDK?

Post

parricide wrote: Sat Sep 21, 2019 10:39 am the tutorial was not audio related, it was just for general getting started with C++
my bad, that's going to be fine.
once ive learnt enough to move on to VSTs i assume it would just be a matter of "installing" the VST3 SDK?
Yeah, basically.
my other modular synth is a bugbrand

Post

awesome, thanks

i have been reading through the non-video tutorials i linked and its all making sense so far. im going to go back and follow through them once visual studio installs (man its big :) ).

Post

You can't go wrong by following this guy's youTube videos, making sure you go to the beginning, of course! :
https://thecodingtrain.com/
https://youtu.be/2VLaIr5Ckbs - 'into to Processing'
He uses web technology coding to explain some simple to complex programming problems that are perfect for a beginner to coding.

Plus you can do the programming with him in the tutorials which helps cement the ideas.

Post

parricide it is not bad to get heavy into C++ and general programming topics. It is great if that's what you are into. It might just be worth thinking about what you want to accomplish. Of course the more we learn, our goals and interests change so that it is impossible to rely solely on what we want to accomplish RIGHT NOW.

It is just that if the main goal is "I want to learn about audio processing" then learning to make VST plugins from scratch with Visual C++ or whatever will be a very long path toward that goal. It is worthy stuff to know if you want to be a generally competent windows programmer of course. And there is nothing wrong with long paths if you have the motivation to stay on the path. Just that is a different goal than "learn about audio processing."

I mean, just as a ferinstance, eventually you will spend days and weeks learning about various tricks about window z order and graphic updating. Days and weeks learning about various tricks of hiearchical menus, both menu bars and popup menus. Days and weeks on buttons, sliders and knobs. Days and weeks on freakin file access, opening, closing, copying, erasing, renaming, reading and writing frikkin files.

That is all great to know but it isn't directly related to sound or music. Thats all I'm sayin.

Not trying to be Debbie Downer scaring you away from a long path. I'm just pointing out that it is a long path. :)

Post

Yes I can relate to that. I started with midi/theory processing back in the early 90s after college, one thing leading to another, and I haven't even started on audio yet...

or even making it look like something they'd want to use yet! Aparently.

However, I do this to play, not to work music, or to arrive at a destination. That would be destructive.
Last edited by trewq on Sun Sep 22, 2019 4:06 am, edited 3 times in total.

Post

I am no programmer. More of a Scripter. From the little I read about how sound design programs are made OP, I suspect you need a solid understanding of physics and acoustics as pertains to sound , no? And from there you need to learn how to implement those principles in computing language.

The scripting languages like Python and Ruby are good to learn basic things about programming. E
G. How to make arrays, push , pop data and transversing trees of data e.t.c It's much easier to learn in those languages than doing it in C.

I guess hit Coursera and good luck on your path.
🌐 Spotify 🔵 Soundcloud 🌀 Soundclick

Gear & Setup: Windows 10, Dual Xeon, 32GB RAM, Cubase 10.5/9.5, NI Komplete Audio 6, NI Maschine, NI Jam, NI Kontakt

Post

I was recently browsing through a few different beginner C++ books, so that we could select a good one and give to new employees or interns that wanted to learn C++ (or get up to speed if coming from a different language).

The best one I found was this one: http://www.stroustrup.com/programming.html

I was a bit surprised since a lot of his other books are much more dry and long winded, but I think that one is an excellent introduction to programming and C++. It cuts out a lot of the old stuff and just focuses on the "modern" version of the language with just the practical parts that are needed to get results as soon as possible.

I don't think there's much point in learning Python as a stepping stone. Go directly to C++ if that is what you want to learn.

Post

quikquak wrote: Sat Sep 21, 2019 6:03 pm You can't go wrong by following this guy's youTube videos, making sure you go to the beginning, of course! :
https://thecodingtrain.com/
https://youtu.be/2VLaIr5Ckbs - 'into to Processing'
He uses web technology coding to explain some simple to complex programming problems that are perfect for a beginner to coding.

Plus you can do the programming with him in the tutorials which helps cement the ideas.
awesome, thanks for the links <3

Post

JCJR wrote: Sat Sep 21, 2019 6:52 pm parricide it is not bad to get heavy into C++ and general programming topics. It is great if that's what you are into. It might just be worth thinking about what you want to accomplish. Of course the more we learn, our goals and interests change so that it is impossible to rely solely on what we want to accomplish RIGHT NOW.

It is just that if the main goal is "I want to learn about audio processing" then learning to make VST plugins from scratch with Visual C++ or whatever will be a very long path toward that goal. It is worthy stuff to know if you want to be a generally competent windows programmer of course. And there is nothing wrong with long paths if you have the motivation to stay on the path. Just that is a different goal than "learn about audio processing."

I mean, just as a ferinstance, eventually you will spend days and weeks learning about various tricks about window z order and graphic updating. Days and weeks learning about various tricks of hiearchical menus, both menu bars and popup menus. Days and weeks on buttons, sliders and knobs. Days and weeks on freakin file access, opening, closing, copying, erasing, renaming, reading and writing frikkin files.

That is all great to know but it isn't directly related to sound or music. Thats all I'm sayin.

Not trying to be Debbie Downer scaring you away from a long path. I'm just pointing out that it is a long path. :)
to be honest it is not just the idea of creating plugins that is motivating me, i just think i will enjoy coding in general. i have used other visual programming environments as well as audio ones to create things like games and apps just for fun and i have really enjoyed it, even the debugging processes :)

Post

telecode wrote: Sun Sep 22, 2019 1:05 am I am no programmer. More of a Scripter. From the little I read about how sound design programs are made OP, I suspect you need a solid understanding of physics and acoustics as pertains to sound , no? And from there you need to learn how to implement those principles in computing language.

The scripting languages like Python and Ruby are good to learn basic things about programming. E
G. How to make arrays, push , pop data and transversing trees of data e.t.c It's much easier to learn in those languages than doing it in C.

I guess hit Coursera and good luck on your path.
i have a pretty good understanding of a lot of audio principles already. in my years of using other methods (reaktor, synthedit, synthmaker etc) i have learnt a lot about those details because those programs allowed me to focus on them for 70% of the work. the main reason for moving on to coding is to gain more flexibility and maybe learn some skills to create other things too.

python and ruby were tempting, but i have already bitten the bullet and started with C++. i decided it would be an extra stepping stone which might eventually just waste my time as i plan to eventually end up using C++ anyway.

Post

PeterP_swe wrote: Sun Sep 22, 2019 7:12 am I was recently browsing through a few different beginner C++ books, so that we could select a good one and give to new employees or interns that wanted to learn C++ (or get up to speed if coming from a different language).

The best one I found was this one: http://www.stroustrup.com/programming.html

I was a bit surprised since a lot of his other books are much more dry and long winded, but I think that one is an excellent introduction to programming and C++. It cuts out a lot of the old stuff and just focuses on the "modern" version of the language with just the practical parts that are needed to get results as soon as possible.

I don't think there's much point in learning Python as a stepping stone. Go directly to C++ if that is what you want to learn.
thanks for the link <3
i have found it for free in pdf version online! im not sure how legit it is :/
i will try it out, thanks

Post

thanks for all the input everyone!

yesterday, after starting this thread, i decided to dive in and start my journey with C++
in just a few hours i have learnt some of the basic principles and written a program thats asks you to type a number, then tells you what number you have typed, and have fully understood what is going on with the statements i have written.
obviously its not a lot, but i was surprised how easily i picked it up, so i am happy i chose to take this path.

i couldnt have done it without the input from you all, thanks! <3

Post Reply

Return to “DSP and Plugin Development”