Subject: MAX Digest - 29 Apr 1999 to 30 Apr 1999 (#1999-131)
Date: Sat, 1 May 1999 00:00:11 -0400
From: Automatic digest processor 
Reply-To: MAX - Interactive Music/Multimedia Standard Environments
     
To: Recipients of MAX digests 

There are 15 messages totalling 569 lines in this issue.

Topics of the day:

  1. supersonics (6)
  2. More MSP Tutorials?
  3. Reinventing the wheel? (2)
  4. movie manipulation to disk
  5. Composition Position at UNT---please post and distribute
  6. MAX Digest - 28 Apr 1999 to 29 Apr 1999 (#1999-130)
  7. multiple Korg 1212's
  8. MSP :  Adressing outputs on Audiowerk8 (2)

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

Date:    Fri, 30 Apr 1999 06:58:41 +0200
From:    Jeffrey Burns 
Subject: supersonics

Hi Chris and Stoney,

Thanks for your responses about supersonics. Not being trained in
acoustics, I'm still somewhat confused. The MSP manual leeds me to believe
that I should avoid producing supersonics, since they will be turned around
into unwanted audible frequencies. Of course, I haven't written a
performance patch with a 43000 Hz cycle~ object connected to dac~. But say
that I've got a *~ object which receives a 17000 Hz sine tone in its right
inlet, doing ring modulation on an acoustical piano sound coming in on the
left. Isn't it possible that some unwanted supersonics will be produced,
which I have to get rid of somehow? Is there no filter that will do the
job? Thanks again.

Jeff

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

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

Date:    Thu, 29 Apr 1999 22:30:08 -0700
From:    David Zicarelli 
Subject: Re: supersonics

Christopher Murtagh  writes:

> The only way for this to work would be to crank out the data at a much
>higher sampling rate thereby pitch-shifting everything up. This would
>still not solve your problem if cycle~ thinks it is sending stuff out at
>44.1k or 48k (not to mention that your buffer would run out pretty quick).
>I imagine that to create supersonics, it would require cycle~ to be
>re-coded and then fed out 96K D/A converters.
>
> So, David, any plans to go 96k? :)

cycle~ and all other MSP objects are supposed operate at the
sampling rate that is current at the time the audio is turned on.
I haven't tested any 96k equipment but the ASIO support driver, as
an example, checks if the hardware supports various sampling rates up
to 192kHz. My suspicion would be if cycle~ works at 22kHz
and 44.1kHz and 48kHz, it should work at any other sampling
rate.

It is possible, on the other hand, that the behavior of objects
such as cycle~ and phasor~ is not "correct" at frequencies
above the sampling rate. I'm not sure what the correct behavior
is supposed to be, however.

David Z.

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

Date:    Fri, 30 Apr 1999 00:10:08 -0700
From:    David Zicarelli 
Subject: Re: More MSP Tutorials?

Mike Kish  asks:

>The last tutorial (#25) in the MSP manual I have says that "future tutorial
>chapters" will cover other effects like delay feedback and flange. Have
>these tutorials been written and if so are they available somewhere on the
>web? These effects would be very useful for the project I'm working on.
>Thanks.

Simply download a more recent install of MSP and you'll find the
promised tutorials to be included.

David Z.

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

Date:    Fri, 30 Apr 1999 03:03:34 -0400
From:    Christopher Murtagh 
Subject: Re: supersonics

At 10:30 PM -0700 4/29/99, David Zicarelli wrote:
>cycle~ and all other MSP objects are supposed operate at the
>sampling rate that is current at the time the audio is turned on.
>I haven't tested any 96k equipment but the ASIO support driver, as
>an example, checks if the hardware supports various sampling rates up
>to 192kHz. My suspicion would be if cycle~ works at 22kHz
>and 44.1kHz and 48kHz, it should work at any other sampling
>rate.

Hrm, interesting.

>It is possible, on the other hand, that the behavior of objects
>such as cycle~ and phasor~ is not "correct" at frequencies
>above the sampling rate. I'm not sure what the correct behavior
>is supposed to be, however.

 The only thing I could think of would that would be an interesting feature
would be one that would do the equivalent of a brick wall filter. This
would mean that every operation that could potentially generate high
frequencies (or higher frequencies than what it was given) would have to
have this incorporated. I can sort of visualize how it should be done
conceptually, but then again, it is 3 AM, and I have just finished my
taxes... I might just be visualizing my imaginary friend. :)

Cheers,

Chris

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

Date:    Fri, 30 Apr 1999 02:28:38 -0700
From:    Charles Lyons 
Subject: Reinventing the wheel?

I'm having some trouble with a live performance sequencer I'm building
around the coll object. The basic idea is for the sequencer to store a
looped pattern of notes which can be mangled in various ways as it plays
back, or exchanged on the fly for a different pattern entirely. Where I've
run into trouble is with the pattern-switching function.

I'm using coll for a couple reasons: I want each note of a pattern (and its
associated velocity and duration) to be independently controllable by a
Peavey PC1600 (like an analog step sequencer), I want to be able to use
patterns that cycle over several measures, and I want to be able to have
several of these going at once, each on its own channel. The coll object
fits my requirements in every respect except one: switching the data it
contains to a different pattern.

My plan was to include several "storage colls" in each subpatcher (one per
channel) of the sequencer and use the "refer" command to point each
channel's sequence coll to the appropriate storage coll. Changing patterns
would be done by sending a "pattern change" number to all of the
subpatchers, each of which would then prepend its own unique name in front
of the number and pass that label on to the "refer" message which would
point the sequence coll to the storage coll of that name (ie subpatcher "A"
receives pattern change 9 and sends "refer A9" to its sequence coll).
However, there doesn't seem to be any way to format the argument for the
"refer" command, which means I'd have to embed a separate "refer [coll
name]" message for each and every coll in each subpatcher. Considering the
number of colls I'd be using this seems impractical. What I really need is
something that works like a coll but responds to the preset object (or some
equivalent).

If it isn't obvious by now, I'm using an old version of Max. Is there an
object or objects in 3.5 that would make my problem trivial, or is there
some better way to do what I'm trying to do that I've completely overlooked?

Thanks in advance for any advice,

Charles.

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

Date:    Fri, 30 Apr 1999 11:21:01 +0200
From:    jvkr 
Subject: Re: supersonics

>Does anyone know how to get rid of tones above 22000 Hz in MSP?

Actually, tones above 22000 Hz can not exist (in a 44.1 kHz sampled
system). (But I'm very interested in what you wanted to do with them?)

jvkr

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

Date:    Fri, 30 Apr 1999 12:46:05 +0100
From:    daniel landau 
Subject: movie manipulation to disk

Greetings,
As much as I use MSP for live dsp, I find it a versatile tool for my studio
work,
customizing my tools and algorithms working on sound files.  With all the
latest
interest of expanding the use of Max with video I would like to use it both
in real time
and as a studio tool.  So here's the question:  what are the possibilities
of recording
to disk the manipulations done on a quicktime movie.  I vaguely remember the
existence
of a screen motion capture utility.  Any one know of its existence?  Any
other
suggestion?

daniel

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

Date:    Fri, 30 Apr 1999 09:15:16 -0400
From:    Stonewall Ballard 
Subject: Re: supersonics

I don't want to get too pedantic, but we're discussing a fairly
esoteric subject, which requires a little math.

Sampled systems contain frequencies reflected around 1/2 the sample
rate, much like the hue wheel in a color picker.

If a frequency f is present, then so is (n * s +- f), where n is an
integer and s is the sample rate. As a tone rises from 0 Hz up to
s/2, identical tones fall from s down to s/2, from s up to 1.5 s,
etc. This is inherent in the math. There's nothing that you can do
about it.

This becomes a problem when you convert to analog, where you need to
filter out the unwanted spectrum, but also when modulating waves. A
multiplication (ring mod) will produce sum and difference tones that
may cross the s/2 boundary. The only thing that you can do about this
is to keep the sample rate high enough above the sum tones, perhaps
by filtering the original tones.

In an oscillator, you should drop high harmonics of the stored
waveform or the generator algorithm as the fundamental output
frequency rises.

It's possible to oversample some section of the system, perform
digital filtering with a very high sample rate there, then reduce the
sample rate at the section's output. An oversampled ring mod could
avoid the wraparound, but would have to run 4x or 8x faster than the
rest of the system. A similar sort of oversampling could be done with
an oscillator. I imagine that this could be added to Max, but the
best solution is to calculate your waves well below the Nyquist
limit, then filter and downsample for output.

It's been years since I tried to explain this, and this is off the
top of my head, so I apologize in advance if I got any details wrong.

   - Stoney

At 11:21 AM +0200 4/30/99, jvkr wrote:
> >Does anyone know how to get rid of tones above 22000 Hz in MSP?
>
>Actually, tones above 22000 Hz can not exist (in a 44.1 kHz sampled
>system). (But I'm very interested in what you wanted to do with them?)
>
>jvkr

  ----------------------------------------------------------------------
Stonewall Ballard                                       Stonetics, Inc.
Home: stoney@sb.org                              Work: sb@stonetics.com
http://stoney.sb.org/                         http://www.stonetics.com/

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

Date:    Fri, 30 Apr 1999 10:06:21 -0400
From:    Stephen Kay 
Subject: Reinventing the wheel?

>My plan was to include several "storage colls" in each subpatcher (one p=
er
>channel) of the sequencer and use the "refer" command to point each
>channel's sequence coll to the appropriate storage coll. Changing patter=
ns
>would be done by sending a "pattern change" number to all of the
>subpatchers, each of which would then prepend its own unique name in fro=
nt
>of the number and pass that label on to the "refer" message which would
>point the sequence coll to the storage coll of that name (ie subpatcher
"A"
>receives pattern change 9 and sends "refer A9" to its sequence coll).
>However, there doesn't seem to be any way to format the argument for the=

>"refer" command, which means I'd have to embed a separate "refer [coll
>name]" message for each and every coll in each subpatcher. Considering t=
he
>number of colls I'd be using this seems impractical. What I really need =
is
>something that works like a coll but responds to the preset object (or
some
>equivalent).

I may not totally understand what you want to do, but this sounds way
more complicated than it needs to be.

You could store *all* of the patterns in a single coll, and use an addres=
s
offset to change patterns.  Let's say you have a PC1600 (as you said)
controlling
16 steps of a pattern, at 16 different addresses (1 through 16).  If you
add
an offset of (n * 16) to the addresses, you can have multiple patterns
stored in the same coll (i.e. (0 * 16) + address =3D 1 through 16,
(1 * 16) + address =3D 17 through 32, (2 * 16) + address =3D 22 through 4=
8,
etc.)

Changing patterns then becomes easy: just change the offset.

Hope this helps.

You can also see my publibly available collX object (enhance coll
object) for more ideas at the following URL.

Stephen Kay
The MegaMAX Collection of professional max objects:
http://www.musikinetix.com

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

Date:    Fri, 30 Apr 1999 08:18:19 -0700
From:    Jon Christopher Nelson 
Subject: Composition Position at UNT---please post and distribute

The University of North Texas is an Equal Opportunity/Affirmative Action
Employer committed to cultural diversity in its educational programs.

University of North Texas College of Music

Announcement of Faculty Position

Composition

DutiesTeach composition courses and private composition lessons at the
undergraduate and graduate levels. Other duties may include directing
the new music ensemble, coordinating student composition recitals,
and/or assisting in the management of computer music facilities and
events.

Qualifications College teaching experience, record of accomplishment as
a composer. Master's degree required; doctoral degree preferred.

Rank Nine-month, full-time, non-tenure-track appointment at the rank of
lecturer

Dates August 23, 1999 through May 13, 2000

Materials Application letter, curriculum vitae, three letters of
recommendation, sample course syllabi, academic transcripts, three
representative scores and audio recordings.

Application Mail all materials to:

       Composition Search
       c/o Thomas Clark, Associate Dean
       UNT College of Music
       P.O. Box 311367
       Denton, TX 76203-1367

Deadline To ensure full consideration, all materials specified above
should be received by May 10, 1999.

Information Phone: 940 565-4926 (Joseph Klein, search committee chair)
Fax: 940 565-2002
E-mail: jklein@music.unt.edu

The College of Music, offering bachelor's, master's, and doctoral
degrees to approximately 1,000 undergraduate and 400 graduate students,
maintains nationally/internationally recognized programs
in virtually all disciplines of music study, as well as one of the most
complete music libraries in the nation. For more information, visit our
web page. http://www.music.unt.edu

The University of North Texas is an Equal Opportunity/Affirmative Action
Employer committed to cultural diversity in its educational programs.

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

Date:    Fri, 30 Apr 1999 09:22:33 -0600
From:    Steve Anderson 
Subject: Re: MAX Digest - 28 Apr 1999 to 29 Apr 1999 (#1999-130)

         Reply to:   RE: MAX Digest - 28 Apr 1999 to 29 Apr 1999
(#1999-130)
>Date:    Thu, 29 Apr 1999 21:20:54 +0200
>From:    Jeffrey Burns 
>Subject: supersonics
>
>Does anyone know how to get rid of tones above 22000 Hz in MSP?

I have experienced nasty high frequency noise using DAW with theater PA
systems.
This "higher harmonic aliasing" did not yield to any software technique
and did not appear with the computer speakers alone. I made an inline
tunable resonant notch filter circuit that did not have an objectionable
effect
on the program material, that just EQ'ing on the mixer did  (although
that worked, too, it lost brightness). The situation improved when the
signal
was on balanced (XLR instead of 1/4" into TRS). As I remember the center
freq.s were like, 13 khz and 26 khz. I believe 43660 is beyond human and
most audio equipments' range.

steve anderson
laser dreams

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

Date:    Fri, 30 Apr 1999 12:25:53 EDT
From:    Bob Ostertag 
Subject: multiple Korg 1212's

I am not familiar with all the technical issues, but, for what it is worth,
the person at Korg who did all the initial development for the 1212 card
told
me when I got mine it would never be possible to run more than one...

x
Bob Ostertag

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

Date:    Fri, 30 Apr 1999 22:47:44 +0200
From:    Sun Electric 
Subject: MSP :  Adressing outputs on Audiowerk8

adressing outputs 3-8 on an Audiowerk8 using DAC~   -

can anybody please tell me how this is done? (Drivers etc.)
forgive me if this topic has been on before.
thanks
tom

Sun Electric GEC
http://www.bbtt.com/sunelectric

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

Date:    Fri, 30 Apr 1999 14:26:16 -0700
From:    Alex Stahl 
Subject: Re: MSP :  Adressing outputs on Audiowerk8

Assuming you already have the card working with dac~s default channels 1
and 2, you can type in channel-number arguments to the dac~ object. For
example, dac~ 5 6 7 8 should give you a four inlet object that sends
signals out channels 5-8 on the card.

At 1:47 PM -0700 4/30/99, Sun Electric wrote:
>adressing outputs 3-8 on an Audiowerk8 using DAC~   -
>
>can anybody please tell me how this is done? (Drivers etc.)
>forgive me if this topic has been on before.
>thanks
>tom
>
>Sun Electric GEC
>http://www.bbtt.com/sunelectric

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

Date:    Sat, 1 May 1999 00:42:51 +0200
From:    Peter Castine 
Subject: Re: supersonics

On around 30-4-99 6:58, Jeffrey Burns said something like:

>Thanks for your responses about supersonics. Not being trained in
>acoustics, I'm still somewhat confused. The MSP manual leeds me to believe
>that I should avoid producing supersonics, since they will be turned aroun=
d
>into unwanted audible frequencies. Of course, I haven't written a
>performance patch with a 43000 Hz cycle~ object connected to dac~. But say
>that I've got a *~ object which receives a 17000 Hz sine tone in its right
>inlet, doing ring modulation on an acoustical piano sound coming in on the
>left. Isn't it possible that some unwanted supersonics will be produced,
>which I have to get rid of somehow? Is there no filter that will do the
>job? Thanks again.

Jeff,

Let's say you've got a ring modulator with 17kHz sine wave coming in one
inlet. Then maybe at some stage you've got a 16kHz sine wave (or
component in a complex sound with this frequency) coming in the other
inlet.

You would expect the ring modulator to spit out a 33kHz sine wave (or 33
kHz component of a comple sound). And, in a sense it does.

The thing is, (and I think this is what Stoney was trying to explain) is
that, digitally, any signal representing a sine wave is really
representing an entire _equivalence class_ of sound waves.

To get a bit more concrete, lets assume a sampling rate of s=3D48 kHz (it
makes the arithmetic a little easier for me).

In this case, the digital representation of the sine waves of 15kHz, 63
kHz, 111kHz, 159kHz, etc, all look exactly the same. Compare the digital
representation of any of these frequencies sample-by-sample, and they're
identical (at the given sampling rate! at a higher rate, you'd be able to
see--dunno about hearing--a difference). The same holds for -15kHz,
33kHz, 81kHz, 129kHz, etc. (although these may be phase shifted by 180=B0
or something, I can't quite remember).

The long and short of it is that the output of that ring modulator that,
on naive examination, one might expect to be 33 kHz, "sounds like" 15kHz.
(At s=3D44.1, the result would "sound like" 11,100 Hz). Once the signal is
processed by a real-life DAC, a low pass filter will try to make sure
that there is no analog signal above s/2.

Is this bad? It depends what you want.

If you're trying to generate some kind of harmonic structure, foldover
can be a problem. If you've got an MSP patch (or csound program) that's
generating f+2f+3f+4f+5f of an input frequency, you'll get a nice
harmonic sound ("major triad") until the input frequency gets a bit over
4kHz (at conventional sampling rates). A bit over 4kHz the top partial
will fold over and will sound like anything _but_ the major third in a
major triad.

This is the sort of thing that the MSP manual (as I recall) is trying to
warn people about.

On the other hand, if you're generating sounds that aren't modeled on the
overtone series, foldover may not be a problem at all. When John Chowning
was talking about creating bell-like timbres with FM back in the 70s, he
positively reveled in creating frequencies higher than s/2, because the
foldover created (even more) non-harmonic components in the sound.

If you are worried about your ring modulator producing frequencies higher
than s/2, you have to take precautions _before_ the ring mod. For
instance, if you know that one inlet is set to a sine wave at 11kHz,
you'd need to shunt the other input through a low-pass filter at around
10kHz and connect the low-pass filter's output to the ring mod input. If
the first input to the ring mod is a varying frequency, you may want to
calculate a varying input for the cutoff frequency of the low pass.

Hope this makes sense; hope I haven't misunderstood the problem and
talked about something much simpler/sillier/etc. than the problem at hand.

Cheers,

Peter

PS to Jeff: I can play you a tape piece I did in the 70s that used
[analog] ring-mod quite extensively, producing some interesting results.
I was doing my damndest to create non-harmonic structures from the input
signal (a soprano). Was pretty succesful with the non-harmonic
structures, but the singer's soprano stayed there to the end!

----------------- 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!

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

End of MAX Digest - 29 Apr 1999 to 30 Apr 1999 (#1999-131)
**********************************************************