Best programming language to learn for electronic musicians?

Discussion in 'Software' started by Sonar Sounds, Nov 7, 2015.

  1. Sonar Sounds

    Sonar Sounds Ultrasonic

    Joined:
    Jan 6, 2015
    Messages:
    146
    Likes Received:
    24
    Hi all,

    I was wondering, what's the best programming language to learn for us musicians? Is there someone better/more useful than others? If yes, which one?

    Also, just out of curiosity, how are VSTs, DAWs and such ''made'' (or, better, ''written'')?

    Thank you! :)
     
  2.  
  3. korte1975

    korte1975 Guest

    you serious man ? its like, what kind of ice-cream should we, graphic designers eat ?
     
    • Like Like x 1
    • Agree Agree x 1
    • Funny Funny x 1
    • List
  4. Sonny Crockett

    Sonny Crockett Kapellmeister

    Joined:
    Oct 1, 2015
    Messages:
    191
    Likes Received:
    68
    I recommend you to take a look in youtube to the vast list of DAWs available. I may name you one but maybe anothers a different one, because it depends the use you're going to give it, I believe.
     
  5. Willum

    Willum Rock Star

    Joined:
    Jun 13, 2011
    Messages:
    756
    Likes Received:
    441
    It depends on what you want to program really. If you want to do vst's or make a daw than C++.

    Its always useful to learn a scripting languge like python or Lua, i think some use javascript as well, it would be best to find out what scripting language is used by your daw first.

    Theres also languages used for music programming, look here for a list. https://en.wikipedia.org/wiki/List_of_audio_programming_languages
     
  6. junh1024

    junh1024 Rock Star

    Joined:
    Jul 28, 2011
    Messages:
    1,396
    Likes Received:
    433
    VSTs are generally written in C/C++ (if from scratch)

    Some graph/block-based frameworks like Synthedit may not need language skills.

    Also, depends on which DAW you use. If you're using REAPER, you can script the UI using Lua/Python, and make Jeusonic Effects with Jeusonic Script (100+ JSFX included with reaper) http://www.reaper.fm/sdk/js/js.php
     
  7. OrganicSpaceRaisedMoonBeef

    OrganicSpaceRaisedMoonBeef Producer

    Joined:
    Dec 10, 2013
    Messages:
    466
    Likes Received:
    94
    Location:
    World 1, Scene 1
    Assembly. Become a reverser.

    Or Java, because no reversers really mess with java stuff.

    Or c/c++ and join the masses.
     
  8. foster911

    foster911 Guest

    As a musician nothing is needed. It's just for the tools developers.
    I doubt any good developer to be a good musician and vice versa. Because those are in two different realms.
     
  9. nband

    nband Newbie

    Joined:
    Nov 7, 2015
    Messages:
    1
    Likes Received:
    0
    For being useful, I'd recommend Lisp - it's the basis for OpenMusic (and all the other IRCAM products), RapidComposer (I believe), Csound Lisp front-ends, Nyquist, and Common Music. As for the native programming language for your typical DAW, I have no idea.
     
  10. GuestStar

    GuestStar Ultrasonic

    Joined:
    Feb 8, 2014
    Messages:
    84
    Likes Received:
    26
    Bitwig is in Java
    FL Studio in Delphi Pascal (this is the reason why it takes time to have an Mac Version. They have to rewrite the whole code)
    Most VST are written in C++/object C

    You can check allways their webpage in careers section to find out what programmers they are looking for.

    So if you start in C++ programming you are in the good direction.
     
  11. fraifikmushi

    fraifikmushi Guest

    Please do some research before making statements this bold.

    Some examples:

    Robert Henke
    Richie Hawtin
    Stanley Jordan
    Laurie Anderson

    and so on...

    Plus, Giorgio Moroder co-developed a sports car, lol.
     
  12. dim_triad

    dim_triad Producer

    Joined:
    Mar 17, 2014
    Messages:
    533
    Likes Received:
    116
    if your motivation for software programming is, "I want to make VST's (or FX etc.)", then I dont know... it's just too "longterm"... to the point where, in 3 months, you won't even give a shit about makin "VSTs" anymore.

    I dont know what else to say... I realize I should be more "motivating", or positive, but, Ive seen this type of thing before (with others, and myself actually)... where we see some end result, and say, "Hey, I dont care what I have to do... all I know is, that I want to make/do 'THAT'"... and its just soooooo "long-game", that by the time I even begin to get into the very, very, very, very, very, simple, basics of it (for example, how to make the computer screen display a character), that I "come down" real quick off of the "pie in the sky" endorphin buzz I was originally on the day that I said, "I want to make THAT... no matter what it takes".

    I end up going back to the normal things I was workin on with my life... College, music production, and work... and ummm... probably some jacking-off in there somewhere :D

    Good luck though... I mean, if you have no other aspirations that are taking up all of your days already/normally?.. then sure, see how long this "I want to learn computer-programming to make VST's" thing lasts. Cuz it seriously could be all that this is.

    P.S. I do not mean to be saying any of this to anger you... its purely my point-of-view from experience... nothing more. In the end, I would hope that my comments cause you to stop... take a deep, deep breath... step back... and really, really think if this is something that you will still want to do, 1-month from now... 6-months from now... 1-yr. etc.
     
  13. Hades

    Hades Kapellmeister

    Joined:
    Jan 14, 2014
    Messages:
    122
    Likes Received:
    40
    Its not only knowing a programming language. You should have a deep understanding in audio and mathematics and translate this knowledge into programming algorithms. To write fluent in a programming language it takes a lot of time if you are not a complete genius. Just my 2 cents
     
  14. Dalmation

    Dalmation Kapellmeister

    Joined:
    Jun 7, 2011
    Messages:
    494
    Likes Received:
    73
    Look in to these:
    Pure Data 'PD'
    CSound
     
  15. Slider

    Slider Producer

    Joined:
    Sep 27, 2014
    Messages:
    194
    Likes Received:
    142
    Location:
    Here
    Not exactly clear what it is you want to do, but you might find a programming language for real-time sound synthesis and music creation called ChucK interesting.

    It is open-source and freely available on MacOS X, Windows, and Linux. ChucK presents a unique time-based, concurrent programming model that's precise and expressive (we call this strongly-timed), dynamic control rates, and the ability to add and modify code on-the-fly. In addition, ChucK supports MIDI, OpenSoundControl, HID device, and multi-channel audio. It's fun and easy to learn, and offers composers, researchers, and performers a powerful programming tool for building and experimenting with complex audio synthesis/analysis programs, and real-time interactive music.

    http://chuck.stanford.edu/


    There is also this book that leads you through the basics of using ChucK. You can find it free with some "creative searching"!

    Programming for Musicians and Digital Artists: Creating music with ChucK - KAPUR, COOK, SALAZAR, WANG


    Also, here are several other audio programming books you may want to search for if you're a glutton for punishment, however these are C/C++ intensive & not for the faint of heart::crazy:

    Designing Audio Effect Plug-Ins in C++: With Digital Audio Signal Processing Theory - Will Perkle
    The Audio Programming Book - Richard Boulanger
    Audio Effects: Theory, Implementation and Application -Josh Reiss, Andrew McPherson
    Physical Audio Signal Processing: for Virtual Musical Instruments and Digital Audio Effects - Julius O. Smith

    Good luck! :wink:

     
    • Interesting Interesting x 1
    • List
  16. DoubleSharp

    DoubleSharp Platinum Record

    Joined:
    Oct 20, 2015
    Messages:
    244
    Likes Received:
    169
    Pretty much everything said here is very good advice.

    It really depends on what type of things you want to program. Sound synthesis, DAW, effects like reverb or compression

    Starting with a language that is specific to music is probably the best idea. PureData, Chuck, SuperCollider, MaxMSP. These have a lot of online support. Many useful examples can be found for things like FM Synthesis, Physical Synthesis, Convolution Reverbs, Compressors ect.

    If I remember correctly there is some source code for the synthesis toolkit that comes with Chuck, https://ccrma.stanford.edu/software/stk/ It contains many VERY cool examples that can be ported into pretty much anything.
     
  17. DoubleSharp

    DoubleSharp Platinum Record

    Joined:
    Oct 20, 2015
    Messages:
    244
    Likes Received:
    169
    https://ccrma.stanford.edu/software/stk/classes.html

    Definitely a fantastic library of readily available, mostly cross platform C and C++.

    I'd get Chuck if you want to hear how any of these things sound. I'm 99% sure this what Chuck uses for it's audio synthesis/DSP.
     
  18. Xupito

    Xupito Audiosexual

    Joined:
    Jan 21, 2012
    Messages:
    7,226
    Likes Received:
    3,995
    Location:
    Europe
    Before going deep I'd try first with easy scripting languages, because you'll get an idea of how much difficult the task is.

    For example, the Reaper JS plugins.

    And, no matter how good you are, easiness is very important in complex coding. It saves you a lot of time.

    I developed mathematical software many years ago in plain C++ which took me a lot of time (someone here remember the old classic Numerical recipes book?). Years later, I discovered the eigen math software library and developing with it is almost literally x5 faster and the code 10 times shorter.
     
  19. Mundano

    Mundano Audiosexual

    Joined:
    Dec 1, 2015
    Messages:
    891
    Likes Received:
    763
    ChucK : Strongly-timed, Concurrent, and On-the-fly
    Music Programming Language



    [​IMG] [​IMG]
    Welcome to ChucK!
    what is it?
    : ChucK is a programming language for real-time sound synthesis and music creation. It is open-source and freely available on MacOS X, Windows, and Linux. ChucK presents a unique time-based, concurrent programming model that's precise and expressive (we call this strongly-timed), dynamic control rates, and the ability to add and modify code on-the-fly. In addition, ChucK supports MIDI, OpenSoundControl, HID device, and multi-channel audio. It's fun and easy to learn, and offers composers, researchers, and performers a powerful programming tool for building and experimenting with complex audio synthesis/analysis programs, and real-time interactive music.

    [​IMG] download ChucK
    [​IMG] documentation | language spec. | unit generators | unit analyzers
    [​IMG] chuck community | forum | wiKi
    [​IMG] coast to coast mirrors: @Princeton | @Stanford
    [​IMG] (scribd.com) Programming for Musicians and Digital Artists:
    Creating music with ChucK

    (a BooK on ChucK!)
    [​IMG] Introduction to Programming for Musicians and Digital Artists (FREE COURSE!!)
    (a MOOC on programming music with ChucK)
     
  20. Mundano

    Mundano Audiosexual

    Joined:
    Dec 1, 2015
    Messages:
    891
    Likes Received:
    763
    https://puredata.info/

    Pure Data is an open source visual programming language that can run on anything from personal computers and Raspberry Pis to smartphones (via libpd, PdParty (iOS), pddroidparty, and Rjdj). It is a major branch of the family of patcher programming languages known as Max (Max/FTS, ISPW Max, Max/MSP, jMax), originally developed by Miller Puckette at IRCAM.

    Pd enables musicians, visual artists, performers, researchers, and developers to create software graphically without writing lines of code. Pd is used to process and generate sound, video, 2D/3D graphics, and interface sensors, input devices, and MIDI. Pd can easily work over local and remote networks to integrate wearable technology, motor systems, lighting rigs, and other equipment. Pd is suitable for learning basic multimedia processing and visual programming methods as well as for realizing complex systems for large-scale projects.

    Algorithmic functions are represented in Pd by visual boxes called objects placed within a patching window called a canvas. Data flow between objects are achieved through visual connectors called cords. Each object performs a specific task, which can vary in complexity from very low-level mathematical operations to complicated audio or video functions such as reverberation, FFT transformations, or video decoding. Objects include core Pd vanilla objects, external objects or externals (Pd objects compiled from C or C++), and abstractions (Pd patches loaded as objects).

    http://write.flossmanuals.net/pure-data/introduction2/

    https://es.scribd.com/document/2368...-Make-Your-Apps-Come-Alive-With-Dynamic-Audio
    [​IMG]
     
    Last edited: Nov 17, 2017
  21. Mundano

    Mundano Audiosexual

    Joined:
    Dec 1, 2015
    Messages:
    891
    Likes Received:
    763
Loading...
Similar Threads - Best programming language Forum Date
Best Falcon expansions Software Yesterday at 11:07 PM
Best GM Soundfont for orchestral music Genre Specific Production Sunday at 5:55 PM
Best Eq app for Android Mobile Wednesday at 6:19 PM
Best Tools for Extracting Audio from Video? Working with Video Oct 27, 2024
Best 808 preset (Serum, Spire, Diva etc.)? Presets, Patches Oct 22, 2024
Loading...