I absolutely want more people to start working with cmajor. I feel like it’s a super natural environment. Being able to get up a working UI and even iterate on it with basic web code (or even your favorite web frameworks) is motivational and the DSP is super straightforward as far as I can tell. Although I don’t currently have enough understanding of DSP to make extensive comments on the DSP workflow I found it much easier to get going with it than JUCE. Would love to see an expert like you try it!
Disclaimer though if you want to build a VST with it you would be back in JUCE and C++ and CMake territory. However, the giant hurdle that can be ends up being remedied by what you’ve already made in cmajor leaving you with a build-able project in a few commands and setup.
overall that is a great list, I would disagree about zig not being ready for audio programming and DSP programming. Its driving factor is you can cross compile zig, c, and c++ code. This allows you to inject zig code slowly into an existing c/c++ project. It has defaults similar to rust with safe and fast builds. It has comptime which is insanely amazing and is generics on steroids. It does have a package manager that works with zig, c, and c++ built into the compiler. Although it has breaking changes and not 1 yet. You can totally develop in the audio industry with it
Hi nice content there, can you show me a course on where to learn any specific type of c++ audio library like BASS, portaudio, synthesia tookit or any other rather than juce, because i wanted to make a music engraving software and ive been struggling to find the resources to learn what i want, and right now i dont know where to start.
Speaking from experience - doing stuff on the audio thread is a dantean experience in rust. It's definitely not for beginners. So you know like in C/C++ you can prealloc an arena or maybe an object pool and just use it? In rust custom allocators are unstable and prepare yourself for wrapping every single one of your objects in MaybeUninit. Shared mutable state is kinda unavoidable in audio - hence you will end up using RefCell or UnsafeCell more than a healthy amount. Slice accesses are bound checked unless the compiler can prove that it's impossible to get out of bounds, So you either go with processing every sample in a foreach loop using maps and zips or have to agree to making a wrapper type around a raw pointer that overloads the [] operator which is a footgun waiting to fire (rust is way more strict about aliasing than c++). And the solution is to actually place asserts that will be present in your release build as well, which check if your input and output buffers have the same length - how would one guess that?
Perhaps $150 isn't expensive for someone who uses Matlab to its fullest extent. However, in the context of this video, which briefly describes relevant programming languages in simple terms, it's entirely reasonable to assume the target audience member is less experienced. So, I don't think the people this video is intended for would get their money's worth if they bought Matlab. If I may ask, do you use Matlab yourself? If so, personal bias towards Matlab might be a slight factor here. But to be fair, even though I haven't used Matlab myself, everything I hear about it very positive - with the exception of using it as a beginner for creating audio processing software.
Not mentioning Faust, but listing Python or even mentioning Matlab but not SuperCollider indicates the author did not make a good research before the video and you should research further into more credible sources.
In fairness, he did say it was his personal list of 5. Also, I imagine the inclusion of Matlab and Python might be targeted to his audience of (likely) newer students who might be more familiar and comfortable with scripting languages to get started with learning concepts. Along with Faust and PD, JOS from CCRMA has a lot of MATLAB code out there 🙂
I think you were too dismissive of Max/MSP considering how you're supportive of Pure Data. The licensing is different but there's also a massive community of audio specialists working with Max. In fact, there are many developing products in Max. Additionally, you can now export Max projects for the web and Raspberry Pi.
Agree. I prefer max to faust for rapid prototyping. Gen~ feature is key. You cant do this in pure data. Now you can export to web and hardware too. Also good for prototyping with visuals/opengl/etc…
cześć! i was expecting some negative comments about MATLAB from the programming side (i have: parentheses and one-indexed arrays)... if you need to show a quick idea and are familiar with linear algebra is really efficient as a language. the GNU octave environment (which is almost MATLAB if you don't care about details) is free so... when you have to make an audio processing demo it works fine (i have used it for vocal separation and reverb impulse response extraction with enough success :-) ) dzięki!
Of course, there is Octave but I never got it to work as I did Matlab 😁 I should have mentioned it though so many thanks! Some DSP researchers I know use it. Still I prefer Python.