Share your music and get feedback.
page 1 | 94 posts new topic Store  
Page 1 | 2 | 3 | 4 | 5 | 6 | 7
thread starter

i've decided to learn a programming language. i used to do hobby BASIC programming years ago, and of course some HTML here and there, but it's time to learn something more useful


what's a good language to learn from an electronic music point of view? is C ++ adaptable to most music related functions? or is there something more ideal?

any and all opinions welcome
Recent blogs: 4 weeks in Berlin!  
Replies
You might want to look into Processing. It's aimed at artists and creative people, rather than industrial application (like c++, java). It's probably the best place to get started with some cool programming projects. They keep the environment simple, the language is basically Java with a few small differences, it's well documented and many examples exist, and there are plugins and libraries for handling a variety of media formats. Check it out. Although it's mostly aimed at visual work rather than sound, I don't see why this would put you off, especially if the primary goal is to learn to program, and you can certainly do fascinating sound work with it too.

two thumbs up for Processing!
i second processing as well too.

It's like logo for visual stuff. It's the best compromise between creativity and programming work. C++ would just bog you down -- there's too much upfront work to do anything interesting. As a sidenote, fruity loops is programmed in delphi.

The other stuff - chuck, max/msp/pd, csound - are just too audio/academic specific, unless you want to go that way.
C++ is a systems oriented language, so you don't want to learn that.

Java is probably the most useful language to know going forward. It's everywhere.

Reaktor is a whole lot of fun, and it gets my vote as the best language for music apps.
C++ is a systems oriented language, so you don't want to learn that.


i disagree. id say about c++ what you said about java, its probably the most useful language to know going forward. its everywhere.
and you can more or less define the complexity yourself. its both high- and lowlevel.
whats a 'systems oriented' language anyways?
maybe you meant platform dependent but you could get around that too by using some crossplatform api
Systems oriented means it's designed to allow micro management of system resources.

C++ is designed for the machine, Java is designed for the programmer.

C++ is waning in popularity while Java is becoming more and more widely used everyday, because:
- It costs less to teach someone Java.
- Java programs are generally portable.

Jumping straight into C++ (especially for musical applications) is bad advice.
im not sure java is a good advice for musical applications, tbh. its probably going to be harder to get a vst working with the jvst wrapper than with the straight sdk, for example...
and not that many people use java for audio things.
the difficult thing about audio applications, such as the actual dsp, is not going to be one bit easier in java.
and as said, c++ is both high- and lowlevel. you dont *have* to use all its features, or know them all inside out to get something working
+1 for C++.

There are some good libraries around which will make getting started easier. openframeworks, and Juce are ones to watch that are relevant for A/V applications.
i found Chuck really fun to play with, especially with the LiSa generator included in Chuck. Quite fun to make autosampling and glitchy stuff.

processing is quite cool for beginners like me, but it's really oriented towards graphic stuff.

the main problem to learn C++ by yourself is to know how and where to start !

i'd really like to be able to learn c++ like i learn Processing, but i don't even know how to install it on my computer, how to test my progs...

looks like a long way to go.
javascript, jQuery and PHP
Mandarin.

oh. link Java.
Language-independent advice:

1) Spend a lot of time learning how the Object-Oriented paradigm works (i.e. data encapsulation, methods, etc).

2) Understand the strengths and weaknesses of data structures (such as Arrays vs ArrayLists, etc) for the language that you are learning.

3) Understand that every language has a way of thinking/problem solving associated with it, and that one solution in one language is not going necessarily be the best solution for another. (For example, sorting key-associated data in R and Perl is relatively easy because of the way the data structures (data frames and hashes) work. In Java, you tend to have to roll your own each time.)

If you learn this, it's relatively easy to go from one language to the other once you've learned the basics of one. I find it rather useless to debate the merits of one language over the other, because the usefulness of a language depends on its user-base and its support (such as what libraries/data structures the users have implemented to make your life easier).

That said, if you are interested in musical synthesis, both PD and supercollider are good ones to learn.

Data analysis/stats, I mostly use R.

Transformation of data/html, I still use Perl (lots of other people like python).

Art/Visuals, I've been using processing.

Good luck. It's a long fascinating road of exploration ahead of you if you decide.
c++ is an 'industrial' strength language, with all the good and all the bad that that entails. java is pretty much its offspring. These are designed for solving real-world issues, by professional programmers, and NOT particularly with beginners in mind

Why not try Processing, and see if it works for you? Its designed for multimedia, and designed to be easy to get started with. It'll also work as a wonderful intermediate stage to c++ or java, should you decide later that you want the extra performance such languages will give you, and feel ready to tackle OpenGL or the DirectX API, or incorporate other 3pp gfx and sound engines. The advantage processing has, is that it's done a huge amount of the foundation work for you already.

Page 1 | 2 | 3 | 4 | 5 | 6 | 7

Signup to comment
You must be a member to reply or post. signup or login