{"id":238,"date":"2026-03-21T23:19:02","date_gmt":"2026-03-21T23:19:02","guid":{"rendered":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s26-teamd0\/?p=238"},"modified":"2026-03-21T23:40:04","modified_gmt":"2026-03-21T23:40:04","slug":"joses-status-report-for-03-21","status":"publish","type":"post","link":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s26-teamd0\/2026\/03\/21\/joses-status-report-for-03-21\/","title":{"rendered":"Jose&#8217;s Status Report for 03\/21"},"content":{"rendered":"<p>I spent the week working on integrating and modifying the audio CODEC output with the wavetable sampling\/phase accumulator portions developed by Kaloyan and Mihail.<span class=\"Apple-converted-space\">\u00a0 The I2S module that I originally developed would output 16-bit values, which was noticeable in the output quality of the device once these sampled waveforms would be outputted. With that in mind, I modified the protocol code to work with 24-bit values, allowing for much higher quality audio resolution. This was tested utilizing Kaloyan&#8217;s wave frequency oscillator, such that the FPGA would output (from the line out port) a\u00a0frequency increasing sine wave. \u00a0The volume output was quite low, which required changing the I2C setup module to send a write command for volume (setting it to its maximum for now). <\/span><\/p>\n<p><span class=\"Apple-converted-space\">Once this was done, I moved onto creating boilerplate code for the actual MIDI keyboard input (as the MIDI shield is supposed to arrive by Monday). I had the following setup with the FPGA itself, where each switch represented a MIDI key:<\/span><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-242\" src=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s26-teamd0\/wp-content\/uploads\/sites\/423\/2026\/03\/Screenshot-2026-03-21-at-7.36.01\u202fPM.png\" alt=\"\" width=\"1416\" height=\"646\" srcset=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s26-teamd0\/wp-content\/uploads\/sites\/423\/2026\/03\/Screenshot-2026-03-21-at-7.36.01\u202fPM.png 1416w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s26-teamd0\/wp-content\/uploads\/sites\/423\/2026\/03\/Screenshot-2026-03-21-at-7.36.01\u202fPM-300x137.png 300w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s26-teamd0\/wp-content\/uploads\/sites\/423\/2026\/03\/Screenshot-2026-03-21-at-7.36.01\u202fPM-768x350.png 768w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s26-teamd0\/wp-content\/uploads\/sites\/423\/2026\/03\/Screenshot-2026-03-21-at-7.36.01\u202fPM-1024x467.png 1024w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/p>\n<p>I set the code up so that flipping a switch would send out the corresponding MIDI signal as generated through the breakout board (generally, the switches should also be representing the different piano keys). My idea with this in mind would be to just have to change the outer receiver logic, but have the inner processing done beforehand. With that in mind, the FPGA is now able to output different frequencies through the CODEC with different key presses in mind, as shown in the video below!<\/p>\n<p><a href=\"https:\/\/youtube.com\/shorts\/-aKYDpD8pd4?feature=share\">https:\/\/youtube.com\/shorts\/-aKYDpD8pd4?feature=share<\/a><\/p>\n<p>Right now, everything is going well with regard to our schedule as no major hiccups were faced. My plan for next week would be to set up the actual MIDI input receiver once the breakout board arrives, such that the system can be tested with a physical keyboard.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I spent the week working on integrating and modifying the audio CODEC output with the wavetable sampling\/phase accumulator portions developed by Kaloyan and Mihail.\u00a0 The I2S module that I originally developed would output 16-bit values, which was noticeable in the output quality of the device once these sampled waveforms would be outputted. With that in &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s26-teamd0\/2026\/03\/21\/joses-status-report-for-03-21\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Jose&#8217;s Status Report for 03\/21&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1242,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[9],"_links":{"self":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s26-teamd0\/wp-json\/wp\/v2\/posts\/238"}],"collection":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s26-teamd0\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s26-teamd0\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s26-teamd0\/wp-json\/wp\/v2\/users\/1242"}],"replies":[{"embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s26-teamd0\/wp-json\/wp\/v2\/comments?post=238"}],"version-history":[{"count":4,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s26-teamd0\/wp-json\/wp\/v2\/posts\/238\/revisions"}],"predecessor-version":[{"id":243,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s26-teamd0\/wp-json\/wp\/v2\/posts\/238\/revisions\/243"}],"wp:attachment":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s26-teamd0\/wp-json\/wp\/v2\/media?parent=238"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s26-teamd0\/wp-json\/wp\/v2\/categories?post=238"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s26-teamd0\/wp-json\/wp\/v2\/tags?post=238"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}