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

There are 7 messages totalling 276 lines in this issue.

Topics of the day:

  1. ___HELP: Easy way to filter a list into every other value??___ (2)
  2. MAX Digest - 8 Aug 1997 to 9 Aug 1997
  3. laserdisc/DVD control for live performance?
  4. grouping
  5. subpatchers
  6. Sub-patches/"stub"


Date:    Sat, 9 Aug 1997 22:14:01 -0700
From:    ai 
Subject: ___HELP: Easy way to filter a list into every other value??___


I have a Max app which needs to process a list
of about 50 - 200 values (ints) long.

In particular, at one stage, I need to extract
every other value from the even-lengthed list.
(Currently I can do this using a bunch of split
and long unpack objects, tapping every other output
of the unpacks).

Q1. Is there an 'easy' way to pass an n-long
    list L of ints (L[0], L[1], L[2], ..., L[n-1])
    through some simple object which in turn
    outputs a new list X, half the length of L
    and consisting of every other value of the
    input list L ?   (ie X[1], X[3], ..., X[n-1] )

    L[0], L[1], L[2],...,L[n-1]


    X[1], X[3], X[5], ...., X[n-1]

Thanks in advance for any feedback on this to:


Date:    Sun, 10 Aug 1997 11:24:05 -0500
From:    Terry Nigrelli 
Subject: Re: MAX Digest - 8 Aug 1997 to 9 Aug 1997

> ------------------------------
> Date:    Sat, 9 Aug 1997 22:08:48 -0400
> From:    Jeremy Roberts 
> Subject: max to vision - trigger sequences?
> I'd like to have a bang from Max trigger a designated sequence in
> Vision,
> just as if a MIDIKey were pressed. I can't seem to figure this one
> out. I
> get loops and crashes, etc...
> Is there an easy way?
> The patcher will determine the next event.... I want to send this midi
> note # to vision and trigger the appropriate MIDiKey.
> Help! :-)
> Thanks...
> Jeremy
> p.s. I'd also like to trigger a QuicKey from Max... i could have max
> trigger a MIDIKey which is simply a QuicKey (I've used MIDIKeys to
> trigger QK sequences in the past)... or is this the very long way
> around?
> All advise is appreciated.
> ------------------------------
> End of MAX Digest - 8 Aug 1997 to 9 Aug 1997
> ********************************************


To trigger Vision's MIDI keys from MAX send the MIDI note on
message to the IAC bus.

Make sure you set Vision to use IAC as a controller.

To prevent a loop disable IAC as a controller in MAX.

You also might  have to turn "Run MIDI in backround" on in OMS.

Terry Nigrelli

my home page:

Bay Shore Schools home page:


Date:    Sun, 10 Aug 1997 11:38:34 -0400
From:    Jeremy Roberts 
Subject: laserdisc/DVD control for live performance?

If stretching the line a bit, please pardon this subject on the MAX
list... I figured the folks on this list are more likely to have messed
with the technologies I'm playing with... and it's not entirely a non-MAX

Anyone have expertise in laserdisc or DVD use in a live performance
situations? (with or without MAX?)

Specifically, I'm looking to eliminate tape (we're currently using beta
SP) for a 3 minute hi-res clip that plays (rear-projected on scrim, 25
feet high) during a broadway musical - a "confrontation" between the live
actor and his alter-ego (on tape)... the audio is in RAM in the samplers
and the music is mostly from a sequence that chases SMPTE....

We've been exploring non-linear (disk based systems) video for playback
and the hardware guys are all coming up empty.

Our specs require the latency of the trigger to video no more than 200ms.
Yeah, instant start. SP does this fine. And the device must output SMPTE
(or the smpte can be on an audio track, as long as it's in sync).

I'm intrigued by DVD/laserdisc and am looking for resources and
real-world stories from the battlefield.

I searched the MAX documentation but didn't find references to laserdisc,
although I thought I read about someone doing this.... ?????

All input is appreciated.




Date:    Sun, 10 Aug 1997 12:03:10 -0400
From:    Stephen Kay 
Subject: ___HELP: Easy way to filter a list into every other value??___

>Is there an 'easy' way to pass an n-long
>    list L of ints (L[0], L[1], L[2], ..., L[n-1])
>    through some simple object which in turn
>    outputs a new list X, half the length of L
>    and consisting of every other value of the
>    input list L ?   (ie X[1], X[3], ..., X[n-1] )

If it's not time critical (i.e. if you have 5 ms to spare) you can use
"thresh" to recombine iterated items into lists fairly easily, without
knowing the exact length.

To do what you want above, you could run the first list through Jame's
McCartney's "listiter" with an arg of "2", which will keep slicing off 2
item chunks, then through a 2 item "unpack", and connect each outlet to a=

"thresh 5", which will collect the items and at when it has received
nothing for 5 ms, spit out the new lists.

Stephen Kay

------- The MegaMAX Application Developer's Collection --------
Full color 3D UI Objects for creating professional looking apps,
     Macintosh Interface objects, and other Max helpers.
-----------check out the demo on the MAX 3.5 CD----------------


Date:    Sun, 10 Aug 1997 18:07:35 +0200
From:    Peter Castine 
Subject: Re: grouping

Dominique David suggested:

>Nevertheless, I would appreciate the ability to select some objects and
>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
>subpatcher and the rest of the patcher (which is sometimes not so easy).
>perhaps also an "unmake subpatcher" or "explode subpatcher" command to go
>to the previous state...

At the risk of sounding like an AOLer, may I add my support for what would
be an extremely nifty pair of features?

And, how do we talk Opcode into giving David lots and lots of money to
implement them?



Dr. Peter Castine          | 'Just the place for a Snark!' I have said it
twice  |   That alone should encourage the crew.
                           | Just the place for a Snark! I have said it
Have Mac, Will Travel      |   What I tell you three times is true.'


Date:    Sun, 10 Aug 1997 14:13:46 EDT
From:    Roland Hemming <100414.2220@COMPUSERVE.COM>
Subject: subpatchers

yes Stephen you could make the subpatcher inlet labelling just copy the
labelling of the related object - a good solution. However most of my
labels dont say things like that!

David, perhaps you could tell us how difficult a 'make subpatcher' command
be for the imminent release of MAX4.0 :-) Is it just a day or twos work or
is it
a 'non trivial problem'?

Coloured patch cords would be nice. Also a message to hide objects would be
good. That way you could group objects together and display them in sort of
layers. This woud help with debugging.



Date:    Mon, 11 Aug 1997 09:45:04 +1000
From:    Garth Paine 
Subject: Sub-patches/"stub"

 Peter Elsea Wrote:

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

I agree.  I plan for them from the outset.  If as Tom sighted in his RANDOM
example, I need to add functions, I make then as sub-patches from the
start.  I know this often introduces the need to make calls to other
objects which are sometimes more easilly done outside the subpatch, but you
can always add a send object and place this in your patch to replace the
output of the objects now in the sub-patch.  I probably go overboard nd
make too many sub-patches which probably slows my patches down a bit, but I
find it very useful to make each function as a subpatch because it allows
me to move or duplicate whole areas of the patch easilly.  I realise Tom's
argument is not agains sub-patches perse, but perhaps as Peter points out
the limitations of MAX could be partly avoided by addressing this issue
from the outset.

>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 don't quite follow this idea.  Where do the objects that make up the
subpatch go?  How do you connect the output of the sub-patchto the output
of your "stub" object?


Garth Paine
Composer, Sound Designer,
Museums, Dance, Film, Theatre
Interactive Immersive Environments
61 3 95259844 (W)
Fax 61 3 95275549


End of MAX Digest - 9 Aug 1997 to 10 Aug 1997