<div dir="ltr">There are all excellent suggestions!<div>I happen to have a prototype with a teensy 3.2 and midi In/Out capabilities on the bench, so I think I'm going to experiment with that first.</div><div>The counter method is an open-loop approach, pretty much, and what I'm going to try first. I suppose if I closed the loop somehow it would become a "proper" DPLL. Maybe if I build a software phase detector and use the error signal in combination with the counted value to get more steady results?</div><div>I believe going for the maximum clock speed and resolution combination for the frequency chosen (clock frequency / counter size < max midi clock frequency ?) is what will give the most accurate results.</div><div><br></div><div>Spiros</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, 17 Dec 2021 at 19:24, The SynthiMuse <<a href="mailto:synthimuse@gmail.com">synthimuse@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div>The clock multiply technique I used ( just once ) is that I just outputted multiple midi clock messages for every incoming clock message.<br></div>I measured the incoming clock period so that when I was sending multiple clocks out, I spaced them appropriately between incoming so there was minimum jitter in the outgoing stream.<br></div><div>The max practical speed I was working to was 250bpm. This would equate to a clock pulse every 2.5mS.</div><div>I suppose I implemented a coarse DPLL and it worked ok, with the limitation on maximum speed.<br></div><div>I'm afraid the code is long lost or I would happily pass it to you.<br></div><div>Gerry</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Dec 17, 2021 at 10:50 AM Roman Sowa <<a href="mailto:modular@go2.pl" target="_blank">modular@go2.pl</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Measure incoming clock period with a timer. Then divide that measured <br>
timer value by the number you want to multiply the frequency. If you say <br>
anything between 10 and 100 is fine, then dividing by 32 sounds like <br>
walk in a park. And that divided value (or simply shifted in case of 32) <br>
is then loaded as period for another timer that outputs a pulse on overflow.<br>
This way after each incoming clock pulse you get immediate response of <br>
updated frequency multiplied by 64 (or whatever other value)<br>
<br>
Roman<br>
<br>
W dniu 2021-12-17 o 08:03, Spiros Makris via Synth-diy pisze:<br>
> Hello List,<br>
> I want to experiment with polymetric structures and create "non <br>
> standard" subdivisions within the standard ones supported by MIDI. I <br>
> have only worked with the 24ppq, using the timing messages to directly <br>
> drive the sequencers. I would like a way to multiply the clock frequency <br>
> in order to increase resolution, let's say by 10 or maybe 100 times, if <br>
> that's feasible (I think it is?).<br>
> I think this is achieved by a PLL. I understand the basic concepts of it <br>
> and have used in the analog domain, but never did it in a digital only <br>
> format. Furthermore, I suppose having an array of hardware peripherals, <br>
> such as timers and interrupts, and a fairly fast processor (teensy 3.2) <br>
> could open up other approaches that don't follow the standard PLL <br>
> configuration.<br>
> This has been on my mind for some time, but I don't really know where to <br>
> start. Any advice, or resources are greatly appreciated<br>
> <br>
> Regards,<br>
> Spiros<br>
> <br>
> _______________________________________________<br>
> Synth-diy mailing list<br>
> <a href="mailto:Synth-diy@synth-diy.org" target="_blank">Synth-diy@synth-diy.org</a><br>
> <a href="http://synth-diy.org/mailman/listinfo/synth-diy" rel="noreferrer" target="_blank">http://synth-diy.org/mailman/listinfo/synth-diy</a><br>
> Selling or trading? Use <a href="mailto:marketplace@synth-diy.org" target="_blank">marketplace@synth-diy.org</a><br>
> <br>
_______________________________________________<br>
Synth-diy mailing list<br>
<a href="mailto:Synth-diy@synth-diy.org" target="_blank">Synth-diy@synth-diy.org</a><br>
<a href="http://synth-diy.org/mailman/listinfo/synth-diy" rel="noreferrer" target="_blank">http://synth-diy.org/mailman/listinfo/synth-diy</a><br>
Selling or trading? Use <a href="mailto:marketplace@synth-diy.org" target="_blank">marketplace@synth-diy.org</a><br>
</blockquote></div>
</blockquote></div>