<div dir="ltr">Hi Andrea, check out the technique described in section 9.6 of Miller's book: Phase bashing. It's implemented as I10.phase.bash.pd in Pd's built-in documentation. It's more complicated than the doppler-based shifting you're looking at, but it's dramatically better for preserving the timbre of the original input signal. Doppler and playback speed solutions (which is what granular pitch shifting usually involves) will stretch and contract the spectral envelope, which can cause serious aliasing. There are also the pitch halving and <span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">doubling t</span>echniques in E03.octave.divider.pd and <span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">G06.octave.doubler.pd</span>, which add or remove harmonics in ways that don't disturb the spectral envelope too much and therefore still sound natural. Of course, then you're limited to octave jumps which is probably not what you want.<div><br></div><div>I know you're not looking for extern suggestions, but if you download [tune~] from deken, you can see how I adapted the phase bash patch for real-time use. It might be useful in connection with Miller's original patch for understanding the technique.</div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Mar 26, 2018 at 11:59 AM,  <span dir="ltr"><<a href="mailto:afleck@inventati.org" target="_blank">afleck@inventati.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello,<br>
<br>
I started thinking about this problem because I was doing some frequency modulation, but when I tried to change the carrier frequency directly with notein and mtof~  there were sometimes unpredictable results (which can sometimes, but not always, be remedied by maintaining a fixed ratio between the carrier and modulation frequencies).<br>
<br>
DAWs like Ableton allow you to select a sample (such as a kick drum) and then play it at a bunch of different pitches (i.e. with a midi keyboard). How do they accomplish this? Is it with variable delay?<br>
<br>
I've been looking at the section on pitch shifting in Puckette's book (<a href="http://msp.ucsd.edu/techniques/latest/book-html/node115.html#sect7.pitchshift" rel="noreferrer" target="_blank">http://msp.ucsd.edu/technique<wbr>s/latest/book-html/node115.<wbr>html#sect7.pitchshift</a>), but I thought I would ask if there's an easier way before I take the plunge.<br>
<br>
I've tried granular synthesis but it doesn't preserve the timbre very well.<br>
<br>
To be clear, I don't just want suggestions of externals, I actually want to program it myself (in pd-vanilla)<br>
<br>
Best,<br>
Andrea<br>
<br>
______________________________<wbr>_________________<br>
<a href="mailto:Pd-list@lists.iem.at" target="_blank">Pd-list@lists.iem.at</a> mailing list<br>
UNSUBSCRIBE and account-management -> <a href="https://lists.puredata.info/listinfo/pd-list" rel="noreferrer" target="_blank">https://lists.puredata.info/li<wbr>stinfo/pd-list</a><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">William Brent<br><a href="http://www.williambrent.com" target="_blank">www.williambrent.com</a><br><br>“Great minds flock together”<br>Conflations: conversational idiom for the 21st century<br><br><a href="http://www.conflations.com" target="_blank">www.conflations.com</a></div>
</div>