Subject: MAX Digest - 18 Oct 1998 to 19 Oct 1998 (#1998-41)
Date: Tue, 20 Oct 1998 00:00:02 -0400
From: Automatic digest processor 
Reply-To: MAX - Interactive Music/Multimedia Standard Environments
     
To: Recipients of MAX digests 

There are 15 messages totalling 589 lines in this issue.

Topics of the day:

  1. p9x797
  2. 
  3. MSP & MOTU 2408
  4. Message from Internet
  5. sprintf and overdrive (3)
  6. max vs. c
  7. NuBus stuff (was Re: Audiomedia II Info.) (sorry for dupe msgs)
  8. Max vs C, glassbeads
  9. scaling fader
 10. down sampling in MSP
 11. the anti-crap comity
 12. check failed zgetfn
 13. sustain

Email to MAX should now be sent to MAX@lists.mcgill.ca
LISTSERV commands should be sent to listserv@lists.mcgill.ca
Information is available on the WEB at http://www.mcgill.ca/cc/listserv

----------------------------------------------------------------------

Date:    Sun, 18 Oct 1998 23:50:24 -0600
From:    =cw4t7abs 
Subject: p9x797

>This leads me to the next question:
>Is a max-made patch or standalone a lot slower at executing commands
>than a program containing the same functionality, but programmed in C
>straigh away ?
>The question assumes that both programs are as optimized as possible
>regarding execution speed.

konz!dr :

 speed != kr!ter!a
f!tnesz = kr!ter!a

!z dze prgrm f!t +?

cest tout.

>If so, does that mean that max is merely for prototyping, and testing
>out stuff quickly, and for programs that are supposed to be used on a
>limited basis ? So that "commercial" programs are better made with plain
>vanilla C ?

90 prozent ov c progrmrz = dzose who = bl!ev sensor!ng odrz
= art form.

c.c++ zpektakl = approach!ng !tz denouement.
dzose who = bl!ev sensor!ng odrz = art form
= approch!ng dze!r denouement

cest tout.

------------------------------

Date:    Mon, 19 Oct 1998 00:19:31 -0600
From:    =cw4t7abs 
Subject: 

>Date:    Sun, 18 Oct 1998 00:34:24 -0700
>From:    David Zicarelli 
>Subject: Max on the BeOS
>
>It's a little bothersome to see Antiorp repost something from
>one of my co-workers that constitutes the first information that
>we're porting Max and MSP to the BeOS. Of course it was my fault, I've
>just been so busy I forgot to mention it.

well. whatever you know.
he posted it publically.
so dont understand the reason for
its "a little bothersome" to see antiorp etc.
silence your co-workers if you like.

antiorp. this antiorp. that.
antiorp 2jours jas +?

antiorp off topic. antiorp on topic. antiorp strange.
antiorp not chained to our rules. antiorp no respect.
fuck you antiorp. silence antiorp. frame antiorp. blame antiorp
- whatever you do be certain to hurt antiorp.

we dont understand what antiorp writes -
but we'll complain regardless.

guess what. antiorp is sick of this illogical routine of a foaming
impotent mob.

please read a nice book and leave antiorp alone.

must now fend off david zicarellis also.  verdammt.
it just doesnt end.

------------------------------

Date:    Sun, 18 Oct 1998 22:47:57 -0700
From:    David Zicarelli 
Subject: Re: MSP & MOTU 2408

Christopher Murtagh  writes:

> Thanks for enduring the emails David. I guess I should now buy MSP. Say,
>does it run under MAX 2.5.2? :) (I'll probably have to upgrade that too).

This is outrageous. The list owner uses Max 2.5.2? I'm unsubscribing.

David Z.

------------------------------

Date:    Mon, 19 Oct 1998 02:21:35 -0400
From:    Stephen Kay 
Subject: Message from Internet

>please read a nice book and leave antiorp alone.

>must now fend off david zicarellis also.  verdammt.
>it just doesnt end.

I like that plural.  As if there's more than one.

Oh, jeez, my heart pumps piss for you antiorp.  Why don't
you phu koff and leave the real people on this list alone?

Do you think for a moment that DZ has some special place
in his heart for U?  Y don't U snort some more smack or
whatever it is that you're doing?

>antiorp off topic. antiorp on topic. antiorp strange.
>antiorp not chained to our rules. antiorp no respect.

antiorp =3D=3D never on topic
antiorp =3D=3D hypokr!t
antiorp =3D=3D loozer
antiorp =3D=3D person who claimed has no respeckt for any1

go away. I !=3D interested.

------------------------------

Date:    Mon, 19 Oct 1998 13:56:07 +0200
From:    Oeyvind Brandtsegg 
Subject: sprintf and overdrive

Using sprintf  together with a metro (for triggering input to sprintf),
crashes my computer with an error code 28,
if I run max in overdrive mode.

Is this a bug with sprintf ?
or is it just me doing something stupid (mumble, ...)

I need sprintf to convert a list of numbers into their ascii
equivalents,
for example convert the list
54 46 53
into
6.5

Here's a very simplified example:
max v2;
#N vpatcher 3 42 416 241;
#P flonum 38 130 35 9 0 0 0 3;
#P message 38 82 50 196617 54 46 53;
#P newex 38 104 84 196617 sprintf %c%c%c;
#P toggle 38 36 15 0;
#P newex 38 59 55 196617 metro 300;
#P comment 97 39 155 196617 try this with overdrive off first \, then
with overdrive on;
#P comment 91 82 270 196617 clicking this messagebox work o.k. even if
overdrive is on;
#P connect 5 0 4 0;
#P connect 4 0 6 0;
#P connect 3 0 2 0;
#P connect 2 0 5 0;
#P pop;

Thanks for any help that you might provide.
Oeyvind Brandtsegg

------------------------------

Date:    Mon, 19 Oct 1998 11:47:15 -0400
From:    Stephen Kay 
Subject: max vs. c

>Oeyvind Brandtsegg:
>This leads me to the next question:
>Is a max-made patch or standalone a lot slower at executing commands
>than a program containing the same functionality, but programmed in C
>straight away ?
>The question assumes that both programs are as optimized as possible
>regarding execution speed.

A program written in C will almost always execute faster than Max, and
be smaller than Max. =

For example, say you write a function in C that adds one number to
another (pretty simple, stupid example).  All there might be to it is:

short Add2Numbers(short a, short b)
{
        return(a + b);
}

In C, any time you want to add 2 numbers, you call this same few lines of=

code.  In Max, it gets wrapped in an object structure, with inlets and
outlets.  So you've got the additional overhead of coming in to the
inlet, being routed to the proper function inside, then routing the
answer out an outlet.  Then, each time in your code you want to use
this function, you duplicate the *entire* object, and all the associated
code.  Use it 10 times, the code gets 10x bigger.

>If so, does that mean that max is merely for prototyping, and testing
>out stuff quickly, and for programs that are supposed to be used on a
>limited basis ? So that "commercial" programs are better made with plain=

>vanilla C ?

Believe me, I've tried to make a commercial application in Max, and
in my opinion it just isn't really possible - although maybe that will
change in a future release.  But even if all the numerous problems
that make it act in a non-macintosh App fashion went away, I don't =

think you'll ever really be able to get away from the bloated quality
of an encapsulated Max patch.

However, the beauty of Max to me is that it allows you to construct
programs without really being a programmer.  When I first started with
Max maybe 7 or 8 years ago, I knew nothing about programming, and
I swore I would never learn to program a computer.  But Max was
fun - it was addictive - and I very quickly was able to grasp the
concepts of programming enough to create an entire working prototype
of the KORG i-series auto-accompaniment keyboard (while I was consulting
to KORG).  If I had attacked that same task at that time by trying
to learn C and write a program, it never would have happened.

Years later, when I finally started creating algorithms in Max that
pushed the program to its limits, it became apparent to me that if
I wanted to continue, I would have to write my own objects.  You'll
know you've got to learn C when you end up creating a ridiculously
convoluted patch to do something which seems simple, but for which
no objects exist.

Even though I can now program in C, and indeed can whip up a Max
object anytime with a few hours work, I still find Max indispensable
for prototyping and trying new ideas.  And even if you do eventually
write something in C, if you do it first in Max you get a real good
idea of what you will need to do.

Max (and MSP) are wonderful tools allowing people to create programs
without writing computer code. Are the programs created with those
tools as sleak and robust as programs written from the ground up in
C or C++?  Of course not.  But close enough for government work.

Stephen Kay
---------------------- The MegaMAX Collection ----------------------
 Over 30 Max objects for the creation of more professional looking, =

         feeling, and functioning patchers and applications.
           http://www.musikinetix.com/MegaMax/MegaMax.html
------------------------ Free Max objects! -------------------------
       http://www.musikinetix.com/MaxCorner/PublicDomain.html
--------------------------------------------------------------------

------------------------------

Date:    Mon, 19 Oct 1998 12:21:59 -0400
From:    David Crandall 
Subject: Re: NuBus stuff (was Re: Audiomedia II Info.) (sorry for dupe msgs)

On Mon, 19 Oct 1998, Anthony Ballo wrote:

> David Crandall wrote:
> > Just spoke to a friend who is a Mac doctor and said that the 8100 with a
> > G3 upgrade turns into one hell of a nice computer.  Anyone tried sound
on
> > such a beast?
>
> You know, I have been contemplating just that - getting one of the
> G3 borads for my 8100. I have seen two companies : Sonnus and Newer
> Tech's boards in the magazines and was wondering if anyone else
> has done it. As far as my stock 8100, it does audio just fine.

More to the point, does supercollider/ Max/MSP work on any NuBus cards,
incl AM II?

dc

------------------------------

Date:    Mon, 19 Oct 1998 10:14:39 -0700
From:    Peter Elsea 
Subject: Max vs C, glassbeads

>Is a max-made patch or standalone a lot slower at executing commands
>than a program containing the same functionality, but programmed in C
>straigh away ?
>
>If so, does that mean that max is merely for prototyping, and testing
>out stuff quickly, and for programs that are supposed to be used on a
>limited basis ? So that "commercial" programs are better made with plain
>vanilla C ?
I've written some pretty hairy max based applications and ported some of
the same applications to "real" C, so I feel qualified to comment:

As with so many programing issues, the answer is "it depends..."
A simple Max program should be no slower than the equivalent C code, and
either can function way faster than OMS's ability to deal with MIDI. When
the processing gets heavy, the following factors can enter in:
*There is some overhead in the encoding of all data as Atoms and the
passing of messages around to objects that may have nothing to do at the
moment.
*The 1ms granularity of the Max scheduler will slow down some things you
can do at full speed in C code, particularly iterative operations.
*With C you can optimize variable size for storage or speed, as you wish.
Handling chars as 16 bit ints may be faster than handling them as 32 bit
longs, for instance, or you can declare a register variable.
*Max  doesn't give you much file functionality.
etc.
On the other hand:
*Writing the user interface code that Max gives you is not a trivial task,
even with Powerplant (and I suspect you have to be a very advanced
programmer to work efficiently with Powerplant- I'm still at the guess and
try stage.) If the interface is within Max's capability, the best choice is
usually to write a custom object to do the heavy lifting and use Max to
connect it to the world.
*Debugging with trace is a lot easier than debugging C source.
*Max really encourages incremental programming, since you can change and
add things as the program runs.
On the third hand-
***There are real limits to what Max can do (like there's no way in hell to
implement a help key function) So to meet the general public's expectations
you may have to roll your own.

So for most of my own purposes, I find Max, augmented with the occasional
custom object to be the ideal way to go, but when I need to build something
really complex, or for general distribution I boot up CodeWarrior.

Glassbeads?
I have taken up the challenge for the most elaborate agc by posting a
patcher called echowork at ftp://arts.ucsc.edu/pub/ems/examples
This is a piece I performed at the first (unpaid for) msp performance in
November 1997. Based on Alvin Lucier's "I am Sitting in a Room", it
consists of a speech to be read into a patch with a 5 second tap delay
which is then feed out  to the room and back through the microphone. As the
sound circulates through the patch again and again, it will degenerate into
a chord determined by the acoustics of the space. (Our acoustician was
delighted to find out that in the newly open hall we played in, the final
result was a single tone. It works better in funky spaces.)

Anyway, the sound level is kept within bounds by a fuzzy logic automatic
gain control. I can get this started, place the microphone directly in
front of the speaker, and the resultant sound will stay the same level for
hours, even if I occasionally blow a police whistle into the mic.

It's a patcher rather than a coll so you can fool with it, so you will need
the Lobjects to make it work.

Peter Elsea
Electronic Music Studios
University of California, Santa Cruz
http://arts.ucsc.edu/EMS/Music/index.html
 elsea@cats.ucsc.edu

------------------------------

Date:    Mon, 19 Oct 1998 16:14:33 -0400
From:    Stephen Kay 
Subject: sprintf and overdrive

>From: Oeyvind Brandtsegg 
>Using sprintf  together with a metro (for triggering input to sprintf),
>crashes my computer with an error code 28,
>if I run max in overdrive mode.

You might want to try sticking a 'defer' object in the
path somewhere.

Stephen Kay

------------------------------

Date:    Thu, 15 Oct 1998 10:03:52 +0000
From:    david stevens 
Subject: Re: scaling fader

kurt wrote:

.....but don't forget to bear in
> mind
> that perceived loudness is partly a function of frequency curve.....

yes, i'll probably try and incorporate that later. for the moment i'm just
trying to prevent massive distortion every time i lower the Q on one of the
filter banks. Steven Kay's faders object does it very nicely, so that one's
sorted for now! thanks.

david

------------------------------

Date:    Mon, 19 Oct 1998 18:17:23 -0400
From:    Shamus Jary Mcconney 
Subject: down sampling in MSP

I was under the assumption that down sampling was not an option in MSP,
but I just checked out the pluggo info page,it looks realy cool David, and
there was mention of a sample-rate/bit-depth reducer alg.  This would
greatly help me with pitch tracking of lower freqs.  I usualy down sample
2 time in FTS for tracking guitar with pt~.

Shamus McConney

mcconney@nwe.ufl.edu
http://web.nwe.ufl.edu/~mcconney/
http://web.nwe.ufl.edu/~mcconney/Pd+.html

------------------------------

Date:    Tue, 20 Oct 1998 00:02:46 +0200
From:    Oeyvind Brandtsegg 
Subject: Re: sprintf and overdrive

Stephen Kay wrote:

> >From: Oeyvind Brandtsegg 
> >Using sprintf  together with a metro (for triggering input to sprintf),
> >crashes my computer with an error code 28,
> >if I run max in overdrive mode.
>
> You might want to try sticking a 'defer' object in the
> path somewhere.

Thanks, but that wouldn't do the trick. Because I need the result not to be
deferred.I spent the better part of today trying to solve this, and finally:

I realized I could use numkey for the ascii conversion, with the 0. argument
(for float version).
I just had to iterate my list of numbers, and add 13 at the end of each
list.

Sorry to bother you...
But the sprintf object's incapability to handle ascii conversion of the
number 46,
if it's not given andy surrounding spaces,
and with max in overdrive,
must be a real bug (?).

If it's in sprintf or in the underlying C function is not up to me to
decide,
and I'll also admit that this is probably a very specific use of max, and
that it won't make a difference to most users.

Happy (again) max'in
Oeyvind Brandtsegg

------------------------------

Date:    Tue, 20 Oct 1998 05:55:11 +0200
From:    Danny Wiseburgh 
Subject: the anti-crap comity

the 16/10/98 digest shows that someone untied the leash around anticorps
CPU. it decided, once again mind you, to publicly insult a member of this
list with its verbal incomprehensible crap, for no other reason but an itch
in its right toe (or maybe for lack of sex with a real other anticrap).

how quickly we forget that this thing almost killed our lovely list last
week. i cant understand why this society can't protect itself from
parasites of this nature.

All we have to do is create an anti-crap comity with a full mandate to keep
this list civilized. the language on this list should also be one that is
understood by at least 1 other member of the list. lately - those of us who
missed out on jiberish classes cant make heads or tales of the abusing
taking place in our digest - making the whole exercise quite pointless.

i propose to appoint to this comity our underpaid overworked list keeper
(if he's still available), David Z. the maxlord himself, and maybe another
honored member or two. if the MCGILL democracy comity don't like this idea,
maybe cycling74 would like to host the max list instead (this actually has
some logic to it if you think about it for more than 500 ms with overdrive
off).

in order not to clog up the list in response to this strange suggestion,
please send your feedback DIRECTLY to the people who CAN make this happen
(or not...). sending your feedback to the max list will only feed the cute
little toddler. and you all know what happens when they eat and grow up
.... (what?, what?)

thanks for your attention,

Danny Wiseburgh
a dude with an attitude

p.s. by now, Mr. Crap is probably launching its ascii-shop program, trying
to pick up a few spelling mistakes i made (as de-kois of kors), so we can
all see how clever, sleek, and quit brilliant a 5 year old can actually be
(if one forgets to turn off the lights at 12night).

come on you tiny bully - lets see how sharp YOU are when the magnifying
glass is over you.

(alternatively, apologize [in english, french or chinese] to those that you
accidentally insulted, abused or vomited over, and lets all get on with the
show)

------------------------------

Date:    Tue, 20 Oct 1998 05:55:20 +0200
From:    Danny Wiseburgh 
Subject: Re: check failed zgetfn

>Date:    Fri, 16 Oct 1998 17:20:22 -0400
>From:    Stephen Kay 
>Subject: check failed zgetfn
>
>>Oeyvind Brandtsegg:
>>Does anyone know what the max window error message:
>>check failed zgetfn (loadbang): corrupt object
>>actually means, and what I could possibly do to get rid of it.
>
>It means that something has gotten corrupted in your patch.
>It's a horrible, difficult to locate problem that has happened
>to me several times.  What I have done in all cases was start
>deleting sections of the patcher, and resaving it with a different
>name.  Then close/open it again.  Repeat until it goes away and
>you have possibly located the offending section.  I say "possibly"
>because in some cases, I never really located it, but just
>the activity of moving things around and resaving causes the
>data to get saved again correctly, and the problem goes away.
>
>If you do locate the offending section, you can recreate it, or
>move things around, etc.
>
>Note: sometimes the "repeat until it goes away" section above
>requires that you quit and restart Max every time you test the
>patch with a section removed.
>
>Stephen Kay

and some times it means u have a max object or two (maybe from a third
party or two) that have a bug (or two) that can cause error under certain
conditions.

BTW: did u notice an "overdrive stack error" before the "check failed
zgetfn (loadbang): corrupt object" error - if so you have some house
cleaning to do.

Danny Wiseburgh

------------------------------

Date:    Tue, 20 Oct 1998 05:51:53 +0200
From:    Jeffrey Burns 
Subject: sustain

Peter Elsea wrote:

>I have now modified Lsustain to include Jeffrey's suggestion- a note that
>is held at the keyboard will no longer be shut off.

Works great! Many thanks, Peter.

Jeff Burns

http://www.snafu.de/~jeff

------------------------------

End of MAX Digest - 18 Oct 1998 to 19 Oct 1998 (#1998-41)
*********************************************************