ECE 477 DESIGN REVIEW PART 2 Team 14
Outline Schematic PCB layout Theory of Operation Software design/development status Questions / discussion
Schematic/Theory of Operation OVERALL
Schematic/Theory of Operation LCD Audio Input Signal is a
Schematic/Theory of Operation POWER
Schematic/Theory of Operation AUDIO INPUT
Schematic/Theory of Operation SRAM
Silkscreen Top
Top Routing
Bottom Routing
PCB Flooded Top
PCB Flooded Bottom
Frequency Spectrum of window Theory of Operation Split the signal into windows with 1024 samples each. Use a hamming window function on the time domain signal for each 1024 samples. FFT each window separately. Frequency Spectrum of window Audio Signal
Theory of Operation Extract Peaks from the Spectrum. Discard Peaks with amplitude less that the minimum value. Peaks from Window
Theory of Operation Match each frequency with the closest matching note frequency. (this makes up for tuning/off key notes) For Example: if a 218 is detected, the two closest possibilities are 220 and 207. Therefore the note is matched to 220.
Theory of Operation Check which of the frequencies are multiples of others in order to determine which frequencies are fundamentals. Example: Freqs in window: 246.9400 293.6700 369.9900 587.3300 739.9900 Amps of freqs: 0.0100 0.0109 0.0052 0.0085 0.0029 We figure out that 587.33 is a multiple of 293.67. Also 739.99 is a multiple of 369.99 and 246.94. The algorithm extracts 246.94, 293.67, and 369.99 as the fund freqs.
Theory of Operation Remove harmonics from old notes in successive windows. Detect Strums using amplitude. Example: Prev Window: 246.9400 293.6700 369.9900 587.3300 739.9900 0.0100 0.0109 0.0052 0.0085 0.0029 Next Window: 246.9400 293.6700 493.8800 587.3300 0.0204 0.0103 0.0101 0.0072 Amplitude of 246.94 jumped meaning that the note has been strummed again.
Theory of Operation Convert Frequencies to Tabs and MIDI. In the case of Tabs, the algorithm tries to pick a fret between 0-5 for the note if possible. If the string is used for a different string, use a different string. In the case of MIDI, the frequencies are used to generate the file.
Sample Output Wav file produced: Matches the Tab played. 2---------------2---------------3---------------3----------------------- ----0---3---0-----0-----3---0-------0---3---0-------0---3---0----------- ------------------------------------------------------------------------ Matches the Tab played.
Issues The fundamental frequency doesn’t always have the most dominant amplitude. One reason for that is: 2 different notes are generating that harmonic (easy to handle). Example: 246.9400 293.6700 369.9900 587.3300 739.9900 739.99 is produced from 2 different strings therefore its amplitude can be expected to be higher. This also happens for unknown reasons with only 1 string generating the harmonic (problematic). Therefore the decision of whether both notes are played or the amplitude is just higher can’t be made easily (this makes chords that include notes of different octaves hard to match exactly as a Tab, depending on how we handle this determines if the chord will lake some notes or not.)
Issues Missing fundamental or phantom fundamental when overtones suggest a fundamental frequency but the sound lacks a component at the fundamental frequency itself. It is now widely accepted that the brain processes the information present in the overtones to calculate the fundamental frequency. The precise way in which it does so is still a matter of debate, but the processing seems to be based on an autocorrelation involving the timing of neural impulses in the auditory nerve. (wiki)
Issues A chords notes can be spread on multiple windows (since the window size is small). That would make it look like each note is played separately on the Tab.
Flowchart/Pseudo-code for Main Program RAM, FLASH, ADC, LCD, SD Card
Hierarchical Block Diagram of Code Organization
QUESTIONS / DISCUSSION