ok, here are two patches i could find, not complete synths but pretty close :-)
one is an early version of the 5-voice patch for bass i built (e a d g c) you can look at it and see how i did the filtering at the input to get rid of unwanted overtones and avoid octave jumps. this works very well with my bass, guitar may be more involved. you will have to adjust the frequencies in the filter sections for guitar range (and also the calculations in the subpatches)
the second one is more like a help patch of a much more precise approach to extract the frequency of an incoming signal, it is more precise and you get a control "voltage" out of it and you can control an oscillator from it. this one has no filtering at the input, but you can easily insert the one from the first patch. so use this in your final version!
hope this helps and keep me updated if you make something out of it! in fact you have resparked some interest on my side, maybe i'll give this a shot as well again!
main patch, following the five sub patches: (name them e-string.pd, a-string.pd, d-string.pd, g-string.pd and c-string.pd
#N canvas 18 22 573 477 10;
#X obj 167 -166 adc~ 1 2 3 4 5;
#X obj 210 30 dac~;
#X obj 314 -225 loadbang;
#X msg 323 -201 \; pd dsp 1;
#X obj 90 -83 e-string;
#X obj 145 -83 a-string;
#X obj 200 -83 d-string;
#X obj 254 -83 g-string;
#X obj 309 -83 c-string;
#X obj 129 -123 *~ 2;
#X obj 163 -123 *~ 2;
#X obj 200 -122 *~ 2;
#X obj 235 -121 *~ 2;
#X obj 275 -120 *~ 2;
#X connect 0 0 9 0;
#X connect 0 1 10 0;
#X connect 0 2 11 0;
#X connect 0 3 12 0;
#X connect 0 4 13 0;
#X connect 2 0 3 0;
#X connect 4 0 1 0;
#X connect 5 0 1 0;
#X connect 6 0 1 0;
#X connect 7 0 1 0;
#X connect 8 0 1 0;
#X connect 9 0 4 0;
#X connect 10 0 5 0;
#X connect 11 0 6 0;
#X connect 12 0 7 0;
#X connect 13 0 8 0;
#N canvas 350 33 436 402 10;
#X obj 196 109 *~;
#X obj 200 211 sqrt~;
#X obj 94 322 *~;
#X obj 86 341 clip~ -1 1;
#X obj 107 215 -~ 1;
#X obj 107 235 abs~;
#X obj 108 128 clip~ -1 1;
#X obj 57 234 sig~ 1;
#X obj 110 102 *~ 1e+22;
#X obj 75 258 rpole~;
#X obj 200 156 lop~ 8;
#X obj 111 25 inlet~;
#X obj 129 377 outlet~;
#X obj 107 151 expr~ $v1>=0;
#X obj 107 193 expr~ $v1==1;
#X obj 75 302 *~ 0.0008125;
#X obj 208 70 vcf~ 7;
#X obj 224 44 delread~ pitch1 5;
#X obj 262 244 *~;
#X obj 260 293 sqrt~;
#X obj 261 266 lop~ 1;
#X obj 263 317 expr~ 27850/$v1;
#X obj 263 340 delwrite~ pitch1 5;
#X obj 84 74 bp~ 41 15;
#X obj 107 172 biquad~ 0 0 1 -1 0;
#X connect 0 0 10 0;
#X connect 1 0 2 1;
#X connect 2 0 3 0;
#X connect 3 0 12 0;
#X connect 4 0 5 0;
#X connect 5 0 9 1;
#X connect 6 0 13 0;
#X connect 7 0 9 0;
#X connect 8 0 6 0;
#X connect 9 0 15 0;
#X connect 9 0 18 0;
#X connect 9 0 18 1;
#X connect 10 0 1 0;
#X connect 11 0 0 0;
#X connect 11 0 0 1;
#X connect 11 0 16 0;
#X connect 11 0 23 0;
#X connect 13 0 24 0;
#X connect 14 0 4 0;
#X connect 15 0 2 0;
#X connect 16 0 8 0;
#X connect 17 0 16 1;
#X connect 18 0 20 0;
#X connect 19 0 21 0;
#X connect 20 0 19 0;
#X connect 21 0 22 0;
#X connect 23 0 8 0;
#X connect 24 0 14 0;
#N canvas 547 22 471 410 10;
#X obj 184 -33 inlet~;
#X obj 177 330 outlet~;
#X obj 264 65 *~;
#X obj 268 167 sqrt~;
#X obj 177 288 *~;
#X obj 177 310 clip~ -1 1;
#X obj 175 171 -~ 1;
#X obj 175 191 abs~;
#X obj 176 84 clip~ -1 1;
#X obj 125 190 sig~ 1;
#X obj 178 58 *~ 1e+22;
#X obj 143 214 rpole~;
#X obj 268 112 lop~ 8;
#X obj 176 107 expr~ $v1>=0;
#X obj 175 149 expr~ $v1==1;
#X obj 143 258 *~ 0.001625;
#X obj 262 26 vcf~ 7;
#X obj 278 0 delread~ pitch2 5;
#X obj 252 234 *~;
#X obj 250 283 sqrt~;
#X obj 251 256 lop~ 1;
#X obj 253 307 expr~ 27850/$v1;
#X obj 253 330 delwrite~ pitch2 5;
#X obj 176 28 bp~ 55 15;
#X obj 175 128 biquad~ 0 0 1 -1 0;
#X connect 0 0 2 0;
#X connect 0 0 2 1;
#X connect 0 0 16 0;
#X connect 0 0 23 0;
#X connect 2 0 12 0;
#X connect 3 0 4 1;
#X connect 4 0 5 0;
#X connect 5 0 1 0;
#X connect 6 0 7 0;
#X connect 7 0 11 1;
#X connect 8 0 13 0;
#X connect 9 0 11 0;
#X connect 10 0 8 0;
#X connect 11 0 15 0;
#X connect 11 0 18 0;
#X connect 11 0 18 1;
#X connect 12 0 3 0;
#X connect 13 0 24 0;
#X connect 14 0 6 0;
#X connect 15 0 4 0;
#X connect 16 0 10 0;
#X connect 17 0 16 1;
#X connect 18 0 20 0;
#X connect 19 0 21 0;
#X connect 20 0 19 0;
#X connect 21 0 22 0;
#X connect 23 0 10 0;
#X connect 24 0 14 0;
#N canvas 551 22 471 410 10;
#X obj 202 -28 inlet~;
#X obj 197 338 outlet~;
#X obj 264 65 *~;
#X obj 268 167 sqrt~;
#X obj 198 276 *~;
#X obj 188 306 clip~ -1 1;
#X obj 175 171 -~ 1;
#X obj 175 191 abs~;
#X obj 176 84 clip~ -1 1;
#X obj 125 190 sig~ 1;
#X obj 178 58 *~ 1e+22;
#X obj 143 214 rpole~;
#X obj 268 112 lop~ 8;
#X obj 175 107 expr~ $v1>=0;
#X obj 175 149 expr~ $v1==1;
#X obj 143 258 *~ 0.0024;
#X obj 275 219 *~;
#X obj 273 268 sqrt~;
#X obj 274 241 lop~ 1;
#X obj 276 315 delwrite~ pitch3 5;
#X obj 252 16 vcf~ 7;
#X obj 268 -10 delread~ pitch3 5;
#X obj 276 292 expr~ 27850/$v1;
#X obj 165 30 bp~ 73.5 15;
#X obj 175 128 biquad~ 0 0 1 -1 0;
#X connect 0 0 2 0;
#X connect 0 0 2 1;
#X connect 0 0 20 0;
#X connect 0 0 23 0;
#X connect 2 0 12 0;
#X connect 3 0 4 1;
#X connect 4 0 5 0;
#X connect 5 0 1 0;
#X connect 6 0 7 0;
#X connect 7 0 11 1;
#X connect 8 0 13 0;
#X connect 9 0 11 0;
#X connect 10 0 8 0;
#X connect 11 0 15 0;
#X connect 11 0 16 0;
#X connect 11 0 16 1;
#X connect 12 0 3 0;
#X connect 13 0 24 0;
#X connect 14 0 6 0;
#X connect 15 0 4 0;
#X connect 16 0 18 0;
#X connect 17 0 22 0;
#X connect 18 0 17 0;
#X connect 20 0 10 0;
#X connect 21 0 20 1;
#X connect 22 0 19 0;
#X connect 23 0 10 0;
#X connect 24 0 14 0;
#N canvas 549 22 471 410 10;
#X obj 202 -28 inlet~;
#X obj 197 338 outlet~;
#X obj 264 65 *~;
#X obj 268 167 sqrt~;
#X obj 187 277 *~;
#X obj 145 309 clip~ -1 1;
#X obj 175 171 -~ 1;
#X obj 175 191 abs~;
#X obj 176 84 clip~ -1 1;
#X obj 125 190 sig~ 1;
#X obj 178 58 *~ 1e+22;
#X obj 143 214 rpole~;
#X obj 268 112 lop~ 8;
#X obj 175 107 expr~ $v1>=0;
#X obj 175 149 expr~ $v1==1;
#X obj 143 258 *~ 0.0024;
#X obj 264 7 vcf~ 7;
#X obj 280 -19 delread~ pitch4 5;
#X obj 267 242 *~;
#X obj 265 291 sqrt~;
#X obj 266 264 lop~ 1;
#X obj 268 338 delwrite~ pitch4 5;
#X obj 268 315 expr~ 27900/$v1;
#X obj 176 28 bp~ 98 15;
#X obj 175 128 biquad~ 0 0 1 -1 0;
#X connect 0 0 2 0;
#X connect 0 0 2 1;
#X connect 0 0 16 0;
#X connect 0 0 23 0;
#X connect 2 0 12 0;
#X connect 3 0 4 1;
#X connect 4 0 5 0;
#X connect 5 0 1 0;
#X connect 6 0 7 0;
#X connect 7 0 11 1;
#X connect 8 0 13 0;
#X connect 9 0 11 0;
#X connect 10 0 8 0;
#X connect 11 0 15 0;
#X connect 11 0 18 0;
#X connect 11 0 18 1;
#X connect 12 0 3 0;
#X connect 13 0 24 0;
#X connect 14 0 6 0;
#X connect 15 0 4 0;
#X connect 16 0 10 0;
#X connect 17 0 16 1;
#X connect 18 0 20 0;
#X connect 19 0 22 0;
#X connect 20 0 19 0;
#X connect 22 0 21 0;
#X connect 23 0 10 0;
#X connect 24 0 14 0;
#N canvas 494 22 471 410 10;
#X obj 202 -28 inlet~;
#X obj 197 338 outlet~;
#X obj 264 65 *~;
#X obj 268 167 sqrt~;
#X obj 186 282 *~;
#X obj 138 316 clip~ -1 1;
#X obj 175 171 -~ 1;
#X obj 175 191 abs~;
#X obj 176 84 clip~ -1 1;
#X obj 125 190 sig~ 1;
#X obj 178 58 *~ 1e+22;
#X obj 143 214 rpole~;
#X obj 268 112 lop~ 8;
#X obj 175 107 expr~ $v1>=0;
#X obj 175 149 expr~ $v1==1;
#X obj 143 258 *~ 0.0024;
#X obj 287 237 *~;
#X obj 285 286 sqrt~;
#X obj 288 310 expr~ 28000/$v1;
#X obj 286 259 lop~ 1;
#X obj 288 333 delwrite~ pitch5 5;
#X obj 239 -2 delread~ pitch5 5;
#X obj 222 19 vcf~ 7;
#X obj 136 21 bp~ 131 15;
#X obj 175 128 biquad~ 0 0 1 -1 0;
#X connect 0 0 2 0;
#X connect 0 0 2 1;
#X connect 0 0 22 0;
#X connect 0 0 23 0;
#X connect 2 0 12 0;
#X connect 3 0 4 1;
#X connect 4 0 5 0;
#X connect 5 0 1 0;
#X connect 6 0 7 0;
#X connect 7 0 11 1;
#X connect 8 0 13 0;
#X connect 9 0 11 0;
#X connect 10 0 8 0;
#X connect 11 0 15 0;
#X connect 11 0 16 0;
#X connect 11 0 16 1;
#X connect 12 0 3 0;
#X connect 13 0 24 0;
#X connect 14 0 6 0;
#X connect 15 0 4 0;
#X connect 16 0 19 0;
#X connect 17 0 18 0;
#X connect 18 0 20 0;
#X connect 19 0 17 0;
#X connect 21 0 22 1;
#X connect 22 0 10 0;
#X connect 23 0 10 0;
#X connect 24 0 14 0;
"help" patch for the better version that you should use!
#N canvas 1 22 1020 532 10;
#X obj 142 103 clip~ -1 1;
#X obj 145 230 rpole~;
#X obj 142 82 *~ 1e+07;
#X obj 149 482 dac~;
#X obj 142 62 osc~ 220;
#X floatatom 142 42 5 0 0 0 - - -;
#N canvas 0 22 450 300 (subpatch) 0;
#X array \$0-array 1000 float 0;
#X coords 0 2 999 -1 320 450 1 0 0;
#X restore 650 19 graph;
#X obj 15 357 tabwrite~ \$0-array;
#X obj 158 258 samphold~;
#X obj 143 187 *~ -1;
#X obj 143 208 +~ 1;
#X obj 148 429 /~;
#X obj 97 211 sig~ 1;
#X obj 15 328 metro 100;
#X obj 15 303 loadbang;
#X text 46 8 sine to sawtooth with frequency extraction all signal
level;
#X obj 264 275 samphold~;
#X obj 142 145 biquad~ 0 0 1 -1 0;
#X obj 284 234 rpole~;
#X obj 246 209 sig~ 1;
#X obj 312 187 *~ -1;
#X obj 312 208 +~ 1;
#X obj 159 284 -~ 2;
#X obj 245 302 -~ 1;
#X obj 163 322 +~;
#X obj 187 446 phasor~;
#X obj 187 422 *~ 1.5;
#X obj 358 356 mtof;
#X obj 360 385 / 220;
#X obj 357 333 + 57;
#X obj 358 313 +;
#X floatatom 359 259 5 0 0 0 - - -;
#X floatatom 358 410 5 0 0 0 - - -;
#X obj 359 283 t b f;
#X text 398 258 adjust for second voice (halftones);
#X text 399 412 adjust for second voice (overtones);
#X text 253 449 phasor entirely controlled by incoming signal but freely
transposable;
#X obj 142 124 expr~ $v1>=0;
#X obj 142 166 expr~ $v1==1;
#X obj 236 166 expr~ $v1==-1;
#X obj 182 382 expr~ 44100/$v1;
#X connect 0 0 37 0;
#X connect 1 0 8 0;
#X connect 1 0 11 0;
#X connect 2 0 0 0;
#X connect 4 0 2 0;
#X connect 5 0 4 0;
#X connect 8 0 22 0;
#X connect 9 0 10 0;
#X connect 10 0 1 1;
#X connect 11 0 3 0;
#X connect 12 0 1 0;
#X connect 13 0 7 0;
#X connect 14 0 13 0;
#X connect 16 0 23 0;
#X connect 17 0 38 0;
#X connect 17 0 39 0;
#X connect 18 0 16 0;
#X connect 19 0 18 0;
#X connect 20 0 21 0;
#X connect 21 0 18 1;
#X connect 22 0 24 1;
#X connect 23 0 24 0;
#X connect 24 0 11 1;
#X connect 24 0 40 0;
#X connect 25 0 3 1;
#X connect 25 0 7 0;
#X connect 26 0 25 0;
#X connect 27 0 28 0;
#X connect 28 0 32 0;
#X connect 29 0 27 0;
#X connect 30 0 29 0;
#X connect 31 0 33 0;
#X connect 32 0 26 1;
#X connect 33 0 30 0;
#X connect 33 1 30 1;
#X connect 37 0 17 0;
#X connect 37 0 8 1;
#X connect 38 0 9 0;
#X connect 38 0 16 1;
#X connect 39 0 20 0;
#X connect 40 0 26 0;