[PD] Pitch envelope

Ed Kelly morph_2016 at yahoo.co.uk
Tue Feb 22 00:01:43 CET 2011


Herm.. not sure,

What I mean is this. If I have a sample of 1000ms, and a breakpoint envelope of 
1000ms duration, the two will stay the same length as long as I don't make any 
points on the graph (i.e. the transpose envelope stays at 0 all the way 
through).

With a transposing sampler, as soon as the transposition is increased the time 
of the sample playback is decreased, so the transposition envelope will not 
finish before the sample is played out. Similarly, if the transposition envelope 
is goes down, the transposition envelope will finish before the sample does.

What I am looking for is a mathematical way to calculate the length of a 
transposition envelope relative to its effect on a finite-length sample, and so 
to derive a length for the envelope that will allow the envelope  and the sample 
to play out over the same duration. 


The transposition will continuously change the length of the sample, and so from 
my limited knowledge of mathematics I reckon it will take some integration of 
the breakpoint envelope to calculate this number. I'm just not sure how to do 
this.

Best,
Ed


Metastudio 4 for Pure Data - coming soon!
Metastudio 3 still available at http://sharktracks.co.uk/puredata




________________________________
From: Andrew  Faraday <jbturgid at hotmail.com>
To: morph_2016 at yahoo.co.uk; pd-list at iem.at
Sent: Sat, 12 February, 2011 10:07:26
Subject: RE: [PD] Pitch envelope

 What I would do is use your typical sound playback algorithm, ([phasor~] 
feeding [tabread~] and relevant arithmetic. But take a side chain from the 
[phasor~] to another [tabread~]  via a [*~ 10000](or whatever length). and draw 
your pitch curve into an array (with it's length in that [*~] and with a y range 
of something like 0 - 2). sending the output of the second tabread back to the 
phasor(which should happily change it's speed sample-by-sample without losing 
it's position) by a multiply (from your original speed calculation.

Something like...

[O]
 |
[arraysize  sound]
 |  \
 |  [s sample_length]
[expr 44100 / $f1]
 |
 |    [r pitch_curve]  
 |    /
[*~]      
 |
[phasor~]
 |   \
 |   [s phasor]
 |
 |   [r sample_length]
 |   /
[*~]
 |
[tabread~ sample]
 |    \
[dac~]

[r phasor]
 | 
 |   [O]
 |    |
 |   [arraysize pitch]
 |   /
[*~]
 |
[tabread pitch]
 |
[s pitch_curve]

(I've put that together quickly and in the middle of the night, might well have 
made a mistake or two)

Of course, while this will change the speed of playback based on the position of 
playback, it is very difficult to express it as musical pitch differences. 
setting the scope of your pitch curve to 0 - 2 means that by multiplying it by 
the 'correct' playback speed you can go down to no movement at all (which will 
probably stall this sytem) and all the slow speeds related to this and up to 
twice the original playback speed (one octave above). Which will be good for 
creative sound, as I say, hard to scale as semiquavers.

Andrew
> Date: Sat, 12 Feb 2011 00:00:57 +0000
> From: morph_2016 at yahoo.co.uk
> To: pd-list at iem.at
> Subject: [PD] Pitch envelope
> 
> So...
> 
> A sample has duration (x)
> 
> A breakpoint envelope has pitch transposition from -60 to +60 semitones.
> 
> How do I work out what that would mean for the duration - i.e. how do I make it 
>
> so the whole pitch envelope happen within the duration of the sample?
> 
> I'm not a mathematician, and have been looking at integration, but I can't work 
>
> it out. Can anybody help me?
> 
> X
> Ed
> 
>  Metastudio 4 for Pure Data - coming soon!
> Metastudio 3 still available at http://sharktracks.co.uk/puredata
> 
> 
> 
> 
> 
> _______________________________________________
> Pd-list at iem.at mailing list
> UNSUBSCRIBE and account-management -> 
>http://lists.puredata.info/listinfo/pd-list



      
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20110221/30061534/attachment.htm>


More information about the Pd-list mailing list