Subject: MAX Digest - 26 Mar 1998 to 27 Mar 1998
Date: Sat, 28 Mar 1998 00:00:31 -0500
From: Automatic digest processor 
Reply-To: MAX - interactive music/multimedia standard environments
     
To: Recipients of MAX digests 

There are 9 messages totalling 286 lines in this issue.

Topics of the day:

  1. URGENT HELP NEEDED IN OVERDRIVE PROBLEM
  2. Did I ask this before
  3. Modalys & Max
  4. msp pitch to midi?
  5. lcd recorder
  6. grab-like behavior
  7. MAX/QuickTime question
  8. writing directly to an object's structures (2)

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

Date:    Fri, 27 Mar 1998 00:58:40 -0500
From:    Pam Jennings 
Subject: URGENT HELP NEEDED IN OVERDRIVE PROBLEM

I'm currently resurrecting a program that was written on the Quadra 950 and
is
now running on a G3.  I tested on a Power Computing 225 without problems.
Now
on the G3 I'm getting "Overdrive" crashes with the instruction of hitting
the
resume command.  Can anyone give me any insight on what causes this.  I
assume
too much data flow.  I'm reading in from the serial port and then parsing
the
data to controls for Midi, Video and AiffPlay external.

Any insight is appreciated.  I'm setting up for a conference and left my
manuals at home.

Thanks,

Pamela

The great thing in this world is not so much where we are, but in which
direction we are moving.

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

Date:    Fri, 27 Mar 1998 04:28:37 -0600
From:    =cw4t7abs 
Subject: Did I ask this before

>Date:    Thu, 26 Mar 1998 13:29:07 +0000
>From:    BUYO-BUYO-IGOR 

>Did I ask this before?
>I'm still using QT2.5 as the sound module for my MAX3.0.
>I love microtuning things so use a bunch of xbendout oriented things in
>my patch....but now wondering...if my QT is handling 14bit-bend-date
>correctly...my ear is not good enough to test this...ah..
>So sad if it's only handling it as the 7bit thing and ignoring the rest.

sad =_?
u do !hear !t

>BTW.
>Is there any object that reads the ascii message....I mean message on
>normal mail-exchangings...? I want to look for a way to interpret real
>world language

reaL worLd - necz!zte pas.

>into MIDI.

irk konv 2 midi v!a max + super koll!der

hTTp://www.god-emil.dk/spCa/filez/kr0p3r0m_-a9ff_midi-t3kxt.mp3

synth-l fasc!zt vom!t 2 m!d! v!a max

hTTp://www.god-emil.dk/spCa/0f0003-antifasc1zt.d1lx23m2.mov

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

Date:    Fri, 27 Mar 1998 14:55:05 +0100
From:    dudas 
Subject: Re: Modalys & Max

Tommy DOG writes:

>Dear Uncle Max,
>Has anyone come up with a Max patch to use with Modalys?
>TD

This question is probably best sent to the Ircam Forum's Modalys mailing
list, because it only really concerns Modalys users, so I'll send a
courtesy copy of this letter to that list, too.

I actually expected someone on the Max List to ask: "What is Modalys?".

Modalys is Ircam's physical modelling synthesizer which is quite different
from many other physical modeling synthesis programs in that it is based on
Modal Synthesis, which has been used by engineers in the aviation and
construction industries since the 1950's.  Modal synthesis simulates not
only the movement of vibrating structures but also the interaction between
two or more of them.

Modalys uses the elegant and concise programming language Scheme (a dialect
of Lisp) as a user interface.  This means NO fancy graphics, just text!
(However, there is a program called "Modalyser" by Richard Polfreman at the
Univ of Hertfordshire, UK, which provides a graphic user interface for
creating Modalys files.)

To give you an idea about what Modalys looks like, here's an example of a
Scheme program which creates a 2-second-long sound file of a plucked string:

(new)
(define my-string       (make-object 'mono-string))
(define my-plectrum     (make-object 'bi-two-mass))
(define my-string-plk   (make-access my-string (const .6) 'trans0))
(define my-string-out   (make-access my-string (const .3) 'trans0))
(define my-plectrum-plk (make-access my-plectrum (const 1) 'trans0))
(define my-plectrum-mov (make-access my-plectrum (const 0) 'trans0))
(define my-envelope     (make-controller 'envelope 1
     (list (list 0.00 0.1) (list 0.50 -0.5)))
(make-connection 'pluck    my-string-plk my-plectrum-plk 0 .1 (const 50))
(make-connection 'position my-plectrum-mov my-envelope)
(make-point-output my-string-out)
(run 2)
(play)

Actually, that's very concise for the rich synthesis it produces. (Try
programming something interesting in Csound with just 14 lines of text!!)
It takes about 10 seconds to synthesize these 2 seconds of sound on a fast
Macintosh - so you can see that it is NOT a real-time program.

Modalys is an open-ended environment.  There are a large number of objects
already available (string, tube, plate, bar, etc...) and you can connect as
many of them together in any way you want (there are many varied types of
connections: pluck, strike, bow, single-reed, double-reed, etc...).  The
largest synthesis I've dared to do was a virtual viola, using 4 strings, 4
bows, 29 fingers, and enough break-point envelopes to get the contraption
to play the first few measures of a Bach Sarabande! The 12-second sound
file takes 40 minutes to synthesize on a G3 at 266 MHz and 1 1/2 hours on
my lowly 7600/132.

Anyway, as for a connection to Max, it would seem logical that one could
create breakpoint function data in Max, format it in Scheme using the Text
object and copy and paste it into a Modalys file.  Two years ago I tried
doing just this, using a Wacom tablet to record a bowing envelope. It
sounded horrible, so I ended up typing in all the values by hand. About a
year ago, I (once again) tried creating other envelopes in Max for use in
Modalys, and the result was far from satisfactory.

Don't get discouraged, though, it's just a question of how much time one is
willing to invest in it.  There is a composer in Marseille, Manuel Poletti,
who has been experimenting with Max and Modalys recently, and has created a
nice stand-alone application called "Mody" that creates the modal data for
a Modalys "single-point" object excited by a noise-controller. The program
formats all of the breakpoint functions as text - a Scheme program for use
in Modlays.  What is mega-cool is that he has used MSP to create a
"preview" of the sound (using the 'reson~' object), so you get a rough idea
what the final synthesis will sound like.

So, I hope that answers your question about Max and Modalys, without boring
the rest of the Max List readers.

-Richard

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

Date:    Fri, 27 Mar 1998 17:13:10 +0200
From:    Jukka Ylitalo 
Subject: msp pitch to midi?

Is it possible to make pitch to midi conversion with msp?

jy

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

Date:    Fri, 27 Mar 1998 17:13:11 +0200
From:    Jukka Ylitalo 
Subject: Re: lcd recorder

>Richard.Dudas writes:

>It may not always accurately store the mouse up/down information if you
>draw rapidly.

it surely is more accurate than my first try.
thanks!

j y

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

Date:    Fri, 27 Mar 1998 08:22:06 -0700
From:    Kevin Walker 
Subject: grab-like behavior

I'd like to write an object that exhibits grab-like behavior (send a
message to another object connected to one of its outlets, then capture the
resulting output of the other object for internal use).  I haven't found
anything in the Max Writing Externals documentation, now did a search of
old posts to this list turn up anything.

Does anybody have any helpful pointers or advice?

Related question: Where can I find the definitions of 'struct outlet' and
'struct inlet'?  (Doesn't seem to be in any of the distributed header
files.)

Thanks,

Kevin Walker
kwalker@euclid.ucsd.edu, kevin@suwa.org

P.S. The object objective is an object which would take a buffer~ name as
an argument and have one outlet connected to (say) an expr object.  When
instructed to do so, it would set the contents of the buffer~ according to
the formula in the expr object.

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

Date:    Fri, 27 Mar 1998 12:40:41 -0600
From:    Maurice Methot 
Subject: MAX/QuickTime question

Does anyone know of a way to superimpose one QuickTime screen over another
in MAX, and control the blend or opacity of the top level screen in real
time, in MAX?

-- Maurice Methot

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

Date:    Fri, 27 Mar 1998 14:37:34 -0500
From:    Fred Collopy 
Subject: writing directly to an object's structures

Is it possible to assign a value directly to a variable that is part of an
external object's structure (from C, say). For example, if I want to assign
a window pointer to the *b_wind field of the b_ob structure of the object
bomb, is there some way I can do that? Put another way, I am asking if it
is possible for max objects to communicate with one another's internals
(assuming of course that you know them) or if the communication must all go
out to max and in through inputs?

Fred Collopy
Associate Professor
Management Information and Decision Systems
Weatherhead School of Management
Case Western Reserve University
Cleveland, Ohio 44106
(216)368-2144 voice
(216)368-4776 fax

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

Date:    Fri, 27 Mar 1998 16:41:00 -0500
From:    Stephen Kay 
Subject: writing directly to an object's structures

>Put another way, I am asking if it
>is possible for max objects to communicate with one another's internals
>(assuming of course that you know them) or if the communication must all=

go
>out to max and in through inputs?

Yes, this is how the MegaMAX objects all share their colors and
how the various button objects can operate in radio group mode
and communicate their states to each other.

There are several strategies you can use - if you are creating
your own objects, you can have them agree on a symbol to use,
and then pass info in the Symbol's s->thing field.

Or, you can send them messages directly using the typedmess()
and mess0(), mess1() etc. macros by getting pointers to their
box structures.

In the case of actually changing data in the structures of
pre-existing objects, you (probably)
could get your object's owning patcher, then loop through all
the objects in a patcher window until you found the correct
object, then get a pointer to the object's structure which
is stored in the box structure somewhere (I think?)

I may be able to find some code that will do this somewhere,
but I bet David Z. could answer this better.

Stephen Kay
----------------------- The MegaMAX Collection -----------------------
  Over 30 Max objects for the creation of more professional looking, =

         feeling, and functioning patchers and applications.
                      http://www.musikinetix.com
                          sk@musikinetix.com
----------------------------------------------------------------------

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

End of MAX Digest - 26 Mar 1998 to 27 Mar 1998
**********************************************