So, first we break our problem into multiple smaller problem and then try to solve them one by one
in our case to make piano major tasks are:
- Measuring/estimating positions of touch:
Here we do not need to have just one value of touch but we need to measure the position of multiple touches which also should be the analog value. so that we can take care of frequency which is in between to keys. this involves taking data from keys and also processing of that data.
- key and frequency calculation:
After taking data from all keys, we need to map that value for specific frequency. As we know increment of the frequency of piano is Geometric progression, which means you need to keep multiplying some factor to get the frequency of upcoming key.
- Tone generation and rejection of noise(in data):
After calculating frequency we need to generate the approximate waveform of that frequency. there is also some noise may present during no touch condition which needs to eliminated.
if you do not want to know how it works but just interested in making of it skip to step no:4