Subject: MAX Digest - 12 Jun 1999 to 13 Jun 1999 (#1999-178)
Date: Mon, 14 Jun 1999 00:00:11 -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 6 messages totalling 211 lines in this issue.

Topics of the day:

  1. Note-on/-off checking (2)
  2. Karplus Strong (2)
  3. Karplus Strong object
  4. Karplus-Strong ?

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

Date:Sun, 13 Jun 1999 01:36:31 -0700
From:dudas <dudas@CNMAT.BERKELEY.EDU>
Subject: Re: Note-on/-off checking

Regarding the Cris Ewing & Stephen Kay note-on/off thread:

dealing with note-on and note-off stuff can be a real nightmare.

I think Stephen's suggestion is a good starting point, although you never
know what kind of problems you will run into when dealing with this on-off
logic stuff - for example, if you solve it for two notes, what might happen
when your patch gets three of the same note???

Using the 'table' object instead of a 'coll' might be a bit more efficient,
though, especially if you're dealing with a lot of fast notes on an older
machine.

I can't think of any ready-made examples which would solve Cris's note
releasing problem. In the old "dudas tools" archive on the ircam FTP
there's a "patcher as object" called 'onoff', which sends note-ons out the
left and note-offs out the right (take a look at the help file that comes
with it). It might help save you a little bit of time when you begin making
a patch to solve your problem.

Also, a useful object to become acquainted with is 'offer', which is useful
when you are modifying the note-on values and want to make sure you modify
the note-offs accordingly (its help patch even gives an example of how to
do this). It's probably not very useful for your premature note-off
problem, but it might come in handy one day.

-R

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

Date:Sun, 13 Jun 1999 02:09:05 -0700
From:dudas <dudas@CNMAT.BERKELEY.EDU>
Subject: Re: Karplus Strong

Marcel Wierckx writes:
>Have you checked out the Karplus Strong patch that was included in last
>summer's Max/MSP night school at Berkeley? I don't have it handy anymore,
>but if anyone could provide the address where one can download the patches
>from the classes I'm pretty sure it's in there. I can't remember if it
>addressed the 689Hz fundamental issue, though.

The karplus-strong example we showed at last year's Max/MSP Night School
also had the "dreaded fundamental frequency limitation" because it was a
patch made by using the tapin~/tapout~ objectsin a feedback loop with


filtering - and there's no way of getting around the maximum fundamental
imposed by the vector size, unless you make your own object. (Or unless
you try something sneaky like Neal Farwell's loop subdivision trick... nice
idea! bravo!!!)

Anyway, before anyone asks "where can I get my own copy of this Max/MSP
Night School patch?", I'm going to quote Matt Wright's original
announcement about last summer's MMNS patches (posted 11 Oct 1998):

------------
CNMAT hosted a week-long night school on Max/MSP taught by the esteemed
David Zicarelli, David Wessel, Leslie Stuck, Richard Dudas, and me [Matt
Wright]. We made our example patches available for download, mostly as a
service to our students.

Examples include additive synthesis, FM, sample playback synthesis,
granular synthesis, looping, Karplus/Strong waveguides, event/signal
conversions, real-time sampling, frequency domain fun, convolution, and all
kinds of Max tricks for complexity control, dealing with lists, etc.

Keep in mind that these are not tutortials. They're basically undocumented
and terse; a lot of them were built on the fly during class. You'll
understand them a lot better if you were in the class!

You can get them from the CNMAT WWW site:

http://cnmat.CNMAT.Berkeley.EDU/MAX/NightSchool/
-------------

-R

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

Date:Sun, 13 Jun 1999 03:50:52 -0700
From:Stefania Serafin <serafin@CCRMA.STANFORD.EDU>
Subject: Karplus Strong object

Hi,

for who is interested,I uploaded an object called kastro~ that
implements a Karplus-Strong algorithm.

You can find it in ftp://ftp.ircam.fr/pub/forumnet/max/incoming

Have fun!

Stefania.

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

Date:Sun, 13 Jun 1999 16:42:12 EDT
From:Panaiotis Panaiotis <Panaiotis@AOL.COM>
Subject: Note-on/-off checking

I beleive my object 'notegen,' which is in the unsupported objects folder
that comes with Max 3.0 and later, was created to do exactly what you are
trying to do. It's in the subfolder PanaiotisObjects.

-Panaiotis

In a message dated 6/12/99 11:03:04 PM, LISTSERV@LISTS.MCGILL.CA writes:

>------------------------------
>
>Date:
Sat, 12 Jun 1999 14:00:23 -0500
>From:
Cris Ewing <cewing@STUDENTS.UIUC.EDU>
>Subject: Note-on/-off checking


>
>I am a new max user, so please excuse me if this question has an
>absurdly simple answer.
>
>I have created a max patch that creates a piece of music by playing back
>altered versions of input melodies at scheduled intervals. It uses a
>Yamaha disklavier as the instrument and my problem is this:
I wish to
>play more than one melody at a time, but if a particular key on the
>disklavier is being used by one melody, it is unavailable for another.
>I wish to be able to release a note currently held and rearticulate it.
>On the surface this seemed to be rather simple, just check to see if a
>note is currently "on" before outputting a new note-on message, and if
>it is, send a note-off first. Unfortunately, this doesn't work since
>the note already being heald has its own note-off which will come
>eventually. If the first note is turned off and rearticulated before
>the
original note-off arrives, the original note off releases the new
>note (usually long before it would have been released).
>
>I am hoping that someone has a patch they have worked out which can keep
>track of the flow of note-on and note-off messages to allow for
>releasing and re-articulating specific pitches on the disklavier.
>
>If this message seems confusing, please ask for clarification. I'm not
>sure I've described the problem accurately.
>
>thanks all, and I hope you can help,
>
>CPE

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

Date:Mon, 14 Jun 1999 00:37:27 +0200
From:muki pakesch <mpakesch@T0.OR.AT>
Subject: Re: Karplus Strong

Marcel Wierckx <mwierc@PO-BOX.MCGILL.CA> wrote:
> Have you checked out the Karplus Strong patch that was included in last
> summer's Max/MSP night school at Berkeley? I don't have it handy anymore,
> but if anyone could provide the address where one can download the patche=
> s

http://cnmat.CNMAT.Berkeley.EDU/MAX/nightschool

hth
cheers,
muki
__________________________________________________________________
| muki pakesch|
||
| mailto:mpakesch@t0.or.athttp://www.t0.or.at/~mpakesch|
|__________________________________________________________________|

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

Date:Sun, 13 Jun 1999 17:50:27 -0600
From:Kevin Walker <kwalker@XMISSION.COM>
Subject: Re: Karplus-Strong ?

>How would I make a classic Karplus-Strong resonator in MSP (short delay
>line, feeding back via a low-pass filter)? Tapin/tapout works but has a
>maximum fundamental of 689 Hz (at 44100 sampling, vectors size 64). Delay~
>can't feed back, nor can comb~ except internally (and unfiltered).
>
>I'm probably missing something obvious... please point me to a suitable
>example patch or archive.

Another Karplus object (with source code) is available at


ftp://ftp.suwa.org/karplus.sea.bin


(self expanding archive, macbinary).

The documentaion is in an incomplete and messy state (never got around to
cleaning it up), but the object itself is solid. The object can be
"plucked" with (a) white noise (standard method), (b) breakpoint waveform,
or (c) waveform from a buffer~ object. The later two pluck methods can
optionally scale the plucking wave form with frequency. An interesting use
of (b) or (c) is to pluck the string with a formant, producing vowel-like
notes. (The example in the archive only works well for low notes, but
could be modified for a greater range.)

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

End of MAX Digest - 12 Jun 1999 to 13 Jun 1999 (#1999-178)
**********************************************************