Subject: MAX Digest - 22 Aug 1999 to 23 Aug 1999 (#1999-252)
Date: Tue, 24 Aug 1999 00:00:03 -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 11 messages totalling 516 lines in this issue.

Topics of the day:

  1. timing
  2. More on that SoftStep thing
  3. more timing
  4. MIDI/msp timing
  5. more timing...
  6. USB midi
  7. max/msp on the new powerbook G3's
  8. MSP Frequency analysis
  9. G3/400PB & max/midi
  10. Starting detonate
  11. MAC start up chime

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

Date:Mon, 23 Aug 1999 06:59:13 +0200
From:Jeffrey Burns <jeff@BERLIN.SNAFU.DE>
Subject: timing

>Wow, that makes me kind of unhappy. i really hope that some day timing is
>going to be stable . cubase and logic are stable. why is this impossible for
>max ?. it may need a total rewriting of the code
but at least i would pay
>lots of money for a professional solution.
>( I would also buy the "hardmax/msp" machine !!! )

Sorry to make you unhappy. I remember that David Z. told us the problem
lies in the Mac hardware, and that he had fought in vain at developers'
conferences for a Mac that better takes the needs of musicians into
consideration.

Just to cheer you up, here's a patch that will give you one tick per second
in timing that is as exact as the computer's quartz clock:

max v2;
#N vpatcher 50 40 325 410;
#P newex 86 265 47 196617 select 1;
#P newex 86 213 26 196617 1;
#P button 86 189 15 0;
#P newex 86 297 32 196617 0;
#P newex 87 94 32 196617 1;
#P newex 195 142 38 196617 gate;
#P newex 55 213 26 196617 1;
#P newex 86 241 47 196617 == 0;
#P newex 123 94 32 196617 0;
#P newex 142 297 39 196617 delay;
#P newex 171 213 40 196617 + 1026;
#P newex 171 189 37 196617 * -1;
#P newex 32 142 65 196617 unpack 0 0 0;
#P newex 12 117 50 196617 date;
#P message 12 94 50 196617 time;
#P newex 12 57 50 196617 metro 20;
#P newex 171 166 34 196617 timer;
#P newex 171 57 50 196617 select 1;
#P outlet 238 327 15 0;
#P inlet 171 27 15 0;
#P newex 86 166 40 196617 change;


#P comment 8 22 94 196617 "1" turns clock on. "0" turns clock off.;
#P connect 21 0 18 0;
#P fasten 21 0 12 0 91 291 147 291;
#P fasten 21 0 16 1 91 287 237 287 237 136 228 136;
#P connect 20 0 14 0;
#P connect 19 0 20 0;
#P fasten 19 0 15 0 91 208 60 208;
#P fasten 18 0 16 0 91 320 138 320 138 137 200 137;
#P fasten 17 0 16 0 92 119 200 119;
#P connect 16 0 5 1;
#P fasten 15 0 14 1 60 235 128 235;
#P connect 14 0 21 0;
#P fasten 12 0 3 0 147 319 243 319;
#P connect 13 0 14 1;
#P connect 11 0 12 1;
#P connect 10 0 11 0;
#P connect 9 2 1 0;
#P connect 8 1 9 0;
#P connect 7 0 8 0;
#P connect 6 0 7 0;
#P connect 5 0 10 0;
#P fasten 4 1 6 0 216 77 92 77 92 53 17 53;
#P fasten 4 0 17 0 176 82 92 82;
#P fasten 4 0 13 0 176 88 128 88;
#P connect 4 0 5 0;
#P fasten 4 0 3 0 176 84 243 84;
#P fasten 2 0 6 0 176 49 17 49;
#P connect 2 0 4 0;
#P connect 1 0 19 0;
#P pop;

Jeff Burns

http://www.snafu.de/~jeff

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

Date:Sun, 22 Aug 1999 22:28:50 -0700
From:Charles Lyons <charleslyons@EARTHLINK.NET>
Subject: More on that SoftStep thing

Okay, I had a good look at the SoftStep manual last night and got a better
idea of what it can and can't do, mostly the latter.

With a couple exceptions, all of the modules either have analogues in Max
or can be easily duplicated by patching together two or three Max modules.
The main exception in my mind is the Rhythm object, which is basically an
x0x style drum grid. The Ball object is kind of cool too. There's nothing
like a detonate or timeline, though.

There doesn't seem to be any way to write your own externals.

Patch cords are invisible, which means that creating patches of any size or
complexity quickly becomes impractical.

All data paths are 7-bit unsigned integers (ie, 0-127).

There are a number of functions offered by Max which are either missing or
underrepresented. Provisions for data storage are minimal, for instance:
there are a couple specialized "sequencer" objects which are basically
fancy, fixed-length lists, but no real equivalent to a coll. Processing
streams of information is also pretty rudimentary: there are basic math and
logic functions and a few modules that resemble things like "line" and
"pipe", but that's it. There's a long list of Max objects which have no
analogues.

Basically it's a slick but very simplified subset of Max optimized for


sequence generation. It reminds me of Interactor more than Max actually.
Seems similar to but less powerful than KeyKit, from what little I've seen
of that. Anyone building sequencers in Max might find the manual
interesting reading, though. I think I may try and build myself an
equivalent to the "Fill" dialog, which is something I could certainly use.

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

Date:Mon, 23 Aug 1999 14:30:36 +0200
From:Jeffrey Burns <jeff@BERLIN.SNAFU.DE>
Subject: more timing

Here's a bit of an improvement on the timing patch I posted earlier today.
It has a clock that ticks 60 times per second. Each of the ticks has a
maximum deviation from absolute time of 21 ms. However, the number of ticks
per hour is as precise as the computer's quartz clock. This technique can
be used to run any of the objects that accept setclock messages, such as
metro, as in the patch.

max v2;
#N vpatcher 50 40 321 288;
#P newex 20 42 50 196617 loadbang;
#P newex 148 163 72 196617 noteout;
#P newex 148 113 29 196617 60;
#P newex 148 137 72 196617 makenote 60 5;
#P newex 44 187 34 196617 0;
#P newex 44 163 72 196617 * 16.666664;
#P newex 44 137 50 196617 change;
#P message 85 67 50 196617 clock real;
#P toggle 148 67 15 0;
#P number 188 67 35 9 0 0 0 3;
#P newex 148 92 50 196617 metro;
#P newex 44 212 73 196617 setclock real;
#P newex 20 113 35 196617 date;
#P message 20 92 35 196617 ticks;
#P newex 20 67 35 196617 metro;
#P connect 14 0 0 0;
#P fasten 14 0 7 0 25 62 90 62;
#P connect 12 0 11 0;
#P connect 11 0 13 0;
#P fasten 11 1 13 1 215 158 184 158;
#P connect 10 0 3 0;
#P connect 9 0 10 0;
#P connect 8 0 9 0;
#P fasten 7 0 4 0 90 87 153 87;
#P connect 6 0 4 0;
#P connect 5 0 4 1;
#P connect 4 0 12 0;
#P connect 2 2 8 0;
#P connect 1 0 2 0;
#P connect 0 0 1 0;
#P pop;

For running seq, this patch is preferable, whereby one's pre-recorded
sequences may turn out to reveal timing inaccuracies from the original
recording session:

max v2;
#N vpatcher 50 40 323 439;
#P message 148 117 50 196617 tick;
#P message 183 300 50 196617 start -1;
#P newex 20 260 50 196617 pack;
#P newex 20 279 95 196617 midiformat;
#P newex 20 240 50 196617 notein 1;
#P newex 47 349 50 196617 midiout;
#P message 127 300 50 196617 stop;
#P button 47 300 15 0;


#P message 72 300 50 196617 record;
#P newex 47 326 50 196617 seq;
#P newex 20 42 50 196617 loadbang;
#P newex 44 187 34 196617 0;
#P newex 44 163 43 196617 * 16;
#P newex 44 137 50 196617 change;
#P message 85 67 50 196617 clock real;
#P toggle 148 67 15 0;
#P newex 148 92 63 196617 metro 20;
#P newex 44 212 73 196617 setclock real;
#P newex 20 113 35 196617 date;
#P message 20 92 35 196617 ticks;
#P newex 20 67 35 196617 metro;
#P connect 10 0 0 0;
#P fasten 10 0 6 0 25 62 90 62;
#P connect 9 0 3 0;
#P connect 7 0 8 0;
#P connect 8 0 9 0;
#P fasten 6 0 4 0 90 87 153 87;
#P connect 5 0 4 0;
#P connect 4 0 20 0;
#P connect 2 2 7 0;
#P connect 1 0 2 0;
#P connect 0 0 1 0;
#P connect 11 0 15 0;
#P connect 12 0 11 0;
#P connect 13 0 11 0;
#P connect 14 0 11 0;
#P connect 16 0 18 0;
#P connect 16 1 18 1;
#P connect 17 0 11 0;
#P connect 18 0 17 0;
#P connect 19 0 11 0;
#P connect 20 0 11 0;
#P pop;

I guess this is about the closest that Max can get to absolute timing over
long periods, without using external hardware.

Jeff Burns

http://www.snafu.de/~jeff

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

Date:Mon, 23 Aug 1999 00:14:14 -0800
From:Tim Perkis <perkis@ARTIFACT.COM>
Subject: Re: MIDI/msp timing

All of these max timing measurement schemes are interesting, but unless I
misunderstand what they're doing, they don't measure what is really the
problem: the unreliability or jitter in the timing. (If the clock is just
running too fast or too slow, that is correctable.)

The way to test this, I believe, is externally: collecting the distribution
of inter-event times for a sequence of output midi messages that max is
generating at a supposed regular rate.


-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

T I MP E R K I S

home: (tel/fax)+01 510 528 7241
perkis@artifact.com
http://www.artifact.com/perkis


at Interval Research Corporation:+01 650 842 6281
perkis@interval.com

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

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

Date:Mon, 23 Aug 1999 09:53:22 -0400
From:Michael Sweet <msweet@BWAY.NET>
Subject: Re: more timing...

I haven't really been following this conversation so please excuse me if I'm
treading on ground that's already been gone over...

How about using the train~ msp object for driving metronome related objects for a
more steady/accurate timing pulse? Has anyone experimented with this?

It seems to me that the audio msp clock has to remaing steady especially if it's
in external sync mode. But I know that regular max (even with the train~ object)
interpets bangs when it gets around to it . But the train~ object should hold
it's timing over the long periods of time (+/- a few milliseconds on each bang).

--Michael Sweet


Robert Henke wrote:

> Hi Max-l !
>
> After thinking a while about Jeffrey Burns Patcher for messuring timing in MAX
> i came up with a new solution which should provide
more reliable results.
> my results are these : on my powerbook g3/266
10 seconds in max ( via metro )
> are around 0.1 - 0.3 percent longer as 10 seconds from the powerbook internal
> clock. the timing varies within a range of
0.2 percent between two 10 second
> intervals .
> ( it is not possible to get shorter messuring intervals without loosing
> precission )
> this is true if scheduler is in audio interrupt.
> without marking this option i got a max 10 second interval which was 1.6
> percent shorter then realtime. the derivation withi two intervals is kind of
> up to 0.7 percent .
>
> anyway, these result
say nothing about timing MIDI versus MSP, they only
> answer the question "how long are 10 seconds in max ? "
>

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

Date:Mon, 23 Aug 1999 11:20:48 -0700
From:Alex Stahl <alex@PIXAR.COM>
Subject: Re: USB midi

> I suppose it's a bad sign
>that the [midiman] drivers come on a floppy, even though no USB mac comes
>with a
>floppy....

I also wonder what kind of sign it is, that Opcode just sent me a message
exclaiming
" MIDI for the Blue and White G3! ", and it's an ad for the Stealth Serial
Port made by geethree, not one of the USB interfaces made by Opcode.

On the msp/max timing thread, if you use msp signals for all timing, and
maybe lock your audio card to a good external sync generator, you can enjoy
consistent and accurate sync At least in certain applications that is,
including circular buffer synchronization.


Using Max without using Max events can seem really awkward, but it makes me
hopeful that someday a reworked, sample-accurate event scheduler might make
a lot of problems go away, without reinventing the entire 44100-spoked
wheel in hardware.

-Alex S.

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

Date:Mon, 23 Aug 1999 17:22:10 +0100
From:david stevens <david@RESONANT.DEMON.CO.UK>
Subject: Re: max/msp on the new powerbook G3's

it seems that audio is going to be ok, and there's a rumour that midi may
work... is anyone using a specific interface that they can recommend, before i
lash out large amounts of money on something that i may not be able to use!!!!

thanks

david

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

Date:Mon, 23 Aug 1999 15:57:09 -0400
From:Jeff Brown <jeffb@AMNH.ORG>
Subject: MSP Frequency analysis

> For a new instrumental piece we want to make a frequency
> analysis
> of a live signal from the Mac sound input. One scheme could
> be:

> - The ten frequencies with highest amplitudes are selected,
>
all other frequencies are attenuated.
>
> Another scheme could be:
> - All frequencis within specific medium amplitudes limits
>
are amplified, all other frequencies are attenuated.
>
> - and we need to be able to change the scheme several times
> during
> the piece.

This was one of last week's themes. What I said then was something like
this:

We can't do it yet. There are machines out there that can do enough
frequency analysis to determine a single-pitched musical tone's
fundamental within a fraction of a cycle, but they're all limited to
specific timbres (guitar, horn) and they're still not perfect.

It's important to understand how an FFT works. There are good ones and
construction-grade ones. The four parameters to an FFT are its
time-window, the number of sampling points in time, its its
frequency-window, and the number of sampling points in the frequency
domain. If it's a short waveform at a low sample-rate, and the
frequency window is small enough, and you don't take too many sampling
points, you could do it darn near instantaneously.

If you want a continuous FFT good enough to reconstruct the original
signal well enough to fool a human ear, you can kiss it off for the next
five years or so.

If you're willing to be less picky, I can think of two ways to speed
things up:First of all, if you are going to have multiple pitched
sound sources, get a separate signal from each one. That will make the
pitch analysis easier, because you can window the FFT's frequency range


according to the ranges of the particular instruments involved. (For
instance, if one sound source is a baritone human, and you only want the
loudest five partials or so, you could window to -- oh, say -- 100 Hz to
1000 Hz. If it were a cymbal, you might be able to get away with 1000
Hz to 5000 Hz. (I could be way off on the actual figures, but you see
my point.))

Now it will take a certain amount of time to do the FFT. You'll have to
space out your samples accordingly:If it takes a sixteenth of a second
(again I could be way off) to do the FFT for a particular instrument,
you'll have to only sample that instrument every sixteenth of a second.
(And that's assuming you have a processor dedicated to that
instrument.)So you'll have to tell that instrument not to expect
anything it does on a shorter timescale to get picked up.

If you have the luxury of a whole bunch of processors, you could split
the processing between them by shuffling sample points:Say you've got
three processors (A, B, and C) all dedicated to analyzing the
trumpeter's signal. Assume that the particular FFT parameters you've
chosen for them (frequency range, number of sampling points) means that
they will each take a second to decode the signal. Then you have A
sample at 0 sec., B sample at 1/3 sec., C sample at 2/3 sec., etc. This
won't let you get around the 1 sec. latency, but it will be more
accurate.

Whatever you do, it'll be expensive as hell.

Of course, that's just my take.

--Jeff

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

Date:Mon, 23 Aug 1999 22:02:49 +0200
From:Le Quan Ninh <ninh@MUSIQUE.NET>
Subject: Re: G3/400PB & max/midi

I uses a G3/400PB with Max/MSP since 2 weeks. MSP works really great.
I didn't notice a better sound than the G3/266PB by instance.

I didn't try any MIDI yet because I wait a little bit to see what is
the best USB MIDIinterface.

Ninh


>Date:Sat, 21 Aug 1999 20:41:41 +0100
>From:
david stevens <david@RESONANT.DEMON.CO.UK>
>Subject: G3/400PB & max/midi
>
>hi all,
>
>i have someone who wants to buy my older powerbook, which means that
>i'm looking
>at getting a G3/400 PB as soon as i can get the rest of the money together.
>the question is - is anybody using one of these
with max & msp yet?
>is there a
>midi interface that you can recommend? and is the audio quality any
>better than
>earlier models?
>and basically - does it work?????
>
>thanks
>
>david

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


Date:Mon, 23 Aug 1999 16:37:48 -0400
From:Frederic Murray <aae052@AGORA.ULAVAL.CA>
Subject: Starting detonate

Hello Maxers,

somes questions about detonate...

is it possible to start detonate (not from the beginning) with another
message then startat ?

is it possible to start detonate with the starting time of a note ?

is it possible to see in the detonate editor the event number of a note ?


Thank you very much

Frederic Murray
Etudiant
Faculte de musique
Universite Laval

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

Date:Mon, 23 Aug 1999 17:50:48 EDT
From:RBMengMail@AOL.COM
Subject: MAC start up chime

I have been in contact with an acquaintance at Apple that manages one of the
OS development groups and asked if it were possible to disable the start up
chime.

Bad news -- it's built into the boot ROM and cannot be disabled without
altering the ROM -- not at all likely to occur for older machines.

Good news -- a switch setting in PRAM or hardware MAY be considered in future
releases -- a least it will be presented and discussed there.

I'll post additional information and suggestions should there be any.

R B Meng

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

End of MAX Digest - 22 Aug 1999 to 23 Aug 1999 (#1999-252)
**********************************************************