The pitch tracking has been up many times lately, in different forms.
Here is link for a couple of the threads:
Start from there and see what you can grab, for the pitch tracking.
There are numerous pitch shifters in the user library. If you want to make your own, it's a little bit more work. You can make a pitch shifter fromthis tutorial patch:
But it does need a lot of work it's just a starting point. So it's probably easier just to use one of the already existing ones to start with.
Get something working and then you can always upgrading specific parts of the algo if you are not happy with them.