Great to see someone reading the code! I’m sorry it isn’t more commented.
If you do as you suggest, then the effect is that the LFO frequency gets quantised, because you discard the carry amount which is over 10,000. There is no difference between overflowing by 200, and overflowing by 100. Effectively the LFO would “lock” to repeating either every 8 ticks, or every 9 ticks. This may be better for the MIDI-synced mode, because usually you want a regular repeating sequence.
With the way I’ve done it, you get continuous adjustment. You can set a LFO period to 8.5 ticks. This is because nothing ever gets discarded - in other words, there’s a difference between overflowing by 200 and overflowing by 100. Most of the time I run without MIDI-sync so I appreciate this fine control.
It might be best to switch between the two options, depending on whether sync pulses are being received from MIDI. Then you get the best of both.
My current LFO method is a bit primitive overall. It would be better to generate it with an interrupt, based on timing the period between received sync pulses, which could give an update rate of 1kHz or more. But I quite like the sound of a slowly-updated steppy LFO. It sounds like a Commodore-64 LFO (these were typically done in software, and updated at the global screen refresh rate of 25Hz as far as I know).
By the way, I saw your recent videos with the external filter module- sounds great! I wondered if you had considered using an external MIDI controller for your parameters rather than pots into the Arduino? The midi library makes it very easy to receive CC values from something like a Behringer BCR2000 or a Kenton Control Freak. This would also make your parameters recordable in your MIDI sequencer.
keep up the good work