Author |
Message |
ilSignorCarlo

Joined: Sep 17, 2007 Posts: 28 Location: Bologna
|
Posted: Mon Sep 17, 2007 8:49 am Post subject:
Choosing a programming language Subject description: develop a (kind of) sequencer app |
 |
|
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
|
|
 |
cbm

Joined: Oct 25, 2005 Posts: 381 Location: San Francisco
|
Posted: Mon Sep 17, 2007 9:37 am Post subject:
Max/MSP |
 |
|
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
|
|
 |
ilSignorCarlo

Joined: Sep 17, 2007 Posts: 28 Location: Bologna
|
Posted: Mon Sep 17, 2007 9:57 am Post subject:
Re: Max/MSP |
 |
|
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
|
|
 |
cbm

Joined: Oct 25, 2005 Posts: 381 Location: San Francisco
|
Posted: Mon Sep 17, 2007 10:26 am Post subject:
Re: Max/MSP |
 |
|
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
|
|
 |
ilSignorCarlo

Joined: Sep 17, 2007 Posts: 28 Location: Bologna
|
Posted: Mon Sep 17, 2007 10:34 am Post subject:
Re: Max/MSP |
 |
|
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
Thanks, bye. |
|
Back to top
|
|
 |
dewdrop_world

Joined: Aug 28, 2006 Posts: 858 Location: Guangzhou, China
Audio files: 4
|
Posted: Mon Sep 17, 2007 3:08 pm Post subject:
|
 |
|
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.
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
|
|
 |
ilSignorCarlo

Joined: Sep 17, 2007 Posts: 28 Location: Bologna
|
Posted: Mon Sep 17, 2007 3:36 pm Post subject:
|
 |
|
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
|
|
 |
cbm

Joined: Oct 25, 2005 Posts: 381 Location: San Francisco
|
Posted: Mon Sep 17, 2007 4:44 pm Post subject:
|
 |
|
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
|
|
 |
cbm

Joined: Oct 25, 2005 Posts: 381 Location: San Francisco
|
Posted: Mon Sep 17, 2007 4:51 pm Post subject:
|
 |
|
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
|
|
 |
Kassen
Janitor


Joined: Jul 06, 2004 Posts: 7678 Location: The Hague, NL
G2 patch files: 3
|
Posted: Tue Sep 18, 2007 2:06 am Post subject:
|
 |
|
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
|
|
 |
Inventor
Stream Operator

Joined: Oct 13, 2007 Posts: 6221 Location: near Austin, Tx, USA
Audio files: 267
|
Posted: Thu Jan 17, 2008 10:46 am Post subject:
|
 |
|
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
|
|
 |
ilSignorCarlo

Joined: Sep 17, 2007 Posts: 28 Location: Bologna
|
Posted: Thu Jan 17, 2008 11:02 am Post subject:
|
 |
|
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
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
|
|
 |
Inventor
Stream Operator

Joined: Oct 13, 2007 Posts: 6221 Location: near Austin, Tx, USA
Audio files: 267
|
Posted: Thu Jan 17, 2008 11:20 am Post subject:
|
 |
|
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
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
|
|
 |
Kassen
Janitor


Joined: Jul 06, 2004 Posts: 7678 Location: The Hague, NL
G2 patch files: 3
|
Posted: Thu Jan 17, 2008 11:46 am Post subject:
|
 |
|
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
|
|
 |
ilSignorCarlo

Joined: Sep 17, 2007 Posts: 28 Location: Bologna
|
Posted: Thu Jan 17, 2008 12:11 pm Post subject:
|
 |
|
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  |
|
Back to top
|
|
 |
Inventor
Stream Operator

Joined: Oct 13, 2007 Posts: 6221 Location: near Austin, Tx, USA
Audio files: 267
|
Posted: Thu Jan 17, 2008 12:43 pm Post subject:
|
 |
|
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
|
|
 |
Kassen
Janitor


Joined: Jul 06, 2004 Posts: 7678 Location: The Hague, NL
G2 patch files: 3
|
Posted: Thu Jan 17, 2008 1:26 pm Post subject:
|
 |
|
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
|
|
 |
|