From:
                                                            7/23/97 11:01 PM
Subject: MAX Digest - 22 Jul 1997 to 23 Jul
1997To: Recipients of MAX digests 

There are 12 messages totalling 365 lines in this issue.

Topics of the day:

  1. ctlin as bang - is this the efficient way? (4)
  2. Ircam Forum CD
  3. Digi Objects
  4. ====HELP: How to get OMS port/ch#'s to appear across sub-patches??====
  5. test
  6. tamper proof patches?
  7. runtime object instantiation?
  8. 
  9. Source code for objects

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

Date:    Wed, 23 Jul 1997 10:49:37 +0200
From:    Roby Steinmetzer 
Subject: Re: ctlin as bang - is this the efficient way?

>OK, I'm learning massive things about our wonderful program here... I've
>come a zillion miles in 3 days...
>
>Can someone tell me if I did this the most efficient way???
>
>I wanted to use a ctlin as a SINGLE bang.
>
>I made a ctlin (controller 66 to be exact) and I want it to simply output
>a SINGLE bang ONLY on pedal_down.
>
>I've analyzed what ctlin does with ctl # 66 and it looks like it sends a
>127 on pedal_down and a 0 on pedal_up. OK, I wanted to make the 0 on
>pedal_up go away...
>
>Pedal_down bangs, then pedal_up bangs... I wanted to send NOTHING.
>
>So, I made a "split 1 127" after the ctlin and before the bang. I used
>the left outlet as my bang and the right outlet is empty (the 0). THIS
>SEEMS TO WORK.
>
>Is this the "right" way or is there a more clever and "slicker" way to do
>this?
>

Try with "select 127"

Roby Steinmetzer
Luxembourg, Europe

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

Date:    Wed, 23 Jul 1997 09:33:26 -0000
From:    Nick Rothwell 
Subject: Re: ctlin as bang - is this the efficient way?

> So, I made a "split 1 127" after the ctlin and before the bang. I used
> the left outlet as my bang and the right outlet is empty (the 0). THIS
> SEEMS TO WORK.

MIDI switch events, like those generated from footswitches, use values
0 and 127, so this technique is fine. I'd probably use a "select 0"
and run the rightmost output through a bang, to get the on and off
events separately. If I were feeling paranoid, I'd also use a "change"
object to filter out double-clicks.

--
         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, 23 Jul 1997 12:03:10 +0200
From:    Thorsten Olscha 
Subject: Ircam Forum CD

Waht is the "Ircam Forum CD" and where is it available?
Thorsten Olscha

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

Date:    Wed, 23 Jul 1997 12:29:56 +0200
From:    dudas 
Subject: Digi Objects

Just a couple of precisions regarding the digidesign card objects:

Andreas Weixler writes:

>There are 2 objects that work together with DigiDesign Card and
>edit SoundDesigner Format, but I very often crashed with it.
>I have found it on the IRCAM Forum CD in April and Oktober 96.
>For the objects name I will have a look when I meet our MAC again.

Joerg Spix writes:

>the Digidesign external was part of Max 2.x and (I think) removed from the
>distribution at 3.x. There is a good reson for it: It was only for the
>first generation of Audiomedia and SoundTools cards. It was developed at
>CNMAT by Adrien Freed (?) and a later version could be bought from CNMAT, I
>think.
>You need a Motorola 56K DSP assembler (developer kit, which is free for
>academic) to write your programs for the 56K DSP. The external and header
>files as well as two examples were part of the MAX-specific distribution
>from CNMAT.

The "dsp" object from CNMAT, as Joerg Spix rightly points out, is only
compatible with the old Sound Accellerator cards from Digidesign. This
object was included with the early distributions of Max (2.x), but is
useless for most people nowadays, since the object does not work with any
of the more recent cards.  No, it is not possible to update the object,
since digidesign no longer probides information on how to access the cards
directly.  The object is probably still freely available from CNMAT if you
ask; because it was distributed with Max it was probably never placed on
any of the ftp sites.

Next, the "playlist" object (and companion objects "displaysound",
"dspdriver" and "sound") from McGill, allows you to play soundfiles (and
regions contained therein) via a Sound Accellerator or Audiomedia II card.
It plays Sound Designer II format files, not AIFF!!  This suite of objects
needs the DigiSystemInit 2.5.  It simply will not work with recent versions
of the init. The suite of objects is publicly available on the Ircam FTP
site:

ftp://ftp.ircam.fr/pub/forumnet/max/68K/sound/PlaylistEtc.sea.bin

I must say that the playlist object sometimes seems a bit delicate when
you're editing your patch, but it is reliable in concert, as long as you're
not one of those people who regularly opens up and makes changes to your
Max patch during the performance. (!)

Of course, you can always use the Digidesign Sound Drivers extension to
route the sound output of the "AiffPlayer" or "aiff" object to ProTools or
the newer Digi cards for a high quality output.  However, you are still
stuck with the Sound Manager's inherent delay.

-Richard

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

Date:    Wed, 23 Jul 1997 14:58:55 +0200
From:    Roby Steinmetzer 
Subject: Re: ====HELP: How to get OMS port/ch#'s to appear across
         sub-patches??====

>July 22, 1997
>
>Hello,
>
>1. I have a multi-page MAX app under development
>
>2. on one of the pages only, I have an OMS pop-up
>   (to select which MIDI device to send/recv
>   MIDI msgs to/from.  On this same page I have
>   a channel# # boix for choosing which MIDI ch#
>   to use when sending/recving to the selected
>   device.
>
>3. the problem/issue is: the other pages in the
>   app each send/recv msgs to the device - and
>   so at app run time, when I open one of these
>   other pages, I must always 1st open the page
>   containing the MIDI selectors, select the
>   device then ch#, then go back to the page
>   I want to send MIDI msgs out from.
>
>4. Qs:
>   How can objects be setup/configured so
>   that the 1st time I run my app, and goto
>   the Max page containing the MIDI OMS
>   device selector  - that when I select the
>   device to send/recv to/from and the Ch#,
>   that two things happen:
>
>   a. the device & ch# info is sent to all
>   the other pages that need this info?
>
>   [I already send this info using sends & recvs
>   to all the other pages' sxformat objects
>   but it seems like half the time they don't
>   get the recv correctly - forcing me to often
>   go back to the device select page and re-select
>   the device & ch#.]
>
There should be no problem sending to multiple receives, even on different
 pages.

>   b. when I 'quit' my app, by pressing Cmd-E,
>   that my app 'remembers' the previous settings of
>   MIDI device & ch# info, so that the next time I
>   run the app, and 1st open a page that does not
>   contain the device select & ch# selectors, that
>   the sxformat object on this 1st opened page
>   remembers from the previous session what device
>   & ch# to send MIDI msgs to/from.
>
>   [ie can my 'app' have it's own preferences file
>   in the Sys folder and 'easily' write/read to/from
>   it ]
>
You could use a "coll" with a "write symbol" / "read symbol" message.
Also you don't have to wait until you quit for saving your preferences. You
can
 do it everytime at once you select another Midi device or channel. Just put
one
 more receive object to the coll and perform the write message.
When starting your app the next time use a loadbang to read the preferences
file
 into the coll.

Roby Steinmetzer
Luxembourg, Europe

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

Date:    Wed, 23 Jul 1997 12:13:35 -0400
From:    Stephen Kay 
Subject: Re: ctlin as bang - is this the efficient way?

>MIDI switch events, like those generated from footswitches, use values
>0 and 127, so this technique is fine. I'd probably use a "select 0"
>and run the rightmost output through a bang, to get the on and off
>events separately. If I were feeling paranoid, I'd also use a "change"
>object to filter out double-clicks.
>         Nick Rothwell, CASSIEL        =

If you want the 0 and 127 to bang separately, why not just a "select 0
127", and skip the extra bang object?

Stephen Kay

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

Date:    Wed, 23 Jul 1997 16:34:51 -0000
From:    Nick Rothwell 
Subject: Re: ctlin as bang - is this the efficient way?

> If you want the 0 and 127 to bang separately, why not just a "select 0
> 127", and skip the extra bang object?

Using "select 0" is slightly more robust. It's years since I've read
the MIDI spec, but even if it says "0 and 127" rather than "0 and
non-zero", I feel that the latter is cleaner.

--
         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, 23 Jul 1997 11:02:05 -0700
From:    Peter Elsea 
Subject: test

This is a test message, please ignore.

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

Date:    Wed, 23 Jul 1997 19:21:14 -0400
From:    Jeremy Roberts 
Subject: tamper proof patches?

Thanks to everyone answering my ctlin question... it works great.

OK, new question of the day:

Is there a backdoor to get into a compiled app or collective once made?
The reason I ask is that I want to prevent anyone, especially our pit
musicians, from tampering and messing up anything... yes, I don't trust
them... basically, I want to make an application that's tamper proof....
I've looked around and it appears that once compiled into an application,
a collective is safe from prying eyes... yes???

Thanks!

Jeremy

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

Date:    Wed, 23 Jul 1997 18:03:54 -0700
From:    Bob Cohen 
Subject: runtime object instantiation?

Is it possible to instantiate objects at run time?  Here's the problem I'm
trying to solve:

I need to be able to present a series of images in a graphics window (pict
files).  The order and number of the images is defined externally, and thus
can't be built into the patch.  I'd like to be able to read in the external
definition describing the series (probably a text file ennumerating the
pict file names) and then instantiate a pict object for each image. A
sub-patch would then somehow cycle through the images.

One way of doing this would be to modify the pict object to open multiple
pict files, the filenames of which are specified in a message, although I'd
rather avoid writing new C code if possible.

Any suggestions or pointers to appropriate documentation would be greatly
appreciated.

Thanks -

Bob Cohen
bob@wrs.com

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

Date:    Wed, 23 Jul 1997 22:11:11 -0500
From:    "M. Abidh Waugh" 
Subject: 

Greetings Max Enthusiasts:

I am hoping that one of the many max gurus who may read this message could
offer some insight to this problem that has me vexed:

        One of my recent patches is provoking max to tell me messages like
the following : 'freeobject 1809e78: bad object'.   and then causing the
system to freeze up.  I have been looking over the patch to make sure there
is nothing obviously causing this problem and can't find anything. [it's a
patch which alternates pre-composed material which has been stored as lists
in a coll object, with continuously evolving mutations of itself (swapping
pitches for pitches from arrays of rows, and changing the rhythm by
performing mathmatical operations on the original rhytmic values) - a total
of 4 coll objects are used to juggle these various components.

        If anyone has any suggestions about ways to trouble shoot this
problem please email me.    What does the 'freeobject...' message tell us
about the nature of the problem?

        I am worried that I may have crossed the line into excessive
complexity for max to handle,  so perhaps this will be an incentive for me
to learn C faster.  Although, for most of the operations that I am
attempting,  the existing max objects work wonderfully, so I can't imagine
how any objects that I might conceive of would handle this type of
processing better than the built in ones.

        On a somewhat related issue:  I recently installed the academic
version of codewarrior which was reccommended by D. Zicarrelli, et. al. ,
.    Does the debugging program that came with the compiler hold any
benifits for use with max.  Often times when max has behaved as I mentioned
above, the debugger will appear.  The two commands that I have stumbled
upon (es & rb) sometimes do something,  and I haven't taken the time to
study the items that are described when the help command is entered.   Any
comments about this?  Does anyone know of particular literature on this
topic?

Salaams,

M. Abidh Waugh

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

Date:    Wed, 23 Jul 1997 19:40:29 +0000
From:    Tod Fiste 
Subject: Source code for objects

Maxers,

Does anyone know whether the source code for the objects included with
Max is available anywhere?  I especially would like to see the source
code for the LIB objects (LIB, LIBTO, LIBFROM, etc.) and the DIAL
object.

Or is this something that is considered part of Max source code and
isn't/shouldn't/can't be handed out?  If this is a ridiculous,
unreasonable thing to want can someone please let me know?

Thanks,

Tod

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

End of MAX Digest - 22 Jul 1997 to 23 Jul 1997
**********************************************