Tag: status report

Anita’s Status Report for 2/25

Anita’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).  I presented our design review powerpoint! It 

Team Status Report for 2/18

Team Status Report for 2/18

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, an aspect that is somewhat concerning to us is the accuracy and confidence of the pitch detection modules 

Anna’s Status Report for 2/18

Anna’s Status Report for 2/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).  

The first focus this week was going over the feedback we had received from our presentation and adjusting our project plan accordingly. We have switched to using an existing module for our pitch detection, which affected work distribution, added more and ordered equipment, and switched focus on only using hard coded songs for now. Most of this did not affect my portion of the work, so it had a smaller impact on my plans, but, as a group, we spent a few hours refining the tasks in our gantt chart and discussing how this will affect all areas of the project. Additionally, a few hours were spent on putting together the design presentation. It can be viewed at this link. These two tasks covered most of our in class time, as well as some time outside of class.

Next, I continued work on integrating Kelly’s Figma designs to the website framework. This consisted of some general adjustments, converting between hardcoded values in Figma to responsive values. More can be done in this case, for example adjusting the fonts with the screen size and providing a minimum value, but currently I have imported the missing fonts and worked a bit on aligning the elements.

I also spent some time this project on adding a template for songs to be played in the game mode. Although the UI for this is not fleshed out, I have added the two current hard coded songs to the homepage as hyper links, which I think will work in the final project, although they should be stylized. Once a song is selected, it autoplays. It is a pretty rudimentary framework, but it works. It supports songs of type mp3, wav, or ogg.

My work on the website can be seen on Github.

Lastly, I worked on researching graphics frameworks. The two main parts of our project that will use graphics is the results page after a song plays, and during the song. For the results after the song, we want to show various statistics, as well as a graph tracking user pitch vs target pitch for the duration of the game. It is still to be determined how the target pitch will be stored, however these values will likely be hardcoded in our project. Statistics will be easy to display, and my current top candidate for the line graph of pitch is Chart.js.

https://www.chartjs.org/docs/latest/

https://pypi.org/project/django-chartjs/

There are a variety of tools to be used for line charts, which are crucial to this project, as well as options for other charts like bar and pie to be used for the remaining statistics, if we think this is helpful. There is also a progressive line option, in which a line graph grows as you go, which I’m hoping could be used in gameplay. I plan to explore this next week further.

As for gameplay, the graphics we want to see consist of scrolling notes for the target pitch, as well as the current (and possibly past) pitch of the user, lyrics, and most likely text feedback for the user. These all can be accomplished with AJAX and javascript, which I am comfortable with. Some of these should be updated in some hard coded small increments. However, when it comes to the user vocal input and text feedback, I think the best course of action is to have the backend trigger changes that are then shown on screen. I think a way this could be achieved is by, in a loop in javascript, sending requests to the python backend, which responds as soon as there is a note change, over and over again, ostensibly making these changes whenever the python backend sees a change in pitch. However, I would need to play around with this to see if this is feasible. If not, I am hoping that the rate of updates that is necessary to make graphics move smoothly will also be enough to update the user pitch on the screen as well.

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

I am currently on track with regards to the gantt chart. I have begun researching graphics packages, completed basic ui and navigation for the web application, and have some hard coded songs working. This week, we made a lot of changes to the gantt chart, especially when it comes to breaking the web development aspect into smaller tasks (specifically, the gameplay is now split into hardcoded song plays, audio gets recorded, and graphics go alongside the song, and graphics respond to audio input), so this took some focus off of researching graphics, meaning I wasn’t able to focus on that as much as I had planned last week. Nonetheless, we are still on schedule, and I will continue to research graphics next week.

Please list the particular ECE courses (if any) that covered the engineering science and mathematics principles your team used to develop your design ? If there are no courses please tells us how you learned those principles over the last week ?

Since my main focus of this project is web development, the most applicable class to the development of this project this week for me was my web development course at CMU.

  • 17-437: In this course, I covered the concepts of web application development, including adjusting the front end with css, building a django framework, how to use object oriented programming, and how to organize navigation. Overall, I learned most about what I know about web development from this course, although I have done more work on my own.

However, other areas of focus for me have been managing work between groups of people, managing large projects over a longer timeframe, and creating compelling presentations.

  • 17-437: This course ended in a 4 week end of semester project of substantial complexity. This required practice in splitting work over time and between group members.
  • 15-112: This course ended in a multi week solo project that required organization, as well as formulating my goals as MVP and stretch goals.
  • 18-341: This class had a multi week lab of substantial difficulty which required consistent communication with a partner, which has been useful in this project when it comes to communicating with my group through changes of plans and scope of the project.
  • 18-344: This course consisted of partnered labs, which built team working skills, as well as thorough writeups about our intentions, work, and findings, which has been helpful in writing about and summarizing my work in blogposts, presentations, and reports this week.
  • 17-712: This course required a lengthy presentation on a topic I had not been familiar with, which helped me build both researching and presenting skills.
  • 10-615: This class required me to choose and use a machine learning tool I was unfamiliar with for multiple projects, which has been helpful in researching and exploring helpful tools.

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

Next week, I want to continue fleshing out the song pages. A simple addition that I’d like is to skip to a (for now) blank result screen once the song finishes, which requires some more interaction with the audio component. I’d also like to add vocal recordings (that do not get analyzed) to these pages. These both will be good starting blocks to work with and actually analyze the songs as we go.

Next, I’d like to have a simple demo with Chart.js line charts ready, as well as a few with other potential charts we can use. I plan to have these charts read data from another file type, rather than a js data structure.

Kelly’s Status Report for 2/18

Kelly’s Status Report for 2/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, I researched microphones a bit 

Anita’s Status Report for 2/18

Anita’s Status Report for 2/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).   Next week’s design review presentation took a 

Team Status Report for 2/11

Team Status Report for 2/11

The most significant risks that could jeopardize the success of the project. Risk management and contingency plans.

The most significant risk as of right now is the RT pitch detection. This is the main feature of the project and it is crucial that we get this component working. While we are attempting to approach this feature with a homegrown algorithm, we recognize that audio modules have many optimizations that might not be feasible to implement by hand. As performance is such a big factor, it’s reasonable that we auto-fallback on using the audio module if we know that’s the optimal solution. This is our approach/plan to mitigating risks associated with this feature.

 

Changes made to the existing design of the system (requirements, block diagram, system spec, etc). Along with an explanation of why it was necessary, what costs the change incurs, and how these costs be mitigated going forward.

After presenting and gathering feedback on our project proposal presentation, we have multiple strategies and changes to our design to minimize the latency between the user’s raw voice input and the feedback:

  • Use a head-mounted mic so we have a close-talking signal to aid in the recognition and minimize background noise. 

As our main goal is to reduce the amount of latency between the raw input signal and the feedback given to the user, this change is necessary to reduce the amount of signal processing needed. The monetary cost will depend on the type of headset chosen from Amazon. However, this does reduce the accessibility of our project, as people may not have the resources to buy a mic. 

We may use this method of gathering signals at first in the early stages of our signal processing algorithm to verify that RT feedback is feasible, and then as we add complexity to our algorithm, we may revert back to cheaper/more common headphones.

  • Develop the website locally to reduce web latency. 

We have changed our goal of hosting the website on AWS to be a stretch goal. Because latency of pitch detection is so important to our project, we want to reduce latency elsewhere whenever possible. Hosting locally will mean not having to worry about AWS network latency and will help us achieve quick feedback to vocal input. This decreases our project scope, although it may be worth trying out hosting on AWS to see if we are correct in thinking that the network latency is disruptive to user experience, or if it is not noticeable.

  • [Tentative] Use a module for signal processing. 

As stated already, this would greatly reduce the amount of lag. Audio modules have many backend optimizations that may not be feasible to implement, so it may be necessary to make this change. There are no costs, however, we did have concerns about the complexity of our project if we made this change. We have asked our advisors for input, and are waiting on a response.

These changes do not negatively impact our schedule. If anything, if the module usage is approved, it would shift our time table up. 

 

Photos of our progress and components we are proud of.

This week, we were quite proud of our UI mockups that can also be found on our figma.

These mockups were able to get us excited about the end goal of our project as well as facilitate some important discussions on how exactly our project should be presented from a user’s perspective. 

Mockup of our title screen
Mockup of our song UI
Mockup of our feedback UI

 

Public health, safety and welfare, along with other global, cultural, societal, environmental and economic considerations.

Our project includes considerations for affordability and accessibility. With the goal of our project being to foster a casual environment, we chose to opt for less expensive headset microphones as well as strive to make our project run on just a computer microphone alone. Additionally, we decided on a web app to allow anyone to use our project with special consideration put into the UI as well as real time feedback to encourage the user to get better without fostering a negative environment (i.e. negative feedback being constructive and non-personal rather than mean and pointed).

Kelly’s Status Report for 2/11

Kelly’s Status Report for 2/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).   During this week, I started to flush 

Anna’s Status Report for 2/11

Anna’s Status Report for 2/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 I focused mainly on two 

Anita’s Status Report for 2/11

Anita’s Status Report for 2/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).  

Most of the time spent this week was on the research behind the pitch detection algorithms. As I have no prior experience with signal processing other than my semester in 18-290, I spent many hours studying signal processing algorithms. Professor Sullivan recommended that we look into the YIN algorithm, so I watched multiple videos and read (dense) articles on this algorithm to understand the intuition behind the YIN pitch detection algorithm. There are no photos or evidence I can use to prove that I watched the videos, but the following are the sites I visited:

In addition to this, I researched the risks of using a homegrown algorithm. And this is where all my biggest concerns were confirmed. It is ridiculously complex and hard to create a fast algorithm to detect pitch. Thread after thread, website after website, I delved deep into researching the optimizations and features one would have to implement to get a working real-time pitch detection algorithm. In particular, it was this StackOverflow post that was a huge reality check for me. There are just too many factors and optimizations that the best audio modules use. Especially as someone with limited experience with signal processing and debugging signal processing algorithms, these features will be extremely difficult to implement and optimize. This reinforces the research I did on previous projects that used their own signal processing algorithms. Previous projects found it infeasible to do real-time pitch detection and fell back to post-processing. 

My group and I had a long discussion about the merits of using our homegrown algorithm versus a module. We talked about our end goals and what would be the best way to get to those end goals. I asked our advisors, Ankita and Professor Sullivan, their thoughts, and as of writing this post, I am waiting for their feedback.

In addition to researching these algorithms, we had many group discussions simply breaking this project down into its details. Flushing out the project beforehand in our project proposal presentation last week helped immensely with our discussions. 

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

As per our Gantt chart, we are on time and everything is going as expected.

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

I hope to get a bare bones pitch detection algorithm working. It doesn’t have to be real time. Of course, this is dependent on the Professor’s feedback that we are currently waiting on.