Hi,
someone knows a good resourse in YouTube for learning C++?
As SC is made in C++ Im interested in learning the language,
thanks,
Oxxo.
I learned/still learning it using https://www.learncpp.com/ - chapter 12 is the most essential one Id’ say. I personally couldn’t learn things via YouTube, I need the written format and you’ll need to look up things a lot in https://cppreference.com/
I’d say UGens will provide you with a good starting point to go down the rabbit hole of C++. Start by looking at some UGens that you enjoy - e.g. sc3-plugins provide a good resource to get started in order to understand how UGens work [don’t use the internal SuperCollider UGens for that - they are highly optimized which results in really confusing code sometimes] - use this knowledge to think of a UGen that you would like to build and start building it.
Then you can start looking at the sc-ide, which is probably the least complex part of the SuperCollider project.
OFC you can also start by hacking the interpreter if you prefer a steeper learning curve.
I’d also recommend to use CLion over vscode or else, since it provides you hints on memory allocaction bugs which you will definetely run into. Also their debugging tools are really good IMO. They changed their license recently so it is free to use when working on FOSS.
If you’re more of a youtube type, then the Cherno’s channel is a very good starting point. He’s a game developer, so the channel is biased a bit in that direction.
I’d strongly recommend looking at cpp cons videos, they have whole lectures on literally everything cpp, from beginner to wizard. They are amazing ![]()
I’d make sure to you understand object lifetimes as a first point of call, then look at move semantics and the rule of 5, it is complex, but very important to understand how memory management works in modern cpp. No need to dig into prvalues, but you should know what && means (ignore universal references) and what std::move does before working with memory.
Re sc’s codebase, a lot is in an old c with classes style - not all, but enough that if you want to contribute it can be pretty tough! Not to put you off, but just be prepared that it will take a while to feel comfortable with the code.
I was looking for same resources and this is what I’ve found so far :
1- Chapter 25 of The supercollider book - > Writing Unit Generator Plug-ins - Dan Stowell
2-Mads tutorial → Release Update the tutorial · notam02/supercollider-plugin-tutorial · GitHub
3- A good playlist on youtube from the Audio Programmer : https://www.youtube.com/playlist?list=PLLgJJsrdwhPyl4gGqn-bGsCR_kIstLMGk
4- online compiler → https://wandbox.org/
5- A very good book : Audio Programming in C++ - The Beginner Level → Håkan Blomqvist
This won’t teach you C++ fundamentals, but if you want DSP concepts broken down in a way that doesn’t assume you have a deep understanding of C++, check out my website. If you’re coming from SC, I’m assuming you’re wanting to learn C++ for DSP reasons and the content I post is DSP focused.
There’s information on oscillators, phase accumulation, antialiasing, lookup tables, polynomial approximations, FFT, filter theory, and implementations done in C++/JS (WebAudio). Plus a ton of interactive applets.
I took C++ at Johns Hopkins and I was interested in none of what we were making in that class. Things like
class Employee {
private:
std::string firstName;
std::string lastName;
int monthlySalary;
public:
Employee(std::string first, std::string last, int salary) : firstName(first), lastName(last), monthlySalary(salary >= 0 ? salary : 0) {}
}
Hi, mjsyts:
Im learning Python a lot - Im in advanced Pyhton, but I want to figure if the C++ is more and more complex than an advanced Python? Just to know to what Im going to prepare.
I had recently seen a claim that if you’re a programmer who already knows fundamentals and is familiar with common algorithms, you can get “proficient” (whatever that means) in Python within about 6 months. But the same level of proficiency would take 2 years in C++.
AFAIK C++ is a lot more complex than most other modern languages.
hjh