I would love to answer any questions you might have!
Cheers
C++ is a solid language, as C mostly is still lacking namespaces (due to avoidance of name mangling) and template meta-programming. Templates ultimately are the biggest reason C++ is viable for large scale projects, because unlike in C where you'd have to use macros, templates allow you far more flexibility. Templates can reduce the overhead of similar code to near zero, dramatically improving code reuse with the only overhead being the naturally double size of the compiled machine code for two variants of a similar function.StrangeSatellite wrote: Mon Apr 06, 2026 7:31 pm First, there really aren't shortcuts here. You are going to need to learn C++ if you're serious about this.
Mostly this is about mathematics rather than programming. It has very little to do with programming or abstraction in general, but those who have the innate ability to intuit mathematical properties ("all curves are straight lines in a different space projection transform") or work well with similar abstractions will find both mathematics and programming come naturally. In terms of mathematics, understanding algebra and calculus is absolutely necessary. Although this does not require rote memorization you might learn in low level college courses but rather requires an intuition of high level abstract "like-for-like". For example: the ability to recognize that the Gaussian function is emergent rather than an innate property of reality; that addition, multiplication, exponentiation, tetration and their inverses exist as steps of order (0, 1, 2, 3) but that the actual line is continuous such that order 0.5 (or -0.5) properties are most common in nature (such as pink spectra, normal distributions, ...) and arbitrary orders exist; that the order of a mathematical operation is simply a space transformation wherein a straight line is formed in the order of that space (for example, exponential decays are simply a straight line at order 1, where the delta is still a constant multiplicative per time step.)Second, learning DSP is a separate skill and is also necessary. It involves math that some may find to be pretty intense at first.
There are many disadvantages to library and framework utilization. Most obvious is the debt to the code you are unable to customize such that mistakes in the library or framework directly lead to mistakes in your own implementations using that code via derivation. The advantage may appear to be that you do not need to implement your own code or work as hard, but the truth is in fact that you in balance need to work less hard in some areas and much harder in others. It is near a zero-sum, and the benefits are mostly available to those who are lucky enough that their use in practice aligns solely with "work less hard" rather than "work more hard".Third, learn JUCE - it will make your life much easier.
It is bad advice to use any single IDE or compiler and toolchain. You should ensure your code functions correctly across all toolchains and strictly avoid wrapping things in ifdefs to provide multiple variants of source code for each platform. The ideal design is where you abstract your interfaces enough that you simply compile a platform specific translation unit (source file) and the abstract interface then calls "create_x()" for a variant of that object compatible with the platform in question.Fourth, use Visual Studio Community 2026 if you're on Windows.
This isn't true. I believe it suffices to say that you need good code to begin with. An LLM will trivially translate this code into alternative forms for you (such as an SSE or AVX variant.) Most of the work involves cleaning up the garbage output generated by most LLMs to ensure it has the same quality of the input code you provided. If you start with garbage code, you'll get garbage code. Garbage in, garbage out.Fifth, you are unlikely to be able to "vibe code" your way through this with LLMs. While an LLM can code a website, there is relatively little DSP knowledge in their training data and they have a very hard time following signal flow in a logical manner.
RAII is also a big deal in larger projects. Not only does it simplify memory management, it can also simplify control flow by allowing you to defer clean up (eg. closing files or whatever) to "whenever this function exits." Whenever I have a bug related to cleaning something up, it's almost invariably because for one reason or another I didn't use RAII.aciddose wrote: Mon Apr 20, 2026 8:57 pmC++ is a solid language, as C mostly is still lacking namespaces (due to avoidance of name mangling) and template meta-programming. Templates ultimately are the biggest reason C++ is viable for large scale projects, because unlike in C where you'd have to use macros, templates allow you far more flexibility.StrangeSatellite wrote: Mon Apr 06, 2026 7:31 pm First, there really aren't shortcuts here. You are going to need to learn C++ if you're serious about this.
Practically speaking it's typically impossible to completely avoid #ifdefs (because Windows like to do even basic things differently from every other platform) ... but I agree in principle: put the platform/toolchain/whatever dependent code in separate modules (or headers) as much as possible and try to keep the bulk of it clean. Makes porting to the next platform a lot less painful experience.You should ensure your code functions correctly across all toolchains and strictly avoid wrapping things in ifdefs to provide multiple variants of source code for each platform.
Absolutely, of course they are required. What is really nasty however is the style I wanted to point toward avoiding, where the same source file includes three or more platforms. It's best instead to absolutely minimize this as much as possible because it becomes nightmarish and bug prone to create code like that. (With what is ideally four source files, the abstract, platform1, platform2 and platform3 being all in myobject.cxx instead.)mystran wrote: Mon Apr 20, 2026 11:49 pm Practically speaking it's typically impossible to completely avoid #ifdefs (because Windows like to do even basic things differently from every other platform) ...
Submit: News, Plugins, Hosts & Apps | Advertise @ KVR | Developer Account | About KVR / Contact Us | Privacy Statement
© KVR Audio, Inc. 2000-2026