From:
                                                             3/6/97 12:00 AM
Subject: MAX Digest - 4 Mar 1997 to 5 Mar
1997To: Recipients of MAX digests 

There are 8 messages totalling 243 lines in this issue.

Topics of the day:

  1. Max Bug?
  2. Libswitch question
  3. MAX 3.5 in the UK
  4. math functions in Max externals for 3.5 (4)
  5. max & internet

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

Date:    Tue, 4 Mar 1997 23:11:42 -0800
From:    David Zicarelli 
Subject: Re: Max Bug?

Fred Malouf  writes:

>I am developing on an 8500 and I am using Max 3.5. I have an object that
>uses the window calls.
>
>Issue 1: A call to wind_new puts up a window with scroll bars by
>default.  I don't know how to get rid of them (I am not setting the
>flags - the only flag I use is WCLOSE).  PPC only.  Even my old 68K
>object does the same thing, whereas before there were no scroll bars.

This bug was already reported, and it is fixed in the 3.5.1 update.
Where is the 3.5.1 update? I'm not really sure. I finished it
a couple of weeks ago and it's sitting on someone's hard drive at
Opcode.

>Issue 2: 68K only - When I double click on my object the window does not
>become visible although the object apears to be functional (running
>Max68K3.5).

The standard way to do this is to call wind_vis() in response to
a "dblclick" message. If I double-click on a table object in Max68K3.5,
its editing window opens, and table uses this technique.

David Z.

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

Date:    Tue, 4 Mar 1997 23:11:44 -0800
From:    David Zicarelli 
Subject: Re: Libswitch question

Tod Fiste  writes:

>I'm writing a librarian/editor, and I wanted to use it to create a
>function that displays, compares, and/or copies locations of one patch
>with another.  So I will be displaying (using dials, sliders, numbers,
>etc.) a number of location values from one patch on the top half of the
>screen, with an exact copy below it.  By using the set with libswitch I
>could set the 1st patch location, then send bang to libtofrom to
>populate the 1st patch's controls, then use set to set libswitch to the
>2nd patch and bang on the 2nd libtofrom to populate it.  Without the set
>to libswitch, every time I change libswitch BOTH sets of libtofrom
>objects are automatically banged, so I can never have 2 different sets
>of patch data displayed at the same time.  There are many ways to
>approach this, but the set libswitch seemed to be the easiest and most
>straightforward that I could see.

(I had written to Tod that the documentation about the set message
to libswitch is incorrect. The message is, and always has been,
useless.)

I see what Tod wants to do, and the set message as documented
would do it. However, it would be a disaster if the user wanted
to change the first patch after the second "set" message had
been sent, since the the libto part of his libtofrom objects
will all change the second patch rather than the first one.

I don't really see any way to display the contents of two patches
in the same window other than with two separate windows. The new
window messages to thispatcher should make it possible to arrange
two windows on the screen side by side to make comparison easier.

There are a couple of other lib messages that can be used to
do this kind of thing:

getwho  specifies a receive object for subsequent
get messages.
get   will send the indexth byte of the patch
to a receive object specified with the "getwho" message.

Note there is no corresponding "set" message (or, rather,
"set" to the lib object does something different), so this
would be useful only for viewing the contents of multiple
patches. I might add such a capability in the future however
since it would be relatively simple to do.

David Z.

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

Date:    Wed, 5 Mar 1997 09:52:08 EST
From:    Roland Hemming <100414.2220@COMPUSERVE.COM>
Subject: MAX 3.5 in the UK

A re-post for Jem Finer:

Talk to Lars at MCM tel 0171 258 3454.

Roland

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

Date:    Wed, 5 Mar 1997 10:32:48 -0500
From:    Fred Collopy 
Subject: math functions in Max externals for 3.5

I am making the conversion from 3.0 to 3.5 which means moving from Symantic
C++ to CodeWarrior. Things have gone smoothly it seems up to the point
where I use sin, cos, and power. First, I had to replace these with Sin,
Cos, and Power which have new prototypes. I think that is alright...at
least the 68K compiled with my renderings of the new versions. However,
when I attempt to make the Fat version under the PPC project, I get a bunch
(240) of errors like:
Error   : ';' expected
SANE.h line 119   pascal void GetHaltVector(HaltVector *) = {
0x3F3C,0x0007,0xA9EB };

Numerics is not one of the Mac's niceties. Everytime I have to move to a
new environment this part drives me in-SANE (sorry, couldn't resist). Any
help well be appreciated.

Fred

Fred Collopy
Weatherhead School of Management
Case Western Reserve University
Cleveland, Ohio 44106
(216)368-2144 voice
(216)368-4776 fax

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

Date:    Wed, 5 Mar 1997 13:30:05 -0500
From:    Stephen Kay 
Subject: math functions in Max externals for 3.5

>I am making the conversion from 3.0 to 3.5 which means moving from
Symantic
>C++ to CodeWarrior. Things have gone smoothly it seems up to the point
>where I use sin, cos, and power. First, I had to replace these with Sin,
>Cos, and Power which have new prototypes. I think that is alright...at
>least the 68K compiled with my renderings of the new versions. However,
>>when I attempt to make the Fat version under the PPC project, I get a
bunch
>(240) of errors like:
>Error   : ';' expected
>SANE.h line 119   pascal void GetHaltVector(HaltVector *) = {
>0x3F3C,0x0007,0xA9EB };
>Fred Collopy

Don't know if this helps, but I checked one of my objects which uses "pow"
- I did not have to replace it with any other new prototype, so I'm not
sure what you mean.  In any event, mine compiles and runs, so here's how I
have the project set up.  Maybe this will be of some help.

In the PPC CW Project file, I have:
MWCRuntime.Lib
InterfaceLib
Mathlib

In my header file, which gets prefixed as a header to all files, I have:
#include "math.h"
#include "errno.h"
#include "stdlib.h"

It compiles and runs fine, and pow works...

Stephen Kay

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

Date:    Thu, 6 Mar 1997 00:22:20 +0200
From:    Jukka Ylitalo 
Subject: max & internet

hi maxers!

i am planning an installation that generates sounds from sensors
placed in different locations connected via internet. has anybody
experience on making pathers at distant machines communicate?
can i use 'telnet' object somehow to send midi infomation from one patcher
to another through internet. if so, how is it done?

Jukka Ylitalo
_________________________
muuMediaBase
MUU an artist association for media & performance art in finland
http://muu.autono.net/
358-9-625972
fax:358-9-625376

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

Date:    Wed, 5 Mar 1997 22:02:35 +0000
From:    Nick Rothwell 
Subject: Re: math functions in Max externals for 3.5

>I am making the conversion from 3.0 to 3.5 which means moving from Symantic
>C++ to CodeWarrior.

Why? Doesn't 3.5 support older objects written using THINK C? Can't you
keep writing older objects the same way?

(Or are you just wanting to go PPC-native?)

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

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

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

Date:    Wed, 5 Mar 1997 20:55:34 -0500
From:    Stephen Kay 
Subject: Re: math functions in Max externals for 3.5

>>I am making the conversion from 3.0 to 3.5 which means moving from
Symantic
>>C++ to CodeWarrior.

>Why? Doesn't 3.5 support older objects written using THINK C? Can't you
>keep writing older objects the same way?

>(Or are you just wanting to go PPC-native?)

         >Nick Rothwell, CASSIEL        contemporary dance projects

68k 3.5 will support older objects written using THINK C, and also new
objects written using THINK C.  The problem becomes that it's a big pain to
try and do PPC versions using THINK C, although it can be done.  But back
in the beginning of my switch, I tried to do it and ran into a lot of
problems.  Since CodeWarrior is now the "official" DZ endorsed tool for
writing Max objects, it made sense to make the switch.  In CodeWarrior you
can seamlessly go back and forth between your 68k project and your PPC
project and compile the two parts necessary for a FAT object.

Incidentally, in the beginning I didn't want to make the switch, fearing
the new learning durve of changing development platforms (plus the
expense), but having made the switch, I can only say CodeWarrior is a far
_far_ superior programming environment (at least for doing externals), and
I've never looked back.  I highly recommend it.

Anyone want to buy a used copy of THINK C, CD-ROM, v8.0?

Stephen Kay

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

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