hi charles,

thanks for doing this!!

i copied your first patch (with the changes you suggested) to my bela and 
hooked up my hexaphonic bass pickup to it (well one string to start), and it 
works pretty well!

i will play with the threshold settings etc. as it is now, the pitch seems to 
go down a half step every time i stop a note on the bass so that the pll osc is 
a semitone off. not sure this will be a problem in a “proper” implementation, 
since i mostly want the pll to follow my playing (so i will just mute the osc 
when i don’t play)

i do not currently grasp the math in the fexpr~ objects, but will try to get 
into it…

is it hard to implement a detune factor? so that we could adjust the pll 
transposition (octave up/down, fifth etc.)

thanks so much already!!


> On 11 Mar 2023, at 19:49, Charles Z Henry <czhe...@gmail.com> wrote:
> 
>> If the phase is <0.5,  then we're receiving pulses at more than double
>> the current freq.  In that case, don't update phase, update frequency.
>> If the phase is >0.5 and <2.0, then we're within one octave.
>> The maximum phase update amount is (1-phase)
>> The maximum frequency update amount is ((1-phase)/phase)*freq
>> Then, if the phase is >2.0, then the input freq is more than 1 octave
>> lower.  In this case, don't update phase, update frequency.
> 
> The cool part is this can all be implemented at a basic level in just
> a few lines of code with fexpr~!  (I started in on it just to write
> this part, figuring it takes me 20 min)
> 
> fexpr~ modf($y1+$f5*$y2+$f3*$x1*$y3);
> if($y6!=$y6[-2], $y6, $y2+$f4*$x1*$y4);
> if($y5<0.5, 0, if($y5<2, 1-$y5, 0));
> if($y5<0.5, $y2, if($y5<2, (1-$y5)/$y5*$y2, -1.414*$y2/sqrt($y5)));
> if($x1[-1]==1, $y1+$f5*$y2, $y5+$f5*$y2);
> if($y6!=$f2, $f2, $y6)
> 
> But just so difficult to explain, I created a mathcha document for it,
> if you expected to be able to start modifying it and tuning it up for
> use.
> 
> https://www.mathcha.io/editor/OBgdJIo6UzgsgZHp8K1VSjK188YTN4eVJyHrz1q8G
> 
> work in progress




_______________________________________________
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list

Reply via email to