Top 5 Languages For Audio Programming

Поділитися
Вставка
  • Опубліковано 7 лис 2024

КОМЕНТАРІ • 42

  • @SarcTiann
    @SarcTiann Рік тому +20

    others: SuperCollider, Faust, CSound, SonicPi, Soul

    • @WolfSoundAudio
      @WolfSoundAudio  Рік тому +2

      Thanks for completing the list! I've used CSound but it seems to be a little forgotten these days... Not sure if I'll ever use it again 😉

    • @LWmusik
      @LWmusik 8 місяців тому +1

      Faust is so awesome, I find it strange that so few use it

  • @sanjaux
    @sanjaux Рік тому +7

    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!

    • @sanjaux
      @sanjaux Рік тому +2

      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.

    • @WolfSoundAudio
      @WolfSoundAudio  Рік тому +3

      Thanks for the input, I may try it out on the channel one day 😉 It's great that it’s being used.

  • @mr.shredder5430
    @mr.shredder5430 Рік тому +5

    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.

  • @JavierYturriaga
    @JavierYturriaga 5 місяців тому +5

    Personally I've been really liking SuperCollider lately. It makes it really easy to create some pretty cool synth patches and patterns and what not

  • @Atezian
    @Atezian 3 місяці тому +1

    Thank you, sir. I was really wondering but I am now set and feel secure in choosing C++

  • @naelblogger7976
    @naelblogger7976 Рік тому +6

    Some other good options: SuperCollider, CSound, Faust

  • @JohnSmith-pn2vl
    @JohnSmith-pn2vl 7 місяців тому +4

    Max is great for prototyping things quickly

  • @AngelMarquez-on8bo
    @AngelMarquez-on8bo Рік тому +6

    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

    • @WolfSoundAudio
      @WolfSoundAudio  Рік тому +1

      Wow, thanks for the detailed description: I must check it out then 😉

  • @nathanlively
    @nathanlively 8 місяців тому +1

    I’m not sure why you say MATLAB is so expensive. A home license is $150. Maybe that’s more than free for a Python IDE?

    • @captain_crunk
      @captain_crunk 7 місяців тому

      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.

  • @jeremiahlyleseditor437
    @jeremiahlyleseditor437 9 місяців тому +1

    Great Video.
    Which language is best for programming VSTs for DAWs?
    Is JUCE one of them?

    • @Atezian
      @Atezian 3 місяці тому

      Maybe actually watch the video. JUCE isn't a language

  • @harrisonmbemba9582
    @harrisonmbemba9582 5 місяців тому +1

    Honestly just happy you mentioned nim lol

  • @XperienceSoundDesign
    @XperienceSoundDesign 4 місяці тому +1

    i have a prototype of my vst,
    its already being used in the chicano hiphop scene.
    CAN I GET IT BUILT ON MY OWN ENGINE.

  • @System-1541
    @System-1541 4 місяці тому

    Have you looked into vult-dsp? What do you think of it?

  • @NahminNooman
    @NahminNooman 5 місяців тому +2

    Subscribed!

  • @estevancarlos
    @estevancarlos 11 місяців тому +2

    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.

    • @sharpiedory
      @sharpiedory 10 місяців тому

      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…

  • @deformator2
    @deformator2 11 місяців тому +1

    Świetny kanał.

  • @frankjamesbonarrigo7162
    @frankjamesbonarrigo7162 2 місяці тому

    Supercollider doesn’t have single sample feedback, but the pattern system is awesome

  • @ovi1326
    @ovi1326 3 місяці тому

    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?

    • @lukeweston1234
      @lukeweston1234 20 днів тому

      If you’re interested, I would look in the Rodio repository for how they approach this. Rather than lock on the audio thread, they iterate on a mixer, then that mixer has a controller that locks and adds samples, then uses an atomic bool to signal to the mixer that new audio is ready. This avoids any sort of locks on the playback thread.

    • @ovi1326
      @ovi1326 20 днів тому

      @@lukeweston1234 Rodio doesn't exactly do realtime dsp, and good for them. Now how would one implement a realtime safe-ish threadpool that doesn't make the borrow checker catch on fire (the answer is loads of unsafe and lying that references are static even though they're not) I'm currently in the process of writing one - not the nicest code. Also as I mentioned there's this safety-performance tradeoff and going around it is a fun puzzle to solve at times but a puzzle non the less.

    • @lukeweston1234
      @lukeweston1234 20 днів тому

      @@ovi1326 Ah I see you're more talking hard real-time. What type of hardware are you looking to run this on?

    • @ovi1326
      @ovi1326 20 днів тому

      @@lukeweston1234 still talking firm-realtime so like can't do syscalls, preferably bounded execution time, should generate a single audio frame before the deadline (depending on buffer size set by the user from ~0.5ms to ~8ms). standard realtime dsp. I guess I'm trying to make a toy daw tho rn focusing on implementing those pesky lock-free algorithms and data structures in rust. I had a previous attempt and not having those handy was a mistake.

  • @ovi1326
    @ovi1326 3 місяці тому

    nim has been around since 2008, it's been a stable esolang for quite some time

  • @moliver_xxii
    @moliver_xxii Рік тому +1

    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!

    • @WolfSoundAudio
      @WolfSoundAudio  Рік тому +1

      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.

  • @OleksiiRyzhyi
    @OleksiiRyzhyi Рік тому +1

    Great video! Thanks.

  • @QuasiUnlimited
    @QuasiUnlimited 7 місяців тому +2

    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.

    • @gnprice
      @gnprice 7 місяців тому +1

      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 🙂

  • @zanguijar
    @zanguijar 19 днів тому

    thanks

  • @BernardoBarros
    @BernardoBarros 5 місяців тому +1

    SuperCollider

  • @sxmmii_gxchaa774
    @sxmmii_gxchaa774 Рік тому +1

    🎉❤❤❤❤🎉