I'm currently doing a project to get a sound from a mechanical watch (with a contact mic) to calculate the bpm and lag/lead per day. I've done it with a pc writing a code in Matlab.

I need general suggestions. Can it be done with a PIC 16f877a? I don't need much accuracy.

What I have in mind is this, contact mic>filter>amp>pic adc>computation. All I need to do is really just measure peak to peak time so that I can approximate beat error. Any ideas? It would really help me.

We fixed it by salvaging and using Marshall amplifier's amplifying circuit. Just connected our piezo mic to that circuit and matched the output impedance by adding high resistances to Arduino's analog input. Now we can see the distinctive signal. Although it's noisy, little computation will make it better.