From:
                                                            1/27/97 11:06 PM
Subject: MAX Digest - 26 Jan 1997 to 27 Jan 1997 - Special
issueTo: Recipients of MAX digests 

There are 13 messages totalling 512 lines in this issue.

Topics in this special issue:

  1. accessing text MAX patches
  2. chord recognition
  3. small problem with Max 3.0 (2)
  4. Libfrom problems
  5. quite upset indeed... (3)
  6. video outputs, switchblade (2)
  7. more chords, and matching things
  8. DMX-512
  9. Robot book info

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

Date:    Mon, 27 Jan 1997 19:49:29 +1100
From:    Garth Paine 
Subject: Re: accessing text MAX patches

>>This may be a dumb question, but when I see people poasting stuff like:
>>-------------------------------------------------
>>max v2;
>>#N vpatcher 9 40 794 554;
>>#P newex 72 130 27 196617 sort;
>
>Cut it out, and in Max select "Text" from the New Menu, then paste it in

If your using Eudora or similar for email, just copy the text which defined
the MAX patch, then go to the file menue in Eudora and select, "New Text
Document" and paste in the patcher text.  Save this text document to the
desktop, then when you have finished reading your email you can open MAX
and select the saved text doc. and it will open as a MAX patch.  Then save
it and select "Normal" in the save window to save it as a MAX patch rather
than a text file.  This means you don't have to have both applications open
in order to access the information.

hope this helps,

Garth

<><><><><><><><><><><><><><><><><><><><><><><><><>
ACTIVATED SPACE
INTELLIGENT INTERACTIVE ENVIRONMENTS
MUSIC COMPOSITION, SOUND DESIGN for Theatre, Film, Video, Multimedia
Phone   +61 3 95259844     mobile-0412-118292
Fax        +61 3 95275549
GARTH PAINE
<><><><><><><><><><><><><><><><><><><><><><><><><>

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

Date:    Mon, 27 Jan 1997 04:05:37 -0500
From:    Amanda Pehlke 
Subject: Re: chord recognition

I want to extend a huge thanks to Richard Dudas and warm fuzzies to Peter
Elsea for making available your chord-recognition examples.  Having
successfully pasted Richard's text-saved patch (new experience), and packing
a mean 3.5 delete-key, I now feel like a big, baaaaad Max'er.

...This despite the fact that the way I was finding chord types and roots
was
completely different, although it did work (most of the time) independently
of octave and input order and was based on pitch classes.  I was testing
each
pitch in turn as being a possible root, looking for a match-up with the
intervals, and inverting each pitch as it failed the test.  However, it was
inefficient because I hadn't made myself familiar enough with objects not in
the reference manual.  I worked my poor little printer overtime today making
sure I'll have Lobjects documentation and fuzzy stuff closer at hand
forevermore.

Now, what do I say on my patcher when I want to give it proudly to someone
else, and although it will look the same to them, it works better and it was
really you gentlemen that saved my butt in making it?  What is the etiquette
in acknowleging the use of copyrighted objects?
                   _/)
              __/ /     Amanda Pehlke/CIKIRA STUDIO MIDI SUITE
           /       (_______
   ---/              =======)          cikiramidi@aol.com
                        ========)      400 Marisa Hill Drive
                       ======)           Selah, WA, USA 98942
 _ ---\_____ /===-                   (509) 697-4050

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

Date:    Mon, 27 Jan 1997 09:43:33 -0500
From:    Thierry Voinier 
Subject: small problem with Max 3.0

I recently upgraded from Max 2.5.2 to Max 3.0 on my good old Mac IIx, which
means the two versions are on my HD. I use the same patches, and it appears
that midiout (from Max) works well, but midiin (to Max) not. I use the same
hardware, neither Midi Manager nor OMS.
If anyone has an idea, thank in advance.
------------------------------------------
Thierry VOINIER
Laboratoire de Mecanique et d'Acoustique
31, Chemin Joseph Aiguier
13009 Marseille
France
voinier@alphalma.cnrs-mrs.fr
------------------------------------------

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

Date:    Mon, 27 Jan 1997 06:44:12 +0000
From:    Tod Fiste 
Subject: Libfrom problems

Maxers,

Anybody else having problems with the libfrom and libtofrom objects in
3.5?  Maybe I'm doing something wrong (I've never seen these work,
because when I used the lib object in 3.0 it crashed my Mac), but I've
read and re-read the documentation and it seems that I'm doing
everything right.

The problem is that, if I use a libfrom object with more than 1 outlet
(i.e., libfrom 1 2 3 4), I only get data out of the leftmost outlet.
What's more, what comes out of the leftmost outlet is a 2-byte hex
doubling of the actual value it should be finding in the first location
(i.e., hex 4545 when location 1 contains hex 45).  Under some
circumstance I cannot reproduce, I did get output from all outlets, but
all outlets produced the same number, which was the number that the
leftmost outlet should have found.

The only way I can get a useable output it to use the bits parameter
(i.e., libfrom 1 bits 7 8).  This works just the way the manual says it
does, but I can only get 1 byte at a time and my code gets kind of
messy.

Anybody know anything about this?  Opcode tech support basically told me
they know nothing about the librarian functions in Max.

Thanks,

Tod

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

Date:    Mon, 27 Jan 1997 14:48:13 +0000
From:    Nick Rothwell 
Subject: Re: quite upset indeed...

>Paying him puts him under
>an obligation to provide it, in the past he could just ignore any help you
may
>have wanted - how much is that worth?

Then again, Roland, can you honestly claim that paying for packages or
products from our exclusive distributors always results in technical
support of a useful kind?

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

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

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

Date:    Mon, 27 Jan 1997 15:53:08 +0000
From:    Nick Rothwell 
Subject: Re: small problem with Max 3.0

>I use the same patches, and it appears
>that midiout (from Max) works well, but midiin (to Max) not. I use the same
>hardware, neither Midi Manager nor OMS.

I've used midiin under OMS and it's always been fine...

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

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

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

Date:    Mon, 27 Jan 1997 10:47:54 -0800
From:    Tim B 
Subject: video outputs, switchblade

A quick pair of questions:

1: Has anyone had any experience doing video out from
a Mac Using Max? I would hope that the movie object
might do something where the quicktime is also sent
out to the card to be shown nicely on another monitor.
If not, then maybe some kind of apple event method
to tell a program managing the video card what to play
and when.

2: Has anyone had any experience with the Switchblade
and Max? Switchblade is a midi-controlled 16-to-16
crosspoint mixer, it looks very interesting. Has anyone
seen any patches to do some primitive sound movement
using (say) 4 channels of the switchblade? Or anything
similar?

Hope these questions are not too obtruse.

Cheers,
  Tim Boykett

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

Date:    Mon, 27 Jan 1997 14:13:55 EST
From:    Tom Ritchford 
Subject: Re: video outputs, switchblade

Not to answer but to ask another...

Tim B  wrote:
>2: Has anyone had any experience with the Switchblade
>and Max? Switchblade is a midi-controlled 16-to-16
>crosspoint mixer, it looks very interesting. Has anyone
>seen any patches to do some primitive sound movement
>using (say) 4 channels of the switchblade? Or anything
>similar?

Hmm... that sounds interesting to the Max... can
you tell us more about the Switchblade?  A web search
found nothing.

    /t

Tom Ritchford                        tom@mvision.com

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

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

Date:    Mon, 27 Jan 1997 20:19:14 +0100
From:    dudas 
Subject: quite upset indeed...

Just to keep the fire burning...

Adam Schabtach writes:
>I got the impression that he's selling the new, fat objects,
>and still giving away the earlier versions. If he wasn't giving those away,
>I would assume that he'd ask the archivists of the various FTP sites to
>remove his objects from those sites. (I hope he doesn't do so, but it's his
>choice.) In other words, he's asking that you pay for the work he's added
>to the objects to make them PPC-compatible. So is Opcode--you didn't get
>3.5 for free, did you?
>
>So I take it that anyone who initially provides free versions of their
>software, and then asks money for enhanced versions, is also obnoxious and
>disgusting? I guess this means that every software company that provides
>public beta versions of their products is also obnoxious and disgusting.

One initially pays for Max 2.0, so, logically, one pays for the upgrades,
too.
It's not really very good form, in my book, to give something away then to
ask money for a new version without any improvements over the previous in
terms of functionality. And I would hardly call a Codewarrior port for the
new max an "enhancement".  OK. obnoxious and disgusting are strong
adjectives.  But If I'd used "not nice" you probably wouldn't have bothered
to reply.  Thank you.
No comment on what I paid for Max 3.5...
I bet Stephen Kay paid the same!

Let's compare this whole situation with that of the Hemming/Bleadsdale
objects.  Some of their externals which have been generously placed in the
public domain, while others are only available under license from the
authors.  The collection of externals which has always been in the public
domain has been updated, enlarged, recompiled and distributed with the rest
of the FAT Unsupported objects on the 3.5 CD-ROM.  The licensable objects,
(into which went a considerable amount of work, I presume) are still
available on a "pay as you play" basis.  Thoroughly acceptable, admirable
behaviour.

Stephen Kay writes:
>"type" is the most trivial object I ever wrote, and if you want to make
>abstractions to duplicate the rest, feel free - I won't lose any sleep.

If it was so trivial, then why bother to protect it and roll it into a
package with much less trivial objects????  And, if it is so trivial, then
why am I bothering to make all the fuss????
It's the principle that bothers me.  That's why.

Stephen Kay continues:
>One thing you can't abstract is User Interface Objects, and that is the
>main point of the MegaMAX Collection - all the full color, 3D objects for
>constructing professional looking UIs, and the objects for putting up Modal
>dialogs, About boxes, etc.  I rolled the rest of my stuff into it to make
>it all easier to maintain.  Anyone who wants info on the collection that is
>not upgrading to 3.5 can e-mail me privately.

With a bit of tricky thinking I bet it would be possible...
Check out my "chord" and "note-seq" abstractions on the Ircam FTP server
for a couple of simple examples...
But, hey, if you've made nice GUI objects, and I ever need to use nice GUI
objects, I know what I need to do to get them.  No problem.  It's just a
shame that the "trivial" objects got packaged in with them.

Stephen Kay wrote (a few paragraphs earlier):
>Furthermore, I'm about to port several of Steve Ellison's objects _for
>free_ and post them to the MAX community _for free_.

Thank You.  It would be nice if we could get all of the old 68k
public-domain objects ported as soon as possible, so everyone who owns a
PPC can be 99.9% retro-compatible.  That's why I went ahead and immediately
ported the McCartney list operators.

Words from Stephen Kay:
>Not all of us developers have grants from universities, or nicely paying,
>secure jobs as tenured college professors.

Amen, Greta.  I know where you're comin' from.

Stephen Kay, encore:
>I've devoted much of my time to helping people on this
>list, but I'm not out to make the world safe from free enterprise.

And I am, obviously! Soyuz nerushimi respublik svobodnikh....
(sung with just a tad bit of sarcasm, mind you)
Seriously, though, the world of Max users is one of the last bastions of
idealistic thinking... and I know I'm not the only person out who believes
this (to a greater or lesser extent).

Roland Hemming's 2 pennyworth:
>It is worth noting that he is offering technical support for the 'new'
>package -
>something I will expect when my payment gets to him. Paying him puts him
under
>an obligation to provide it, in the past he could just ignore any help you
may
>have wanted - how much is that worth?

Very glad he's officially offering technical support for his package (as
many of us do, albeit unofficially).  However, I don't see why anyone would
necessarily need to feel obliged to provide such support just because
he/she sells something. (Admittedly, though, that wouldn't be very nice.)

-Richard

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

Date:    Mon, 27 Jan 1997 11:56:26 -0800
From:    Peter Elsea 
Subject: more chords, and matching things

Busy weekend-
Garth Paine wants to identify the sequence 18 19 as opposed to 19 18.
Here's a quick way using Lobjects:
[Llast 2] will always output the last two values received.
[Lmatch 18 19 18 18 19 19] will report :
0 for 18 19
1 for 19 18
2 for 18 18
4 for 19 19
This will give the information needed, and won't be thrown out of sync by
someone who manges to trip one sensor but not the other.

About copyrights and paying for stuff. My work is subsidized by the state
of California as staff research/ teaching. Not all of it, I do a fair
amount on my own time and my own computer, but at the moment, I am at
school. I have my supervisor's permission to do this, as long as UCSC gets
a plug now and again. The state owns anything I do, so technically, the
Lobjects are copyright ( and a little note appears) but they may be used
freely for academic and non commercial purposes. If you incorporate them in
a significant way into some best selling software, the office of technology
transfer may want to talk to you.

now, more about chords:
Richard Dudas contributes a tour de force, and Bob Pritchard says "OK, now
how about function....can you differentiate between a German sixth and a
dominant seventh?"

Richard's approach is probably the best way to detect specific events- if
you are watching for a particular progression in a particular key, that's
the way to go. It's more compact and likely faster than list operations.
In fact, I like his idea so much, I'm going to steal it.

To identify things like German sixths, you need to find patterns of chords,
taking inversions into account, among other things. Chordcatcher will give
roots and quality, but not inversions. To find those:
Starting with a list of MIDI numbers,
[sort] the chord into ascending order.
Subtract the first (lowest) member from the others, leaving a list of
intervals. I'd do it this way:
Output of sort to left inlet of [Lsub] and to number box connected to right
inlet of [Lsub].
[Lrem 12] to condense intervals to one octave.
Now remove duplicates: [Ltoset] to [Ltop 12], take the left output.
The list will have a leading 0. Take it out with [Lswap 1 * -1]

What you have is a signature of intervals, related to the traditional 6 4
nomeclature, but not the same, since we can't write 6+  4++ 3. There is a
unique signature for each chord: 4 7 is major, 4 9 is a minor 6, and so on.

Take the root output of chordcatcher, and subtract the key (modulo 12)
(You'll have to modify chordcatcher to use inlet and outlet so the timing
comes out right. You have to modify chordcatcher anyway, since it doesn't
catch enough chords. (but it usally gets the root right anyway.)
Prepend the result to the above signature, and you have the equvalent of IV
6 4.

This is where I steal from Richard. His scheme ( call it Dudas encoding?)
will compact this information into easily searchable single numbers. I make
them a little differently:
[Lmult 1 16 256 4096 ]
[Lsum]

A pattern of chords will give a corresponding series of numbers. These
series are transposable, and if you record them, you can extract the roots
later with [ & 15].

I addition to looking for patterns with match, I use Lmatch find a small
list within a large one, and L== to find approximate matches. Llast allows
systematic searches of the n most recent events, and Lchunk allows you to
watch for key events that will trigger comparisons.

I've put an illustrative patcher ( a collection, so you can try it whether
you have Lobjects or not) on
ftp://arts.ucsc.edu/pub/ems as chords.coll.Hqx.
The Lobjects are distributed with 3.5, available at the Opcode site, or ath
the URL below (click on research).

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

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

Date:    Mon, 27 Jan 1997 18:34:10 -0500
From:    "Joseph W. Rovan" <105561.3371@COMPUSERVE.COM>
Subject: DMX-512

Thanks for the recent postings explaining the DMX-512 protocol. The
MIDI-to-DMX converter box sounds pretty interesting, especially since it
sounds like the dimmer packs are pretty standard. Any ideas on how much
this kind of hardware costs?

Thanks for any info--
Butch Rovan

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

Date:    Mon, 27 Jan 1997 19:46:53 -0500
From:    Tommy DOG 
Subject: Robot book info

I decided that I would wade through the paper swamp that is my text
library. A lot of you have sent me notes, patches and what not, over the
span of time that I have been posting (usually unrelated gibberish) to
this group..... Almost feels like forever, doesn't it?

Here is the info:

The Robot Builder's Bonanza: 99 Inexpensive Robotics Projects.
By Gordon McComb, 1987 ISBN 0-8306-2800-2
TAB Books (a division of McGraw-Hill, Inc.)
Blue Ridge Summit, PA 17294-0850

Happy shopping and good luck.
TD
http://www.panix.com/~jjprinz/unidex.htm

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

Date:    Mon, 27 Jan 1997 23:06:39 -0500
From:    Stephen Kay <70714.1356@COMPUSERVE.COM>
Subject: quite upset indeed...

Richard Dudas writes:
>One initially pays for Max 2.0, so, logically, one pays for the upgrades,
too.
>It's not really very good form, in my book, to give something away then to
>ask money for a new version without any improvements over the previous in
>terms of functionality. And I would hardly call a Codewarrior port for the
>new max an "enhancement".  OK. obnoxious and disgusting are strong
>adjectives.  But If I'd used "not nice" you probably wouldn't have
bothered
>to reply.  Thank you.

So I guess what Richard is saying is that it would have been OK for me to
just skip the port of my objects completely (like many other former MAX
developers who are on to bigger and better things did), so that there was
no chance of them being available in FAT versions; but since I spent the
$350 for a copy of CodeWarrior, invested the time in switching platforms,
and then learned to do the port and then had to test everything as much as
possible, I'm morally obligated to distribute the new FAT objects to the
world for free.  Maybe everytime Opcode puts out an upgrade, I'm morally
obligated to buy the newest copy of Codewarrior, recompile and test them,
and post for free.

>No comment on what I paid for Max 3.5...
>I bet Stephen Kay paid the same!

We both beta tested, we both got it for free, and the amount of time I put
in testing it would be worth far more than the $99 I saved.  However, I do
know what my copy of CodeWarrior cost me - $350.  Did you (at Ircam) buy
yours?

Richard Dudas:
>Let's compare this whole situation with that of the Hemming/Bleadsdale
>objects.  Some of their externals which have been generously placed in the
>public domain, while others are only available under license from the
>authors.  The collection of externals which has always been in the public
>domain has been updated, enlarged, recompiled and distributed with the
rest
>of the FAT Unsupported objects on the 3.5 CD-ROM.

I think it's very nice of Roland and Richard to do that.  I, however, would
have no problem with paying them for upgrades had they decided to do it
that way.  I would have no problem paying Peter Elsea for Lobject upgrades
if he decided to sell them, or James McCartney, or Steve Ellison, or Eric
Singer, or anyone else whose objects I need and don't feel like writing
myself, just as I have no problem paying Now Utilities everytime I buy one
of their upgrades.

>>Stephen Kay wrote (a few paragraphs earlier):
>>Furthermore, I'm about to port several of Steve Ellison's objects _for
>>free_ and post them to the MAX community _for free_.

Richard Dudas:
>Thank You.  It would be nice if we could get all of the old 68k
>public-domain objects ported as soon as possible, so everyone who owns a
>PPC can be 99.9% retro-compatible.  That's why I went ahead and
immediately
>ported the McCartney list operators.

Well, feel free to offer to port the rest of the Ellison objects that I
haven't offered to do yet :-)

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

End of MAX Digest - 26 Jan 1997 to 27 Jan 1997 - Special issue
**************************************************************