2/28/97 12:00 AM
Subject: MAX Digest - 26 Feb 1997 to 27 Feb
1997To: Recipients of MAX digests 

There are 9 messages totalling 302 lines in this issue.

Topics of the day:

  1. Chord-recog stack overflows
  2. argv and characters in externals (2)
  3. ouchstring
  4. Two things
  5. max for graphics/quicktime
  6. Quicktime Musical Instruments
  7. PB 5300
  8. 32k limit on structure?


Date:    Thu, 27 Feb 1997 03:31:06 -0500
From:    Amanda Pehlke 
Subject: Chord-recog stack overflows

Hi Max'ers,

I have left a baby chord recognition patch-effort (MaxFAT3.5) that might
be useful to somebody, at my America Online ftp-space, which is at

WhutZatChord? requires some Lobjects and the McCartney ListOps sort and

I wonder if someone would be good enough to help me figure out why I get
stack overflows if I put more than about 40 Lmatches to work at once.  I was
hoping for 62.  Quadra 650, heaps o' RAM.

At first I thought it might have something to do with the fact that these
more complex chords and--never mind, I'm stumped.

The copyright note is a bunch of hooey--just me trying to act important.
feedback will be appreciated! Thanks--
              __/ /     Amanda Pehlke/CIKIRA STUDIO MIDI SUITE
           /       (_______
   ---/              =======)
                        ========)      400 Marisa Hill Drive
                       ======)           Selah, WA, USA 98942
 _ ---\_____ /===-                   (509) 697-4050


Date:    Thu, 27 Feb 1997 10:32:13 -0500
From:    Fred Collopy 
Subject: argv and characters in externals

Hi all. I am familiar with the use of the argv structure to get longs
passed in messages to my externa. Can anyone help me understand how to get
a character. I want to pass a message like this "set a 2 3 4". How can I
get the ascii value for that a or recognize that it is an a in my C
external? Thanks, as always, in advance.


Fred Collopy
Weatherhead School of Management
Case Western Reserve University
Cleveland, Ohio 44106
(216)368-2144 voice
(216)368-4776 fax


Date:    Thu, 27 Feb 1997 11:35:15 -0500
From:    Stephen Kay 
Subject: Re: argv and characters in externals

>Hi all. I am familiar with the use of the argv structure to get longs
>passed in messages to my externa. Can anyone help me understand how to get
>a character. I want to pass a message like this "set a 2 3 4". How can I
>get the ascii value for that a or recognize that it is an a in my C
>external? Thanks, as always, in advance.
>Fred Collopy

If you have you method added and declared as:

addmess (my_object_set, "set", A_GIMME, 0);

void my_object_set(MyObject *x, Symbol *s, short ac, Atom *av)

then you can pass and accept mixed lists of any type.

If you don't know the type beforehand, you can do something like (example
uses post):

for (i = 0; i < ac, i++)
         case A_LONG:
            post("av[%d] is a long %ld", i, av[i].a_w.w_long);
         case A_FLOAT:
            post("av[%d] is a float %f", i, av[i].a_w.w_float);
         case A_SYM:
            post("av[%d] is a symbol %s", i, av[i].a_w.w_sym->s_name);

If you already know the format of your list, passing in the example you
spoke of, "set a 2 3 4" is even simpler:

post ("av[0] = %s", av[0].a_w.w_sym->s_name)

Incidentally, the symbol "set" will be passed as the Symbol *s in the
method's declaration, so you can have multiple symbols call the same method
by doing something like the following, and then based on which symbol was
used, do something different.

addmess (my_object_set, "set", A_GIMME, 0);
addmess (my_object_set, "set_a", A_GIMME, 0);
addmess (my_object_set, "set_b", A_GIMME, 0);   etc.

In the method:

if (s == gensym("set_a"))
        //do something;
else if (s == gensym("set_b"))
        //do something else;

To find the ascii value of a character sent in, I believe you could just do
this (I know I've done this before, but I'm just coding off the top of my
heaad right now):

post("ascii code = %d", av[0].a_w.w_sym->s_name[0]);

being that s_name is a C string.

Stephen Kay
The MegaMAX Collection - Full color 3D UI Objects,
Macintosh Interface objects, and other Max helpers.
------check out the demo on the MAX 3.5 CD-------


Date:    Thu, 27 Feb 1997 11:37:13 EST
From:    Roland Hemming <100414.2220@COMPUSERVE.COM>
Subject: ouchstring

James McCartney wrote

>This can happen if an outlet of your object sends data back either directly
>or via some other object to an inlet of your object.
>Message sends are just function calls so if you send to an object
>you are calling its message handler and if it is connected back to
>your object then it calls a message handler of your object.

I understand, but this is a problem that I don't know the answer to.

How do we solve this problem:

Lets say we have an object with 2 outlets and ints come out of each outlet.
right hand outlet int goes via another object back to the left inlet of out
origonal object. If we were to 'trace' this operation we would see that by
time the right outlet int had reached the object's inlet again we hadn't yet
output the first int out of the left outlet.

I can guess that we might get a stack overflow then.

Is this poor patcher design?..I suppose it is.



Date:    Thu, 27 Feb 1997 12:21:14 -0500
From:    Bob Gluck 
Subject: Two things

First--Are there any people on this list who are from the D.C. or greater
Baltimore area? I'd like to know what the electronic music scene is like
around there. Please drop me notes privately. Thanks.

Second--the Toronto-based magazine MusicWorks, issue 66, ran an article by
composer Sarah Peebles. Among other things, she addresses questions about
use of language in electronic music technologies, including Max. MusicWorks
ran a competition to seek ideas for renaming Max objects. I entered
I might as well admit that I won).

I attach a copy of the letter I sent, includes my language suggestions. I
acknowledge that some of my suggestions may sound naive. But I wanted to
freely rainstorm ideas in some new ways. I'd love to hear what people think
about all of this.
I want you all to know that my overwhelmingly thinking about Max is
for all the work that went into its developers and (continuing) development.

Bob Gluck
Sheffield, MA

Dear Musicworks:

I was delighted with Sarah Peebles' article in Issue 66. I was especially
pleased to see questions about language and gender (and thus inplicitly
power) addressed in the pages of Musicworks. I have worked in Max for a
little over a year and one of the things that has distressed me the most is
the naming of objects.

Seeking new words and phrases for the names of objects and other musical
words isn't easy. The conventions of language as we have used it tend to
the imagination. I found myself looking toward imagery deriving from the
natural world (especially that of plants) and of caring human relations.
is my list:

hit, command, bang, trigger--spin, urge, wish, excite, move, initiate,
caress, embrace, tickle, massage, polinate, plant, seed, bud, flower, flow,

uzi--rain, sprinkle, sparkle,

strip note--decode, uinburden, drop its leaves, simplify, no-offs,

"rape that disk"--further,  another please, make more, replicate

object--presence, manifestation, dream, participant, player

domain--habitat, home, environment, garden, space


Date:    Thu, 27 Feb 1997 11:51:16 +0800
From:    Bill Thibault 
Subject: max for graphics/quicktime

A trick I found useful when trying to display graphics in an LCD object
was to use the mac's support for the visually impaired
which i think is part of the "easy access" package in macos.
This uses simple pixel-doubling to display 1/4 of the mac screen
to the video output.
By placing the LCD object in the right place and invoking the zoom,
I could fill the entire screen (and run the graphics faster since
the erase times were cut in 1/4 for the smaller LCD object).
Putting the mac display in black/white helped the speed a lot too.
This should work for movie objects, too, if you can bear the lores display.


Date:    Thu, 27 Feb 1997 20:55:11 +0100
From:    Roby Steinmetzer 
Subject: Re: Quicktime Musical Instruments

>I just joined the list, although I've some experience in the past with
>v2.5.2.  At that time, I recall seeing a patch or object that allowed
>control of Quicktime Musical Instruments.  Can anyone tell me where I can
>get this?  Is it included in later versions (3.0+).  My Web searches have
>not turned it up anywhere.

There is an external "qtmusic" in the folder "Misc Muir & Zicarelli
objects" on the 3.0 disk
As for 3.5 I don't know, still waiting...
I have also an object called "QTMInstruments" in my externals folder. I
remember having downloaded somewhere
but can't recall the place.
>Some general info questions if y'all don't mind.
>Is this list archived and if so can I search the archive somewhere?

Take a look at
and search for "MaxListserveArchive"

Roby Steinmetzer
Luxembourg, Europe


Date:    Thu, 27 Feb 1997 19:54:58 -0500
From:    "Joseph W. Rovan" <105561.3371@COMPUSERVE.COM>
Subject: PB 5300

Tom Bellman writes:....

I've had good luck running Max on my 5300 (I've been using SpeedDoubler).
But today the famous "snapping-sound-of-case-breaking" feature finally
struck, and the screen is soon to be removable....

Butch Rovan


Date:    Thu, 27 Feb 1997 21:26:30 -0500
From:    Stephen Kay 
Subject: 32k limit on structure?

I have an external I'm working on that can conceivably have an overall
structure size of greater than 32k (depending on the settings of a few
#defines).  If I define it so that it is just under 32k, Max 3.0 will let
me create it.  If I define it so that the arrays are larger and it goes
over 32k, Max will crash immediately when trying to create it.

Is 32k the limit for an object's structure size in MAX, or is there some
workabout? I'm compiling this in CodeWarrior, using 68k and Max 3.0.  It
didn't seem to make any difference compiling it as a single segment or
extended resource.

Stephen Kay

------The MegaMAX Application Developer's Collection-------
Full color 3D UI Objects, Mac System interface objects,
and other Max helpers designed to create more professional
looking applications.  Check out the demo on the MAX 3.5 CD


End of MAX Digest - 26 Feb 1997 to 27 Feb 1997