PR077 » 智能自动调音器
吉他、尤克里里等乐器的初学者总是为不知如何为其乐器调弦而烦恼,同样这类表演者也会在演出曲目间隙花费较长时间为其乐器调弦。不管你的经验水平如何,调弦是一个繁琐且耗费时间的事情,这不仅会打击这类乐器初学者的信心,也会让乐器表演者感到十分麻烦。
本项目旨在设计与实现一款基于FPGA的智能自动调音器,使其能在很大程度上解放吉他、尤克里里这类乐器使用者的双手,在短时间内实现对其乐器的精确调弦。目前,大部分吉他、尤克里里这类乐器的使用者,都使用手动调弦,弦的音调准确只能依靠电子调音器和耳朵确定,多次手动调弦也未必能将弦调到准确音调。与手动调弦不同,使用者只需选择必要参数并将智能自动吉他调音器的旋钮固定在你想要调节的琴弦的头部旋钮上,拨动琴弦,等待数秒钟,就能将跑音的吉他、尤克里里等的琴弦调到正确的音调,相比于手动调弦,实在是太方便快捷了。
Purpose:
Tuning up the string to the right pitch is a necessary step for string instruments player. But it's really a tedious process expecially for novices. Due to they can't handle the distance that should be screwed well. The player should tighten or loosen an adjustor screw at the bridge that alters the position of its corresponding string with the help of tuner many times until it reach the right pitch. In order to solve this problem we design and implement an automatic tuner system instead of tuning manually.
Application:
There are also many other tuners on the market, but they just show the current pitch and tell you the current pitch is lower or higher than the right pitch. The users still can't know how much should they adjust the knob on the guitar. Even worse, the player want to tuning the string into the ptich that he wanted. It will be much more tedious and time-consuming than standard tuning. But with the help of our automatic tuner system, the players can tuning up the string to they wanted pitch quickly and accurately.
Target users:
String instruments player
Fig1
Fig2
1 The Altera Cyclone V chip on the DE10-Nano-SoC has abundant logic resources. During the implementation of the project, many FPGA resources need to be controlled to run in parallel through the HPS. The Cyclone V chip provides great convenience for the progress of the subject in a very easy-to-use way.
2 The Altera DE10-Nano-SoC development board has an extremely rich on-board resources and Altera's open and rich solutions that can greatly accelerate the development process.
Since the invention of string instrument such as guitar and ukulele, their tuning has always been done manually. The user adjusts the string tightness by comparing the reference note and the played note with a modern electronic tuner or their musical knowledge. Both these methods,involve mechanical action on the part of the user to tune the string which requires a lot of time and may involve human error.
Therefore, this paper proposes an automatic tuner.This tuner will not only aid the player in tuning the guitar with much precision but will also save time by doing it more quickly.Adjusting the string to standard pitch in a short time is very important for beginners and musicians. Beginners can save tuning time and focus more on learning play. If a professional musician suddenly breaks the string during a performance, an automatic tuner may be particularly valuable to him. In a short time, the performer can quickly connect the tuner to the head of the guitar and use the tuner to adjust the tightness of the strings to adjust to a perfect pitch.
1 Motorized string winder
String changing for guitars and ukulele-type instruments is a time-consuming and arduous task for beginners and musicians. The automatic coiling function of this topic allows users to save time and effort and change strings quickly.
2 Tuning function
Tuning function can be divided into standard tuning and custom tuning. The standard tuning is to adjust the pitch of the current string to the standard pitch. Custom tuning adjusts the pitch of the current string to the user's desired pitch.
3 Metronome
Metronome consists of regular metronome and advanced metronome. Regular metronome is the same as metronome products on the market. It cannot subdivide every beat.Advanced metronome can subdivide every beat. It can better meet people's needs.
The performance of this tuner mainly includes: recognizable frequency range, the range of tuning, the accuracy of tuning, tuning time, the speed of motor, metronome speed.
The following table shows the performance parameters of the system.
system performance |
description |
recognizable frequency range |
25Hz-2.5Khz |
the range of tuning |
55Hz-1760Hz |
the accuracy of tuning |
About 3 cents |
tuning time |
Within 30s each string |
the speed of motor |
10rpm-180rpm |
BPM |
30bpm-250bpm |
1 Hardware design
In order to realize the fast and accurate tuning of the string instrument. The system hardware design consists of five parts: core processing module(DE10-Nano-SoC), audio collection module, audio output module, motor control module, and bluetooth communication module. The system hardware block diagram is shown in Figure 1.
Fig 1
The core processing module is the DE10-Nano-SoC development board. The SOC system block diagram of this system is shown in Figure 2. The SD card and USB Bluetooth adapter are connected to the HPS resource. The FPGA resource contains audio collection ip and motor control ip.
Fig 2
The automatic tuner uses WM8731 chip to achieve audio signal. The HPS can configure the WM8731 chip through the I2C configuration interface module. And then the chip performs AD conversion on the input analog audio signal according to the configuration. The converted data is stored in a ADC_FIFO on FPGA. The HPS can read the data from the ADC_FIFO through the I2S bus protocol for subsequent processing.
In order to satisfy the tuning of most string instruments, we choose a stepper motor with large torque and easy control. In order to achieve accurate control of the stepper motor, the driver of this part is a custom IP core. The HPS can control the subdivision degree and speed of the stepper motor by configuring the parameters of the IP core .
The LED display module visualized the state of the tuning. The audio output module will be triggered when the mode is switched and the tuning is completed.
The Bluetooth module uses a classic USB Bluetooth adapter. The Bluetooth adapter is connected to the HPS side of the DE10-Nano through a USB interface, and the mobile phone and the tuner are communicated by writing a corresponding program on the HPS side and the mobile phone side, thereby implementing a custom tuning function through the mobile phone control tuner.
2. Software Design
The software design is an important part of this project. We need to design a wide-range, high-accuracy frequency identification algorithm and control the motor complete the tuning quickly after obtaining the frequency message. For better user experience, the system use the multithreading technology. Besides the mian thread, the other two threads are data receiving thread and data sending thread. The function of data receiving thread is accepting the target frequency from the mobile terminal when we use the custom tunning mode. The funciton of data sending thread is to send the identified frequency information to the mobile terminal intuitively through bluetooth, so the frequency message could be shown in the screen in time. The flow chart of main thread is shown in Fig 3.
Fig 3
The system will initialize the parameter when the system started which including the filter parameter setting parameter and so on. Then check the button is pressed or not. If it was pressed, get the voice data and process them to get the current frequency message which including measuring frequency coarsely by FFT, FIR filter, and get the accurate pitch frequency of the voice data by measuring the cycle approach. Then compare it with the excepted frequency. if it can't meet the demand, we will control the motor to fix the string to the excepted frequency by fuzzy control algorithm.
The automatic tuning system can be applied to variety of stringed instruments. Therefore, the basic frequency range of the signal that should be supported between 28Hz and 2.5KHz. In order to remove the interference of the harmonic components, we should set the parameter of FIR filter properly. So we use subsection filter here. The signal frequency domain is divided into 7 segments and set the parameters of these filters respectively. There is a certain deviation in the frequency value of the signal obtained by the FFT, so it is necessary to leave some margin when designing the filter so as to avoid loss of the useful signal. The measured frequency values and band widths of the band-pass filter parameters are listed below.
Frequency Obtained by FFT | Band Widths of Filters |
20 ~ 70 | 10 ~80 |
70 ~ 100 | 50 ~ 120 |
100 ~ 200 | 80 ~ 220 |
200 ~ 400 | 180 ~ 420 |
400 ~ 800 | 380 ~ 820 |
800 ~ 1600 | 780 ~ 1700 |
1600 ~ 3000 | 1500~3300 |
After data preprocessing and FIR filter, high-frequency components and noise have been removed from the voice data. The wave is a fundamental signal of the sound signal now. Therefore, the frequency value could be calculated by measuring cycle of frequency.The flow chart is shown in Fig 4.
Fig 4
After the current sound frequency is obtained, the current frequency and the desired frequency are sent to the fuzzy controller, and the fuzzy controller outputs the fuzzy values of the direction and speed of the control motor. After the corresponding conversion, the motor can be driven to rotate.The flow chart is shown in Fig 5.
Fig 5
3. Android Application
The main functions of the mobile phone include that custom tuning and metronome. Custom tuning requires the user to input the desired frequency of each string and send it to the tuner. The ARM side parses the received command to complete the corresponding action. After completing the tuning function of the instrument, the user can select the “metronome” to enter the metronome interface. The metronome in this design has advanced features in addition to the basic beat selection compared to existing products and software on the market. The advanced function of metronome is that the user can further subdivide each beat as needed after selecting the beat. The current subdivision has 4 points, 8 points, 16 points, 16 points and 16 points. After the user sets the beat and clicks “Start”, the phone will start to sound according to the user's set beat.The Android program design flow chart is shown in fig 6. Figure 7 shows some application interfaces.
Fig 6
Fig 7
4. Conclusion
with the help of our automatic tuner system, the players can tuning up the string to they wanted pitch quickly and accurately.It will be a good helper for user of string instrument.