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

There are 4 messages totalling 161 lines in this issue.

Topics of the day:

  1. grouping
  2. Disk Authorizations and OS 8
  3. subpatchers (2)

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

Date:    Fri, 8 Aug 1997 09:33:14 +0200
From:    Dominique David 
Subject: Re: grouping

Garth Paine wrote:

> I agree.  The advantages are many.  You can search for bugs in smaller
> areas, you can see what the different parts of the patch are doing more
> easilly and that helps in refining and simplifying the programme, and best
> of all you can save the sub-patches and create a library of then to use in
> other patches - which saves me heaps of time.
>
> So,  well worth the effort.

To put "mon grain de sel" in that discussion about grouping and subpatcher,
I
would say that I too agree with what Garth Paine wrote.

Nevertheless, I would appreciate the ability to select some objects and then
aplly that "make subpatcher" command, which could create automatically the
subpatcher, especially automatically introducing required inlets and oulets
inside the subpatcher, as well as creating adequate connections between the
new
subpatcher and the rest of the patcher (which is sometimes not so easy). And
perhaps also an "unmake subpatcher" or "explode subpatcher" command to go
back
to the previous state...

But I have to say that I don't feel such commands to be so necessary.

Cheers,

Dominique

dominique.david@cea.fr

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

Date:    Fri, 8 Aug 1997 09:35:41 -0800
From:    Richard Zvonar 
Subject: Re: Disk Authorizations and OS 8

I forwarded the recent commentary, about Opcode's copy protection and OS 8,
to the company which creates the protection software.  The response is
below. Unfortunately for us end-users there is no simple way to know what
version is being used on any particular version of an application.  Ball's
still in Opcodes court.

At 5:42 AM -0800 8/8/97, Allen Cronce wrote:

>Dear Richard,
>
>We've done extensive testing of our InterLok products on System 8 and know
>of no such compatibility issues. It's possible that there are problems with
>earlier (and currently unsupported) versions of our PACE III product line.
>Opcode hasn't indicated to us what version of PACE products was used for
>Max.
>
>We are of course more than happy to work with Opcode to determine the cause
>of the problem and resolve it as quickly as possible. To this end, we are
>forwarding this information to our contacts at Opcode and will work with
>them to resolve the issue.
>
>Best regards,
>
>Allen Cronce
>
>-----------------------------------------------------------------------------
>       Allen Cronce, President                 Vox : 408-297-7444
>          PACE Anti-Piracy                     Fax : 408-297-7441
>        1082 Glen Echo Avenue                  Net : allen@paceap.com
>      San Jose, California 95125               Web : 
>-----------------------------------------------------------------------------

______________________________________________________________________________
Richard Zvonar, PhD                              zvonar@LCSaudio.com
(818) 760-8055 voice/fax

                          http://www.well.com/~zvonar

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

Date:    Fri, 8 Aug 1997 13:08:36 -0700
From:    Peter Elsea 
Subject: subpatchers

 Tom Ritchford points out

>The fact is that in a procedural language, abstracting a section of
>code into a subroutine takes me perhaps 5 minutes if I'm lazy.
>
>In Max, it takes 20 minutes.  There's a serious debugging phase needed
>as it's pretty easy to make a misconnection;  you need to create and
>connect a new object (an inlet or outlet) for each object's inlet that
>was previous connected to the "outside world."

Both subpatchers and subroutines are best managed by including them from
the start.

Perhaps there should be an object called "stub". It would take two
arguments, a number and a symbol. The number would define the number of
inlets and outlets, the symbol would be the name of the planned subpatcher.
All the thing would do is pass messages directly from inlet to outlet.

You'd use them when blocking out the top level patcher- to take a trivial
example, imagine a patcher that brought pitch data in, transposed it, and
sent it out. You may wish to get the input and output functions operational
first. You'd put a [ stub 2 transpose] between notein and noteout, test the
main parts of the patch, then make a subpatcher called transpose later.

I'll code it if there's enough interest. Meanwhile, I'm writing a tutorial
for my class on high level design issues, and would appreciate your
comments on the question "How do I get from problem to patcher?"

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

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

Date:    Fri, 8 Aug 1997 17:20:48 EDT
From:    Tom Ritchford 
Subject: Re: subpatchers

Peter Elsea wrote:
>Both subpatchers and subroutines are best managed by including them from
>the start.

I agree, but surely not every project you write has a complete
spec before you start!

Take a project I did for someone else.  A patch contained a coll
and had about a dozen objects.  No biggie and all neat.

The client looked at the object and decided that elements should
be selected RANDOMLY from the coll.  That one word added another
dozen more objects to the project and things that were just a single
object became subpatchers.  And I introduced a pernicious error
that took me a while to track down, because I flubbed the original
abstraction to a subpatcher (one wire got connected to the wrong
inlet.)

>Perhaps there should be an object called "stub". It would take two
>arguments, a number and a symbol. The number would define the number of
>inlets and outlets, the symbol would be the name of the planned subpatcher.
>All the thing would do is pass messages directly from inlet to outlet.

Hmm... even better, why not a patcher called stub that has three
arguments, a symbol and 2 numbers... and does NOTHING.  I usually
would rather my stubs do nothing!  The 2 numbers are for inlets
and outlets.

    /t

Tom Ritchford                        tom@mvision.com

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

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

End of MAX Digest - 7 Aug 1997 to 8 Aug 1997
********************************************