From:
                                                            6/26/97 10:59 PM
Subject: MAX Digest - 25 Jun 1997 to 26 Jun 1997 - Special
issueTo: Recipients of MAX digests 

There are 15 messages totalling 500 lines in this issue.

Topics in this special issue:

  1. Librarian Problems
  2. speak object
  3. A Rant (was: New vs. Old)
  4. ======HELP: What object(s) can implement a global I/O array?? ==== (2)
  5. ? [PICT] changeable arguement (2)
  6. PICT's
  7. MAX Digest - 23 Jun 1997 to 24 Jun 1997
  8. multi-segment (Was: A Rant) (3)
  9. Dealing with Codewarrior... (2)
 10. info dialog (2) and other

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

Date:    Wed, 25 Jun 1997 23:51:40 +0100
From:    "M.Herzig" 
Subject: Librarian Problems

I am trying to write some sort of librarian for the Proteus 2.

So far I have been only successfull to save/load/edit the Preset Map.

There are several issues which I find very confusing:
1) When writing the definition file that the 'lib' function uses does
everything refer to bytes? The Proteus seems to work with 16bit (words) per
parameter, including patch names. Does this explain why the name doesn't
show up in the librarian windonw?
2) The proteus lets me move patches back and forth to the computer either
one patch at a time or the whole bank - 128 patches. Unfortunately, sending
a whole bank will cause a MIDI error with OMS and sometimes crashes MAX. I
can see that too many bytes coming in too fast could be a problem but how
can I adjust timing? Do I have to write a loop which loads patch after
patch?
3) This should be easier: Many parameters have positive and negative
values. Currently I am trying to access values like this / is $i1 & 0x00ff
for the LSB and / is $i1 & 0xff00 for the MSB. From what I could tell the
proteus stores -1 as $ffff, -2 as $fffe, etc.

Any ideas or help is appreciated.

Peter

Check out our Band Homepage:
http://copper.ucs.indiana.edu/~mherzig/beeblebrox.html

And Peter's NEW Odd Guitar Jazz Page
http://copper.ucs.indiana.edu/~mherzig/oddgitjazz.html

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

Date:    Thu, 26 Jun 1997 03:56:24 -0400
From:    Simon Nabatov <106642.3112@COMPUSERVE.COM>
Subject: speak object

Hi,maximalists

I am new to this list and rather new to MAX itself.
The other day I was checking out the "speak" object-at first,it behaved o=
k,
but when I had a dozen phrase-messages sent to it one after the other in =
a
hurry (at 80 to 150 milliseconds intervals) -it didn't like it at all and=

crashed promptly every time.Is it the object or me?!I still run 3.0 versi=
on
=2E
Would be grateful for any explanation.

  =

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

Date:    Thu, 26 Jun 1997 10:18:26 +0100
From:    Nick Rothwell 
Subject: Re: A Rant (was: New vs. Old)

>Your point? Maybe that it would be nice if Max' librarian functions were
>easier to use?

Hmm ... yes, giving it some thought, that is indeed my point. Well noticed.
I've written MAX librarians but never editors, and the librarian
functionality has always seemed untidy and primitive at best. On the other
hand, when I wrote my generic editor/librarian in THINK C many years ago,
extensibility (in Object C) was pretty neat. For a while, I've been
thinking that what I need to do is implement my own editor/librarian shell
for MAX in C, providing stuff like patch randomisation, parent/child
linkage, parent/child cut and paste, variable-length data objects (like
wave sequences, or R-8 patterns), and so on. No user interface stuff here,
just black-box functionality. It's just a shame that I can't use the Object
C features without going multi-segment, which is a no-no for MAX externals.
Maybe a move to CodeWarrior is on the cards before the end of the
millenium. (Can one do full C++ coding for MAX externals?)

         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, 26 Jun 1997 04:53:39 -0700
From:    ai 
Subject: ======HELP: What object(s) can implement a global I/O array?? ====

Hello,

I'm trying to find out if there is a list version of the value
object.  Sort of like using "nth" with coll but with global
access (and without having to send nth to the coll object).

Here's what I'm trying to do:

1. input to my overall system is a list of ints.  The list
   is, for example, fixed at 100 bytes long.

2. when the list is input to the system (from a file or sysexin
   for example), I want to be able to store this list into a
   globally accessable "array".
   (similar to loading a global:  int MyList[100] array in C.

3. loading the "array" needs to also cause the following to
   occur: specific (or all) elements of the 100 int-long array
   need to displayed each in it's own int number box.  Some
   of the number boxes are contained in different sub-patch windows.

   One way to (almost?) do this could be to input the list into
   an unpack object, but if the # of elements in MyList is large,
   (like: 100) and I need to send certain elements of MyList to
   different sub-patches, this could get ugly.

4. So I want to be able to:

   a. store the input list into a globally accessable list

   b. for each element of the list which needs to be displayed
      in a number box (associated with that element), automatically
      load each number box with the value from the list which is
      associated with the number box.  (sorta like using a bang
      of MyList being initialized along with a global address index
      into MyList.)

      For example,

      - the MyList global gets filled with a 100-byte list of ints
      - Number box #1 then automatically displays MyList[0]
      - Number box #2 then automatically displays MyList[1]
      ....
      - Number box #100 then automatically displays MyList[99]

      and all this happens *without* having to draw 100 patches
      between the object storing MyList and each of the 100 number
      boxes.

     So somehow, the input to Number box #1 needs to be an
     address/index into MyList, along with some global bang
     that loads the number box whenever MyList gets initialized/
     loaded with the complete list.

5. Question:  how can the above be achieved using standard Max
   objects or 3rd party ones?

6. The second part of the system needs to do the following:

   after MyList gets filled, and all the number boxes each
   automatically display their respective element of MyList:
   anytime the user changes a value in one of the number boxes,
   the changed value needs to be stored back into the respective
   element of MyList where the value came from to begin with.

   Again, I don't want to have to draw up too 100 patch cords
   connecting the output of each number box back to the object
   storing the global MyList list.

   How can this be achieved using standard Max objects or
   3rd party ones?

Thanks in advance for any help/feedback on this to:

   ai@wco.com

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

Date:    Thu, 26 Jun 1997 14:14:26 +0100
From:    dudas 
Subject: ? [PICT] changeable arguement

Gregg Wagstaff writes:

>Qu: is there any way for a single [PICT] object to recieve a changeable
>file name, (maybe from a [Coll] object for example) rather than a
>specific file ?

What version of Max are you using???
As of version 3.5, the "fpic" object has an inlet which can be used to
offset the pict, or load another file from disk. Very useful.

-Richard

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

Date:    Thu, 26 Jun 1997 17:01:53 +0200
From:    Jeffrey Burns 
Subject: PICT's

>Dear Maxadicts,
>
>I've completed a patch which draws upon 192 small PICT files. Through
>chance procedures, it only need display three of these on screen at any one
>time. At the moment, I have a [PICT] object for each potential PICT file -
>which needless to say increases memory requirements, and seems a long way
>round the problem.
>
>Qu: is there any way for a single [PICT] object to recieve a changeable
>file name, (maybe from a [Coll] object for example) rather than a
>specific file ?
>
>If not, can anyone suggest an alternative method ? Thank you.
>
>
>
>Gregg Wagstaff.

Hi Maxaholic Gregg,

I've given up using Picts for several reasons: they're restricted to 8-bit
color, they're high on momory, not allowing compression. Why don't you put
your 192 picts into a QT movie, which you can navigate through by means of
the movie object. (If all the pictures are different, you should compress
them using the setting: key frame every 1 frame.) Peter Castine wrote an
external which allows a preset placement of the movie object. Of course,
imovie can be positioned by mouse, but this object always crashes on me
when I put a big file in it. (Maybe you have better stars.) Of course, if
you have your picts hopping around the screen, this solution won't work,
and you may have to ask Peter if he wants to make the positioning of his
movie external controllable. Good luck.

Maxaholic Jeff

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

Date:    Thu, 26 Jun 1997 10:25:15 -0500
From:    MALONE Don A 
Subject: Re: MAX Digest - 23 Jun 1997 to 24 Jun 1997

> You are lucky you have reached that stable state.  I keep finding a mostly
> stable state, sit down, crack my knuckles, and say "NOW!"  Then I find out
> things like the monstorous Max patch that relies on Gary Nelson's Rand
> object wont work because Rand doesn't work on the PPC.
Rand works on my PPC at school

I guess I would be considered retro
I do all live real time performance
with a CZ101 & TX81Z & TSR24
controled by my MAX applications on a PB190
I doubt that my setup will change drastically
I think of my setup as an instrument
My satisfaction has something to do with the years of practice

happy tunes
Don Malone

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

Date:    Thu, 26 Jun 1997 11:33:58 -0400
From:    Stephen Kay 
Subject: multi-segment (Was: A Rant)

Nick Rothwell:
>It's just a shame that I can't use the Object
>C features without going multi-segment, which is a no-no for MAX
externals.

I don't know why you keep saying this.  Multi-segment works fine; always
has, always will.  I was doing multi-segment externals in THINK C; I
continue doing them now in CodeWarrior.  It's like riding a bike -
difficult at first, but once you figure out how to do it, there IS NO
PROBLEM :-)

Stephen Kay

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

Date:    Thu, 26 Jun 1997 11:34:05 -0400
From:    Stephen Kay 
Subject: ======HELP: What object(s) can implement a global I/O array?? ====

   ai (dave):

   > One way to (almost?) do this could be to input the list into
   > an unpack object, but if the # of elements in MyList is large,
   > (like: 100) and I need to send certain elements of MyList to
   > different sub-patches, this could get ugly.

[snip]...

> 6. The second part of the system needs to do the following:

   > after MyList gets filled, and all the number boxes each
   > automatically display their respective element of MyList:
   > anytime the user changes a value in one of the number boxes,
   > the changed value needs to be stored back into the respective
   > element of MyList where the value came from to begin with.

   > Again, I don't want to have to draw up too 100 patch cords
   > connecting the output of each number box back to the object
   > storing the global MyList list.

Welcome to MAX!  What you have described as _not wanting to do_ is
precisely the way you have to do it.  One thing that can make it a bit
easier is to use "funnel" to store values into a coll.

Here's the Max way to implement what you want:

1. 100 byte list gets stored in a coll, say at address '1'.
2. 100 byte list gets output from coll into a 100 outlet unpack.
3. 100 different named 'sends' send the bytes of the list, each through a=

message 'set $1', into numboxes in different patchers (so they display th=
e
value, but do not pass it through).
4. Each of the numboxes has another named send, which ultimately is
connected to the proper inlet of a 'funnel 100'.
5. The funnel is going through a 'prepend sub 1', which is then connected=

to a grab, then to the coll. (that way, when values are substituted into
the coll, the output which would normally come out of the coll comes out =
of
the grab and goes nowhere).
6. Therefore, each byte, as the user changes it, is substituted into the
proper place in the master list in the coll.

Of course, one thing that makes this a bit easier is my 'unpackX' object,=

part of the MegaMAX collection.  Instead of using unpack with 100
arguments, and then running each outlet through a message 'set $1', you c=
an
use 'unpackX 100 set', and you get a 100 outlet unpack, with the message
'set' prepended before each Byte.

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:    Thu, 26 Jun 1997 11:46:14 -0400
From:    Ethan Rowe 
Subject: Dealing with Codewarrior...

Hello.

        This isn't a MAX-specific question.  I've noticed some mention of
Codewarrior, so I figured that perhaps someone could help me out.
        I'm just learning to work with Codewarrior.  It's doing some
peculiar things.  For instance, it quite regularly gives more than one
local variable within a function the same address, so if you change one,
you change the other(s).  Its been doing this with some pointers, as well
as some integers.  Needless to say, this is exceptionally irritating and
may be responsible for some severe memory management problems I'm having.
Is there a way to avoid this?

 --
Ethan Rowe

"And remember, sound was              "Everybody wears a uniform"
used for centuries as a                              -Frank Zappa
method of torture."          erowe@abacus.bates.edu
       -Negativland             528 Bates College, Lewiston, ME 04240
                                   (207) 777-7989

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

Date:    Thu, 26 Jun 1997 16:50:48 +0100
From:    Nick Rothwell 
Subject: Re: multi-segment (Was: A Rant)

>>It's just a shame that I can't use the Object
>>C features without going multi-segment, which is a no-no for MAX
externals.
>
>I don't know why you keep saying this.

I keep saying it because David Z. said it; something about a problem with
code resource id's in multi-segment projects, which arises under rare
circumstances. I can't remember the details now; is there a mailing list
archive?

         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, 26 Jun 1997 12:00:15 EDT
From:    Tom Ritchford 
Subject: Re: Dealing with Codewarrior...

Ethan Rowe  wrote:
[snip]
>For instance, it quite regularly gives more than one
>local variable within a function the same address, so if you change one,
>you change the other(s).  Its been doing this with some pointers, as well
>as some integers.  Needless to say, this is exceptionally irritating and
>may be responsible for some severe memory management problems I'm having.
>Is there a way to avoid this?

Sounds like an optimization to me.  If two local variables are never
in use at the same time then they could use the same space and lower
the size of your stack.

I'll bet you that if you turn off all optimizations you'll get something
much more intuitive.

CAVEAT:  I have never used CodeWarrior (but I've used loads of other
C/C++ compilers!)

    /t

Tom Ritchford                        tom@mvision.com

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

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

Date:    Thu, 26 Jun 1997 09:33:43 +0200
From:    "Dr. K@rlheinz Essl" 
Subject: Re: ? [PICT] changeable arguement

Gregg Wagstaff wrote:

> I've completed a patch which draws upon 192 small PICT files. Through
> chance procedures, it only need display three of these on screen at any
one
> time. At the moment, I have a [PICT] object for each potential PICT file -
> which needless to say increases memory requirements, and seems a long way
> round the problem.
>
> Qu: is there any way for a single [PICT] object to recieve a changeable
> file name, (maybe from a [Coll] object for example) rather than a
> specific file ?
>
> If not, can anyone suggest an alternative method ? Thank you.

Make a Quicktime movie which contains your PICT's - you can easily access
them using the imovie object.

Hope that helps,

Dr. K@rlheinz 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, 26 Jun 1997 23:47:03 +0000
From:    Jean Favory 
Subject: info dialog (2) and other

Hello,

I wrote:

>I'm trying to make a "Get Info" dialog, hence I would get and set
>"dialog item text" with numerical values. But I can't use the
>"NumToString" toolbox function.

OK. It works now. I'm using think C and it is needed to check "Align
arrays of char" in the compiler settings window.
Thanks for your answers.

Other thing. I can't use the "write" message for "timeline" in max
3.0. Max tell me :" error: timeline: doesn't understand "write" ".
Is it the same for you?

Cheers,

Jean Favory

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

Date:    Thu, 26 Jun 1997 23:59:36 -0400
From:    Stephen Kay 
Subject: Re: multi-segment (Was: A Rant)

Nick Rothwell:
>I keep saying it because David Z. said it; something about a problem wit=
h
>code resource id's in multi-segment projects, which arises under rare
>circumstances. I can't remember the details now; is there a mailing list=

>archive?

Well, I think you are worrying needlessly (please chime in David, if you
wish). As I mentioned, multi-segment externals have been safe and
operational for me for years, under both THINK C and CodeWarrior.

Stephen Kay

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

End of MAX Digest - 25 Jun 1997 to 26 Jun 1997 - Special issue
**************************************************************

X-Mozilla-Status: 0001
Content-Length: 21177