Max’s Status Report for 10/28

This week I finished preprocessing to the point where I could comfortably begin work on the note identification and note onset algorithms. I got a simple initial algorithm for the note onset detection finished so that I could work on note identification for the case of an individual note. I have been working on this and debugging as I have gone, but should be done with isolated notes early this week. This puts me on schedule. This next week I will be able to finish out solo note detection and start to explore polyphonic note onset detection, which will then lead into polyphonic pitch detection the week after.

Olek’s Status Report for 10/28

This week I returned to campus and met with the team about the state of the project. I set up a weekly time to meet with my team to catch up with the pace and get back on schedule. It will be on Wednesdays afternoons from 5:00 – 7:00. I also allotted a 2 hour window where I will be in the capstone lab on Sundays.

Apart from that, I have loaded an OS onto the Pi and have successfully set up a development environment. I am working on a i2C polling code right now.

Max’s Status Report for 10/21

One new tool I am looking into learning is Librosa, a Python library for sound processing of wav files. I have not done much signal processing using Python, but Librosa, among other Python libaries, was a key reason for choosing to do signal processing in Python over other languages, so learning it will greatly help in the signal processing portion of the project.

This week was spent learning Librosa and doing the initial preprocessing for the signal processing. I am on schedule, as this week was made more relaxed due to being on break, as prior to break my time was focused on the design report, especially on the design trade study portion. After those parts were worked out, I begun working more with those platforms, starting preprocessing and initial note onset and pitch detection tests.

Team’s status report for 10/21

This week we mostly focused on finishing the design report document for submit.
We are facing significant risk on the completion of our MVP and having working project as our teammate’s absence on narrowing down the details of the raspberry Pi and having the basic setup so the hardware component can be connected.

We have refactored the project slightly to minimize the impact of a possible not-working raspberry pi firmware connection between the hardware and software component, and hopefully that will help us get back on track with having a semi-presentable product at the end.

Sherry’s status report for 10/21

Last week, our primary focus was on the composition of the design review report document. I have made significant progress, contributing to sections such as the Abstract, Introduction, use-case requirements, and the relevant software subsystem within the design requirements. Additionally, I have worked on sections covering design traits, system implementation, and testing and verification.

However, there has been a slight delay in the schedule, particularly in completing the initial setup of the API interface, which remains a work in progress. To mitigate this delay, I intend to allocate more time in the coming week to expedite the API preparation and align with our project timeline.

In the upcoming week, my goal is to finalize the exploration of the API’s functionality and engage in discussions with my team members to strategize and ensure the seamless cohesion of our project components. This collaborative effort will be instrumental in achieving our project milestones.

 

As you’ve now established a set of sub-systems necessary to implement your project, what new tools are you looking into learning so you are able to accomplish your planned tasks?

As for my role in the software system, my primary focus involves mastering the MuseScore API and its integration within the project. While it may not be a completely novel tool, this endeavor entails gaining a deeper understanding of the API and effectively utilizing it to set up a comprehensive system. Personally, I have limited prior experience with configuring an entire system using an API, making this a notable learning curve and a unique challenge that I am committed to overcoming.

Jeannie’s Status Report for 10/21

In the week leading up to the beginning of Fall Break, our team’s focus was on writing the design review report. I contributed to sections such as the Abstract, Use-Case Requirements, and the relevant hardware sections within the Design Requirements, Design Trade Studies, System Implementation, and Test, Verification, and Validation sections. I also contributed to the Bill of Materials and Schedule sections.

Over Fall Break, I finished the schematics and started the board layout which means that I am behind schedule on the hardware portion of my work. I meant to finish the layout and order the board during Fall Break, but certain things came up preventing me from doing so. To mitigate this issue, I will work for the next couple of days to finalize the board and during the time when it is being fabricated and shipped to me, I will work on bringing up the Raspberry Pi so that the two can easily interface once the PCB arrives.

My goals for this coming week are to finish the board layout and order it, as well as finish setting up the Raspberry Pi with a monitor and keyboard. Finally, I want to set up a simple I2C polling procedure code with the Raspberry Pi.

As you’ve now established a set of sub-systems necessary to implement your project, what new tools are you looking into learning so you are able to accomplish your planned tasks?

One tool that I have put many hours into learning for this project is Altium Designer, which is a PCB design software. I had no experience with Altium before this course, and minimal exposure to PCB schematics and layout. Additionally, I am learning how to interface with the Raspberry Pi which is also new to me.  In regards to writing code for the Raspberry Pi, I have been learning more about Python packages that are available to me for  communication with I2C devices.

Team Status Report for 10/7

One of our main concerns going into this next week is that a majority of our group is busy in the second half of the week, so we are front loading our work on the design report to be almost completely done by Monday. This will give us time to clean it up before the due date on Friday, without having to stress over the timeline as people in our group get ready for fall break. We are also trying to solidify the schedule for each person’s design responsibilities and make sure they align such that we are able to integrate our parts together, leaving time for integration hiccups. As a result, we are individually preparing timelines for our sections to be integrated on Monday during class time.

In terms of design concerns, we are worried that C++ might not be the best platform for signal processing, and are looking into other options, namely Python and Matlab. Both of these have more support for signal processing that C does, and should only be marginally slower than C since many of the signal processing tools in Python and Matlab are wrappers of functions in C. This change, while still being explored, would not have an impact on project cost.

Our schedule is being updated due to the introduction of a new team member. This will be finalized when we next meet in person on Monday, 10/9/23.

Weekly Status Report Question (Team): ABET #1 says … An ability to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics

In our design solution for our project, one main part of our signal processing involves analyzing the harmonic spectrum of the audio input. After performing a Fourier transform (FT) on a recording of a single musical note, multiple spikes at different frequencies will appear. These different spikes represent the harmonic frequencies that make up the inputted note (or notes). This harmonic breakdown can vary between different instruments, with different instruments producing different harmonic signatures for the same fundamental frequency, or lowest present frequency, which represents the note being played. However, since the harmonics of the fundamental frequency are all positive integer multiples of the fundamental, if we multiply the original signal by its corresponding harmonics, and take the highest peak present after, we will be presented with the fundamental frequency we are looking for. This method, Harmonic Product Spectrum (HPS), shown below is extremely common in pitch detection.

Max’s Status Report for 10/7

This week I started implementing the wav file preprocessing in C, but ran into numerous problems throughout that forced me to look into other options around halfway through the week. I was particularly drawn to Python and Matlab. Python has a variety of signal processing and visualization tools, such as numpy, scipy, and matplotlib, which would greatly help with computation and visualization when debugging. Matlab is built for signal processing, and has an entire toolbox that helps with audio processing and extensive documentation. Since looking into these, I have been going back and forth on which to use, especially when taking into consideration my sections integration with other parts of the project. While performing this research, I have also started some simple implementation in Matlab and Python just to see what it would look like, and am still working on finalizing my decision as I work on the design tradeoffs for the design report.

Due to my late addition to the team, we have been reworking schedules to accommodate. I am still updating my schedule, and the team is going to consolidate a new schedule in person on Monday. Outside of that, the focus for this week is to finish out the design report, which involves deciding on the signal processing platform and additional tools by Monday so that we have the week to clean up the report, and also give me time to start pre-processing and note onset detection. This puts me on schedule.

Sherry’s status report for 10/07

This week we mostly focused on the design presentation during class. We presented our presentation and received some valuable feedback on the content in our presentation. me and the teammates discussed the choice of some of the hardware component that we plan to be using in our design, and based on these choices, I placed an order for the keyboard that we plan to build our project on. I also did more digging in the code base for the API MuseScore, as well as how the signal from the raspberry pi is going to look like / connect to the software component.

Jeannie’s Status Report for 10/7

Over the past week, I contributed to our team’s Design Report presentation slides. In addition I practiced presenting and gave the Design Presentation on Monday during class. For the remainder of the week I kept working on the data collection PCB, working to finish the schematics and layout by this Friday so I can order the board before fall break. I also picked up the sensors and piano from the ECE receiving office so that I can start playing around with the response time and how we’ll mount the sensors. Additionally, I worked on creating a timeline specific to the hardware portion of our project to be integrated with the rest of the group’s timelines on Monday. Lastly, I started working on the Design Report with my teammates, as our goal is to finish it by Monday at the end of class. This week I plan to finalize the schematics, layout, and order the board as well as work with my group to finish the design report. As of now, I am slightly behind schedule because I wanted to be further along with the schematics, but I am confident I can still meet next week’s goal.