Weekly Status Reports

Parth’s Status Report (2/25)

Parth, Weekly Status Reports
Personal Accomplishments I spent a majority of this week working on setting up the django webapp for the UI. This involved communicating with my teammates in establishing the information they need for their respective subsystems. I ran into some bugs while setting up the webapp, as it was not able to communicate with the Spotify API, but I was able to fix that by updating the redirecting URI to revert back to the local host. There were some more bugs in establishing connections with the show class as it has not been developed fully. I anticipate that these bugs will be addressed next week as we flesh out the LightSet class further.   On Track? I am on track with my progress for this week. I was anticipating finishing UI setup…
Read More

Rachana’s Status Report (2/25)

Rachana, Weekly Status Reports
Personal Accomplishments https://drive.google.com/drive/u/0/folders/16YJbrFB_6vTO6P4SGzJ2yftce_aSI6WH  A large part of this week went into the proposal presentation slides. I presented this week, so a lot of detail needed to be fleshed out, and the presentation had to be understandable in a way that the audience could understand it without having a lot of background information about the numerous subsystems.    The genre classifier is able to output the danceability, valence, liveness, energy, tempo, and loudness attributes. I used Shazam’s song detection API, and used the song track title to poll spotify with a song query to get the audio features.    I found song features that can be split up into Timbral, Pitch, and Rhythmic features, and a way to construct data frames with these features embedded in it. We want to be…
Read More

Team Status Report (2/25)

Weekly Status Reports
Summary  Over the course of this week we have moved from working mostly together on one aspect of the project to now working independently on separate parts of the project. Abhishek started making the lighting engine structure to interface with the lights. Parth has started working on the UI and django webapp so that a user can interact with our product. Rachana has started working on the signal processing and has started extracting important features from the audio. We also spent a decent amount of time working on the presentation slides. Finally we made a request to purchase the Gigbar 2 so that we can start testing on the actual lights that we are looking to use.  Risks  Some of the risks that we are still struggling with are how…
Read More

Rachana’s Status Report (2/18)

Rachana, Weekly Status Reports
Personal Accomplishments https://colab.research.google.com/drive/15RFAHvDop2-Yh4cbhbS3MnSKOgIHlB2V#scrollTo=1YY6_6ebt0I8  A simple Shazam API test to extract the song title from a song uploaded. It uses a signature generator object, and you can parse and extract different features from the Shazam object. In this case, it is able to get the song Teenage Dream in one iteration correctly in 10 seconds. A major part of my work was to figure out what the genre detection and feature extraction from Spotify would consist of. Very early on in the week I realized that an ML model for genre detection is not as accurate. Extracting the genre incorrectly would be the first level of uncertainty, and then working with this uncertainty further to extract other features like danceability, valence, loudness, and liveness based on genre would introduce more unpredictability in…
Read More

Parth’s Status Report (2/18)

Parth, Weekly Status Reports
Parth’s Status Report for Feb 18 Personal Accomplishments Most of my work this week was aimed towards consolidating the data for the UI and implementing a MVC design that is compatible with the inputs and outputs for each subsystem. This week involved a lot of work as a team, wherein, we made some significant design decisions that were backed with proof of concepts and metrics. To that end, my first objective was to find a way to remove our dependency on the QLC+ API because of latency issues. We tried using PyDMXControl to directly interface with the lights using Python, however, we ran into backend issues. To resolve this, I found another python library DmxPy, using which, we were able to control the lights directly, as shown in the media…
Read More

Abhishek’s Status Report 2/18

Abhishek, Weekly Status Reports
Personal Accomplishments Overall, this week a lot of work was done in terms of narrowing down the specifics of how all of the systems are going to work together. As of last week we knew in broad strokes that we needed genre classification, signal processing, lighting, and UI units. Now we are much more clear on what we need. I personally was working on the Expressive Lighting Engine. It was broken up into a few different parts, and is the unit that is closest to the actual lights. I determined the details of how this engine would function. I built out the specification of all the functions that we will allow for including: color change, strobe, fade, rotate, and blackout. We also then determined how we would approach actually selecting…
Read More

Team Status Report 2/18

Weekly Status Reports
Summary  Overall we made significant progress in designing our subsystems. We made a few design decisions that simplified our process, and we figured out what we could feasibly implement with the existing APIs. We were able to spend significant time at the Media Lab too which allowed us to work hands on with the lights, and control them effectively. Working on the design presentation together also gave us a lot more clarity into the inputs and outputs, and how we drive communication among the different subsystems.  Risks  We were able to mitigate risks from the previous week i.e control the lights using a Python API directly, and not rely on QLC++ for light communication. However, we are still a little worried about the latency of the program as it is…
Read More

Team Status Report (2/11)

Weekly Status Reports
Summary  Overall, we made significant headway in getting the project started. We consolidated the design for the subsystems and figured out the communication between them, which is critical for our project. We spent some time setting up the hardware in the Media Lab and understanding how to best utilize it. We also established the requirements for each subsystem we will be utilizing for development going forward. Risks  Currently, we are using QLC+ to drive communication with the lights. QLC+ is developed on C++ making it fast, but there are still latency issues if we are using the API within our python program. We will be attempting to completely remove our dependence on QLC+ by trying to communicate directly with the I/O, which might be a risk for the project. This…
Read More

Abhishek’s Status Report (2/11)

Abhishek, Weekly Status Reports
Personal Accomplishments Personally I was able to make significant architectural progress on the Expressive Lighting Engine, and also was able to work with the team to get the DMX protocol and hardware set up. Regarding the Expressive Lighting Engine, I decided that the system will be composed of 3 main parts.   The first is the Expressive Lighting Library. This will contain all of the functions that lights will be allowed to have. Below are the lighting functions that I have determined would be useful to have at the moment.   Function Name Parameters Color Hold Light #, Color Holds a color Color Change Light #, [Color1, color2,  …], freq Cycles between colors at a certain frequency Strobe Light #, Color Flashes a color Strobe Random Light #,  Flashes random…
Read More

Parth’s Status Report (2/11)

Parth, Weekly Status Reports
Personal Accomplishments The most important update for this week was understanding how to manipulate the lights with the DMX protocol and establishing a chain of communication. I started off by getting the required hardware components that include the ADJ Mega Par Profile Plus Lights, 1 DMX cable per light, 1 power cable per light, DMX 5 to 3 pin converter, USB A to USB 2 convert, Enttec DMX USB pro (and maybe a terminator). I tried the in-built sound active modes, daisy chained the lights, and tested the light behavior on multiple channel controls (4, 5, 6, 9, and 10 channels per light). I then established that we can recreate any desired behavior on the lights using only the first 4 channels, which is what we are going to do…
Read More