{"id":76,"date":"2023-02-19T04:31:48","date_gmt":"2023-02-19T04:31:48","guid":{"rendered":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd4\/?p=76"},"modified":"2023-02-19T04:31:48","modified_gmt":"2023-02-19T04:31:48","slug":"team-status-report-2-18","status":"publish","type":"post","link":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd4\/2023\/02\/19\/team-status-report-2-18\/","title":{"rendered":"Team Status Report 2\/18"},"content":{"rendered":"<h2><span style=\"font-weight: 400\">Summary\u00a0<\/span><\/h2>\n<p><span style=\"font-weight: 400\">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.\u00a0<\/span><\/p>\n<h2><span style=\"font-weight: 400\">Risks\u00a0<\/span><\/h2>\n<p><span style=\"font-weight: 400\">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 still real time, and we want to hit our target metric i.e &lt;100ms of delay between the audio input and light being triggered. Other risks associated with the latency arise in the signal processing engine. In the signal processing engine, we are still a little confused about what coefficients related to the audio we will extract, and how we will use the current state, and eliminate a few possibilities using the spotify parameters of the song. This might be a computationally intensive problem as first we need to be able to generate all possible combinations, see what&#8217;s in the set of allowed combinations based on the genre, and remove from the set, and randomize options<\/span><\/p>\n<h2><span style=\"font-weight: 400\">Changes\u00a0<\/span><\/h2>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">We successfully ran our DmxPy controller that enables us to connect to the lights using a Python interface. This is very useful in reducing the latency of our program as well. We experimented with other APIs like OpenDMX, and UDMX controllers, and ran into some compilation issues with them. We spent a lot of time trying to debug this issue, but changing the API and starting afresh was a more optimal move.\u00a0<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">While fleshing out details for the Design presentation, we were able to go into detail on what parameters, and what each subsystem would include.\u00a0<\/span>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">For instance, we want to have a larger show class with smaller systems that feed into and out of the show class. We have a light set class that is the hardware-software interface to control the lights. The light set class feeds into the expressive lighting engine that consists of the Lighting logic, and the execution queue (maintains the order of requests)<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Other systems that feed into this are the Genre Detection Classifier. This was initially a big chunk of the work for this project, but we scaled in down for 2 reasons:<\/span>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">The genre detection in general had very poor accuracy<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">We decided to use the Shazam API to recognize the song, and poll the song from Spotify and extract features from there instead. For microphone input, this design might vary a little depending on Shazam\u2019s song recognition accuracy, and secondly whether Spotify has this or not.\u00a0<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2><span style=\"font-weight: 400\">Updated Schedule\u00a0<\/span><\/h2>\n<p><span style=\"font-weight: 400\">Our schedule has been changed to reflect this:<\/span><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-medium wp-image-77\" src=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd4\/wp-content\/uploads\/sites\/249\/2023\/02\/Screenshot-2023-02-18-at-23.31.03-300x190.png\" alt=\"\" width=\"300\" height=\"190\" \/><\/p>\n<h2><span style=\"font-weight: 400\">Media<\/span><\/h2>\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1mZLzeK7y6zr4Z3o2eDmXsnbw8cZjb6rl\/view?usp=share_link\"><span style=\"font-weight: 400\">https:\/\/drive.google.com\/file\/d\/1mZLzeK7y6zr4Z3o2eDmXsnbw8cZjb6rl\/view?usp=share_link<\/span><\/a><span style=\"font-weight: 400\">\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Simple fade from red to green<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Summary\u00a0 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, [&hellip;]<\/p>\n","protected":false},"author":653,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[3],"tags":[],"_links":{"self":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd4\/wp-json\/wp\/v2\/posts\/76"}],"collection":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd4\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd4\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd4\/wp-json\/wp\/v2\/users\/653"}],"replies":[{"embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd4\/wp-json\/wp\/v2\/comments?post=76"}],"version-history":[{"count":1,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd4\/wp-json\/wp\/v2\/posts\/76\/revisions"}],"predecessor-version":[{"id":78,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd4\/wp-json\/wp\/v2\/posts\/76\/revisions\/78"}],"wp:attachment":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd4\/wp-json\/wp\/v2\/media?parent=76"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd4\/wp-json\/wp\/v2\/categories?post=76"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd4\/wp-json\/wp\/v2\/tags?post=76"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}