From:
                                                             8/5/97 11:01 PM
Subject: MAX Digest - 4 Aug 1997 to 5 Aug
1997To: Recipients of MAX digests 

There are 8 messages totalling 206 lines in this issue.

Topics of the day:

  1. Upgrade Max from 3.5.4 to 3.5.6
  2. Pointer problems (external development)
  3. Max 3.5.6
  4. MAX Digest - 3 Aug 1997 to 4 Aug 1997 (2)
  5. color
  6. Grouping objects (Was: coloured patch cords)
  7. request

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

Date:    Mon, 4 Aug 1997 23:48:27 -0600
From:    WALTER SHELUK 
Subject: Upgrade Max from 3.5.4 to 3.5.6

Today, Mon, Aug 04, 1997, I down loaded upgrade of Max 3.5.6.

The previous down load I made in May 97 was for Max 3.5.4.

Did I miss Max 3.5.5? or did we just move from 3.5.4 to 3.5.6?

        Walter

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

Date:    Mon, 4 Aug 1997 23:30:04 -0700
From:    David Zicarelli 
Subject: Re: Pointer problems (external development)

Mirko Pelgrom  writes:

>I'm still worried. I've been playing with MAX and zone ranger some more.
>Opening a bunch of help patchers and closing them. After 5 minutes of
>playing I had 104 pointers with a total of 34k of memory leaked. At this
>rate you'd waste 1 MB in 2.5 hours.

Using Zone Ranger to try to understand Max's memory allocation
is a mistake. In all likelihood, 32K of that 34K went to allocate another
block of interrupt-safe memory that's doled out in small pieces
in getbytes() and never disposed of because Max keeps its own
list of memory freed with freebytes(). I believe the messages you
can send to Max to watch the getbytes() and freebytes() totals
are documented in the "Messages to Max" section of the 3.5 manual.
If they aren't I'll repeat them here. If there is a 34K memory
leak it's not in *my* code.

>So far I've seen no answer to my second question, so I'll try again.
>Is it legal, for an external, to allocate a new pointer (using
>NewPtrClear()) in the init routine and release it in the Free routine.

Yes.

David Z.

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

Date:    Mon, 4 Aug 1997 23:48:26 -0700
From:    David Zicarelli 
Subject: Max 3.5.6

Max 3.5.6 is now available on the Opcode web site (http://www.opcode.com/dl
).
It fixes numerous bugs, including several in the Timeline object that have
been discussed here, and I believe that it doesn't introduce too many
new bugs. LIke the Max 3.5.4 update, it's a new application that should
work with your current Max 3.5 hard disk install.

All externals and help files that have changed since Max 3.5 was released
are included. Release notes covering all the updates to 3.5 are also
included.

David Z.

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

Date:    Tue, 5 Aug 1997 10:35:59 +0100
From:    Jeffrey Brenan 
Subject: Re: MAX Digest - 3 Aug 1997 to 4 Aug 1997

This list won't let me unsubscribe. HELP!!!!!

HELP!!!!

HELP!!!!

HELP!!!!

HELP!!!!

Thank You!!!!

Jeff

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

Date:    Tue, 5 Aug 1997 09:42:52 -0400
From:    "" 
Subject: Re: color

how about this...when the user changes the color of an object, all
patchcords
extending from the object automatically take on the same color. Surely that
wouldn't complicate things too much!

The fact that Max employs color at all shows that Opcode see the value in
its
use. More would definitely be better.

dp

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

Date:    Tue, 5 Aug 1997 09:33:46 -0500
From:    Paul Hertz 
Subject: Re: MAX Digest - 3 Aug 1997 to 4 Aug 1997

Mirko Pelgrom wrote:

>I'm still worried. I've been playing with MAX and zone ranger some more.
>Opening a bunch of help patchers and closing them. After 5 minutes of
>playing I had 104 pointers with a total of 34k of memory leaked. At this
>rate you'd waste 1 MB in 2.5 hours.

I assume that these pointers are not marked as purgeable? Pointers hang
around until the Memory Manager does a compact, usually when a large block
is about to be allocated--you can force one yourself by calling
CompactMemory. Just a thought.

>So far I've seen no answer to my second question, so I'll try again.
>Is it legal, for an external, to allocate a new pointer (using
>NewPtrClear()) in the init routine and release it in the Free routine.
>We need a piece of static non-relocatable data for asynchronous
>PNSendRequest() actions.

I haven't programmed MAX externals, but judging from how other externals
behave you should be able to allocate memory. If MAX's heap is too small,
you can call NewPtrSysClear and put your data in the system heap (which may
lead to other problems if MAX crashes...). Basically you just need to be
sure you can retrieve the address of your pointer, probably by sending it
back to MAX for reuse when your code gets called again. For asynchronous
calls pointers should be okay, while handles potentially would not
be--memory could be moved.

Maybe some more experienced programmer can confirm this, but the general
behavior of Macintosh memory allocation suggests you'd be okay.

Ha, my first post to the MAX list--let's hope I know what I'm talking about.

-- Paul

paul-hertz@nwu.edu (Paul Hertz)                | (*,*) (+,+) (#,#) (=,=) |
http://www.acns.nwu.edu/people/paul-hertz      | (#,=) (=,#) (*,+) (+,*) |
The Collaboratory Project                      | (=,+) (#,*) (+,=) (*,#) |
Northwestern University                        | (+,#) (*,=) (=,*) (#,+) |

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

Date:    Tue, 5 Aug 1997 13:03:12 EDT
From:    Tom Ritchford 
Subject: Re: Grouping objects (Was: coloured patch cords)

Peter Castine  wrote:

>> GROUPING objects... to group objects and the patch cords associated with
them
>
>Not to be pedantic, but there *is* a way to group objects -- Sub-Patchers.
>
>I've seen an aweful lot of messy patches that could have been tidied up
>immensely by packing a couple of things into sub-patchers.
>
>OK, so I've gotten pedantic. Yeah, a command to group a bunch of objects
>together would be cool, but until David gets around to implementing it, we
>might as well make the most of the tools that we do have.

The problem with subpatches is that it's decidedly non-trivial to take
a working patch and divide it into subpatchers.

The typical Max patch has a tendency to grow, and the number of
interconnections grows as the square of the number of objects.
Informally, of course.

Now, there's a nice command... Make Subpatcher... take a bunch
of objects and automatically create a subpatcher with right inlets
and connections.

Hey!  Maybe we could clone Master Z and get twice as much done!

    /t

Tom Ritchford                        tom@mvision.com

    Verge's "Little Idiot" -- Music for the mentally peculiar.
1-800-WEIRDOS                       http://www.weirdos.com/verge

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

Date:    Tue, 5 Aug 1997 13:30:56 -0700
From:    David Zicarelli 
Subject: request

Sorry to use the list for vaguely unrelated purposes, but I just
wanted to ask if there were any Max users in Sweden who might also
be familiar with my Intelligent Music programs and might be able
to assist in a presentation. If this describes you, please send me
e-mail.

We now resume our regularly scheduled programming.

David Z.

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

End of MAX Digest - 4 Aug 1997 to 5 Aug 1997
********************************************