20 likes | 204 Views
Introduction. Fourier Transformation. Finding Right Peak Algorithm. Wave Handling in Windows. Result. Start. Prepare Structure. WAVEFORMATEX. Function call. waveInOpen(). Prepare Structure. WAVEHDR structure. Loop. CALLBACKFUCTION. Function call. waveInPrepareHeader()
E N D
Introduction Fourier Transformation Finding Right Peak Algorithm Wave Handling in Windows Result Start Prepare Structure WAVEFORMATEX Function call waveInOpen() Prepare Structure WAVEHDR structure Loop CALLBACKFUCTION Function call waveInPrepareHeader() waveInAddBuffer() Window Calls CALLBACK Function call waveInReset() waveInClose() End Catching Note in Guitar Solo PlayByeongChan Gwak(Assistant : Jiho Yoo)Advised by Prof. Seungjin Choi ▪ We need a tool which can convert wave data into numerical value. ▪ Part 1 - Finding Peak ▪ Left image is a wave played be Viloncello. ▪ It consists of 1st, 2nd, 3rd .. wave form. Using skew, find the high peaks in the FFT result. There would be noise peaks after Part 1, try to remove them if a peak do not has a skew as high as the fifth peak’s skew. ▪ Part 2 - Remove Noise #1 ▪ TAB is a music score for guitar. ▪ Drawing TAB is too troublesome work. ▪ Is there any way to draw TAB automatically? -> Yes, there will be a better solution! ▪ Right image shows each wave form which can be drawn by original wave data. There would be noise peaks after Part 2, try to remove them whose amplitudes are lower than the neighbor peak. ▪ Part 3 – Remove Noise #2 ▪ If we add the 1st, 2nd, 3rd… wave data, we can rebuild the original wave. ▪ Therefore, If we can find out the first frequency, we can find the right note! ▪ Wave Recording and Wave Playing is almost the same, therefore Wave Recording will be handled here. ▪ Fourier Transformation convert the wave data’s time domain into frequency domain. ▪ The most important thing in wave handling is the CALLBACK Function. ▪ Left image shows the amplitudes corresponding wave form ▪ Playing the guitar and the program will find the right note! ▪ Windows automatically call the CALLBACK function when it fill the wave bucket. References ▪ The CALLBACK function cab be specified by calling waveInOpen function. ▪ Left image is the FFT result of ‘Guitar A note’. ▪ We can find the first frequency from it!! ▪ http://www.basso-continuo.com/Musik/Dok024-k.htm ▪ http://www.borg.com/~jglatt/tutr/notefreq.htm ▪ http://www.relisoft.com/Science/Physics/sound.html