Subject: MAX Digest - 28 Jul 1999 to 29 Jul 1999 (#1999-226)
Date: Fri, 30 Jul 1999 00:00:10 -0400
From:
Automatic digest processor <LISTSERV@LISTS.MCGILL.CA>
Reply-To: MAX - Interactive Music/Multimedia Standard Environments <MAX@LISTS.MCGILL.CA>
To: Recipients of MAX digests <MAX@LISTS.MCGILL.CA>


There are 15 messages totalling 635 lines in this issue.

Topics of the day:

  1. External codingC question, how to get the window size?? (3)
  2. <No subject given>
  3. TCP/IP
  4. G3 powerbook users: any advice?
  5. 2 button mouse
  6. australian max msp ers
  7. auto boot/shut down
  8. Pluggos in a different environement
  9. MSP/MIDI timing (2)
  10. Codewarrior projects
  11. PowerBook audio solutions
  12. LCD techcnicolour dream

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

Date:Wed, 28 Jul 1999 20:36:44 -0600
From:Kevin Walker <kwalker@XMISSION.COM>
Subject: Re: External codingC question, how to get the window size??

>I have a question about externals
>im trying to do this tiny bit of C to add to an external that gets the
>patcher windows size and can then make a calculation from that, but alas no
>joy.
>I found these on the "ext_wind.h" is this not right, doesnt see to be
>working for me, or maybe Im just plain dumb
>
>
>#define W_WIDTH(w) (w->w_x2 - w->w_x1)
>#define W_HEIGHT(w) (w->w_y2 - w->w_y1)
> short w_x1;
/* location of window */
> short w_x2;
> short w_y1;
> short w_y2;
>
>
>can I not do this ?
>
>
myrect.left = w_x1;
>
myrect.top = w_x2;
>
myrect.right = w_y1;
>
myrect.bottom = w_y2;
>
>any help greatly appreciated
>
>Jim Wood

Your code fragment doesn't make sense to me. I think you need to do
something like this:

short left, right, top, bottom, width height;
struct windpub *wp;

// Now somehow get wp to point to the window you're interested in.
// (I don't recall off the top of my head how to do this, but I think
// it's covered in the "Writing Externals" document.)


left = wp->w_x1;
right = wp->w_x2;
top = wp->w_y1;
bottom = wp->w_y2;
width = W_WIDTH(wp);
height = W_HEIGHT(wp);

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

Date:Wed, 28 Jul 1999 21:26:03 -0700
From:David Zicarelli <zicarell@CYCLING74.COM>
Subject: <No subject given>

"jim.y-wood" <jim.y-wood@VIRGIN.NET> writes:

>I have a question about externals
>im trying to do this tiny bit of C to add to an external that gets the
>patcher windows size and can then make a calculation from that, but alas no
>joy.

Use ext_user.h that contains a patcher structure definition,
as well as ext_wind.h that contains the window structure definition.

The p_wind field of a t_patcher is a t_windpub.

It can be cast to a t_wind. To get your object's patcher, you
get the thing bound to #P at object new instance time.

t_patcher *p = (t_patcher *)gensym("#P")->s_thing;

later...

myrect.left = ((t_wind *)(p->p_wind)->w_x1;
myrect.top = ((t_wind *)(p->p_wind)->w_y1;
myrect.right = ((t_wind *)(p->p_wind)->w_x2;
myrect.bottom = ((t_wind *)(p->p_wind)->w_y2;

David Z.

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

Date:Thu, 29 Jul 1999 00:48:57 -0400
From:Stephen Kay <sk@COMPUSERVE.COM>
Subject: External codingC question, how to get the window size??

Jim Wood:
>#define W_WIDTH(w) (w->w_x2 - w->w_x1)
>#define W_HEIGHT(w) (w->w_y2 - w->w_y1)
> short w_x1;
/* location of window */
> short w_x2;
> short w_y1;
> short w_y2;

>can I not do this ?

>myrect.left =3D w_x1;
>
myrect.top =3D w_x2;
>
myrect.right =3D w_y1;
>
myrect.bottom =3D w_y2;

If the width is w->w_x2 - w->w_x1, then we can assume that
w->w_x2 is the right side, and w->w_x1 is the left side;
likewise for the height calc from top/bottom, so you just
had a few vars in the wrong place:

myrect.left =3D w_x1;


myrect.right =3D w_x2;
myrect.top =3D w_y1;
myrect.bottom =3D w_y2;

Stephen Kay
the MegaMAX collection of Max externals:http://www.musikinetix.com

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

Date:Wed, 28 Jul 1999 22:19:49 -0800
From:anechoic audio engine <anechoic@SIRIUS.COM>
Subject: TCP/IP

anyone know where I might find a TCP/IP object?
KIM

__________________________
kim.cascone
sound.designer...composer

kim@anechoicmedia.com
http://www.anechoicmedia.com

full length:: blueCube( ) (Rastermusic)
comp track:: nb2e_Vortex.aiff (Mille Plateaux)
comp track:: vortexShedding (Caipirinha Music)
full length:: cathodeFlower (Ritornell/Mille Plateaux)

"the smooth always posseses a greater power of deterritorialization than
the striated."
- Deleuze & Guattari

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

Date:Thu, 29 Jul 1999 02:58:14 -0400
From:Jeff Mann <jefman@UTCC.UTORONTO.CA>
Subject: Re: G3 powerbook users: any advice?

newton armstrong <newton@HARD.NET.AU> wrote:
> i've been running max on a powerbook 5300c with sampler. i'm considering
> dumping both the computer and sampler and graduating to max/msp on a
> 333MHz G3 powerbook. i'd be interested to hear from anybody running this
> or a similar set-up on the pluses and minuses, especially with regard to
> 3rd party sound card solutions. thanks for any help.

More with regard to the computer - you might want to consider getting
last year's model G3 292 powerbook instead - that's what I just got a
couple of weeks ago. I got it new, on a closeout deal for $400US less
than the 333; you could probably find a used one even cheaper.
Advantages: 1MB cache, which makes it faster in many cases than the 333,
an 8GB hard drive, a standard floppy drive, and the normal serial/ADB
ports. If I had bought the 333, I would have also had to spring for a
new USB MIDI interface, a USB-serial converter (for my printer and some
other devices I use), a USB-ADB converter for dongles, and most likely a
floppy drive. These may not apply to you, but all in all I figure I
saved well over $1000, for what I consider to be a superior machine.
Perhaps USB will turn out to be something useful, but at the moment I
see no advantage to it.

With regards to the sampler - although you could build your own sampler
in Max/MSP, it would be quite a lot of work to replicate the
functionality of a commercially-made one, simply in terms of easily
being able to load banks, instruments, etc. If that's what you want, but
you want it in software, you might want to think about using something
like Unity DS-1, which reads SampleCell instruments, etc. The drawback
is that you can't patch the sound output into Max/MSP. Conceivably you
could patch it into Cubase using ReWire, and then patch it from there


into an MSP patch you've turned into a VST plug-in using pluggo. A bit
round-about. Hopefully we'll see an implementation of ReWire directly in Max/MSP.

On the other hand, if you want to create something that uses samples,
but in a way that no-one's ever thought about before - then Max/MSP is
just the way to do it!

<Jeff
--
Jeff Mann - Information Consumer ___O___O__= -- >
mailto:jefman@utcc.utoronto.ca||http://www.interlog.com/~jefman
Visit the Art & Robotics Group site: http://www.interaccess.org/arg

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

Date:Thu, 29 Jul 1999 01:54:54 -0700
From:Charles Lyons <charleslyons@EARTHLINK.NET>
Subject: Re: 2 button mouse

Just wanted to point out that the Kensington mouse/trackball driver (I have
an Orbit) also allows "chording", where pressing both mouse buttons at once
can generate a separate result from pressing either button independently.
This may or may not be of use to you, but it means you can set one button
to click, another to shift-click, and the combination to command-click (for
example) and detect each situation independently. However, it doesn't seem
to change states, ie, you can't hold down the left button and tap the right
button to switch back and forth between "left" and "both". I love my Orbit
though.


Charles.

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

Date:Thu, 29 Jul 1999 18:39:07 +1000
From:"Sensor.E Overlobe" <overt@OVERLOBE.COM>
Subject: australian max msp ers

kind of OT here, please answer off list
I'm interested in how many MAX & or MSP users there are in Australia.
is there a users group here in OZ?

jeremy

o
/|\
/ \
~~~~~

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

Date:Thu, 29 Jul 1999 12:42:50 +0000
From:Eamonn Doyle <eadoyle@TCD.IE>
Subject: auto boot/shut down

Has anybody sucessfully used the automatic startup / shutdown control
panel (energy saver) for installations, etc? A dialog box appears
5mins before scheduled shutdown, but left to its own devices it simply
disappears after a few minutes and the machine remains on. Even if you
do hit OK, it seems that having any software running will prevent shut
down. Is there a way to quit Max automatically from within the program
(with a message), rather than just automatically closing the patcher?

Does anyone know of third-party software that would make a better fist
of it?


All comments appreciated.

Eamonn

-- <>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<> --
Eamonn Doyle
Music & Media Technologies
Dept. of Electrical & Electronic Engineering
Trinity College, Dublin
Ireland
http://www.tcd.ie
-- <>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<> --

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

Date:Thu, 29 Jul 1999 12:39:48 +0200
From:Kasper T Toeplitz <kasper@CLUB-INTERNET.FR>
Subject: Pluggos in a different environement

hello

does anyone know IF (and then HOW) it would be possible to use Pluggo's in
a non VST environement - typically it would be great to use it in Pro tools
- teh power mix version (without the sound card), or maybe even in Peak???

and then, out of pure curiosity, WHY can't we use Pluggo's plug-ins in
Max/MSP? what makes those VST plug-ins so different from other - which work
very well....?
and will such a possibility (pluggo in max) exist some day or is it a nonono??

thanks


ºººººººººººººººººººººººººººººººººº

Kasper T. Toeplitz
Compositeur &Bassiste Electrique
75 rue du Fbg St Antoine
75011 Paris - France
t: 33 (0)1 40 02 08 91
f: 33 (0)1 43 42 99 50

ºººººººººººººººººººººººººººººººººº

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

Date:Thu, 29 Jul 1999 13:54:27 +0200
From:Robert Henke <imbalance@BERLIN.SNAFU.DE>
Subject: MSP/MIDI timing

Hi David Z., hi maxlist,
i am still dealing with my MIDI/MSP timing problem.
i wrote a simple patcher to check out how much delay exists between MIDI
and MSP and how stable timing between MIDI and MSP is. as i mentioned a =
few
days ago, timing is pretty bad when using a MIDI on a studio 4 via gPort =
on
a blue G3.
today i tried it with a simple interface ( opcode translator ) on my
wallstreet powerbook. timing between MIDI and MSP is much better.... soi
gues the problem is the gPort interface which provides a Modemport for use
with Studio 4...
Has anyone a better solution how to use OMS / Studio 4 with a blue g3 or =
is
there some point i did miss ?
( of cource scheduler is in interrupt mode etc... )


here is my test patch. it would be great if other people check it with
other machines / interfaces in order to compare different results ?

cheers, rob.

max v2;
#N vpatcher 141 184 694 619;
#N vpreset 1;
#X append 1 2 4 71 117 toggle int 1 \; 5 72 142 number int 226 \; 8 134 =
247
number int 16 \; 16 234 141 number int 33 \; 17 234 192 number int 35 \;;
#P preset 228 56 47 27;
#P number 192 234 35 9 0 0 0 3;
#P number 141 234 35 9 0 0 0 3;
#P newex 117 311 50 196617 noteout 1;
#P newex 117 269 85 196617 makenote 64 100;
#P message 304 302 41 196617 replace;
#P newex 30 313 29 196617 dac~;
#P newex 30 231 38 196617 count~;
#P newex 30 262 59 196617 index~ test;
#P newex 304 327 63 196617 buffer~ test;
#P number 247 134 35 9 0 0 0 3;
#P newex 117 178 32 196617 delay;
#P message 117 234 20 196617 60;
#P number 142 72 35 9 0 0 0 3;
#P toggle 117 71 15 0;
#P newex 117 98 35 196617 metro;
#P comment 349 303 100 196617 <- percussive sample;
#P comment 172 313 100 196617 <-- trigger percussive sound;
#P comment 286 136 146 196617 <- delay between MIDI and MSP \, in case of
44.099998 k and I/O Vector& Signal Vector =3D 64 on my g3 powerbook with a
opcode midi translator this has to be 16ms ( =3D 705 Samples ??!!? ) in =
order
to achive synchronicity between MIDI and MSP;
#P connect 3 0 7 0;
#P connect 4 0 3 0;
#P connect 5 0 3 1;
#P connect 6 0 14 0;
#P connect 7 0 6 0;
#P connect 8 0 7 1;
#P connect 10 0 12 0;
#P connect 3 0 11 0;
#P connect 10 0 12 1;
#P connect 11 0 10 0;
#P connect 13 0 9 0;
#P connect 14 0 15 0;
#P fasten 14 1 15 1 197 291 142 291;
#P connect 16 0 14 1;
#P connect 17 0 14 2;
#P pop;

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

Date:Thu, 29 Jul 1999 18:45:26 +0200
From:Peter Castine <pcastine@PRZ.TU-BERLIN.DE>
Subject: Re: External codingC question, how to get the window size??

On around 29-7-99 4:20, jim.y-wood said something like:

>im trying to do this tiny bit of C to add to an external that gets the
>patcher windows size and can then make a calculation from that, but alas no
>joy.
>I found these on the "ext_wind.h" is this not right, doesnt see to be
>working for me, or maybe Im just plain dumb
>
>
>#define W_WIDTH(w) (w->w_x2 - w->w_x1)


>#define W_HEIGHT(w) (w->w_y2 - w->w_y1)
> short w_x1;
/* location of window */
> short w_x2;
> short w_y1;
> short w_y2;
>
>
>can I not do this ?
>
>
myrect.left = w_x1;
>
myrect.top = w_x2;
>
myrect.right = w_y1;
>
myrect.bottom = w_y2;

You've skipped a critical part of the header file, namely:

typedef struct windpub
{
struct object w_ob;
short w_x1;/* location of window */
short w_x2;
short w_y1;
short w_y2;
//...schnipp
} t_windpub, Windpub;

Which means that w_x1 & Co. only exist in the context of a t_windpub (or
a Windpub or a struct windpub, all of which is the same thing).


At the risk of stating the obvious (how obvious depends upon how much
time you spend reading C header files, delete this message now if the
situation is clear or if I've misunderstood something)...


Now, if Max were programmed in a civilized language like Pascal, you
could write something along the lines of

VAR
myWindowP : ^WindPub;
myRect: Rect;

BEGIN
{assign an address to myWindP}
with myWindowP^
BEGIN
myRect.left = w_x1;
myRect.right = w_x2;
{ etc. }
END;
END.

{I can't remember how Pascal handles nested with-clauses; that would
probably be kosher, too, and save even more typing.}

But, since we're stuck with C (sort of the MS-DOS of programming
languages), you have to do something like

{
WindPub*myWindowP;
RectmyRect;

/* assign an address to myWindP */
myRect.left = myWindowP->w_x1;
myRect.right = myWindowP->w_x2;
/* etc., etc. */
}


I was going to suggest that if you wanted to be funky and cut down on
assignments statements, you could calculate the offset into the WindPub
data structure to get at the first coordinate, typecast that address to a
Rect*, and then assign that, which would look something like

myRect = *((Rect*) (((char*) myWindowP) + sizeof(struct object)));

I think.

But this won't work because a WindPub stores the coordinates in a
different order from a Rect. So you _must_ assign each coord
individually. Aren't you glad?


BTW: None of the above code has been tested, so there are probably a few
syntax errors.

Good luck,

Peter

----------------- http://www.prz.tu-berlin.de/~pcastine/-----------------
Dr. Peter Castine| I am very pleased to announce that the
4-15 Music & Technology| 26th International Computer Music Conference
| will take place in Berlin in the year 2000.
| We look forward to seeing you here!

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

Date:Thu, 29 Jul 1999 13:17:13 -0400
From:Stonewall Ballard <sb.list@SB.ORG>
Subject: Re: MSP/MIDI timing

At 1:54 PM +0200 7/29/99, Robert Henke wrote:
>Hi David Z., hi maxlist,
>i am still dealing with my MIDI/MSP timing problem.
>i wrote a simple patcher to check out how much delay exists between MIDI
>and MSP and how stable timing between MIDI and MSP is. as i mentioned a few
>days ago, timing is pretty bad when using a MIDI on a studio 4 via gPort on
>a blue G3.
>today i tried it with a simple interface ( opcode translator ) on my
>wallstreet powerbook. timing between MIDI and MSP is much better.... so
i
>gues the problem is the gPort interface which provides a Modemport for use
>with Studio 4...
>Has anyone a better solution how to use OMS / Studio 4 with a blue g3 or is
>there some point i did miss ?
>( of cource scheduler is in interrupt mode etc... )
>
>here is my test patch. it would be great if other people check it with
>other machines / interfaces in order to compare different results ?
>
>cheers, rob.
>

I tried this with a beige G3/300 desktop, with MSP driving a MOTU
2408, and the midi going through OMS to a MOTU MTP/AV and then into a
Roland Sound Canvas (SC55). I looked at the result on a scope. MAX in
overdrive.

The midi had to be delayed about 36ms to put it and the audio
more-or-less in alignment. I saw the MSP signal move back and forth
10-15 ms with respect to the Sound Canvas output.

To see this more clearly, I drew a one-cycle pulse wave in Peak, and
used that to trigger the scope. The result showed that the midi was
moving back and forth with respect to the MSP audio in a sawtooth


fashion. The MIDI would move forwards so as to lead the MSP by about
10ms, then jump back to lag about 10ms, then slowly creep up again.

The period of this time skew was related to the repetition rate of
the tester. At 187 ms, the two waves had the slowest time skew
oscillation. It didn't relate to the audio buffer size, but turning
on "Scheduler in Audio Interrupt" made the two waves jump back and
forth instead of drifting, and with about twice as much time skew
variation.

I didn't realize that there was this much slop.

- Stoney
---------------------------------------------------
Stonewall BallardStonetics, Inc.
sb@stonetics.comhttp://www.stonetics.com/

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

Date:Thu, 29 Jul 1999 13:00:37 -0700
From:Damian Keller <dkeller@SFU.CA>
Subject: Codewarrior projects

Does anybody have an up to date version of the Codewarrior projects?
The examples in Max 3.5.9 disc are from '96, so my project converter (Pro
1) doesn't recognize them.

Thanks!

PS: I could not find anything in Opcode's site.

___________________________________________________________________

Damian (accent on 2nd a) Kellerhttp://www.sfu.ca/~dkeller
<dkeller@sfu.ca>http://www.earsay.com
___________________________________________________________________

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

Date:Tue, 27 Jul 1999 18:24:25 -0000
From:Nick Rothwell <nick@CASSIEL.COM>
Subject: PowerBook audio solutions

David Z.:

> And speaking of hearing loss, I was rather disappointed to
> learn that a) the new iBook has NO AUDIO IN and b) the use of
> USB devices for audio I/O on the Mac is still a long ways off.
> Apparently it may not even make it into the recently announced
> System 9.

Could this possibly be the Apple Not Caring About the Music Market
scenario again? (Or still?)

So the Opcode USB audio box is a doorstop for Mac users. The only
pro-audio solution is the Digigram PCMCIA card. (Does MSP support
these? Are there ASIO drivers? Is it still numbingly expensive?)

This isn't an option for the iBook (a.k.a. "Barbie's First Computer")
since it doesn't have PCMCIA either. Great stuff.

--

Nick RothwellCassiel.com Limited
nick@cassiel.comwww.cassiel.com
systems - composition - installation - performance


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

Date:Fri, 30 Jul 1999 02:05:01 +0000
From:"jim.y-wood" <jim.y-wood@VIRGIN.NET>
Subject: LCD techcnicolour dream

max@lists.mcgill.ca


Hi

In regards to my recent post about LCD
I ve discovered another bug in my patch,
I want to add a colour background to the LCD on start-up, but when i try to
do this, a big rect, by loadbang it never appeard, any clues
grateful as ever for comments.

By the way is there any news acout changing the colour of the Max patcher
window, just an idea

cheers
Jim Wood

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

End of MAX Digest - 28 Jul 1999 to 29 Jul 1999 (#1999-226)
**********************************************************