SNGH: it’s Not your grandma’s Guitar Hero…Project OverviewFFT HandlerFind PeaksFind HarmonicsGraphical Debug DisplayFrom Fundamentals to ChordsGame ControllerGame ScreenTimelineSNGH: it’s Not your grandma’s Guitar Hero…Ruth ShewmonRhys HiltnerProject OverviewAC97AudioRhysnoisesignalRuthgamecurrentchordnextchordresponseto inputscoreFFT debugfind_notes find_chordsgame_ctrlgamescreen-draw_circle-draw_tab-draw_timer-draw_debug-write_textdebug_screenxvga00 01Switch[1:0]ADV71251377142336notesposs_chordchord_idchord_reqreadyfingers,nametime, failuresuccessr,g,b, hsyncvsync, blankvclock,vcountvsync,h counthsync,blankpixelpeak_detectorharmonic_processorfft_handler623123AC973637ruth_conveniencer11119101 3323FFT Handlerfft_handler:1. Loop back audio2. Buffer incoming audio3. Window data4. Feed and water FFT5. Provide freq-space dataaudio_in_left18audio_ready1audio_out_left18audio_in_right18audio_out_right18peaks_ready1bin_index14bin_power8new_fft1rc_addr10rc_power8Find Peakspeak_detector:1. Find local maxima2. Throw away small peaks3. Provide first 64 peakspeak_index14new_peaks1peak_addr6peak_power8peaks_ready1bin_index14bin_power8new_fft1rc_addr10rc_peak1Find Harmonicsharmonic_processor:1. Find peaks’ multiples2. Group peaks into fundamentals and harmonics3. Provide first 8 fundamentalsfund_index14new_funds1fund_addr3fund_power8peak_addr6peak_index14peak_power8new_peaks1rc_addr10rc_fund1rc_harm1Graphical Debug DisplayFFT debugruth_conveniencer:1. Convenience Ruth2. Give FFT data to debug screen3. Flag peaks, fundamentals, and harmonics for coloringrc_peakinfo2rc_ready1rc_addr10rc_power8rc_addr10new_fft1rc_power8rc_peak1rc_fund1rc_harm1new_funds1From Fundamentals to Chordsnotes12poss_chord714813fund_indexfund_powernew_fundsfund_addrfind_notes:1. sort into bins2. > 6 notes?3. timespace filter4. cycle notesfind_chords:1. consult LUT2. find wrong stringchord_id7chord_reqGame Controller Internal timer controls game flow Stores chord sequences Verifies chords Generates fingerings and names for game display Keeps scorewaiting for chorddisplay resultschord verificationchord preparationgame_ctrl7714chord_idchord_reqreadyfingers,nametime, failuresuccessGame Screengamescreen-draw_circle-draw_tab-draw_timer-draw_debug-write_text143readyfingers,nametime, failuresuccessdebug_pixel3pixelcurrentchordnextchordresponseTo inputscoreFFT debugTimeline11 12 13 14 15 16 1718252910111220 21 22 23 241926 27 28 29 30 1456783working FFT and debug screenPANICgame logic and peak detection eat turkeygame screen time domain and chordsharmonic and fundamental detectionsleepPiña
View Full Document