From:
                                                             7/3/97 11:00 PM
Subject: MAX Digest - 2 Jul 1997 to 3 Jul
1997To: Recipients of MAX digests 

There are 5 messages totalling 272 lines in this issue.

Topics of the day:

  1. MAX on PC?
  2. table tricks
  3. Services for the Disabled
  4. OMS examples?
  5. Circular Motion

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

Date:    Thu, 3 Jul 1997 09:29:21 +0100
From:    "|K<" 
Subject: MAX on PC?

does anyone know if there's been any movement towards porting MAX to
the wintel platform?  One of my colleagues keeps buggin me to find out
if there's been any movement of this kind from opcode or ircam.
anybody know?

Thanks.

|K<

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

Date:    Thu, 3 Jul 1997 13:14:20 +0100
From:    dudas 
Subject: table tricks

>>If you really want to use tables as global arrays with numbered arguments,
>>perhaps you could also store the output of the each table (a list) inside
a
>>"v" object in your main patcher, so the data could be saved with the main
>>patcher, and then dump it into the various tables when initially opening
>>the patcher, thus restoring your tables.
>
>OR, save the table with the main patcher and then recover its contents
>wherever and whenever you want with
>
>expr tablename[$i1]
>
>the table name being made variable with
>
>expr $s2[$i1]
>
>and inputing 'symbol tablename' into the second inlet

------
has anyone tried this one???:

expr store($s3[-1]\,$i1\,$i2)

where $s3 is a table name ('symbol tablename' in inlet)
(whatever is inside the brackets has to evaluate to -1)
$i1 is the index, and $i2 is the value inserted at that index.

no, it's not documented.

-rd
(X...) (!)

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

Date:    Thu, 3 Jul 1997 12:07:34 -0700
From:    Christopher Murtagh 
Subject: Services for the Disabled

Greetings Fellow Maxers,

 I am currently working on a rather interesting project. I am running a
community based (funded by the municipality) recording/MIDI studio in
Victoria B.C., Canada. Our focus is to educate youth in the areas of sound
recording, MIDI and computer music, but what I think makes us unique is our
services for disabled people.

 We are running MAX 3.5 on a Centris 660AV (donated by Apple Canada) with
the I-Cube system. This enables us to create custom controllers for people
who cannot use traditional controllers (keyboards etc.). So far, the system
has been working like a charm, hats-off to David Z. and also to the people
at Infusion Systems (makers of the I-Cube). This brings me to my question:

Is there anyone else out there who has been doing this sort of stuff? If
so, are you interested in brainstorming on patches and/or hardware? Also,
(here comes the forever asked question) does anyone know of any sources of
funding/grants that we could apply for?

 Any input would be greatly appreciated. You can also get more info on our
studio at:

http://www.islandnet.com/saanich

Sincerely,

Christopher Murtagh

P.S. On a personal note... I have recently purchased a IIfx with Digital
Audio hardware. Does anyone know where I can get (preferably used - ie.
cheap) RAM for it (I need four 4MB, 64pin SIMMs)? And has anyone had any
luck running MacOS 7.6.1 on it, or should I stick to 7.5 (or even 7.1)?

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

Date:    Thu, 3 Jul 1997 21:02:40 +0100
From:    "|K<" 
Subject: OMS examples?

--slightly off topic--
I think that it was quite cool for opcode to include the OMS headers
with the MAX 3.5 cdRom.  I'm wondering if anybody knows how to use
them properly.
I've got a few applications that rely on the midi manager that I would
*really* love to move over to OMS.  does anybody have the code for a
simple application that just signs onto OMS and sends and recieves
midi?  This would be very cool.  If there is an OMS sdk, that would be
even more cool.  is this something you have to pay for, or is opcode
pretty relaxed about these things?

Thanks!
|K<

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

Date:    Thu, 3 Jul 1997 13:50:25 -0800
From:    Christopher Dobrian 
Subject: Circular Motion

Jem Finer wrote:

>I'm trying to propel a graphic object through "space" in a smooth and
>constant circle using the equation x squared + y squared = r squared (x and
>y being the pixel positions and r the radius).
>
>This works except the speed is not constant, there being a rapid
>acceleration at the sides due to the fact that the y coordinates change
>quicker.
>
>Does anyone have a handy hint or know of existing object to do the job?

Below is a patch that moves a picture in a circle. It uses the picture
"MaxHead.pict" that's in the Max Tutorial folder, so put this patch into
your Max Tutorial folder so that it can find the picture.

For those who don't care how to move a picture in a circle, my apologies
for the long Max patch enclosed here.

--Chris
                              ----------------
             Christopher Dobrian / School of the Arts - Music
             University of California / Irvine, CA 92697-2775
                Phone: (714) 824-7288 / Fax: (714) 824-4914
                      http://www.arts.uci.edu/dobrian/

******************

max v2;
#N vpatcher 6 40 509 340;
#P comment 271 5 89 1310730 Double-click to read;
#P newex 428 193 27 1441802 -1;
#P newex 428 172 38 1441802 sel 0;
#P message 362 28 14 1441802 0;
#P comment 367 46 56 1310730 direction;
#P toggle 362 59 15 0;
#N vpatcher 50 40 450 340;
#P comment 3 247 269 196617 to actually look right cps must be much less
than fps/2.0;
#P comment 3 235 243 196617 To avoid aliasing \, keep cps < fps/2.0 \;;
#P comment 233 266 124 196617 --Christopher Dobrian;
#P comment 3 201 368 196617 "direction" negates (flips) the cosine function
to change the picture's direction;
#P comment 3 184 338 196617 on a scale from 0 to 1 (which gets converted to
0 to 2*pi) in expr;
#P comment 3 173 290 196617 "phase offset" means "starting point on the
circle" ("phase");
#P comment 3 156 277 196617 "y offset" means "center y coordinate"
("centerycoord");
#P comment 3 144 277 196617 "x offset" means "center x coordinate"
("centerxcoord");
#P comment 3 28 283 196617 The x coordinates change proportional to a sin
function \, and the y coordinates change proportional to a cosine
function.;
#P comment 3 132 328 196617 "cps" means "cycles per second" around the
circle ("frequency");
#P comment 3 103 265 196617 In this patch:;
#P comment 3 86 331 196617 ypixel =
radius*cos(2*pi*frequency/samplerate+phase)+centerycoord;
#P comment 3 74 331 196617 xpixel =
radius*sin(2*pi*frequency/samplerate+phase)+centerxcoord;
#P comment 3 57 265 196617 The coordinates change according to the
formulae:;
#P comment 3 4 281 196617 For a picture to move in circular motion at a
constant rate \, its radian angle must change at a constant rate.;
#P comment 3 120 328 196617 "fps" means "frames per second" displayed
("sample rate");
#P comment 3 218 218 196617 pi = 4.0*atan(1.0) \, so 2*pi = 8.0*atan(1.0);
#P pop;
#P newobj 147 3 122 1441802 patcher explanation;
#P newex 54 218 412 1441802 expr
$f5*cos(8.0*atan(1.0)*$f3*$f1/$f2+8.0*atan(1.0)*$f4)*$i7+$i6;
#P newex 16 193 376 1441802 expr
$f5*sin(8.0*atan(1.0)*$f3*$f1/$f2+8.0*atan(1.0)*$f4)+$i6;
#P newex 16 157 175 1441802 counter;
#P comment 29 7 52 1310730 space bar;
#P newex 2 26 44 1441802 sel 32;
#P newex 2 5 27 1441802 key;
#P message 246 243 38 1441802 close;
#P message 210 243 32 1441802 open;
#P newex 70 129 38 1441802 sel 1;
#P newex 59 85 83 1441802 expr 1000/$i1;
#P comment 415 34 72 1310730 set initial values;
#P newex 408 17 53 1441802 loadbang;
#P comment 320 46 40 1310730 y offset;
#P comment 277 46 40 1310730 x offset;
#P comment 232 46 37 1310730 radius;
#P comment 165 46 58 1310730 phase offset;
#P message 160 28 23 1441802 0.;
#P flonum 160 59 35 10 -1 1 3 22;
#P message 314 28 26 1441802 134;
#P message 272 28 26 1441802 134;
#P message 227 28 26 1441802 134;
#P message 59 28 20 1441802 15;
#P message 107 28 23 1441802 0.5;
#P newex 16 106 53 1441802 metro;
#P number 314 59 35 10 0 268 3 22;
#P number 272 59 35 10 0 268 3 22;
#P number 227 59 35 10 1 268 3 22;
#P comment 112 46 24 1310730 cps;
#P flonum 107 59 49 10 0 15 3 22;
#P number 59 59 35 10 1 30 3 22;
#P toggle 16 59 15 0;
#P newex 3 265 203 1441802 pict Circular_Motion MaxHead.pict;
#N graphic Circular_Motion 0 2 40 302 340;
#P newobj 210 265 224 1441802 graphic Circular_Motion 2 40 302 340;
#P comment 2 46 52 1310730 Start/Stop;
#P comment 64 46 24 1310730 fps;
#P connect 25 0 11 1;
#P fasten 23 0 13 0 413 38 394 38 394 24 64 24;
#P fasten 23 0 12 0 413 38 394 38 394 24 112 24;
#P fasten 23 0 18 0 413 38 394 38 394 24 165 24;
#P fasten 23 0 14 0 413 38 394 38 394 24 232 24;
#P fasten 23 0 15 0 413 38 394 38 394 24 277 24;
#P fasten 23 0 16 0 413 38 394 38 394 24 319 24;
#P fasten 23 0 38 0 413 38 394 38 394 24 367 24;
#P connect 18 0 17 0;
#P fasten 17 0 33 3 165 92 240 92;
#P fasten 17 0 34 3 165 92 260 92;
#P connect 16 0 10 0;
#P connect 15 0 9 0;
#P connect 14 0 8 0;
#P connect 13 0 5 0;
#P connect 12 0 6 0;
#P fasten 11 0 3 0 21 127 8 127;
#P connect 11 0 32 0;
#P fasten 10 0 34 5 319 80 394 80;
#P fasten 9 0 33 5 277 84 386 84;
#P fasten 8 0 33 4 232 88 313 88;
#P fasten 8 0 34 4 232 88 327 88;
#P fasten 6 0 33 2 112 77 154 77 154 96 167 96;
#P fasten 6 0 34 2 112 77 154 77 154 96 193 96;
#P connect 5 0 25 0;
#P fasten 5 0 33 1 64 81 94 81;
#P fasten 5 0 34 1 64 81 126 81;
#P connect 4 0 11 0;
#P connect 4 0 26 0;
#P connect 26 1 3 0;
#P connect 26 1 32 2;
#P connect 26 0 27 0;
#P connect 26 1 28 0;
#P connect 27 0 2 0;
#P fasten 28 0 2 0 251 262 215 262;
#P connect 29 0 30 0;
#P connect 30 0 4 0;
#P connect 32 0 33 0;
#P fasten 32 0 34 0 21 179 59 179;
#P fasten 33 0 3 1 21 261 104 261;
#P fasten 34 0 3 2 59 257 200 257;
#P fasten 36 0 39 0 367 77 433 77;
#P connect 38 0 36 0;
#P connect 39 0 40 0;
#P connect 39 1 34 6;
#P fasten 40 0 34 6 433 214 461 214;
#P pop;

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

End of MAX Digest - 2 Jul 1997 to 3 Jul 1997
********************************************