Author: agerchan

Anna’s Status Report for 04/29

Anna’s Status Report for 04/29

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).   At this point, our project was close 

Post Title:  Team Status Report for 04/22

Post Title: Team Status Report for 04/22

What are the most significant risks that could jeopardize the success of the project? How are these risks being managed? What contingency plans are ready? A large risk we had faced, and managed, for a while, was the integration of the frontend javascript audio recording 

Anna’s Status Report for 04/22

Anna’s Status Report for 04/22

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).  

A big change we had in the project was a pivot from live feedback to feedback after the fact. As expressed in the last few status reports, we were having a lot of problems with integrating javascript recordings with the python django backend. Unfortunately, because we had spent so much time on this, we decided it was time to pivot.

Because we had valid recording strategies, as well as a working conversion between ogg and wav files, we pivoted to having the user sing, download their singing as an ogg file, upload this same file, and then view the scoring and feedback on this singing input. Although this required giving up our goal of real time feedback, we decided this was worth moving to, as the integration between the javascript recording and pitch detection was difficult, and we haven’t made any progress, despite focusing on this for the last few weeks.

On my end, this required a few things. I set up a web framework that allowed navigation between recording, downloading, and viewing results.

Before this week, the recording user view was very basic. This week, I adjusted it to play the song, show the song process, with lyrics. I added a rudimentary song playing interface. The interface shows the song playing, as well as how far the user is in the current chunk. Afterwards, I changed the view to show a download link to be followed before the user proceeds to the next page.

Upon proceeding to the next page, the user uploads the recording that they just downloaded. Once ready, the user plays their recording. This shows the graphic, as developed earlier, where the user input is integrated with the target pitches, comparing their performance. Again, the interface is somewhat simple, but adding specific information should not be difficult for the final demo. After the user performance plays, the web application displays an overall score. This score is calculated using Anita’s scoring algorithm.

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?  

Because we were not able to complete integration between the frontend and backend as planned, we are behind. However, we have adjusted our project accordingly, so it is no longer required, so no actions are necessary.

What deliverables do you hope to complete in the next week?

Next week, I hope to greatly polish the web application user interface. While functional, it is currently pretty rudimentary and not appealing. I would also like to add a lot more feedback on user performance post factum. Lastly, I know there are a lot more checks and safeguards I should implement before the web application can be used securely.

Anna’s Status Report for 04/08

Anna’s Status Report for 04/08

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).   Sadly, this week we did not make 

Anna’s Status Report for 04/01

Anna’s Status Report for 04/01

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).   This week, I continued working on the 

Team Status Report for 03/25

Team Status Report for 03/25

What are the most significant risks that could jeopardize the success of the project? How are these risks being managed? What contingency plans are ready?

Right now, a big risk for our team is completing pitch detection integration with the web application. This element of the process is proving to be somewhat difficult.  Because information will have to be passed around, in real time, between the backend and the front end, this creates some challenges when it comes to the way the data can be transferred.

Right now, the recorded snippet is being sent from the JavaScript to the Django backend via POST request, in the form of a wav file. While trying to work with this file, we ran into issues with the RIFF header.

Generally, this portion of the project is non-negotiable. However, we may be able to pivot our strategy when it comes to exactly how this integration is done. I believe the first thing we should do is try to resolve the current issue with passing wav files via POST request. However, if that does not work out, there are a few other options. First, we could try saving files within the JavaScript, which may have different results with the header. As a last resort, we could avoid using onDataAvailable and just look at the final recording, but that would mean we cannot do real time pitch detection, which would be very undesirable.

Overall, we feel confident that we will be able to make backend frontend integration work. This may end up requiring more effort than expected, and it may require additional meetings in person throughout the week, but this is a challenge that can be managed.

We also expect that transcribing the target pitch may end up being difficult. However, with the format we have now, it should be possible, but just labor intensive.

Were any changes made to the existing design of the system (requirements, block diagram, system spec, etc)? Why was this change necessary, what costs does the change incur, and how will these costs be mitigated going forward?  

Right now, we are following the plans we had set in the past. We are still planning to send data from MediaStream Recorder via POST request in the form of a wav file. This is proving somewhat difficult, but we plan to continue with this for now.

This is also the place to put some photos of your progress or to brag about a component you got working.

We have gotten the communication of audio recording from the JavaScript to the Django backend. We have also begun integration of pitch detection in the Django backend, although we have not completed it. Below are some snippets of code used to do this.

We have also made progress on the target pitch graphics. They update with time, and display target pitch over time, as well as lyrics. This should be integrated soon with recording, and, once pitch detection integration is complete, the  user pitch graphics will be added in as well.

Anna’s Status Report for 03/25

Anna’s Status Report for 03/25

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).   This week, for capstone, we spent part 

Anna’s Status Report for 03/18

Anna’s Status Report for 03/18

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).   This week, we worked on the ethics 

Anna’s Status Report for 3/11

Anna’s Status Report for 3/11

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).  

This week, our focus as a team was to work on the design report. During our first team meeting, we divided work and agreed on what we wanted to say in each section, in broad strokes. Before our meeting on Thursday, we wrote a draft for each section we had been assigned. During this next meeting, we discussed parts that were unclear and made sure we weren’t covering anything redundant.

At this point, we had to finalize the block diagram for the web application. To do so, we needed to understand exactly how the mechanism for recording audio works in web applications, which we had not agreed on. I ended up looking through some resources and chose to use the MediaStream Recording api, which creates an audio stream in javascript and returns the current data when it is requested, which can be done with AJAX.

A large portion of the work I did this week was familiarizing myself with MediaStream. I followed an example from GitHub to understand how to use this api. I then played with this code to pivot it to using just audio, since we are not interested in video recordings.

I added this play tested example to the website. It requests permission to record upon the request stream button being pressed, after which the button disappears. Then a recording can be started and stopped, which updates the recording that is visible.

This plan to use the MediaStream is outlined in a bit more detail in the design report. The plan is to use the ondataavailable event handler with AJAX to send the current audio information to the python backend.

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?  

Overall, I am hitting the targets I want to, other than displaying target pitch. Because of the time the design report took as a team, we have not been able to have a discussion together about the way we want to store target pitch information, and we don’t have the specific data for our melodies. I will discuss this during next week’s meetings and make sure we have a plan going forward. Overall, I am not too concerned about not having started on that metric yet.

What deliverables do you hope to complete in the next week?

In the next week, I hope to get started on displaying target graphics. Additionally, I want to combine the audio recording and audio playing pages.

Anna’s Status Report for 2/25

Anna’s Status Report for 2/25

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).   This week, in class time was spent