This project consists of a Sound & Entertainment System to visualize audio input from a microphone and display the signals interactively in different visualizations. The project was built with Verilog, Digilent Basys 3 Board, Pmod OLEDrgb 96 x 64 RGB OLED Display and Pmod MIC3. The notable features include pong game (where audio signals are used to control the pedals), ability to select colour schemes for background, graph & font colour, interactive displays & graphs of voice signals and etc. The frequency detector algorithm implemented was able to achieve an accuracy of over 95%.
For more details, please refer to the Final Report.pdf
.
No. | Features | Description |
---|---|---|
1 | Menu Page | User will be be directed to a menu page displaying two options, ‘Graphs’ and ‘Pong’ respectively. User will have to press up or down button to toggle between the options and press the centre button to access the option that the user wants |
2 | Pong Game | Upon clicking the ‘Pong’ option in the menu display, user will be directed to the game. User needs to flip SW[2] to ‘on’ to start playing the pong game.To restart the game, player can flip SW[2] off then on. Player 1(P1) uses SW[15] while Player 2(P2) uses SW[3]. The game is a ordinary pong game with a twist: the ball size is tied to the mic input, therefore, to “kill” your opponent, you need to clap when the ball reaches the player paddle. The opponent can defend by clapping right before it reaches the paddle to deflect the ball. If one is unable to clap and defend, he/she can let the computer take over by flipping SW[4] and SW[14] for P1 and P2 respectively. However, note that the paddle moves faster when controlled by player.Game ends when one of the player’s score reaches 30. The user can flip SW[2] at this point to reset the game. |
3 | Side Menu | When BTNC is pressed, a side menu will pop up, allowing the user to exit whichever option they are currently in and directing them back to the menu display stated above in (1). This side menu is in both pong game and graph. For graph there is an additional option for color select and the current graph selected. |
4 | Basic Voice Visualizer | Upon clicking the ‘Graphs’ option in the menu display, user will be directed to the page displaying the real time voice waveform. When SW[0] = 1, the VGA displays the test wave. To display other visual representations of the input waveform(which will be discussed in greater details below, user will have to press either the BTNU or BTND button to toggle between the different visual representations of the input signal until he/she has reach the desired visual representation that he/she wants. |
5 | Volume Indicator | The LEDs from LD0 to LD11 light up with respect to the intensity of the input audio sample. |
6 | Seven Segment Display | The last two segments (AN1 & AN0) will display a numeric value between 0 and 12 with respect to the intensity of the input audio sample. |
7 | VGA | SW[7] hides axis SW[8] hides ticks SW[9] hides grid SW[10] hides waveform Pressing left and right on the main waveform 8ould scroll through the 5 default color schemes. |
8 | Colour Select | In the unlikely event that the users do not like the color scheme, they are able to change it. SW[13:11] determines which part of the graph is changed. 0 - bg, 1 - grid, 2 - waveform, 3 - axis,4 - ticks. To change the color, press the BTNC to open up the side menu and select color sel. Once inside, you can preview the selected color on the box next to the side menu, the user can then press the BTNC to confirm the change. |
9 | Voice Indicator Display | Upon pushing the BTND button, user will be directed from the display page to the page which displays the waveform together with the volume indicator boxes which increases in sizes and changes in colour with respect to the input voice waveform. Pushing the BTNU button will direct to the display page. |
10 | Amplify Voice Signal | 10a) Upon pushing the BTND button, user will be directed from the page in (9) to the page displaying the same voice waveform depicted in (4) but now with input signal and grids amplified 2 times to give users a ‘zoom in’ view of the waveform. Pushing the BTNU button will direct to the page in (9). 10b) Pushing the BTND button again displays the same voice waveform in (4) with the input signal amplified 4 times instead. Pushing the BTNU button will direct back to the earlier version of ‘zoom in’ view in (10a). |
11 | Bar Graph | 11a) Upon pushing the BTND button, user will be directed from the page in (10b) to the page displaying a bar graph representation of the input audio sample (see Fig 10). Pushing the BTNU button will direct to the page in (10b). 11b) Pushing the BTND button again will lead to the page representing the same bar graph with different configuration (see Fig 11). Pushing the Fig. 10 & 11 BTNU button will direct to the earlier version of bar graph in (11a). |
12 | Circular Graph | Upon pushing the BTND button, user will be directed from the page in (11b) to the page displaying a circle which increases in size with respect to the input audio sample. Pushing the BTNU button will direct to the page in (11b). |
13 | Line Graph | 13a) Upon pushing the BTND button from the page displayed in (12), user will be directed to the page displaying a line graph representation of the input audio sample. Pushing the BTNU button will direct to the page in (12). 13b) Pushing the BTND button again will lead to the page representing the same line graph with different configuration. Pushing the BTNU button will direct to earlier version of line graph in (13a). |
14 | Slow Waveform | 14a) Upon pushing the BTND button, user will be directed from the page in (13b) to the page displaying the same waveform in (4) but now with the input signal fluctuating and changing slowly. Pushing the BTNU button will direct to the page in (13b). 14b) Pushing the BTND button again displays another variation of the same slow waveform. Pushing the BTNU button will direct to the earlier version of slow waveform in (14a). |
15 | 2 Graphs Display | 15a) Pushing the BTND button from the page in (14b) displays the normal waveform in (4) and line-graph representation of the waveform in (13) side by side. Pushing the BTNU button will direct to the page in (14b). 15b) Pressing the BTND button again displays the normal waveform in (4) and bar-graph representation of the waveform in (11) side by side. Pushing the BTNU button will direct to the earlier version of 2 graphs in (15a). |
16 | 4 Graphs Display | 16a) Pressing the BTND button from the page in (15b) displays the normal waveform in (4), line-graph representation of waveform in (13), bar-graph representation of waveform in (11) and circle representation of the waveform in (12) side by side. Pushing the BTNU button will direct to the page in (15b). 16b) Pressing the BTND button displays the normal waveform in (4), line-graph representation of waveform in (13), bar-graph representation of waveform in (11) and volume indicator of the waveform in side by side. Pushing the BTNU button will direct to the page in (16a). |