Max/MSP Support 'Textual Coding'?

Jackjackjack's icon

Hello All,

I'm looking at getting into manipulating audio using some sort of programming language. Both Max/MSP and NI's Reaktor provide similar functionality, but both of those would be considered 'graphical' programming languages. IE, you create boxes and move them around the screen and connect inputs and outputs. Basically it's graphical object-oriented programming.

Since I have a background in computer science I'm familiar with the concepts behind coding this kind of stuff, but I have yet to find a decent, supported answer to DSP using textual object-oriented programming. Now, I guess I'm wondering if Max/MSP has some sort of text mode that I'm overlooking, and if not, why not? And wondering if anybody else might be able to help me along with my search.

Thanks,
.Winston

MuShoo's icon

Well, I suppose technically you could code the text directly (open up any max 5 patch in a text editor and you'll see what the code looks like). It seems like that'd be much more difficult and kind of pointless, though.

Check out Csound, Chuck, or RTcmix.

Andrew Benson's icon

Hi,
I encourage you to check the mxj~ object, which allows you to write DSP code in Java and run it within the patcher environment. Writing and compiling your own MSP objects in C is really not too difficult either, although it takes a little time to get used to the API. If you are interested in that, check out the MaxMSP SDK. There is also a very active forum here for object developers.

If you are looking for a scripting-language approach, I recommend giving rtcmix,csound, or chuck a look. Each of these are hosted in Max through the use of third-party externals.

Best of luck,
Andrew B.

Brad Garton's icon

On Sep 24, 2008, at 1:41 PM, Andrew Benson wrote:

> If you are looking for a scripting-language approach, I recommend
> giving rtcmix,csound, or chuck a look. Each of these are hosted in
> Max through the use of third-party externals.

And if you really want to go berserk, you can code in LISP using
maxlispj:

Gregory Taylor's icon

Let's add supercollider and lua to the
list and the full extent to which you can
let your pathology rule your life will be
on widescreen technicolor hi-def display.

eanwhite's icon

Don't forget Ruby!

.e

On Sep 24, 2008, at 2:22 PM, Gregory Taylor wrote:

>
> Let's add supercollider and lua to the
> list and the full extent to which you can
> let your pathology rule your life will be
> on widescreen technicolor hi-def display.
> --
> knowledge is not enough/science is not enough/Love is dreaming this
> equation

Brad Garton's icon

Definitely!

There is such a rich set of objects/environments that can work in max/
msp for doing the kinds of
procedures that are tricky to represent with a data-flow graph; I wish
more people would be
aware of them. So much possibility...

On Sep 24, 2008, at 4:31 PM, Ean White wrote:

Anthony Palomba's icon

Quote: Bradford Garton wrote on Wed, 24 September 2008 12:01
> And if you really want to go berserk, you can code in LISP using
> maxlispj:
>
>     http://music.columbia.edu/~brad/maxlispj/
>
----------------------------------------------------

Hey Brad, is there a good LISP editor/environment out there
that would help in developing LISP code that I could
load in maxlispj?

Adam Murray's icon

Quote: Anthony Palomba wrote on Wed, 24 September 2008 14:37
----------------------------------------------------
> is there a good LISP editor/environment out there
> that would help in developing LISP code that I could
> load in maxlispj?
>
----------------------------------------------------

Anthony,
I think SLIME is considered one of the best environments for LISP coding these days. It's an add-on for Emacs, which I believe has been ported to every major platform. On OS X I like to use Aquamacs. Not sure what to suggest for Windows.

I found out about SLIME because I was playing around with Common Music (an algorithmic composition library written in LISP). You may want to check the Common Music website's installation instructions to find some links on getting setup with some flavor of Emacs and SLIME. There is also a book called "Notes from the Metalevel" if you are interested in this stuff.

PS - Ean, thanks for the Ruby plug! I haven't had much time to add content to my website this summer, but I have lots of Ruby and Max related goodies that I hope to post later this year.

Brad Garton's icon

Anthony --

I usually do my LISP development 'outside' max/msp by running an
existing standalone
LISP interpreter. You can do this using abcl, the interpreter I based
[maxlispj] upon:

I edit files (oh I am so old! I still use vi!) and then do a (load
"mylispfile.lisp") in the
interpreter.

There is an editor called "J" which apparently can invoke abcl
directly; but I've never
used it:

On Sep 24, 2008, at 5:37 PM, Anthony Palomba wrote:

>
> Quote: Bradford Garton wrote on Wed, 24 September 2008 12:01
>> And if you really want to go berserk, you can code in LISP using
>> maxlispj:
>>
>>     http://music.columbia.edu/~brad/maxlispj/
>>
> ----------------------------------------------------
>
> Hey Brad, is there a good LISP editor/environment out there
> that would help in developing LISP code that I could
> load in maxlispj?
>

Graham Wakefield's icon

And Lua:

On Sep 24, 2008, at 1:31 PM, Ean White wrote:

> Don't forget Ruby!
>
> http://compusition.com/web/software/maxmsp/ajm-objects
>
> .e
>
>
> On Sep 24, 2008, at 2:22 PM, Gregory Taylor wrote:
>
>>
>> Let's add supercollider and lua to the
>> list and the full extent to which you can
>> let your pathology rule your life will be
>> on widescreen technicolor hi-def display.
>> --
>> knowledge is not enough/science is not enough/Love is dreaming
>> this equation
>

Be seeing you

grrr waaa
www.grahamwakefield.net