Kumar Status Report 4/29

This week I presented for our final presentation, and spent the majority of my time working on this and preparing for it.

We also worked on our poster and I took a lead role on this. We continued user testing and I was looking for additional sheet music for us to test and look on, such as Happy Birthday, Hot Cross Buns, and I reached out to a couple musicians I know to see if they were available to test our application.

Finally, I looked into figurine out how to deploy our application to the cloud on an EC2 instance with an Apache server.



Team Status Report 4/22

Our primary design changes is the note formatting step. We decided that to increase robustness of the project, all the code that parses the durations of the Note structures in order to make them readable by Vexflow would occur in the back-end, after the notes have been integrated but before sending them to the front-end. It access the user-input data, specifically the time-signature, to mathematically determine how each note would be represented in the desired out. For example, this step a note of duration 1 beat would be represented by a quarter-note if the time signature is 4/4 but an eighth note if the time signature is 3/8.


We’ve encountered a recurring issue when it comes to testing, where audios recorded using an iPhone are considered unreadable by the scipy wavfile.read. We’re considering using the librosa library to read audio files instead. We also are facing an issue with figuring out how to download the transcript in PDF form. jspdf is giving us too many issues and we’re looking at alternatives.


For the next 2 weeks, we will be focusing exclusively on testing. This involves quantitative testing regarding the note and rhythm accuracy. This week we will start asking peer musicians for a score out of 10 as well.


Kumar Status Report 4/22

Not much to report this week – Alejandro and I tried making the pdf download feature work with jspdf and another library, but it isn’t working with various import and JavaScript errors.

For now, we’ve moved onto testing as we are able to print out the music notes on the webpage. I downloaded some sheet music and played it through an audio app. We’re now in the process of running this through our app to test our accuracy percentages. There are some file issues that we are trying to resolve.


Given that we’re just doing testing and refining for the next couple weeks, I would say I’m on track with our status as a group.

Kumar Status Report 4/8

This week I continued working on the backend for the PDF button. One of the issues is that the documentation is not very clear on using the jspdf library to write html code into a pdf file. I thought I was able to implement it, but the method had been deprecated (fromHTML) so now I’m trying to use doc.html to write it. Another issue is that the flow of figuring out how to write this in the code since all the information in our html div gets lost after the program is done running – but the pdf button should be able to be clicked after the sheet music is generated. I might need Alejandro’s help in resolving this.

The other issue we faced was the .wav file not being accepted by our code. I spent a while trying to debug this issue in the method we use to read in the .wav files and clean the file. However, we weren’t able to resolve this and seemed to get lucky – as Alejandro was able to record a file “Twinkle Twinkle Little Star” that was accepted by the code.

So far, we have tested our app on short musical audios. We plan on running this on Twinkle Twinkle Little Star, as well as taking in user feedback from musicians who know what the sheet music should look and sound like for an audio. I am designing this form and will send it out by next week. Personally, the front-end has all the requirements we need – and I am working as described on the pdf generation and perhaps a user login page. This is the individual prompt.

Kumar Status Report 4/1

This week I also worked on the Vexflox API and node.js integration in the webapp. This was needed so that we can generate a pdf of the output music score. It required installing and backend integration setup with Django. This was my primary focus other than helping Aditya with the Stave Note functionality. There was significant debugging that hasn’t been resolved yet but should be this week. The code for the pdf generation was in the Vexflox Tutorial but required some changes and modifications that I worked on. 


Next week I will complete this debugging and work further in assisting in the rhythm processor integration – I would say I’m slightly behind schedule but once this bug is resolved it should be back on track.

Kumar Status Report 3/25

While Alejandro is familiar with Bootstrap, he focused on converting the previously written CSS to this as it helps  modularize our project better.

I continued working on the project, specifically the cruz of a major bug. The bug was that if the length of the notes array was greater than 0, then we weren’t able to draw the notes using the Vexflow library. We continued to encounter an uncaught syntax error in our JavaScript file. After digging into various forums and documentation for the JavaScript library Vexflow,  we ended up with the resolution to this – implement a try and except case and sort of hard code it in. I then tested it with various files and arrays and ensured it doesn’t fail.


As this tooka few days to sort out, I was mainly assisting Alejandro and Aditya on higher level discussions surrounding the integration files we had to alter, as outlined in the team status report. I also took the lead on the ethics assignment for our group.

I’d say I’m on track with the front-end nearly finalized and contributing mostly on debugging and code structure discussions on the backend.


I’ll be taking a lead on SNR rejection and adding more front end functionality such as saving and downloading files next week and perhaps creating user profiles.

Kumar Status Report 3/18

My role this week was more of that of assisting my team-mates with their tasks. Our front-end app is coming along  nicely, so I transitioned to helping my team-mates with the backend work.

I planned out the HTTP response containing note information that we needed, so Aditya was able to use this while starting to work with Vexflow. I tried what Aditya already outlined, downloading the library with npm and manually, but this didn’t work for either of us, so we used a script tag.

I resolved a major bug on the front-end where we were having an issue with the MIME type of the Javascript, as the browser was unable to read the file being sent to it when trying to display the notes in Vexflow. This was an issue with the typescript and javascript integration, and was able to resolve it by simply moving the factory class in our javascript file to the bottom of the file.

I would say my progress is on schedule. I am going to be helping Alejandro with the rhythm and pitch processor integration next week, and taking a lead again on the CSS and look of the web app interface.

Kumar Status Report 3/11

Admittedly, this was a bit of slow week – as I was doing a bit of research and overwhelmed with all deadlines in the advance of spring break.

I continued to refine the urls.py as well as the look and feel of the HTML pages we will be using – things such as adding the logo of our group and links to our ECE course webpage.

While there’s not much to show, the python screenshots from last week needed debugging to make sure registration edge cases were handled fine.

I also watched various tutorials and reviewed the documentation for Vexflow. Now that the skeletons of the various aspects of the projects are coming together – I spent a bit of time with Alejandro and Aditya discussing how the integration of the parts will be happening in our views.py file – which dictates all the backend functionality of a Django web app.

Finally, we all worked together to put in significant effort on the Design Review Report, and this was a bulk of our time. I would consider myself to be slightly behind schedule as we are shifting towards integration part of our project in the next couple weeks – but I know I will make this up in the week after spring break.

This should have all the required aspects of the weekly status report.



Kumar Status Report 2/25

This week I worked on the front-end of the app as well as focusing on the user feedback and testing forms.

My main goal was to start building basic HTML pages which encompass the basic functionalities of our web app – these include login, logout, register, file upload, selecting file options for the recording. These were extended from a base.html file.

I also started working on the backend python scripts which will dictate these functionalities. Some screen shots are shown below – I’m currently in the process of fixing some bugs which is why it looks as if the code has errors. I am now working on the file-upload functionality.

I also researched helpful Python django libraries such as Django CKEditor which will help with the UI of the web app interface.

I would consider myself back on track given last week’s sickness. My deliverables will be fixing this file upload functionality and adding more to the HTML pages before spring break.


This should have all the required aspects of the weekly status report.