Subject: MAX Digest - 19 Feb 1999 to 20 Feb 1999 (#1999-60)
Date: Sun, 21 Feb 1999 00:00:03 -0500
From: Automatic digest processor 
Reply-To: MAX - Interactive Music/Multimedia Standard Environments
     
To: Recipients of MAX digests 

There are 17 messages totalling 638 lines in this issue.

Topics of the day:

  1. MSP resolution (4)
  2. Patchcord confusion (3)
  3. Tangential: VCARD.VCF Attachments
  4. Wish list suggestion - receive object highlighted
  5. MIDI into Director (MacOS)
  6. interfaces
  7. new G3 and Korg 1212io
  8. smpte sync
  9. a psychology experiment with MAX
 10. Max Digest Archive News
 11. Palindromes
 12. Patch Cord Solutions

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

Date:    Sat, 20 Feb 1999 00:50:07 -0500
From:    Alex Burton 
Subject: MSP resolution

 (this message was sent with no subject... since i got no answer, i'm tying
it again...)

 hello all...

 MSP's signal routing is done through floats
(32 bits), which is nice. However, how are these
32 bits converted to 16, 20 or 24 for outputting?
(this is assuming/hoping that the dac~ adapts to
the resolution of the driver/interface). Are the
signals dithered or simply truncated?

 thanks,

 Alex.

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

Date:    Fri, 19 Feb 1999 23:08:10 -0700
From:    Kevin Walker 
Subject: Re: MSP resolution

> (this message was sent with no subject... since i got no answer, i'm tying
>it again...)
>
> hello all...
>
> MSP's signal routing is done through floats
>(32 bits), which is nice. However, how are these
>32 bits converted to 16, 20 or 24 for outputting?
>(this is assuming/hoping that the dac~ adapts to
>the resolution of the driver/interface). Are the
>signals dithered or simply truncated?
>
> thanks,
>
> Alex.

I'm not sure what you mean by "dithered".  Do you mean "rounded"?  In any
case, I think the conversion method from floats to 16, 20 or 24 bit
integers must be one of the following:

After scaling to the appropriate range, the resulting floating point number
is

(1) rounded to the nearest integer (100.6 -> 101, -100.4 -> -100)

or, more likely,

(2) truncated (100.6 -> 100, -100.4 -> -100).

Method (1) is more correct, but (I think) slower, which is why I suspect
method (2) is used.  The difference between the two resulting signals would
have a maximum amplitude of 1, while amplitude of the main signal would be
some decent fraction of 2^16 (or 2^20 or 2^24).  Not likely to be audible.

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

Date:    Sat, 20 Feb 1999 02:27:01 -0500
From:    Nicholas Longo <71477.2332@COMPUSERVE.COM>
Subject: Re: Patchcord confusion

<
Subject: Re: Patchcord confusion

JohnBrit@AOL.COM wrote:

<
Subject: Tangential: VCARD.VCF Attachments

On around 19-2-99 13:18, oron schwartz said something like:

...Actually, at this point in time I don't care what oron said (sorry,
oron), but...

Does anyone have an AppleScript handy for deleting these damned .VCF
attachments? (Preferably one that I can use as a Claris EMailer mail
action... apologies for being lazy)

Also apologies if I sound grouchy, but my e-mail attachments folder is
littered with these .VCF files, and I have more pressing things to do
than to explain to each and every (ahem) very nice person who sends me
these things how turn them off.

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

Date:    Sat, 20 Feb 1999 11:40:44 +0100
From:    Peter Castine 
Subject: Re: Wish list suggestion - receive object highlighted

On around 19-2-99 11:21, Steve Smith said something like:

>When double-clicking a send object it would be nice to have the receive
>object highlighted.  It can be hard to find the receive object in amongst a
>window full of code.

If this featurelet is added, I would suggest click-and-a-half to trigger
highlighting of the associated receive objects (note the use of the
plural!!) and any likewise-named send objects (note existence of such!!!
and plural!!!! too!!!!!).

My ISP seems to have a discount on exclamation points tonight!!!!!!

The point of my suggestion is that you could control the duration of the
highlight (it stays on until the next mouse up). If the highlighting is
triggered by a double-click, you'll be stuck with a hard-wired flash time
(either the 8-tick standard for visual feedback when you activate a
default button with the enter key, or the current MenuFlash value...).

Cheers,

Peter -- actually, my ISP doesn't seem to want to handle any mail at all
tonight.-( Hopefully we'll get this sorted out by tomorrow.

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

Date:    Sat, 20 Feb 1999 22:14:08 +1100
From:    Garth Paine 
Subject: MIDI into Director (MacOS)

Hi all,

>>I have just uploaded my little XFCN that allow the MacOS version of
>>Director to use Midi. It has been tried with Director 6, but I have no
idea
>>if it will work with the latest version. It requires Apple MidiManger to
>>work -- sorry, no OMS yet.
>>

Unfortunately, XCFNS ad XObjects don't work with Director 7, that includes
the serialPort Xobject,
so there's an "opportunity" to write a USB communications xtra (and extend
it to MIDI).

Cheers,

Garth

See information about my new immersive interactive sound installations
http://creativeaccess.com.au/~garth/

,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.
. Composer, Sound Designer
.. Interactives Designer
... Interactive Installation Artist
.... Exhibition Consultant
.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,

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

Date:    Sat, 20 Feb 1999 13:23:23 +0000
From:    Nick Lowe 
Subject: Re: interfaces

If we're wishlisting, I'd just like to say that ahead of any of the
suggestions so far in my dream Max would be a quick-encapsulation option of
the kind used in other graphical object-based environments (such as Casady
& Greene's now-defunct Spreadsheet 2000, and also - I gather from the last
time I posted this - in IRCAM's Patchwork). It would work like this:

1. Select a group of objects in a patch by dragging and/or shift-clicking.

2. Choose the new Encapsulate... option (= S2K's Crunch..., or Patchwork's
Abstract...) from the menu, or its command-key equivalent. This
encapsulates the selected objects into a subpatch with the right number of
inlets & outlets, and gives you a dialog box to name it.

3. Enter the name of your new subpatch, click OK, and admire all the clean
white space in your patcher.

(Actually, ahead of any of the Max wishlistings to date would be that David
Z. got some quality time to update OvalTune. In my dreams I live in a world
where OvalTune 2.0 is bundled with every iMac, and all dissension and
suffering are eradicated from the world forever.)

Nick Lowe
n.lowe@rhbnc.ac.uk

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

Date:    Sat, 20 Feb 1999 15:33:11 +0100
From:    Peter Castine 
Subject: Re: MSP resolution

On around 20-2-99 7:08, Kevin Walker said something like:

>I'm not sure what you mean by "dithered".  Do you mean "rounded"?  In any
>case, I think the conversion method from floats to 16, 20 or 24 bit
>integers must be one of the following:
>
>After scaling to the appropriate range, the resulting floating point
>number is
>
>(1) rounded to the nearest integer (100.6 -> 101, -100.4 -> -100)
>
>or, more likely,
>
>(2) truncated (100.6 -> 100, -100.4 -> -100).
>
>Method (1) is more correct, but (I think) slower, which is why I suspect
>method (2) is used.  The difference between the two resulting signals woul=
d
>have a maximum amplitude of 1, while amplitude of the main signal would be
>some decent fraction of 2^16 (or 2^20 or 2^24).  Not likely to be audible.

Truncation is what most (all?) processors will do in hardware. Certainly
applies to the PPC family of chips.

To round, you have to add 0.5, then truncate. So the processor has to
perform an extra add instruction.

What happens with negative numbers in truncation/rounding is pretty zany.
Despite the fact that the relevant IEEE standard for floating point
arithmetic specifies what's supposed to happen, the C language spec
wimped out and says "implementation dependent." Which generally means:
whatever the processor does is cool. Some processors truncate negative
values towards 0, some towards -=83. My copy of the C++ spec (possibly out
of date by now: [Stroustrup 1986]) also wimps out. So I'm not taking any
bets on which way MSP truncates negative values (though I'm willing to
wager that it truncates rather than round).

The extent that this could possibly be audible depends upon the signal
you're dealing with. Digital noise tends to distort low level (quiet)
signals more than high levels. The associated math is all in [Moore 1990]
and [Roads 1996] (left as exercise for the reader;-). But the rule of
thumb is 6dB S/N per bit. So, even if you have round-off error on the LSB
of a 16-bit signal, you've still got better than 90dB S/N. As much as
most all of us would like to have IRCAM-quality equipment in our
garages/basements/bedrooms, I think only a few of us have got
loudspeakers & amplifiers that are matching this sort of signal quality.
In short: I wouldn't worry too much about the truncation business unless
you're doing a production somewhere like Paris or Freiburg.

;-)

Cheers,

Peter

Bibliography
------------
Moore, F. Richard. 1990. Elements of Computer Music. Englewood Cliffs:
Prentice-Hall.

Roads, Curtis [et al.]. 1996. The Computer Mulsic Tutorial. 3rd ed.
Cambridge, Mass.: MIT.

Stroustrup, Bjarne. 1986. The C++ Programming Language. 1987 ed.,
Addison-Wesley Series in Computer Science. Reading, Mass.: Addison-Wesley.

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

Date:    Fri, 20 Feb 1998 15:52:10 +0100
From:    wolfgang heiniger 
Subject: new G3 and Korg 1212io

Is there anybody having any experience with the Korg 1212io-card in one
of the new G3 (the cryogenic ones)?
I recall somebody mentioning difficulties.
Did they found to a solution ?

tia

wolf

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

Date:    Sat, 20 Feb 1999 16:21:02 +0000
From:    Pedro Rebelo 
Subject: smpte sync

Sorry if this has been asked before...
How can I read a smpte striped ADAT track in Max?
I am using an old  JLCooper MIDI-SMPTE Synchronizer...
(this is for subsequent control of Director using HyperMIDI)

Thank you in advance for your help,
Pedro

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Pedro  Rebelo

The University of Edinburgh,
Faculty of Music,
Alison House,
12 Nicolson Square,
EDINBURGH EH8 9DF
Scotland UK

homepage: http://www.ed.ac.uk/~ptr/welcome.html
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

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

Date:    Sat, 20 Feb 1999 11:23:45 -0500
From:    Stephen Kay 
Subject: Re: Patchcord confusion

>JohnBrit@AOL.COM wrote:

><a
<<"multicore" patchcord. Adding another core would just require changing
>the
<coll
<hardware
><<<That would be very usefull as long as the Termination object didn't slow=

>down processing by requiring a "message lookup" or something.
>Nick Longo

There are 2 ways I can think of offhand of doing this in an external
object:

1) packing the data into a list, sending it out one outlet, then
receiving the list, and splitting it up again.  You can easily do this
simply with a pack and unpack.  Pack all your data from "n" sources
into a list, send it down one "trunkline", and then unpack it into
"n" destinations.  Doing this simply to avoid extra patch cords
seems like a waste to me...

2) Give each data item an identifier, send them all down the "trunkline",=

and then route them accordingly at the destination.  This is also
possible in max simply by using a funnel/spray combination (although
funnel currently only works for ints).  Once again, I question the
extra processing power simply to get rid of patch cords.

Since both of these methods are easily accomplished using standard Max
objects, unless someone has another method that's more efficient, I
don't see how this writing something like this in C would be any
improvement.

Stephen Kay
http://www.musikinetix.com

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

Date:    Sat, 20 Feb 1999 08:24:40 -0800
From:    Philip Aker 
Subject: MSP resolution

Peter Castine <
} To round, you have to add 0.5, then truncate. So the processor
} has to perform an extra add instruction.

Just wondering if this is really necessary on PPC chips--isn't
it possible to set the rounding mode of the FPSCR register on
'load' and then do the integer conversion?

Also, PPC chips have some floating point instructions which
take up to four operands. I think that depending on the setting
of FPSCR register, one could add 0.5 to a multiply by 1.0 and
store the rounded result in the fourth operand in a single
instruction.

But I'm just guessing. If someone has a grasp of PPC Assembly, I
hope they could clear things up.

TIA,

Philip
philip@vcn.bc.ca

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

Date:    Sat, 20 Feb 1999 17:04:31 +0000
From:    "A.J. Moore" 
Subject: a psychology experiment with MAX

I am looking to make a couple of objects....some help or pointers would
be greatly appreciated.

1) Some sort of sequence controller that scrolls a score across the screen
presenting x number of notes in advance of what is being played.
(explode or follow in conjunction with a sequencer ?)

2) I am half way through my DIY Jungliser - based around std midi drum
patterns offering ways similar to really cheap keyboards of 8 bar licks,
fills, intros etc...if anyone has made anything similar or knows of anything
that is freely available a url would speed my job up somewhat.

please reply privately or to the list

thanks
Adrian Moore

Dr. Adrian Moore                tel - 44 (0)114 2220486
Sheffield University            fax - 44 (0)114 2668053
Music Department mailto:a.j.moore@shef.ac.uk
Western Bank        http://www.shef.ac.uk/misc/personal/mu1ajm
Sheffield S10 2TN
http://www.shef.ac.uk/uni/academic/I-M/mus/facils/studio.html
UK                        http://www.demon.co.uk/sonicart/

Dr. Adrian Moore                tel - 44 (0)114 2220486
Sheffield University            fax - 44 (0)114 2668053
Music Department mailto:a.j.moore@shef.ac.uk
Western Bank        http://www.shef.ac.uk/misc/personal/mu1ajm
Sheffield S10 2TN
http://www.shef.ac.uk/uni/academic/I-M/mus/facils/studio.html
UK                        http://www.demon.co.uk/sonicart/

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

Date:    Sat, 20 Feb 1999 13:10:05 -0500
From:    Jon Witte 
Subject: Max Digest Archive News

Hello Maxers,

The max digest archive has finally been updated.  Sorry about the delay,
but I haven't had much time lately.  The year of 1996 has been removed
from the archive to make room for 1999.  If anyone should need the 1996
digests, they can email a request to me at:

jonwitte@cybernex.net

The Max Digest Archive can be found at:

http://www2.cybernex.net/~jonwitte/max/welcome.html

Best Wishes to all

Jon

--
Jon Witte - Music Machine Studio

http://www2.cybernex.net/~jonwitte/
--
******************************************************************
*         Dancing in the moonlight, to a spiritual waltz-        *
*            Dancing to the music that's in my soul.             *
******************************************************************

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

Date:    Sat, 20 Feb 1999 09:50:53 -0800
From:    Carl Stone 
Subject: Palindromes

>On Thu, 18 Feb 1999, Chris M. wrote:
>>
>> Today's Palindrome: Go hang a salami. I'm a lasagna hog.
>
> I love these, where are you getting them?

Choose one:

* downloaded from hTTp://www.tezcat.com/~antiorp/
* My proprietary Max external 'pali', available for $129.95
* An all-too-rudimentary knowledge of UNIX and too much time on my hands.

Today's Palindrome: Toni Tennille fell in net.  I, not!
C  -----------------------------------------------------
A  INTERNET: cstone@sukothai.com      WELL: cstone
R
L  -----------------------------------------------------
 STONE      4104 24th Street #410
                      San Francisco CA 94114 USA
         -----------------------------------------------
                            WEB: http://www.sukothai.com

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

Date:    Sat, 20 Feb 1999 14:17:30 -0500
From:    Nicholas Longo <71477.2332@COMPUSERVE.COM>
Subject: Patch Cord Solutions

I'd like to point out to the "MAX is a graphics program" crowd.
MAX is not a graphics program just because it employs a
graphical user interface.  Photoshop is specifically designed
to simulate the kinds of processing done on (acetate?) film
in a photography lab, including layering transparencies, varying
exposure, color balance, "burning", masking, etc. etc. Freehand is
specifically designed to simulate the methods used by an artist
working on a matte surface, including painting (in layers), drawing,
superimposing cutouts, i.e. collage, etc. etc.

MAX is designed to simulate construction of an electrical circuit
using "components" with "leads" that are connected together with
flexible conductive material, allowing electrons to flow from one
component to another.  The interface is a graphical representation
of the physical manifestation of an electrical circuit.  A patchers
is a "breadboard" on which circuit elements may be wired together.
Subpatchers are really integrated circuits.

This reveals another possible solution to the patch cord dilemma.
A simple printed circuit board has two sides.  Circuit traces are
layed out on one side, while components are inserted on the other.
The connection goes through the board.  One problem with the layers
would be indicating where connections occur between layers.  However
by automatically placing objects in one layer and patch cords in another
layer, which is really the underneath of a simulated circuit board, the
same convention of connecting objects to patch cords remains intact.

You can start by breadboarding in a one-sided mode, and then to
refine and finalize your patch, you enter a two-sided mode
(menu selection), within which you can toggle between the patch-cord
(circuit trace) side and the object side.  Each time you toggle, other
side is dimmed (grayed-out) and can't be selected.

This way objects can be layed out in any convenient or eye-catching
manner, while patch cords can be layed out along any convenient or
serendipitous path without concern for obscuring objects.  And since
traces on a real circuit board can't cross each other without making
electrical contact, but patch cords can, I would suggest some kind of
graphic indicator that automatically appears when two patch cords cross.
For example, one becomes highlighted or dimmed for a few pixels indicating
it is passing over or under the other.

Sorry to take up so much space on this digest.  I'd suggest we leave it
to David to hash out what he wants to do.

Nick Longo
http://www.cesiumsound.com

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

End of MAX Digest - 19 Feb 1999 to 20 Feb 1999 (#1999-60)
*********************************************************