Musical IT : tips, anyone ?

Moderator: Aesthetics

Post a reply
User avatar
Katshinka
Friendly Stranger
Posts: 17
Joined: Mon Aug 23, 2010 10:44 pm
Location: Paris
Contact:

Musical IT : tips, anyone ?

Post by Katshinka »

Hey there,

I'm currently engaged in IT studies, and was asking myself which language I could choose to learn, during my dimming free time.

The reason I'm asking this here is I know there are here a whole bunch of talented "laptop musicians", and I'd be surprised not to find that at least some of them are not computer geeks as well !

I'm destined to apply to a master's degree @France's IRCAM (an institute specialized in Electronic Music and Musical IT (fingers crossed)) in a few years, so hopefully I'll have a chance to learn me some Max/Pd.

In the mean time, i was wondering if any of you guys could recommend a nice, fun, general-purpose, language that I could use for everyday coding as well as musical coding.
I know some people are using Lisp, and I gotta say that language makes my mouth water, but, well... Doesn't it have a kind of a steep learning curve ?

thanks for any advice !
Please refer to my soundcloud page to listen to my music.
http://soundcloud.com/katshinka
Blog :http://katshinka.tumblr.com
User avatar
Pantheon
Sherbet Head
Posts: 796
Joined: Sun May 18, 2008 2:27 pm
Location: Edinburgh, Scotland

Post by Pantheon »

I've been programming for years and years now and have tried out lots of different languages.
I also program in many different areas, emulators, games, music vsts, serial interfaces, hacking tools... the list goes on. So I have quite a bit of experience I can share with you. My language of choice is mainly C++ and C# for GUI stuff. I also studied Game Development and Programming at university.

Every language will fit some areas of development perfectly and at the same time make it extremely difficult to develop in others. So the language you choose will have a huge impact on what you make, productivity, feasibility, learning curve, etc. There is no one language that will meet all your needs. Unfortunately the best you can hope for is to choose one that will suit your needs better than all the others.

You mention that your needs are for a language that lets you do "everyday coding as well as musical coding". Sorry to sound like a downer but these are two very different areas of development. So that will muddy up your choice some what.

So... for music coding... I'm going to assume you want to do some VST work, as its the most widespread form of musical coding. C++ is as powerful as it comes when doing VST development.
Its also probably the slowest and has the steepest learning curve. I can assure you however that when you get to know the language, its extremely consistent and flexible. Again, C++ is hard enough to learn but also understanding the VST layout and architecture will add to the complexity quite a lot.

Max/Msp will let you dive straight in to working with sound, although again there is a steep learning curve with that. SynthEdit is a similar tool, but much simpler, that also has VST output capabilities.
You might also be aware that Max/Msp has now been integrated right into Ableton Live with "Max for Live". So Max is looks like a good choice for musical programming.

If you don't have much experience of programming the you can probably ignore running speed as a factor in your decision. Creating fast programs is something that takes vastly longer than learning a language itself.

There are some smaller languages that are capable of creating VST's (*.dll output with VST bindings). There are a few BASIC languages that are capable of this. A quick google gave me this link to VST bindings for C#:
http://vstnet.codeplex.com/
Some research into PureBasic/RealBasic/BlitzMax might show up some VST bindings for those languages. There were bindings for Delphi also (by TobyBear), but as far as I know I think Delphi is a dying language. You might also want to look into CSound, a pure musical programming language. I haven't used CSound myself and I know little about it but I have heard it mentioned a lot.

On the general purpose side:

I would highly recommend C# for all GUI development. C++ is a nightmare for GUI work, where as C# lets you drag and drop controls and quickly give them functionality without and fuss.
C# is also close enough to C++ that changing between the two would be relatively easy.
VisualBasic is another good GUI language but I think its also dying somewhat.

If you wanted to make some cool games then BlitzMax/BlitzBasic would be a great place to start (I learned to program with BlitzBasic). Its very powerful but also very easy to learn, somewhat an exception to the learning curve thing.

Microsoft Visual C++ and C# can be downloaded for free, just look for the express editions.
The express editions still have all the features required by bedroom programmers like myself.

Sorry I cant give you a more concrete suggestion but choosing a language is personal thing and so choosing the wrong one would not be good. Play around with some of them first.

Lol sorry for giving you an essay to read,
If there is anything else I can help you with don't hesitate to ask :D
User avatar
Katshinka
Friendly Stranger
Posts: 17
Joined: Mon Aug 23, 2010 10:44 pm
Location: Paris
Contact:

Post by Katshinka »

Wow, awesome ! I will definitely look into it further !!!

Thanks for taking the time to write such a detailed answer !
I was surprised to read that you could actually use Delphi, which I used last summer, and found reaaaaally heavy on the syntax. But for VSTs ? Noooo way !
Trouble is, about a year ago I went UNIX only (Mac and Linux)... So i'm not sure delphi's an option !

I had vaguely heard the name Csound, but thought it was yet another synth !
Please refer to my soundcloud page to listen to my music.
http://soundcloud.com/katshinka
Blog :http://katshinka.tumblr.com
User avatar
dono
Sherbet Head
Posts: 756
Joined: Wed Sep 23, 2009 7:38 pm
Location: East Coast
Contact:

Post by dono »

Perl.

~ just another perl hacker
Scott
User avatar
Pantheon
Sherbet Head
Posts: 796
Joined: Sun May 18, 2008 2:27 pm
Location: Edinburgh, Scotland

Post by Pantheon »

Perl shmerl... C++ ftw 8)
User avatar
dono
Sherbet Head
Posts: 756
Joined: Wed Sep 23, 2009 7:38 pm
Location: East Coast
Contact:

Post by dono »

Just for the record Panth, I miss you.

Come back to IRC.

:(
Scott
User avatar
Pantheon
Sherbet Head
Posts: 796
Joined: Sun May 18, 2008 2:27 pm
Location: Edinburgh, Scotland

Post by Pantheon »

yeah bro same here,
we'll catch up soon, dont worry :)
SonicDimension
Posts Quantity
Posts: 215
Joined: Thu Nov 04, 2010 10:11 pm

Re: Musical IT : tips, anyone ?

Post by SonicDimension »

thanks for the informative post, pantheon. It's not surprising to me that C++ is the predominant language for plug-in coding since it makes much more efficient use of system resources than many other languages. C++ is a language that all programmers should be familiar with, but I don't think I would describe it as 'fun.'
Katshinka wrote: I know some people are using Lisp, and I gotta say that language makes my mouth water, but, well... Doesn't it have a kind of a steep learning curve ?
I used scheme (a dialect of lisp) in a course at caltech awhile back and the main thing I remember about it was the tedious nested parentheses. Actually, I think I heard that some programmers joke that lisp stands for "lots of irritating stupid parentheses." So I found it to be rather inefficient for complex programs.

as someone who is more interested in music than technology, I think that higher-level tools like max and reaktor are more fun and interesting for designing instruments, effects, etc. especially if you use the graphical interface where you can drag around the little modules and such. it's fun!
User avatar
Geodesic
Sherbet Head
Posts: 537
Joined: Tue Feb 05, 2008 7:53 pm
Location: Avignon
Contact:

Post by Geodesic »

Pantheon wrote:yeah bro same here,
we'll catch up soon, dont worry :)
Panth ! Where are you bro ? I miss you too. :D
User avatar
Katshinka
Friendly Stranger
Posts: 17
Joined: Mon Aug 23, 2010 10:44 pm
Location: Paris
Contact:

Re: Musical IT : tips, anyone ?

Post by Katshinka »

SonicDimension wrote:
as someone who is more interested in music than technology, I think that higher-level tools like max and reaktor are more fun and interesting for designing instruments, effects, etc. especially if you use the graphical interface where you can drag around the little modules and such. it's fun!
I started Reaktor a while back (talk about steep learning curve, but, hey, it IS fun).
Learning Max||Reaktor is also part of my todo list, but I get a sense that I'd gain a lot freedom as a musician if I were to have a better control with my medium of choice : computers. I think this is definitely a path worth exploring for a modern "laptop" musician.
Please refer to my soundcloud page to listen to my music.
http://soundcloud.com/katshinka
Blog :http://katshinka.tumblr.com
User avatar
Pantheon
Sherbet Head
Posts: 796
Joined: Sun May 18, 2008 2:27 pm
Location: Edinburgh, Scotland

Post by Pantheon »

SonicDimension wrote: thanks for the informative post, pantheon. It's not surprising to me that C++ is the predominant language for plug-in coding since it makes much more efficient use of system resources than many other languages. C++ is a language that all programmers should be familiar with, but I don't think I would describe it as 'fun.'

Katshinka wrote:

I know some people are using Lisp, and I gotta say that language makes my mouth water, but, well... Doesn't it have a kind of a steep learning curve ?


I used scheme (a dialect of lisp) in a course at caltech awhile back and the main thing I remember about it was the tedious nested parentheses. Actually, I think I heard that some programmers joke that lisp stands for "lots of irritating stupid parentheses." So I found it to be rather inefficient for complex programs.

as someone who is more interested in music than technology, I think that higher-level tools like max and reaktor are more fun and interesting for designing instruments, effects, etc. especially if you use the graphical interface where you can drag around the little modules and such. it's fun!
Good call with Reactor, I forgot about that when I was writing my post. I've tried reactor 5, and I found it somewhat irritating. The interface just had too many sections making it hard to learn. Its easy to get lost with reactor. But I tried an simpler earlier version, and I loved it. I made some comb filters, and step filters... simple stuff. It was good fun, so once the interface of the modern reactors are learnt im sure it would also be fun.

Also, I have a few books on programming audio DSP with Java, which i've read but not tried out myself. So java would be another language you could consider, but bare in mind that it wount produce VST's or anything. The best you could hope for is some hind of hacked up midi link to a sequencer (or write your own :)).

There is also a free sequencer called 'Reaper' for Linux as well as Windows. The best part is that it has an inbuilt programming language for audio Plugins, so that would let you instantly dive into plugin development (from within the sequencer). I spent some time reverse engineering them and porting them to C++. I think the language they use is proprietary and I cant tell you what the performance was like, but there is loads of example code shiped with reaper.
http://www.reaper.fm/

Also some people use MatLab, but I ducked out of using it at Uni so I cant comment.
There are a few people using it on youtube that you can watch.

BT used only CSound to produce some of there songs, heres a video of one:

Geodesic wrote:
Panth ! Where are you bro ? I miss you too. :D
Same here bro, i'll join IRC soon. Or PM you when i'll be on so we can catch up :)
User avatar
Katshinka
Friendly Stranger
Posts: 17
Joined: Mon Aug 23, 2010 10:44 pm
Location: Paris
Contact:

Post by Katshinka »

Pantheon wrote: It was good fun, so once the interface of the modern reactors are learnt im sure it would also be fun.
Amen, brother. 5.5 coming out soon, didn't get a chance to test the beta, but the interface looks better. Still a lot of wires all over the place, I'll wager. They say the best (the only ?) way to learn reaktor is to watch how some factory instruments/effects are designed. Tried that. Ended up almost hanging myself :lol:
Pantheon wrote: Also, I have a few books on programming audio DSP with Java, which i've read but not tried out myself. So java would be another language you could consider, but bare in mind that it wount produce VST's or anything. The best you could hope for is some hind of hacked up midi link to a sequencer (or write your own :)).
Java's interesting I'll give you that. I know of a Java "stand-alone framework", called Processing), that visual artists use a lot. Dunno about music though. DSP's good for me, I'm not big on VSTs anyways.

Reaper looks really cool, but I don't think it's free, licence is like 80$ if I remember correctly (much cheaper that most DAWs out there, that's for sure).

MATLAB ? really ? for music ? Used it last year for a math class, and I gotta say, it's the last language I expected to hear from here !!!!

Well. Until I get comfy with C, I guess I'll stick with Java and Reaktor. We'll see how it goes.

Quick question, though... Did anyone hear about possible musical usages for Python ? I've got this project @Uni where I'm supposed to write a program in Python, so I'm actually learning it right now ( well, supposed to, you know how it goes).
Please refer to my soundcloud page to listen to my music.
http://soundcloud.com/katshinka
Blog :http://katshinka.tumblr.com
User avatar
dono
Sherbet Head
Posts: 756
Joined: Wed Sep 23, 2009 7:38 pm
Location: East Coast
Contact:

Post by dono »

You can do just about anything in Python to tell you the truth, so it wouldn't surprise me at all.

I have to put my plug Perl in again...

http://www.youtube.com/watch?v=fbefIdbSmD4

:D

Edit - Add: http://www.youtube.com/watch?v=DVsbav5SWqw&NR=1
Scott
User avatar
Katshinka
Friendly Stranger
Posts: 17
Joined: Mon Aug 23, 2010 10:44 pm
Location: Paris
Contact:

Post by Katshinka »

Damn that's cool !

Have you heard about TOPLAP ?
If you don't, watch some of their videos, it's pretty amazing. That's why I talked about lisp, because one of them (Andrew Sorensen) actually did it with lisp.
Please refer to my soundcloud page to listen to my music.
http://soundcloud.com/katshinka
Blog :http://katshinka.tumblr.com
SonicDimension
Posts Quantity
Posts: 215
Joined: Thu Nov 04, 2010 10:11 pm

Post by SonicDimension »

Katshinka wrote:Quick question, though... Did anyone hear about possible musical usages for Python ? I've got this project @Uni where I'm supposed to write a program in Python, so I'm actually learning it right now ( well, supposed to, you know how it goes).
Python is another cool high-level language. There are a lot of useful modules for math and science applications like NumPy and SciPy. Check out this page about musical applications:PythonInMusic
User avatar
Katshinka
Friendly Stranger
Posts: 17
Joined: Mon Aug 23, 2010 10:44 pm
Location: Paris
Contact:

Post by Katshinka »

Awesome ! Thanks a lot !!
Please refer to my soundcloud page to listen to my music.
http://soundcloud.com/katshinka
Blog :http://katshinka.tumblr.com
Post a reply