I agree with peter. A downsampled signal solution is best in many cases.
Even if i will use line objects?
It really depends what you are doing. [Line~] compared to [line]? Well, [line~] will consume more CPU and will have nearly the same timing accuracy since both will be triggered from the max domain(in comparison to timing completely from the signal domain).
Another problem with [line] is that you will maybe have to go to the signal domain in the end anyway(sounds like you plan that). I guess this will be done using [line~] :P
All in all it sounds like one should advise you to use poly~, downsample it, make your LFO inside.
It shouldn't change the pitch of a signal, though it will reduce its quality. (e.g. don't downsample main oscillators unless you want to make lo-fi sounds) The only circumstance where the pitch might change is if you downsample it so severely that there is aliasing. (probably not going to be an issue here)
Resampling 0 just turns off the resampling filters. These are used to reduce artifacts when over-sampling, which is not what you're going for.
Not clear where the list is going here, and that's actually kind of important. Can you clarify? Is it something that needs a list? (otherwise I'd load it into a buffer~ via listfunnel 0 -> peek~ and read with index~)
Frequency offset is adjusting a frequency ratio in range of two neighboring harmonics. And every harmonic offset can be separately modulated by one LFO. But also every ratio modulation depth can be adjusted separately.
In simple words, this part of synth is making a frequency modulation of every harmonic.