Digital Effects Box for GuitarDesign OverviewMatthew Moskwa and Schuyler Senft-Grupp6.111 Final ProjectDesign Goals• Real-time processing of audio signal • Create effects in the frequency domain• Visual interface for effect manipulation• Visualization of effect on spectrumBlock DiagramFFTFFT Module• FFT module is defined by two parameters: sample rate and number of samples• Output is magnitude of frequency band, where: bandwidth = Sample Rate/(2 * Number of Samples) • Use 8 instances of Xilinx 128-pt FFT • Each instance takes in 128 samples from AC97 module at a different sampling rate, from 384 Hz - 48 kHz• Each FFT corresponds to one octave of tonesFFT Module con’t• Musical pitch is logarithmic in frequency• Resolution of frequency bands needs to be much higher at lower frequencies, on the order of 3 Hz• At higher frequencies, resolution only needs to be on the order of 500HzFrequency Vs. Octave020004000600080001000012000012345678910OctaveFrequency (Hz)BufferBuffers• Data is fed into buffers from AC97 module• Buffers control sampling rate of data• Send control signal to FFTNote ArrayNote Array• 96 value array, corresponding to all notes over 8 octaves• Will receive magnitude information for each possible note, in order from highest to lowest, from each FFT• Serves as a “pitch-corrector”• Records how long a certain pitch has been active• Outputs magnitudes and timing information for a specified order of frequenciesFXFX• Performs arithmetic on magnitude and frequency• Outputs to Function Generator• Exact frequency values for notes read from BRAM• Controlled by user through GUI– effect– intensity –speedEffect Options•Vibrato •Pitch Bend• Arpeggiator• Harmonizer• DelayFunction GeneratorFunction Generator• Calculates Asin(ωn), where A is the magnitude received from the FX module • Receives values for sin(ωn) from LUTOutput from function generator is sampled at 48kHz, so to create different frequencies, a 48000/N Hz sine function is sampled at N/ƒ points, where N is the number of samples and ƒ is the desired frequency.Adder and DelayAdder and Delay• Sums together outputs from Function Generator and any delayed signals• Delay length determined by user in GUI• Maximum delay is 4 seconds• Outputs to AC97 module @ 48 kHzGUIGUI• Visualize effect options• Input from labkit buttons• Outputs parameters to FX module• Displays wet and dry spectraTying it all togetherDigital
View Full Document