[PD] Pure coherent noise (Perlin noise)

Kyle Klipowicz kyleklip at gmail.com
Wed Nov 15 17:31:23 CET 2006


Great breakdown Andy!  Thanks for the mini-lecture.  Is there a toot on your
site that uses these techniques?

~Kyle

On 11/15/06, padawan12 <padawan12 at obiwannabe.co.uk> wrote:
>
> On Wed, 15 Nov 2006 13:00:55 +0100
> <renaud.herne at belgacom.be> wrote:
>
> >
> >
> > Martin,
> >
> > We can imagine applications of multidimensional noise.
>
> Yes, the concept is clear enough, for example static on a black
> and white television screen is 3D noise (x, y, brightness) and for
> a colour picture we can add two or three more depending on the encoding.
>
> But you need to be rigorous in defining a few things...
>
> > I was thinking about a melodic line piloted by a one dimensional Perlin
> noise.
>
> No problem. In d1 you have only a number line on which new values appear
> with a magnitude given by a probability inherent in the noise spectrum. In
> this case
> there is no difference between noise and a walk. If the random signal is
> bipolar
> then adding a new value to the previous one (a one dimentional vector with
> a sign
> if you like) then the result is not distinguishable from simply using the
> random
> signal values. The view of the noise as a spectrum, and the view of the
> noise as a
> walk, which on balance will have an average of 0 and always return to the
> origin,
> coincide. With an infinite number of vectors you will cross the origin an
> infinite
> number of times regardless of your scale.
>
> In d2 we have to look at things in a clearer way. Now it really makes more
> sense to look at it as a walk on a 2D surface (and it helps to switch
> between
> cartesian pairs and polar pairs so that we can control direction and
> magnitude
> independently too) Why? Well consider the jumps that would occur if you
> just
> used an x and y value as two independent random values. On one step it
> could occupy
> an extreme corner, say 255,255 and on the next step it might go to 0,0.
> For a melodic
> contour with sensible deviations you need to take the last x,y coords and
> add a
> scaled (small) x, y offset to it on each step.
>
> I think this is what you mean by track when you say...
>
> > But the second will still able to "track" the first one, to come closer,
> to
> > go away and then back close to the initial pattern.
>
> You can see experimentally and from proofs that it will still return to
> the origin
> for any number of iterations. Practically it makes sense to wrap your d2
> plane
> (into a sphere/torus or reflected onto aliases of itself) because real
> life random
> numbers you might want to use to perform music and the theoretical ones we
> are
> discussing are different worlds. In a gig you probably want the numbers
> constrained
> in spacetime in a reasonable way so that the audience don't have to wait
> millions
> of years for it to come back to a useful range.
>
>
> > Also because the noise (chaos in fact) generated by libnoise is
> deterministic,
> > one can also experiment with two patterns in advance (or delayed)
> respectively
> > from one to another.
>
> Your chances of perceiving those relationships are small. Even though it's
> pseudo-noise you would be best to treat it as real noise for all practical
> purposes.
> Which leads us to the concept of noise in d3. Given an infinite number of
> random
> vectors in d1 and d2 the probability of returning to the origin is 1. In
> other words
> the walk occupies a bounded spacetime, even if it is unbounded in either
> space or time
> separately. But in d3 the probability of it returning to O is not one, not
> even with
> infinite time, it's about 0.3 afair according to Polya. This is profound
> and has many
> implications, not least of all for space travel. I haven't really
> considered what
> that implies for music, but you still have to coax or coerce your random
> 3D walks
> into a space you are happy with, which is non trivial in 3D.
>
>
> > In other words, I would use it as a "control" rather than as a "signal"
> >
>
> Yep, as a control signal rather than an audio/visual signal. Which means
> choosing a mapping of your parameter space onto the control space, for
> example
> in a trumpet melody, d1=pitch, d2=embrochure d3=dynamic, d4=mute
>
> d1 is constrained to a small range but free to move in fairly
> unconstrained jumps
> d2 and d3 are codependent, there are values of pairs d2,d3 that don't
> exist in reality
> (or for your synthesis model) so they have to be "linked" in a sensible
> way.
> d4 is probably a boolean or only occupies a few values, the mute is either
> on,
> partially on, or off (disclaimer: I'm not a trumpet player so I'm guessing
> this).
>
> So as you see, the control space you may have and the parameter space you
> wish
> to navigate may not be congruous (I think that's the right word)... they
> don't
> fit over each other nicely because some dimentions are stretched. If you
> can
> normalise your spaces you can do musically interesting things, like
> rotating
> a gesture in the pitch-dynamic plane etc../
>
> Hope this makes some sense, it really is a subject that benefits from
> pictures
> and diagrams more than most.
>
>
> >
> >
> > -----Original Message-----
> > From: martin.peach at sympatico.ca [mailto:martin.peach at sympatico.ca]
> > Sent: 14 November 2006 18:17
> > To: renaud.herne at belgacom.be; czhenry at gmail.com; pd-list at iem.at
> > Subject: Re: RE: [PD] Pure coherent noise (Perlin noise)
> >
> > You can make coherent noise by adding filtered noise~ objects. See the
> attached patch. This is similar to one-dimensional Perln noise. Would two-
> or three- dimensional noise be useful in pd?
> > Martin
> >
> >
> > >
> > > From: <renaud.herne at belgacom.be>
> > > Date: 2006/11/14 Tue AM 10:11:25 EST
> > > To: <czhenry at gmail.com>,
> > >     <pd-list at iem.at>
> > > Subject: RE: [PD] Pure coherent noise (Perlin noise)
> > >
> > >
> > >
> > > Thanks for your enthusiasm Chuck
> > >
> > > I was thinking about something like this.
> > > The tutorial made by johannes m zmölnig
> > > (http://iem.at/pd/externals-HOWTO/ ) seems explicit enough But I
> wanted to be sure that it does not exist first.
> > > I try to avoid reinventing the wheeel (although mine will be rounder
> > > than what already exists ;-)
> > >
> > > I am just amazed that there is no (not yet?) such thing as Perlin
> noise in PD.
> > > It could be useful to add some correlated variations of user input and
> be the source of various effects.
> > > I used to link to libnoise for some DemoGL applications (a framework
> > > to develop OpenGL appications in C++ http://www.sd.nl/demogl/) If it
> sounds as good as it looks there must be interesting things to do.
> > >
> > > I'll let you know
> > >
> > > Renaud
> > >
> > >
> > > -----Original Message-----
> > > From: Charles Henry [mailto:czhenry at gmail.com]
> > >
> > > Sent: 13 November 2006 18:05
> > > To: renaud.herne at belgacom.be
> > > Subject: Re: [PD] Pure coherent noise (Perlin noise)
> > >
> > > Hey, Renaud,
> > >   If you've got libnoise, then you might as well build a pd external,
> which is a kind of "wrapper" where you can supply arguments to your
> functions, and include methods for changing the arguments in real time.
> > >   It's not hard, although the first one (external) usually is hard to
> understand.  See IOHannes' Howto build an external documentation first
> > > off.   Then, simply "rip off" pan~ and supply your own code to the
> > > perform routine, change the name, include your library headers, change
> the makefile to include your library, and you're off and running.  To
> understand more functionality of making a pd external, read through
> m_pd.h--all of the Pd-specific functions you can use in an external are
> there for you.
> > >   There are also many "tiny" details you will need to learn to get
> just what you want.  Good luck, and feel free to ask any questions.
> > >   There was a previous post regarding Perlin noise, although I don't
> think it was resolved.  Search the Pd-list archives to find out more.
> > >
> > > Chuck
> > >
> > >
> > > On 11/13/06, renaud.herne at belgacom.be <renaud.herne at belgacom.be>
> wrote:
> > > >
> > > >
> > > > Hello,
> > > >
> > > > Do someone know if there is a class that generates coherent (Perlin)
> > >
> > > > noise in Pure Data?
> > > > OK, I could build it myself by interpolating random numbers or
> > > > linking
> > >
> > > > to libnoise but if it already exists...
> > > > Thank you
> > > >
> > > > Renaud
> > > >
> > > > **** DISCLAIMER ****
> > > > http://www.belgacom.be/maildisclaimer
> > > >
> > > > _______________________________________________
> > > > PD-list at iem.at mailing list
> > > > UNSUBSCRIBE and account-management ->
> > >
> > > > http://lists.puredata.info/listinfo/pd-list
> > > >
> > >
> > > **** DISCLAIMER ****
> > > http://www.belgacom.be/maildisclaimer
> > >
> > > _______________________________________________
> > > PD-list at iem.at mailing list
> > > UNSUBSCRIBE and account-management ->
> > > http://lists.puredata.info/listinfo/pd-list
> > >
> >
> >
> > **** DISCLAIMER ****
> > http://www.belgacom.be/maildisclaimer
> >
> > _______________________________________________
> > PD-list at iem.at mailing list
> > UNSUBSCRIBE and account-management ->
> http://lists.puredata.info/listinfo/pd-list
>
> _______________________________________________
> PD-list at iem.at mailing list
> UNSUBSCRIBE and account-management ->
> http://lists.puredata.info/listinfo/pd-list
>



-- 

http://theradioproject.com
http://perhapsidid.blogspot.com

(((())))(()()((((((((()())))()(((((((())()()())())))
(())))))(()))))))))))))(((((((((((()()))))))))((())))
))(((((((((((())))())))))))))))))))__________
_____())))))(((((((((((((()))))))))))_______
((((((())))))))))))((((((((000)))oOOOOOO
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20061115/7f00a419/attachment.htm>


More information about the Pd-list mailing list