This week, I finished synthesizing all the SystemVerilog needed to create a fully functioning polyphonic digital synthesizer. Currently, the controls are mapped to the FPGA’s onboard I/O, such as buttons and switches, but Daniel is working on transferring these controls to the keyboard interface. Once everything is integrated with the keyboard, the core system will be complete.
To go beyond a basic synthesizer, we are considering adding features that make the output sound more expressive. One potential improvement is applying an envelope to the cutoff frequency so it evolves over time. Adding this feature would produce a richer and more realistic sound.
I have also started developing an algorithm that takes an input audio signal and decomposes it into coefficients that can be used by the FPGA to reconstruct the sound. While I do not expect to have a fully working version by demo day, my goal is to achieve reasonably accurate polyphonic sound reconstruction using only the oscillators, envelopes, and filters available on our board. So far, I have implemented an algorithm that extracts an envelope from a given sound with about 80 percent accuracy, and I am continuing to refine it.
