From:
                                                            3/14/97 12:02 AM
Subject: MAX Digest - 12 Mar 1997 to 13 Mar
1997To: Recipients of MAX digests 

There are 9 messages totalling 320 lines in this issue.

Topics of the day:

  1. A
  2. S
  3. Max and the Macintosh Clock (3)
  4. SONY LDP-1550 commands
  5. multiple copies
  6. s (2)

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

Date:    Thu, 13 Mar 1997 08:21:00 +0000
From:    Sean Terriah 
Subject: A

Del Max tonerd@well.com

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

Date:    Thu, 13 Mar 1997 08:21:52 +0000
From:    Sean Terriah 
Subject: S

Del Max tonerd@well.sf.ca.us

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

Date:    Thu, 13 Mar 1997 12:51:09 +0000
From:    Nick Rothwell 
Subject: Re: Max and the Macintosh Clock

>Also, is there a way, other than creating a look up table, to trigger from
a
>temporal event such as sunrise and sunset?

Photoelectric cell -> CV/Gate->MIDI converter -> notein?

(Or are you expecting much cloud cover?)

         Nick Rothwell, CASSIEL        contemporary dance projects
         http://www.cassiel.com        music synthesis and control

             years, passing by, VCO, VCF, and again, and again

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

Date:    Thu, 13 Mar 1997 12:03:40 -0500
From:    David Rokeby 
Subject: SONY LDP-1550 commands

The following is the contents for a coll object that translates LDP-1550
/ LDP1500 / LDP-2000 words into the correct decimal control values.

STILL, 79;
STEPFWD, 43;
STEPREV, 44;
JUMPFWD, 45;
JUMPREV, 46;
SEARCH, 67;
SCANFWD, 62;
SCANREV, 78;
ASCIIEND, 64;
PLAYFWD, 58;
PLAYREV, 74;
PLAYTILL, 68;
PLAYFFWD, 59;
PLAYFREV, 75;
PLAYSFWD, 61;
PLAYSREV, 77;
SOUND1ON, 70;
SOUND1OFF, 71;
SOUND2ON, 72;
SOUND2OFF, 73;
PICTUREOFF, 38;
PICTUREON, 39;
FRAMEON, 80;
FRAMEOFF, 81;
RESET, 86;

Here are the HEX and ASCII equivalents

ACK            $0A
NACK           $0B
COMPLETE       $01

STILL          $4F                   O
STEPFWD        $2B                   +
STEPREV        $2C                   ,
SEARCH         $43                   C (frame# in ascii) @        (wait for
complete)
SCANFWD        $3E                   >
SCANREV        $4E                   N
ASCIIEND       $40                   @
PLAYFWD        $3A                   :
PLAYREV        $4A                   J
PLAYTILL       $44                   D
PLAYFFWD       $3B                   ;
PLAYFREV       $4B                   K
PLAYSFWD       $3D                   = (30/fps in ascii) @
PLAYSREV       $4D                   M (30/fps in ascii) @
RQFRAME        $60                   `
SND1ON         $46                   F
SND1OFF        $47                   G
SND2ON         $48                   H
SND2OFF        $49                   I
PICTOFF        $26                   &
PICTON         $27                   '
SHOWON         $50                   P
SHOWOFF        $51                   Q
RESETLDP       $56                   V

(These two are only for LDP 1550)
The LDP 1550 can execute a +- 200 frame jump with no delay or blanking
TRACKFWD       $2D                   . (jumpsize: +- 200 in ascii) @
TRACKREV       $2E                   - (jumpsize: +- 200 in ascii) @

NOTES: numbers after command code are all ascii. That is to say:
for a search for frame 23456, you send the characters that make up the
text

C23456@

@ is always used to indicate the end of a number string

for PLAYSFWD and PLAYSREV (play slow forward and reverse)
speed is desired frames per second divided by 30, so for 15 frames per
second send

=2@

for 1 fps

=30@

etc.

The trick of using a sony (which is in NO WAY compatible with the LDP
oject) is that you need to communicate with it using ACK / NACK protocol.
( unlike the pioneer, which you can almost treat as a simple MIDI device
(i.e. you just send it commands and assume that it executes them) ). This
means that you must wait for an ACK (decimal 10) or NACK (decimal 11) to
be returned by the LDP after EVERY byte that you send. An ACK means that
that byte was received ok. NACK means that there was a problem. Some
commands, primarily SEARCH causes a return value of 1 when the search is
complete. You can study this protocol by connecting to the LDP with a
simple terminal program, typing the codes as ASCII letters as in the
above examples.

RQFRAME is a frame request: send the ` character and you will get an
ascii string of the current frame (with no @) I believe that it always
returns 5 digits even for frame 0 (00000)
(on the other hand, you can send a search 0 as C0@)

This ACK NACK protocol makes these players a real pain to use, since you
have to spend a lot of time and processor cycles just waiting around for
those ACK's. I use the SONY's for their 200 frame jump capabilities (1550
only) but I ended up building intelligent serial controller hardware to
handle the protocol (since I was controlling up to 6 of them in very
complicated ways which involved loads of communication and therefore
communications overhead)

For most purposes, I would go with Pioneers, although the SONY's have
been very reliable.

PS You also need to make a special serial cable.
I built an adapter that I added to a standard MAC printer cable. If you
want to go ahead, I can probably dig out the connections for you.
David

-----------------------------------------------------------------------
               David ROKEBY - Very Nervous Systems
                http://www.interlog.com/~drokeby/
                      drokeby@interlog.com
-----------------------------------------------------------------------

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

Date:    Thu, 13 Mar 1997 10:22:12 -0800
From:    Peter Elsea 
Subject: Max and the Macintosh Clock

Mark Wong asks:
>My first question being, does anyone have an object that uses the macintosh
>clock as a timing mechanism, and examples of usage?  Any sort of clock
>examples would also be good.
>Also, is there a way, other than creating a look up table, to trigger from
a
>temporal event such as sunrise and sunset?

The date object will give you the time of day if you send it the messge
time. (I know, some UNIX programmer must have snuck in somewhere). There's
a nice example of its use in the 3.0 ref manual. This uses a metro to
repeatedly check the time.

For synchronizing to sunrise and sunset, a more elegant approach might be
to check the time at loadup, calculate the time until next event, and set a
delay object. When the delay fires, again check the time (someone may have
reset the clock) respond, and again set a delay.

Lookup tables, although tedious to enter, seem the most efficient way to
follow sunrise and sunset. Light sensors and the like are easily fooled,
and anything network related depends on other people. Perhaps someone with
an astronomical bent can provide an algorithm.

Be aware that the Macintosh clock is notoriously inaccurate- most of the
Macs in my realm run fast.

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

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

Date:    Wed, 12 Mar 1997 21:29:39 -0800
From:    Chris Muir 
Subject: Re: multiple copies

David Zicarelli writes:

>Eudora Pro users should be able to figure out a filter that automatically
>trashes messages that come from the Max mailing list to the "recipients"
>that can't be deleted from the mailing list. If you look at the full
>header of the message, you'll see that your e-mail address in the
>"Received:" field is different for each of the copies. Just have the
>filter check for a message header that contains "vm1.mcgill.ca" and
>specific e-mail addresses.

This is not true for the digest version, at least. I've been trying to get
one of the two addresses that I'm subscribed from removed for quite a while

Does anyone have Christopher Murtagh's email address?

-Chris

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

Date:    Thu, 13 Mar 1997 09:14:33 +0100
From:    "Dr. Karlheinz Essl" 
Subject: Re: Max and the Macintosh Clock

Mark H. Wong asked:

> My first question being, does anyone have an object that uses the
macintosh
> clock as a timing mechanism, and examples of usage?  Any sort of clock
> examples would also be good.

Here is an example patch which sends out a bang at certain hours (9 am, 12
am, 3 pm, 6 pm) - one can easily customize it:

max v2;
#N vpatcher 43 45 390 447;
#P comment 223 199 24 196617 sec;
#P comment 169 199 24 196617 min;
#P newex 71 250 27 196617 gate;
#P message 73 58 14 196617 1;
#P message 73 126 28 196617 time;
#P newex 73 148 40 196617 date;
#P newex 88 175 119 196617 unpack 0 0 0;
#P number 88 198 26 9 0 0 64 3;
#P number 142 198 26 9 0 0 0 3;
#P number 196 198 26 9 0 0 0 3;
#P newex 73 101 62 196617 metro 1000;
#P newex 142 221 118 196617 if $i1 == 0 then 1 else 0;
#P toggle 73 79 15 0;
#P newex 73 35 45 196617 loadbang;
#P newex 71 286 140 196617 sel 9 12 15 18;
#P button 71 311 15 0;
#P button 167 311 15 0;
#P button 135 311 15 0;
#P button 103 311 15 0;
#P comment 219 288 69 196617 desired hours;
#P comment 115 199 28 196617 hour;
#P comment 71 337 115 196617 1997 by K@rlheinz Essl;
#P connect 19 0 7 0;
#P connect 18 0 9 0;
#P connect 17 0 16 0;
#P connect 16 1 15 0;
#P connect 15 0 14 0;
#P connect 15 1 13 0;
#P connect 15 2 12 0;
#P connect 14 0 19 1;
#P connect 13 0 10 0;
#P connect 11 0 17 0;
#P connect 10 0 19 0;
#P connect 9 0 11 0;
#P connect 8 0 18 0;
#P connect 7 0 6 0;
#P connect 7 1 3 0;
#P connect 7 2 4 0;
#P connect 7 3 5 0;
#P pop;

Cheers,

Dr. Karlheinz Essl
SAMT - Studio for Advanced Music & Media Technology
Bruckner-Konservatorium Linz / Austria
www:   http://www.ping.at/users/essl/index.html

________________________________________________________________________
     Visit the MindShipMind - an interactive multimedial Web Oracle
          http://www.ping.at/users/essl/works/mindshipmind.html
________________________________________________________________________

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

Date:    Thu, 13 Mar 1997 20:50:20 +0000
From:    Sean Terriah 
Subject: s

Max Del philip@freenet.vancouver.bc.ca

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

Date:    Thu, 13 Mar 1997 23:25:25 -0500
From:    Stephen Kay 
Subject: s

>Max Del philip@freenet.vancouver.bc.ca

I do not understand why you are repeatedly sending this kind of stuff to
the MAX list.

Furthermore, your attempt to delete my old address
(70714.1356@compuserve.com) from the list has not worked, and I am still
receiving 2 of everything.

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

End of MAX Digest - 12 Mar 1997 to 13 Mar 1997
**********************************************