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
On Sat, 12 Feb 2011, Ed Kelly wrote:
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?
Make the envelope sync itself with the time of the sample instead of the real time ?
What do you want the timing to be like ?
| Mathieu Bouchard ---- tél: +1.514.383.3801 ---- Villeray, Montréal, QC
This is what I mean... e
Metastudio 4 for Pure Data - coming soon! Metastudio 3 still available at http://sharktracks.co.uk/puredata
----- Original Message ---- From: Mathieu Bouchard matju@artengine.ca To: Ed Kelly morph_2016@yahoo.co.uk Cc: PD List pd-list@iem.at Sent: Sat, 12 February, 2011 0:13:28 Subject: Re: [PD] Pitch envelope
On Sat, 12 Feb 2011, Ed Kelly wrote:
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?
Make the envelope sync itself with the time of the sample instead of the real time ?
What do you want the timing to be like ?
| Mathieu Bouchard ---- tél: +1.514.383.3801 ---- Villeray, Montréal, QC
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@yahoo.co.uk To: pd-list@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@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
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@hotmail.com To: morph_2016@yahoo.co.uk; pd-list@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@yahoo.co.uk To: pd-list@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@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
On Mon, 21 Feb 2011, Ed Kelly wrote:
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.
you're computing exp(0.0577623*(y*120-60+pitch)) before a [line~].
first you will have to explain why the [line~] ought to occur before the exp, because that makes no sense to me.
whenever i take a breakpoint segment and break it in two such that I get two segments with the same slope, it shouldn't sound any different, but it has to sound different if you do the exp (or any other non-affine changes) before the [line~].
| Mathieu Bouchard ---- tél: +1.514.383.3801 ---- Villeray, Montréal, QC
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.
you're computing exp(0.0577623*(y*120-60+pitch)) before a [line~].
first you will have to explain why the [line~] ought to occur before the exp, because that makes no sense to me.
Yes, I realised that the other day, and fixed it as-per enclosed patch.
whenever i take a breakpoint segment and break it in two such that I get two segments with the same slope, it shouldn't sound any different, but it has to
sound different if you do the exp (or any other non-affine changes) before the [line~].
Well, at least it's a pitch envelope now, and not a speed envelope.
E