Your problem is, that at the time the compiler compiles the implementation of your template (Oscilator.cpp) it doesn't create any code, because it has no specalisation. When the linker tries to link the SynthVoice.o with the Oscilator.o, he cannot resolve the symbol, because the compiler didn't create one.
You can force the compiler to create the symbols to link by requesting the specialisation at the end of the Oscilator.cpp file:
If you don't know which specialisations will be needed in the future you need to put the implementation in the header. Some also name the implementation Oscilator_cpp.h and add an #include "Oscilator_cpp.h" at the end of Oscilator.h, so the build rules don't try to compile the template implementation. An other common practice is using the suffix ".inl" for the implementation and also include it at the end of the header file.
For longer explanations see also on stackoverflow: http://stackoverflow.com/questions/1639797/template-issue-causes-linker-error-c