Project Overview
This website is a description of Sabrina Pereira, Shyheim Russell, and Jonah Spicher's Computer Architecture final project.
An 8-Bit Audio Processor
The goals and deliverables of our project
For our project, we dove into developing Verilog representation of a sound controller that allows us to process sounds then produce an 8-bit audio from our hardware. We desired to gain a strong grasp on the functionality and communications of the individual parts of our hardware such as the digital signal processor. For this project, we had three stages:
- MVP: Verilog code of an 8-bit audio hardware with each member having a firm grasp of content
- Planned: Verilog code of the hardware implemented on FPGA ZIBO
- Stretch: Physical hardware implentation on FPGA plugged into a speaker
For this project, what we planned on accomplishing is developing the Verilog code then implement this code on the FPGA through an undetermined manner such that we are able to process the signal. The difference between the stretch and planned goals is that the stretch does not produce an actual sound through a speaker like in our desired stretch.
High Level Diagram
Inputs
TBD
Channels
Our Channels are generate square, sawtooth and randomized waves based on the inputs. Each channel is equipped with a wave generator that uses counters to scaffold the frequency and lengths of the waves.
Adder/Bit Shifter
This component was tasked with taking the four channels as input, bit shifting them to the right by 2 arithmetically and output an 8-bit wave from the addition of the four channels using an 8-bit Adder.
Inputs/Channels
For our inputs, we use memory to store the notes that are previously and currently being used, using the nex_note as a clock, to then go into memory and output a 18-bit result where the first 8-bit control frequency, the next 8 controls the length of each note, and the final 2 bits control the channel to show which channel is on for this cycle.
From there, the different sections of the output is used in for the four channels through D-Flip-Flops that would AND the channel and frequency where if frequency is low (0), then the channel is also 0, but if frequency is high (1), then the channel would then pass through and allow length to pass through the D-Flip-Flop as well, resulting in the length of time in which each wave generator would be on for.
Adder/Bit Shifter
The Adder takes in uses the four channels as inputs where we take signed 8-bit values from each wave.
The frequency of each channel would control which values are taken into the adder as a channel that is not on would be set to 0 automatically since the frequency will be 0.
Finally, each channel is normalized then bit shifted by 2 arithmetically, to preserve the sign, then all four values are added to produce an 8-bit sound_ out.
Final Results
The final product and what it does?
For our project, we developed a Verilog representation of the 8-bit hardware that is able to generate 8-bit music using square, sawtooth, and noise channels for different aspects of the song.
Quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Reflection
Below is the reflection of all three members and their views on the teaming and project overall:
Sjhidenfmekececeocme
dihcnciocencdocdcdc
icvodnvionrvovi
How to Run
Visit our Github Repo here. Follow the instructions on our Readme for downloading and running our simulation.
Sound Files
Here are some of the sound files we were able to develop:
References
Here is a list of references and resources we used for inspiration:
-
Harmonia. “Digital Audio: the Real Meaning of 8-Bit Music.” Medium, Medium, 21 Aug. 2019, medium.com/@harmonia.global/digital-audio-the-real-meaning-of-8-bit-music-1be5fc8ab2b1.
Feugiat pretium nibh ipsum consequat. Tempus iaculis urna id volutpat lacus laoreet non curabitur gravida. Venenatis lectus magna fringilla urna porttitor rhoncus dolor purus non.
-
The 8-Bit Guy, director. How Oldschool Sound/Music Worked. Youtube, 5 Oct. 2015, www.youtube.com/watch?v=q_3d1x2VPxk.
Dolor sit amet consectetur adipiscing elit pellentesque habitant morbi. Id interdum velit laoreet id donec ultrices. Fringilla phasellus faucibus scelerisque eleifend donec pretium. Est pellentesque elit ullamcorper dignissim. Mauris ultrices eros in cursus turpis massa tincidunt dui.
-
Suits, B. H. “Physics of Music - Notes.” Frequencies of Musical Notes, A4 = 440 Hz, pages.mtu.edu/~suits/notefreqs.html.
Eleifend mi in nulla posuere sollicitudin aliquam ultrices sagittis orci. Faucibus pulvinar elementum integer enim. Sem nulla pharetra diam sit amet nisl suscipit. Rutrum tellus pellentesque eu tincidunt. Lectus urna duis convallis convallis tellus. Urna molestie at elementum eu facilisis sed odio morbi quis
Our Team
The team of students who worked on this project.