« Return to Thread: Coding vs patching: would you eat soup with a fork?

Re: Coding vs patching: would you eat soup with a fork?

by Scott Wilson-3 :: Rate this Message:

Reply (Restricted by the Administrator) | Reply to Author | View in Thread

There's this:

http://www.nici.kun.nl/mmm/papers/dh-93-b.txt

This used to be on the Cycling website but they seem to have taken it  
down. I think the thing with Max is that it was supposed to appeal to  
analog studio users, but as Ron once pointed out to me the old  
situation is reversed, with digital studio techniques now being  
'basic' and analog being 'advanced'. This rather decreases the utility  
of the patching metaphor.

I can think of a couple of things that contribute to the perception  
that max is 'easier'. The first is that Max does not constitute 'real  
programming', and that 'real programming' is hard. That's mostly  
prevalent amongst older users.

More relevant is the fact that a language like SC requires you to deal  
with levels of abstraction more immediately. This is a small hurdle to  
get over mostly, but it can seem quite intimidating. I like to give an  
example like this to people:

(
// harmonic swimming
play({
        var f, p, z, offset;
        f = 50; // fundamental frequency
        p = 20; // number of partials per channel
        z = 0.0; // start of oscil daisy chain
        offset = Line.kr(0, -0.02, 60); // causes sound to separate and fade
        p.do({ arg i; z = FSinOsc.ar(f * (i+1), 0, max(0, LFNoise1.kr(6 +  
[4.0.rand2, 4.0.rand2], 0.02, offset)), z)});
        z
}))

and show them Sciss' max like representation:






Then ask them to make p = 100 and imagine what the max patch would  
look like. That's when lights go on and people realise that the SC  
version is so elegant and expressive because of the abstraction. In  
essence it works so well because in SC you can tell the program to  
make you all these UGens, whereas in Max the visual metaphor requires  
you to 'make them' yourself.

Thus Max's appeal (the metaphor of connecting 'real world' objects,  
which exist, i.e. they are seemingly tangible and persistent) becomes  
an important limitation. Nevertheless I think for certain types of  
fast prototyping, Max can be very effective, especially if you need to  
quickly insert control (sometimes it's nice that the 'code' for a  
slider is a slider), or introspection (we've tried to make SC better  
at this with UGen:poll and scope).

It is certainly true that Max does not scale well though, and that for  
a supposedly 'high level' language, it really does allow you to shoot  
yourself in the foot with surprising ease. I find it quite fascinating  
that as Max grows it has taken on more aspects of 'real' programming  
languages (e.g. attributes), and expended a lot of effort working  
around the limitations of the visual metaphor. The biggest examples of  
this are patcher scripting, javascript, and java integration, which  
basically partially turn Max into a bunch of text based languages,  
albeit none of them as nice as SC IMO.

On a closing note, for a few years I taught classes in which students  
had to learn both Max and SC. Interestingly, on the whole the more  
'touchy-feely' intuitive types tended to gravitate towards SC, whereas  
the hard-core math types seemed to like Max. There is indeed something  
'macho' about Max and its community, despite the supposed fact that  
'real men use SuperCollider', as I once read somewhere. Ironically I  
think part of the long-term appeal of Max to power users is its  
impenetrability and poor scaling; using it allows one to display a  
certain virtuosity.

Two cents,

S.

On 24 Apr 2009, at 09:38, Uri Sala wrote:

> Dear list,
> Would you give someone a fork to eat soup? Sorry about the cheap  
> analogy, but it breaks my heart every time I think that 75% of the  
> theoretical knowledge I have received in electronic music has been  
> using Max/MSP. Most of the young and more inexperienced guys at  
> school have a hard time grasping the concepts of electronic music. I  
> am totally convinced that if they used SC they would learn much  
> faster. Can anybody explain to my why the myth that coding is hard  
> and that having a screen full of spaghetti makes it easier to  
> program is still in vogue? I really don't get it. I mean, really.  
> Actually I do, or I think I do. When the beginning electronic music  
> student sees a Max patch, he only sees the end result, that is, a  
> nice GUI, and thinks WOW, max looks neat. They never think that,  
> under that nice looking main patch is hidden a maze of subpatches,  
> until they start patching themselves. I am sure that, eventually  
> along the line, every Max user gets the "god there are so many  
> cables and windows open, maybe text would actually be better" - kind  
> of feeling. I did, only it took me about a week.
> I am quite known among my friends in the conservatory for my strong  
> feelings about SC, and my increasing unease every time a teacher  
> tries to shove Max down our throats, clogging the screen with  
> nonsense to do something that would take 1 line in SC.
> Some people might argue it is a matter of personal preference. Well,  
> let me get intransigent: it is not. Ruby vs Python is a valid  
> dilemma. Coding vs dragging is not. Just look around. Do you know  
> any (non musical) programmers? What do they use? Little boxes and  
> cables? Ask any of them whether they think it would be better to  
> program in that way and you're likely to get a laugh. Of course many  
> people have done great programming with Max. I once ate a soup with  
> a fork too. Hey, even Miller Puckette said that Max was not thought  
> out to program with, just to use as patcher for C modules.
> I wanted to ask whether anyone knows of a text somewhere that  
> exposes what I just said in more objective, less altered terms? If  
> not, I would like to know the opinion of the forum. I promise to  
> collect the strongest points, print them and post them all over town.
>
> Sorry about the rant, but I cannot stand bad reasoning. I will have  
> my pill now.
>
> Cheers
> Uri
>
> _______________________________________________
> sc-users mailing list
>
> info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
> archive: http://www.listarc.bham.ac.uk/marchives/sc-users/
> search: http://www.listarc.bham.ac.uk/lists/sc-users/search/


pastedGraphic1.jpg (29K) Download Attachment

 « Return to Thread: Coding vs patching: would you eat soup with a fork?