For the past two weeks I worked on:
- Building the MIDI interface circuit. This did not turn out well — as I probed the circuit with an oscilloscope and tested an Arduino script (See Step 10 in the link) to see if it was working. The waveform I got from the scope was very noisy; the Arduino script did not yield any sound to be played as it should. I arrived at the hypothesis that the midi breakout board was broken either on arrival or due to soldering. I ordered another one and tested it — unfortunately, I got the same result. I am having a debug session with my teammates today to see if I can get any progress. If not, we will ask for help from other people.
- I wrote the script for the MIDI deserializer+decoder and simulated it successfully.
- I wrote the script for interfacing with the audio CODEC on the FPGA. I studied the I2C protocol and the audio CODEC specification. I then found a script online that does a similar job (except it reads data from memory) — I was able to synthesize it and get it to play music from memory on my board. I am still in the progress of integrating this code with Michelle’s sine oscillator.
- I wrote the script for the mixer and simulated it.
My progress for this week was mainly blocked by the issues with the physical MIDI interface. I was, therefore, unable to finish 1/3 of my tasks for this week. In order to unblock Jiuling from her checkpoint 2 tasks, I found her a Python script that takes in USB MIDI signals and prints out the MIDI bytes.
My tasks for the next week include:
- Developing the ADSR module
- Finish ckpt1 integration and get some sounds to play out from the audio CODEC