electro-music.com   Dedicated to experimental electro-acoustic
and electronic music
 
    Front Page  |  Articles  |  Radio
 |  Media  |  Forum  |  Wiki  |  Links  |  Store
Forum with support of Syndicator RSS
 FAQFAQ   CalendarCalendar   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   LinksLinks
 RegisterRegister   ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in  Chat RoomChat Room 
Live streaming at radio.electro-music.com

  host / artist show at your time
  mosc Chez mosc - tonight, Twyndyllyngs live
Please visit the chat
 Forum index » DIY Hardware and Software » Developers' Corner
Choosing a programming language
Post new topic   Reply to topic Moderators: DrJustice
Page 1 of 1 [17 Posts]
View unread posts
View new posts in the last week
Mark the topic unread :: View previous topic :: View next topic
Author Message
ilSignorCarlo



Joined: Sep 17, 2007
Posts: 28
Location: Bologna

PostPosted: Mon Sep 17, 2007 8:49 am    Post subject: Choosing a programming language
Subject description: develop a (kind of) sequencer app
Reply with quote  Mark this post and the followings unread

Hi all, I'm new here.

I am going to develop my first sound-oriented application.
The idea is to create a real time application, so that I can record samples and quickly manage them as they were objects, by drag and drop.

I mean:
- I record me saying "buh"
- In the software there is a file manager, so there I see the buh.wav file, suppose.
- I can drag this on work-area and it is represented as an object (a rectangle, for example)
- I can make it to play just clicking on it

- I can have many samples, and many objects on the screen
- For every object I can choose different ways of playing. For example, how many times to loop a sample
- I can also combine different objects, in complex sequences, to create more complex objects

Well, these are just ideas...
What I need is a language or something to manage sounds and graphics.
Any suggestion?

Thanks a lot.

p.s.I hope my english didn't suck too much :\
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
cbm



Joined: Oct 25, 2005
Posts: 381
Location: San Francisco

PostPosted: Mon Sep 17, 2007 9:37 am    Post subject: Max/MSP Reply with quote  Mark this post and the followings unread

Max/MSP is the tool I would use for this sort of thing. There is a learning curve involved, but the documentation is good, and there is an official forum, as well as an unofficial forum here at electro-music.
Back to top
View user's profile Send private message Visit poster's website
ilSignorCarlo



Joined: Sep 17, 2007
Posts: 28
Location: Bologna

PostPosted: Mon Sep 17, 2007 9:57 am    Post subject: Re: Max/MSP Reply with quote  Mark this post and the followings unread

cbm wrote:
Max/MSP is the tool I would use for this sort of thing. There is a learning curve involved, but the documentation is good, and there is an official forum, as well as an unofficial forum here at electro-music.


Good. I know (at least I heard about) Max/MSP.

Is it possible to create a file browser there?
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
cbm



Joined: Oct 25, 2005
Posts: 381
Location: San Francisco

PostPosted: Mon Sep 17, 2007 10:26 am    Post subject: Re: Max/MSP Reply with quote  Mark this post and the followings unread

ilSignorCarlo wrote:
Is it possible to create a file browser there?


If a pop-up menu qualifies, then yes, it's quite easy. If you want something that looks more like a directory, or series of cells, then there's a little more work involved.
Back to top
View user's profile Send private message Visit poster's website
ilSignorCarlo



Joined: Sep 17, 2007
Posts: 28
Location: Bologna

PostPosted: Mon Sep 17, 2007 10:34 am    Post subject: Re: Max/MSP Reply with quote  Mark this post and the followings unread

cbm wrote:
ilSignorCarlo wrote:
Is it possible to create a file browser there?


If a pop-up menu qualifies, then yes, it's quite easy. If you want something that looks more like a directory, or series of cells, then there's a little more work involved.


I think it's ok. And maybe, finally, I'll learn Max Very Happy
Thanks, bye.
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
dewdrop_world



Joined: Aug 28, 2006
Posts: 858
Location: Guangzhou, China
Audio files: 4

PostPosted: Mon Sep 17, 2007 3:08 pm    Post subject: Reply with quote  Mark this post and the followings unread

If you are comfortable with text-based programming languages, I would recommend SuperCollider.

Max will take you so far but once you hit a certain level of complexity, you might find yourself in spaghetti-land trying desperately to untangle yourself. I think a lot of people start with graphical environments because they're scared of "programming" in a text-based language and think that Max will be easier because it's "not programming." That's a mistaken assumption -- you have to pay just as much attention to programming logic and flow of control -- and I've yet to be convinced that Max scales easily to very long or complex compositions. At least, not as easily as in SC's object-oriented paradigm, derived from SmallTalk.

SC is harder to learn at first but you can structure your code, object-oriented-style, and create a system that can grow with you and be easier to maintain and update (with a bit of planning of course). Some people say SC sounds better than Max, but it's hard to substantiate this objectively. Wink

A lot of folks on this board swear by ChucK also. IMHO SuperCollider is more mature and stable (except on Windows, unfortunately).

I'd encourage you to look at several options before settling on something (just because it was the only thing mentioned here). This is a big project and if you start with Max (and find later that it doesn't meet your needs), you would have to start over in another environment.

To get familiar with the Max way of working without shelling out a few hundred $$, consider Pure Data, which works similarly but is free. SC and ChucK are free and open source.

My opinions only!

hjh

_________________
ddw online: http://www.dewdrop-world.net
sc3 online: http://supercollider.sourceforge.net
Back to top
View user's profile Send private message Visit poster's website AIM Address
ilSignorCarlo



Joined: Sep 17, 2007
Posts: 28
Location: Bologna

PostPosted: Mon Sep 17, 2007 3:36 pm    Post subject: Reply with quote  Mark this post and the followings unread

dewdrop_world wrote:
If you are comfortable with text-based programming languages, I would recommend SuperCollider.


I think I can handle that. And I like typing.

Quote:
At least, not as easily as in SC's object-oriented paradigm, derived from SmallTalk.


I have never used SmallTalk. I just know C, Java and I'm learning Python.

Quote:
Some people say SC sounds better than Max, but it's hard to substantiate this objectively.


Actually it doesn't matter too much to me.

Quote:
IMHO SuperCollider is more mature and stable (except on Windows, unfortunately).


The best part is that with SC I'd work on linux.
I have an Ubuntu Feisty Fawn, but with the "standard" kernel. Shall I install the low-latency one?
Any other known problems with Linux?

Quote:
To get familiar with the Max way of working without shelling out a few hundred $$, consider Pure Data, which works similarly but is free.


Because I'm a student, I can buy it at a very very low price.
I know pure-data and I wanted to try it too. But what differences do they have? Can pure-data do everything that Max can do?

And, what about CLAM?
Thanks a lot.
Bye

Carlo
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
cbm



Joined: Oct 25, 2005
Posts: 381
Location: San Francisco

PostPosted: Mon Sep 17, 2007 4:44 pm    Post subject: Reply with quote  Mark this post and the followings unread

 
I certainly agree about investigating the available audio programming environments before you commit. Here's the Wikipedia entry on audio programming environments. There's a lot of useful info there.

dewdrop_world wrote:
Max will take you so far but once you hit a certain level of complexity, you might find yourself in spaghetti-land trying desperately to untangle yourself. I think a lot of people start with graphical environments because they're scared of "programming" in a text-based language and think that Max will be easier because it's "not programming." That's a mistaken assumption -- you have to pay just as much attention to programming logic and flow of control --


One of my favorite programming aphorisms is "You can write bad Fortran in any language." Max/MSP development is certainly programming, I would never say otherwise.

It's certainly true that people can write Max patchers that are obtuse and hard to modify, but obsfucation can be attained using any language. Max patches can be clean and modifiable, if designed well.


dewdrop_world wrote:
and I've yet to be convinced that Max scales easily to very long or complex compositions. At least, not as easily as in SC's object-oriented paradigm, derived from SmallTalk.


Well, Max probably does get used more for interactive stuff than for compositions, per se.

IRCAM uses Max extensively, CNMAT uses Max extensively, Autechre uses Max extensively. Several commercial plug-ins and applications were developed in Max, several more commercial applications were prototyped in Max. I've developed a fairly large system for doing structured improvisation in Max, called Gyre.

Max can talk to a wide variety of I/O devices, and gets used regularly for installations, and controlling external hardware.


dewdrop_world wrote:
SC is harder to learn at first but you can structure your code, object-oriented-style, and create a system that can grow with you and be easier to maintain and update (with a bit of planning of course).


The same benefits of a growing library of reusable modules also applies to Max, as it would to just about any language. Any programming effort is about designing, and less about writing code. Design your modules and interfaces well, and you will get some return on your effort. Max more closely resembles a block structured language than an object oriented one in the way one designs and implements abstractions.

In addition to programing in native Max/MSP, and writing externals for Max/MSP in C, Max allows for programming in Java and JavaScript these days, too. Max lets you write VST Plug-ins and stand-alone applications.

At the end of the day, it all comes down to what you're comfortable with, which environment you resonate with. For me that's clearly Max/MSP, for you it's SuperCollider. It's great that we have all these choices.

-C
Back to top
View user's profile Send private message Visit poster's website
cbm



Joined: Oct 25, 2005
Posts: 381
Location: San Francisco

PostPosted: Mon Sep 17, 2007 4:51 pm    Post subject: Reply with quote  Mark this post and the followings unread

ilSignorCarlo wrote:
I know pure-data and I wanted to try it too. But what differences do they have? Can pure-data do everything that Max can do?


PD has about 80% of the functionality of Max/MSP, but only about 20% of the polish and ease of use, IMO. This is not intended to take anything away from Miller Puckette, who is clearly brilliant. PD just hasn't had the resources behind it that Max/MSP has had.
Back to top
View user's profile Send private message Visit poster's website
Kassen
Janitor
Janitor


Joined: Jul 06, 2004
Posts: 7678
Location: The Hague, NL
G2 patch files: 3

PostPosted: Tue Sep 18, 2007 2:06 am    Post subject: Reply with quote  Mark this post and the followings unread

dewdrop_world wrote:

A lot of folks on this board swear by ChucK also. IMHO SuperCollider is more mature and stable (except on Windows, unfortunately).


Mature definitely but these days it's quite possible to write very stable ChucK programs.

I still wouldn't recommend it for this because this application would depend a lot on the graphical interface and right now that's not something ChucK does so involving would make this needlessly complicated as a first project.

_________________
Kassen
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Inventor
Stream Operator


Joined: Oct 13, 2007
Posts: 5978
Location: San Antonio, Tx, USA
Audio files: 258

PostPosted: Thu Jan 17, 2008 10:46 am    Post subject: Reply with quote  Mark this post and the followings unread

Kassen wrote:
dewdrop_world wrote:

A lot of folks on this board swear by ChucK also. IMHO SuperCollider is more mature and stable (except on Windows, unfortunately).


Mature definitely but these days it's quite possible to write very stable ChucK programs.

I still wouldn't recommend it for this because this application would depend a lot on the graphical interface and right now that's not something ChucK does so involving would make this needlessly complicated as a first project.


ChucK Commercial On
If the original poster would shift their programming paradigm and simply think in terms of text instead of graphical programming, then Chuck would be perfect. I am a newbie ChucKist and I write example program files and videos using ChucK. At first I made music, but now I just made a song of the brainwaves of a neural net, and we're talking about modeling a throaty V8 engine sound with ChucK. Chuck is so powerful and easy to use that complete beginners do surprising things with it all the time.
ChucK Commercial Off

Hey, I thought this was a commercial free forum?
Inventor
Back to top
View user's profile Send private message Send e-mail
ilSignorCarlo



Joined: Sep 17, 2007
Posts: 28
Location: Bologna

PostPosted: Thu Jan 17, 2008 11:02 am    Post subject: Reply with quote  Mark this post and the followings unread

Inventor wrote:

ChucK Commercial On
If the original poster would shift their programming paradigm and simply think in terms of text instead of graphical programming, then Chuck would be perfect.


I am the original poster Very Happy
Why do you think it would be perfect?
I haven't started anything yet and I'm not sure about SuperCollider, for the moment.

So, if I think in terms of text, what do you think I can do with Chuck?
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
Inventor
Stream Operator


Joined: Oct 13, 2007
Posts: 5978
Location: San Antonio, Tx, USA
Audio files: 258

PostPosted: Thu Jan 17, 2008 11:20 am    Post subject: Reply with quote  Mark this post and the followings unread

ilSignorCarlo wrote:
Inventor wrote:

ChucK Commercial On
If the original poster would shift their programming paradigm and simply think in terms of text instead of graphical programming, then Chuck would be perfect.


I am the original poster Very Happy
Why do you think it would be perfect?
I haven't started anything yet and I'm not sure about SuperCollider, for the moment.

So, if I think in terms of text, what do you think I can do with Chuck?


Hello OP, I guess I'm just excited about the power of ChucK because I've been enjoying using it so much. You could write an application to record sounds and play them, add effects, do stuff like that. If you like SuperCollider then go for it, I don't know anything about SuperCollider myself.

In fact, I think someone has already written your application or one like it in recent posting in the ChucK forum so you might not have to do much work at all if that suits your needs. It was a method of organizing the playback of sound samples dynamically.

Not sure. Good luck deciding.
Back to top
View user's profile Send private message Send e-mail
Kassen
Janitor
Janitor


Joined: Jul 06, 2004
Posts: 7678
Location: The Hague, NL
G2 patch files: 3

PostPosted: Thu Jan 17, 2008 11:46 am    Post subject: Reply with quote  Mark this post and the followings unread

ilSignorCarlo wrote:

So, if I think in terms of text, what do you think I can do with Chuck?


Well, recording samples and managing them, for example different ways of playback, different effects and so on would be quite easy. Of course there are no free rides, if you have complicated plans then it will be more code. A experienced ChucKist could set up a simple multi-channel synced looper with overdubbing and keyboard control in a afternoon.

You plan is a bit more complicated then that, depending on what sort of effect you want, how many and the graphics but soundwise itś quite similar. What some people are doing is combining ChucK for sound with Python for the graphics.

Though I am myself quite fond of ChucK, SC can do the same things. The syntax of SC is different and so the emphasis is as well. SC is a wonderful language too. I recommend looking at examples of both languages, perhaps trying each out for half a week and some simple exercises and then deciding which one you like best. James&me could point out the relative advantages and disadvantages of each for a whole day or longer but I'm sure he will agree with me that the most important aspect is the programmer. You should pick a language that suits you as a person and that suits your project. For example if you need time-stamped OSC signals over your network then SC is the better choice yet if you need a lot of support on Windows then ChucK would be a better bet. Both areas will likely see updates in the future but at the moment those would be examples of limitations.

I agree with James about how graphical systems like MAX scale but I also have to admit that there are people who are simply unable to relate to text as easy as to graphics and who do excellent work in MAX and similar environments.

It's kinda like with clothes; you have to pick something that suits you and that might mean trying some on for size.

_________________
Kassen
Back to top
View user's profile Send private message Send e-mail Visit poster's website
ilSignorCarlo



Joined: Sep 17, 2007
Posts: 28
Location: Bologna

PostPosted: Thu Jan 17, 2008 12:11 pm    Post subject: Reply with quote  Mark this post and the followings unread

Inventor wrote:
If you like SuperCollider then go for it, I don't know anything about SuperCollider myself.


I still don't know anything about supercollider, so I can still choose which one to learn (first). And at first sight, the syntax of ChucK seems to me more familiar.

About the graphics, it is not necessary. My main goal is "just" the possibility of recording sounds on the fly and put them in sequence. If I can do that via text, it is ok,

But on youtube I have just seen a ChucK video with Audicle: here .

In the first part, when it shows the code, they click on some button and drag something. What is that?

And what about Audicle?

Quote:
In fact, I think someone has already written your application or one like it in recent posting in the ChucK forum so you might not have to do much work at all if that suits your needs.


Can you give me the link?
Thanks Very Happy
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
Inventor
Stream Operator


Joined: Oct 13, 2007
Posts: 5978
Location: San Antonio, Tx, USA
Audio files: 258

PostPosted: Thu Jan 17, 2008 12:43 pm    Post subject: Reply with quote  Mark this post and the followings unread

I think it's under a post titled "Command Line Sequencer" on the Chuck forum. You can use the capabilities of Chuck to launch, control, and end programs on the fly, and/or you can use that code example to launch entire sequences of sound samples. Sounds similar to what you want to do.
Back to top
View user's profile Send private message Send e-mail
Kassen
Janitor
Janitor


Joined: Jul 06, 2004
Posts: 7678
Location: The Hague, NL
G2 patch files: 3

PostPosted: Thu Jan 17, 2008 1:26 pm    Post subject: Reply with quote  Mark this post and the followings unread

ilSignorCarlo wrote:

About the graphics, it is not necessary. My main goal is "just" the possibility of recording sounds on the fly and put them in sequence. If I can do that via text, it is ok,


You got it. The hardest part about such programs generally isn't the actual code but designing a interface that works well for you, ChucK has a ready made "Ugen" (Unit GENerator, think of it as a sort of building block) that will record sound in realtime and play it back immediately in ways you specify.

What awaits you is learning some syntax, this may be fast or slow depending on your temperament and experience but it's not that bad. Then there is the confrontation with having to specify exactly what you want which can be a interesting experience. If designing the perfect sequencer were easy you wouldn't be asking about this here and now...

All of this holds true for SC as well, I imagine. Of course there is help, if you get stuck or something is unclear you can ask questions and people will help you.

Quote:
But on youtube I have just seen a ChucK video with Audicle: here .

In the first part, when it shows the code, they click on some button and drag something. What is that?


Probably a version of the code itself, the Audicle has some flashy ways to drag&drop those. I can find this in the movie you linked to, that movie is from the ChucK equivalent of the stone age but if what you saw looked like a sort of arrow that spawned a new window it was a code revision thrown into itś own window.

Quote:

And what about Audicle?


It's a editor for ChucK, a flashy one, with integrated virtual machine and facilities for signal and code visualisation.

_________________
Kassen
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic Moderators: DrJustice
Page 1 of 1 [17 Posts]
View unread posts
View new posts in the last week
Mark the topic unread :: View previous topic :: View next topic
 Forum index » DIY Hardware and Software » Developers' Corner
Jump to:  

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum
emSynth

Please support our site. If you click through and buy from
our affiliate partners, we earn a small commission.


Forum with support of Syndicator RSS
Powered by phpBB © 2001, 2005 phpBB Group
Copyright © 2003 through 2009 by electro-music.com - Conditions Of Use