Team Status Report for Oct. 1

This week we furthered our research and planning process. We thought a lot about the design choices and implementation details. We also considered a lot of alternative ways to implement different functionalities.

Prof. Yu asked many questions during meetings regarding the “why” behind our design choices, so we decided to think hard and justify them – and change them if we couldn’t.

Firstly, we reconsidered the hosting of our web back-end, audio processing and note scheduling logic. We originally planned for it to be on AWS, a decision that would allow us to access much computing power. However, the performance will be bottle-necked by the internet upload and download speeds of each device. An alternative idea is to host it locally on hardware, either a Raspberry Pi or a NVIDIA Jetson Nano. The former is a more familiar device for all three of us, while the latter would allow for more computing power. Both devices would allow us to no longer be bottle-necked by transmission latency. However, we are not yet certain about the physical piano. If our proof-of-concept is unsuccessful and we decide to instead commit to a virtual piano, AWS becomes the best option. Should we stick with the physical piano, we would already have the logic implemented and ready to be migrated onto a Jetson.

We also considered the information retention rate for the audio processing. Initially, we decided to determine frequencies by sampling at exact frequencies to the keys. Upon further consideration, taking into account the number of keys and the total frequency range, we realized that this would result in losing 98% of the frequency. We will instead take the smooth average amplitude of surrounding frequencies to a piano key.

Angela’s Status Report for 9/24

The beginning of this week was focussed on preparing the slides and deciding the content of the proposal presentation. On Sunday we met and discussed this, and spent time working on the PowerPoint as well as the Gantt chart.

Unfortunately, I became and still am ill with strep throat, so I wasn’t able to be as productive as I have originally planned. Furthermore, the TA team had issues with the scope of our project so I met with my teammates to discuss that. We also decided that our Gantt chart was too demanding – it was very rushed, and the weeks were all very demanding weeks. Theoretically, the workload I had assigned myself was possible if I didn’t have other classes and commitments. I decided to scale back on the amount of weekly work and reformatted my Gantt chart to reflect this.

I also thought about the modularity of our system. Since we’re all working in parallel, and expect (hope!) that the pieces come together to form a fully functioning system, I suggested to my teammates that we come up with some sort of diagram that outlines all software, hardware, and physical systems, as well as their inputs/outputs and the format they should be in. This way, we can give each other a standard to work off of when it comes to integrating and interfacing with different parts of the design. I have begun writing a list of modules for the performance scheduler as well as the inputs and outputs to each. Next week I hope to help my teammates come up with such a list for their parts and compile all this information into a diagram as a point of reference.