Subject: MAX Digest - 12 Apr 1999 to 13 Apr 1999 (#1999-114)
Date: Wed, 14 Apr 1999 00:00:18 -0400
From: Automatic digest processor 
Reply-To: MAX - Interactive Music/Multimedia Standard Environments
     
To: Recipients of MAX digests 

There are 12 messages totalling 642 lines in this issue.

Topics of the day:

  1. Timing/Delay Problem Using [A-30 -> QuickTime Music]
  2. MSP authorization question (2)
  3. REV4~
  4. Plea for one of either explanation or bulletproofing - dynamic creation
     pitfall
  5. Pluggo & Max
  6. key disk problem 2
  7. MAX list CD Updater
  8. twice
  9. line for floating-point? (2)
 10. accessing handles

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

Date:    Mon, 12 Apr 1999 22:31:29 -0700
From:    David Zicarelli 
Subject: Re: Timing/Delay Problem Using [A-30 -> QuickTime Music]

George Rioux 

>I have a recent problem with a delay (between a key press on my A-30 and a
>sound being played by Quick Time Music) having been introduced where
>previously there wasn't one.

Check to see if virtual memory was turned on.

David Z.

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

Date:    Mon, 12 Apr 1999 22:29:59 -0700
From:    David Zicarelli 
Subject: Re: MSP authorization question

Roland Cahen & Ruth Sefton-Green  write:

>How can you deauthorize MSP ?
>I had installed my personnal key before we bought MSP and I couldn't get
>rid of it after we've got it.

It's of no consequence if MSP is authorized on a machine
on which no copy of the software exists. To make MSP objects
non-functional, remove the Max Audio Library file from your Max
folder. They'll whine a little bit when you load them, but
it won't hurt anything. Then you could hunt down everything
with a tilde and kill it.

David Z.

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

Date:    Mon, 12 Apr 1999 22:33:30 -0700
From:    David Zicarelli 
Subject: Re: REV4~

dudas  writes:

>Thus, I'm going to post a new public domain reverb (called newrev~) which
>is slightly more complicated and might be a bit more costly in terms of CPU
>usage, but which sounds a hell of a lot better, and which you can modify
>further to suit your needs.

Richard--what a great guy he is. Everyone can use a good 'verb.

David Z.

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

Date:    Mon, 12 Apr 1999 22:36:21 -0700
From:    David Zicarelli 
Subject: Re: Plea for one of either explanation or bulletproofing - dynamic
         creation pitfall

Steve Smith  writes:

>Q: Is there ANY reason command-s shouldn't automatically be DISABLED
>in an application?

Oh, you know, someone wanted it, and I guess it worked fine for them,
and I never got around to taking it out when its true destructive
nature was revealed.

To avoid the possibility of command-S, use a custom menu bar
created with the menubar object. I believe the default one will be
just fine for that purpose.

David Z.

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

Date:    Mon, 12 Apr 1999 23:21:25 -0700
From:    David Zicarelli 
Subject: Re: Pluggo & Max

I've wanted to reply to this message for several weeks,
and I feel like I finally have a couple of minutes to do so
right now (which I really don't have), so here's the reply:

Jim Y WOOD  writes:

>Anyway the reason I mention this is Pluggos ability to open
>users of Cubase et al to Max/msp and some neet stuff, all the best
>for Max programmers. What I wanted to ask was on the bunf it says
>you can use MSP patches as Plugins via Pluggo, so I guess that could
>include whole apps, beyond usual VST plugins type style.

Yes and no. You can't take over the machine. You can ignore
your audio input and just produce any old sound you want, but
you don't have a good way of knowing much about the context of
the demands being made on you to produce sound.

You also can't do MIDI. These limitations are part of the
VST specification. The limitations will gradually removed
as the spec is enhanced. The rumors of VST 2.0 are
encouraging but nothing concrete has been seen yet.

>BUT, will everybody have to own Pluggo to make these
>patches/plugins work. What I like about Max is that
>you can make standalone apps, so therefore you can give/send/sell
>your work to others who dont have the Max software, and then
>theres even the Play version which allows playback for free.
>This I feel in the end is a good advert for the product
>and a percentage of people when end up buying the whole thing.

It wasn't a stroke of genius to realize the potential market
for audio plug-ins is many times larger than the potential
market for people making them. While I'm personally more
interested in the latter market, I'm not above attempting to
see what would happen if a strong push were made to people
who would merely use Max-based software. I think this wasn't
possible until Max moved into the audio domain for the various
reasons, foremost among them that MIDI isn't really a standard
and audio is more of a "universal solvent" that meets with less
aesthetic resistance.

By focusing on the usability of Max-developed software
I think there will be a number of benefits to the Max community,
such as improved user interfaces and tools for building them.

In any case, with a VST plug-in player there were two options. One was
merely to make the tool available in the same way that MaxPlay
is available. This allows you to give away your software to
anyone, however, you don't know who "anyone" is and there's
no easy way to get to them. The audience of people who are
looking for free MIDI and audio applications made with Max
is not very large nor is it easy to clearly identify how
to find them.

The second option was to use the tools and attempt to take
advantage of what we all generally acknowledge as the latent
possibilities when talented people encounter Max (I categorically
exclude my own work from this characterization). We would then
present this body of work in a different way. Rather than aiming at
high-end professionals and hope that a tiny few find the
money to buy our stuff, we are pricing Pluggo aggressively...

(one of my former co-workers who has developed single plug-ins
that went for $200 suggested that it be sold at Costco--sorry
if this reference means nothing to people outside of the US,
I have never seen anything equivalent to Costco outside my
own country)

...and counting on the reckless spirit of adventure and
impulse purchasing to reach a large audience of people
looking for a sonic good time. All of these people (assuming
there are any Pluggo customers at all) will be part of a
community of users that can be ruthlessly targeted by developers
of interactive audio art/software...what's more, I feel strongly
that the stuff we are including will whet their appetite
for what you might be able to deliver once the tools are
put into your hands. Included among those tools will be a
web site with a searchable database for contributed plug-ins.
I suppose if I were really astute we would structure it
like an auction...I saw in the newspaper today the CEO of
eBay referred to as a "recent stock option billionaire."

>I realise that Pluggo is a product and has to make money
>and as it is 75dollars is a great price for all these plugins.

It doesn't have to make a lot of money...

>So could there be a player version, or better a compiler version
>for registered users.

We have developed a way to create plug-ins that would be used
with a player engine that wouldn't be able to run anyone else's
plug-ins, but we're still trying to decide what to do with it.
I doubt that giving it to people who own MSP is an option, since
we do not want it to defeat our attempts the creation of a community
of Pluggo users. In short, pluggo.com is not going to be eBay, but I
believe that providing outlets for people who use Max and MSP to
reach an audience of sound-tweakers and interactive listeners is an
exciting prospect. Pluggo is the first of these outlets. There
are others coming.

David Z.

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

Date:    Mon, 12 Apr 1999 09:54:47 +0100
From:    atlas 
Subject: key disk problem 2

Thanks to everyonae that has email to me giving me his assistance.
I think that you must repply via this listserv, no directly, but all can do
it if desire do it !.

I send a copy of this messaje to
jamesl@OPCODE.COM
jgillham@opcode.com

Many maxers has the similar problem key disk.

OPCODE MUST RESOLV IT !

All ask me about a ckrack : sorry I haven=B4t (by now)

everybody are in the thiking about:
-if the original has problem, why buy the original ?
-if the problem is the pace  why opcode do not change it NOW ? no tomorrow
...

OPCODE MUST CHANGE THEN KEYDISK SYSTEM TO PASSWORD ACCESS SYSTEM, this is
necesary to support the original maxers because we are what paid for it, an=
d
we must get a PIRATE version to run !

Zicarelli, has the password system, this is running very well, I think that
Zicarelli must convict to opcode to change the system.

In the authorization 3.0 you can authorize when ask you for the key disk,
then pressing the alt + cntl (or command don=B4t remind) this is similar to
zicarelli authorization metod. We can see that opcode can use other method =
!
We can download then via internet ! no more key disk waiting ! We are
original users that cannot use the original buyed !

IF OPCODE NOT CHANGE THE KEY SYSTEM, I AM WAITING A CRACK KEY DISK, the
support give us opcode or pirating ?

OPCODE MUST CHANGE HIS SYSTEM IF OPCODE WISH SHELL MAX ! -AND NOW NO
TOMORROW-

Your Sincerely Guillermo Lorenzo
atlas@idecnet.com
 *
* *

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

Date:    Tue, 13 Apr 1999 14:04:21 +0000
From:    Helder Luis 
Subject: Re: MAX list CD Updater

Hey don't forget Portugal, it should be the same price of the rest of
Europe,
although we're near to the USA :)

Thanks
helder luis

Christopher Murtagh wrote:

> On Tue, 13 Apr 1999, David Rodger wrote:
> > How about a list of postage rates (CDN) to various destinations?
> > US, Australia, UK, France, Germany, Belgium, Luxembourg, Austria, etc.
> > Any others?
>
>  Yep, I will be doing that. I have a list of people who have sent a
> request for a CD. I planned on going to my local post office and getting a
> whole bunch of prices, including regular and express delivery. You're just
> jumping ahead of me. :)
>
> Cheers,
>
> Chris

--

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

NOTYPE - graphic design and multimedia

P. O. Box 356
4490 Povoa de Varzim - Portugal

E-Mail: notype@mail.telepac.pt
Phone: 351.52.617896 - 351.936.751053
Fax: 351.52.617896

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

Date:    Tue, 13 Apr 1999 10:32:42 -0400
From:    Don Malone 
Subject: twice

i just got bit by a bug for the second time
thought i would issue a warning
a receive object in a box patcher gets the message twice twice
when sent from the patcher that contains it

happy tunes
Don

downloads & events http://faculty.roosevelt.edu/malone
312)341-6477

it takes all of us

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

Date:    Tue, 13 Apr 1999 15:20:30 +0100
From:    Trond Lossius 
Subject: Re: line for floating-point?

Roald Baudoux wrote

> Is there any equivalent to the "line" object for floating-points values?

And Eric Singer replied

> Simply multiply your input floats by value (depending on your required
> precision), say 100.  Then divide the output by the same value.  Using 100
> as the multiplier/divisor, if you went from 0 to 1 in 1 second, you would
> step by .01 every 10 ms.

This will only work if precision is not a big issue (or rather not an issue
at all). Here
is a better suggestion, working the same way as line, taking the same
arguments and
inputs/outputs except for ramp target value that can be float.

You'll need the external "scale" for this patch. You'll also need Peter
Elseas "Llist"
object. I'm not sure if Llist is available for download at any ftp site yet,
if not please
e-mail me so that I can forward it to you.

There is one exception to the way f-line works as compared to line: line
completes the
ramp in the time span given by Ramp Time minus Grain Size. If line's
currently storing 0
and you send the list 10 1000 with a grain of 100 ms, it will output 1
immediately, then
increase by 1 every 100th ms and finish in 900 ms, not 1000 ms as you
specified. f-line
instead would output current value immediately (0.) and then ramp with an
increase of 1
every 100 ms, ending at 1000 ms:

ms    f-line   line

   0   0.0      1
 100   1.0      2
 200   2.0      3
 300   3.0      4
 400   4.0      5
 500   5.0      6
 600   6.0      7
 700   7.0      8
 800   8.0      9
 900   9.0     10
1000  10.0  no output

Trond L.

____________________________

Please save as "f-line":

max v2;
#N vpatcher 142 70 770 532;
#N vpatcher 87 103 721 454;
#P newex 102 77 27 196617 t f b;
#N comlet Set current value;
#P outlet 588 269 15 0;
#P comment 274 216 195 196617 if (ramp time is less than grain size)  then
(output target
immediately (gate=1)) else (ramp (gate=2));
#N comlet stop message to line;
#P outlet 81 225 15 0;
#N comlet Time Grain In Milliseconds;
#P outlet 513 225 15 0;
#P newex 359 94 27 196617 i;
#P message 416 71 21 196617 $2;
#P newex 416 51 45 196617 loadbang;
#P newex 359 116 120 196617 if $i1<1 then 20 else $i1;
#P newex 12 133 69 196617 prepend clock;
#P message 57 112 27 196617 stop;
#P newex 12 54 145 196617 route clock stop set;
#P message 255 169 20 196617 \$2;
#P newex 255 189 114 196617 if $i1<$i2 then 1 else 2;
#P message 230 96 14 196617 0;
#P newex 210 142 27 196617 t b l;
#P newex 210 118 49 196617 pack 0. 0;
#N comlet Time Grain in Milliseconds;
#P inlet 359 40 15 0;
#N comlet Total Ramp Time in Milliseconds;
#P inlet 249 42 15 0;
#N comlet Destination value of ramp;
#P inlet 12 30 15 0;
#N comlet gate position;
#P outlet 255 225 15 0;
#N comlet Target Value and Ramp Time (list);
#P outlet 227 225 15 0;
#N comlet clock message to line;
#P outlet 12 225 15 0;
#P comment 482 110 117 196617 if Grain size is less than 1 ms it is set to
20 ms;
#P comment 263 110 60 196617 ramp time is reset to 0;
#P connect 5 0 13 0;
#P connect 13 0 15 0;
#P fasten 15 0 2 0 17 157 17 157;
#P connect 13 1 14 0;
#P connect 24 1 14 0;
#P fasten 14 0 21 0 62 129 86 129;
#P connect 13 2 24 0;
#P fasten 13 3 8 0 152 75 199 75 215 94;
#P connect 8 0 9 0;
#P connect 9 1 3 0;
#P fasten 9 0 10 0 215 163 197 163 197 88 235 88;
#P connect 6 0 8 1;
#P fasten 10 0 8 1 235 114 254 114;
#P fasten 9 1 12 0 232 163 260 163;
#P connect 12 0 11 0;
#P connect 11 0 4 0;
#P connect 7 0 19 0;
#P fasten 18 0 19 0 421 90 364 90;
#P connect 19 0 16 0;
#P connect 16 0 11 1;
#P connect 17 0 18 0;
#P fasten 16 0 20 0 364 175 518 175;
#P fasten 24 0 23 0 107 263 593 263;
#P pop;
#P newobj 23 81 300 196617 p EvaluateInput;
#P newex 255 270 40 196617 t i b;
#N vpatcher 269 75 682 480;
#P message 33 219 14 196617 0;
#P message 8 71 27 196617 stop;
#P newex 8 49 54 196617 route stop;
#N comlet Input to line;
#P outlet 52 285 15 0;
#P newex 52 135 45 196617 pack 0 0;
#P newex 52 252 42 196617 Llist;
#P newex 52 157 42 196617 t b l;
#P newex 52 218 27 196617 del;
#P newex 52 98 27 196617 /;
#N comlet Time Grain in Milliseconds;
#P inlet 362 36 15 0;
#N comlet Total Ramp Time in Milliseconds;
#P inlet 8 30 15 0;
#N comlet Max Ramp Index Value;
#P outlet 274 285 15 0;
#P comment 94 101 86 196617 (Number of steps);
#P connect 2 0 10 0;
#P connect 10 0 11 0;
#P fasten 6 0 12 0 57 210 38 210;
#P connect 10 1 4 0;
#P connect 4 0 8 0;
#P connect 8 0 6 0;
#P connect 6 0 5 0;
#P fasten 11 0 5 0 13 185 57 185;
#P connect 5 0 7 0;
#P fasten 12 0 9 0 38 275 57 275;
#P fasten 11 0 9 0 13 275 57 275;
#P connect 7 0 9 0;
#P fasten 3 0 4 1 367 87 102 87 74 96;
#P fasten 3 0 5 1 367 176 97 176 74 186;
#P connect 6 1 7 1;
#P fasten 10 1 8 1 57 74 92 74;
#P fasten 4 0 1 0 57 118 279 183;
#P pop;
#P newobj 195 175 61 196617 p RampIndex;
#P message 315 271 20 196617 \$1;
#P message 195 140 20 196617 \$2;
#P outlet 508 379 15 0;
#P message 163 140 27 196617 stop;
#P newex 285 304 28 196617 f $1;
#P outlet 142 379 15 0;
#P message 142 140 20 196617 \$1;
#P newex 142 113 63 196617 gate 2;
#P newex 195 325 163 196617 scale 0 10 0. 1.;
#P newex 195 207 37 196617 line;
#N comlet Time Grain in Milliseconds;
#P inlet 313 51 15 0;
#N comlet Total Ramp Time in Milliseconds;
#P inlet 168 51 15 0;
#N comlet Destination value of ramp;
#P inlet 23 51 15 0;
#P comment 377 301 65 196617 float stores current value;
#P comment 42 47 59 196617 Destination Value;
#P comment 187 47 35 196617 Ramp Time;
#P comment 331 47 33 196617 Time Grain;
#P comment 328 111 101 196617 Immediate values are gated to the left \,
ramps to the
right;
#P comment 328 173 102 196617 An index is used to control ramping;
#P comment 217 351 190 196617 Index is scaled to get float ramp values;
#P comment 160 381 100 196617 Ramp Value;
#P connect 8 0 23 0;
#P connect 23 3 13 0;
#P fasten 13 0 14 0 147 136 147 136;
#P fasten 12 0 15 0 200 354 147 354;
#P connect 14 0 15 0;
#P fasten 13 0 17 0 147 136 168 136;
#P connect 9 0 23 1;
#P connect 23 2 13 1;
#P connect 13 1 19 0;
#P fasten 23 1 21 0 86 168 141 168 155 172 200 172;
#P fasten 17 0 21 0 168 159 200 159;
#P connect 19 0 21 0;
#P fasten 23 0 11 0 28 196 139 196 154 200 200 200;
#P connect 21 0 11 0;
#P connect 11 0 12 0;
#P fasten 23 4 11 2 260 202 226 202;
#P fasten 23 4 21 1 260 171 251 171;
#P fasten 21 1 22 0 251 198 260 211;
#P connect 22 0 12 2;
#P connect 22 1 16 0;
#P connect 16 0 12 3;
#P fasten 14 0 16 1 147 226 308 269;
#P fasten 12 0 16 1 200 348 366 348 366 291 330 291 308 298;
#P fasten 23 5 16 1 318 126 308 156;
#P connect 10 0 23 2;
#P fasten 13 1 20 0 200 134 251 134 269 141 320 141;
#P connect 20 0 12 4;
#P fasten 11 1 18 0 513 303;
#P pop;

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

Date:    Tue, 13 Apr 1999 19:38:37 +0200
From:    Laurent Cerveau 
Subject: accessing handles

Hi,

I've written a Max Objects which uses an array of lists off Atoms,
and I want one size of this array to be choosen when creating
the object.

So my object has a structure which goes like

typedef struct _s_myobj{
  //stuff
  Atom ** m_args;
}

I the new function I then use :

total = n*MAXSIZE*sizeof(Atom); //n is the arg of the object, MAXSIZE is
constant
x->m_args = (Atom**)newhandle(total);

And then I use disposhandle in the free function.

The problem I have is to access this array (with MAXSIZE row and n columns).

To access the ith row, I do :

myobj *x;
Atom "curlistat;

curlistat = x->m_args[i*MAXSIZE]; and then I have a simple pointer

But to be honest if I look at the adress of curlistat, it is
really strange. Two consecutives adresses are not distant from
MAXSIZE*sizeof(Atom), and sometimes result are pretty strange.
(I ask for a row and get another one). Did I miss something?
Do I have to lock the handle before using them? Isn't
curlistat = *(x->m_args)+ i*MAXSIZE better?

THanks for helping

Laurent Cerveau

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

Date:    Tue, 13 Apr 1999 13:52:08 -0400
From:    Eric Singer 
Subject: Re: line for floating-point?

At 10:20 AM -0400 4/13/99, Trond Lossius wrote:
>Roald Baudoux wrote
>
>> Is there any equivalent to the "line" object for floating-points values?
>
>And Eric Singer replied
>
>> Simply multiply your input floats by value (depending on your required
>> precision), say 100.  Then divide the output by the same value.  Using
100
>> as the multiplier/divisor, if you went from 0 to 1 in 1 second, you would
>> step by .01 every 10 ms.
>
>This will only work if precision is not a big issue (or rather not an
>issue at all).

As computers are digital and do not have coninuous outputs, you will be
implicitly or explicitly coding a precision at some point, no matter what
algorithm you use.

Eric

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

Date:    Tue, 13 Apr 1999 15:15:29 -0700
From:    Matt Wright 
Subject: Re: MSP authorization question

Roland Cahen and/or Ruth Sefton-Green asked:

>How can you deauthorize MSP ?
>I had installed my personnal key before we bought MSP and I couldn't get
>rid of it after we've got it.

It's not like Max where you've got only 3 authorizations on your floppy and
you need to move one of them from your hard drive back to the floppy in
various situations.  If you really want to see the correct serial number
when
you launch Max, you can just delete everything MSP-related from your system
and start over again.

The real question is the most convenient way to uninstall an MSP serial
number
so you can re-authorize with the one you want to use on that computer.  MSP
is
maybe just a little bit too easy to pirate in this way!

(We have the same problem at CNMAT---we bought a dozen or so MSPs to run on
all our various Macs, but were a little bit sloppy at first about which
machine got which serial number, and now we're stuck with each machine
permanently remembering its original MSP serial number.)

But unless the Cycling 74 police come to check out all your computers I
can't
see any reason that it really matters; as long as you buy as many MSPs as
you
use, nobody's getting hurt.

> Shall I wait for 6 months ?

That doesn't help; even after MSP expires and you reauthorize it, it still
remembers the serial number.

-Matt

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

End of MAX Digest - 12 Apr 1999 to 13 Apr 1999 (#1999-114)
**********************************************************