{"id":11804,"date":"2016-09-23T19:54:59","date_gmt":"2016-09-23T23:54:59","guid":{"rendered":"http:\/\/embedded-lab.com\/blog\/?p=11804"},"modified":"2016-10-02T00:47:16","modified_gmt":"2016-10-02T04:47:16","slug":"audio-visualizer-on-a-64x64-rgb-matrix","status":"publish","type":"post","link":"https:\/\/embedded-lab.com\/blog\/audio-visualizer-on-a-64x64-rgb-matrix\/","title":{"rendered":"RGB audio visualizer using FPGA"},"content":{"rendered":"<p>Sam Miller, Sahil Gupta,\u00a0and\u00a0Mashrur Mohiuddin built a <strong><a href=\"http:\/\/people.ece.cornell.edu\/land\/courses\/ece5760\/FinalProjects\/s2016\/sgm82_skg73_mm889\/sgm82_skg73_mm889\/sgm82_skg73_mm889\/index.html\" target=\"_blank\">64&#215;64 RGB LED matrix audio visualizer<\/a><\/strong>\u00a0as their final project for the ECE5760 Microcontroller Design course at Cornell. The visualizer responds to a musical input\u00a0in real time with a graphic animation on the RGB panel using vertical bars, balls, and particle to enhance the user&#8217;s listening experience. The RGB visualizer\u00a0runs off of an Altera DE2-115 FPGA, which handles all the controls and processing of data for the 64&#215;64 LED Matrix as well as the beat detection and audio output.<\/p>\n<div id=\"attachment_11805\" style=\"width: 590px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2016\/09\/block_diagram.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-11805\" class=\"size-medium wp-image-11805\" src=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2016\/09\/block_diagram-580x335.png\" alt=\"Functional block diagram of RGB visualizer\" width=\"580\" height=\"335\" srcset=\"https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2016\/09\/block_diagram-580x335.png 580w, https:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2016\/09\/block_diagram.png 799w\" sizes=\"auto, (max-width: 580px) 100vw, 580px\" \/><\/a><p id=\"caption-attachment-11805\" class=\"wp-caption-text\">Functional block diagram of RGB visualizer<\/p><\/div>\n<p><a href=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2016\/09\/royg_bars_square_fixed.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-11806\" src=\"http:\/\/embedded-lab.com\/blog\/wp-content\/uploads\/2016\/09\/royg_bars_square_fixed.gif\" alt=\"royg_bars_square_fixed\" width=\"456\" height=\"442\" \/><\/a><\/p>\n<blockquote><p>Our system starts with a musical input from the 3.5mm line-in input from the FPGA. This analog input is fed through an ADC to digitize the signal at a sampling rate of 48kHz. This signal is fed back through a DAC to the line-out port into speakers in order to play the audio. After the ADC, the audio signal is separated into its frequency components through our FFT module. These frequency components are used in a beat detection algorithm to detect large changes in signal energy, which correspond to beats in the song. The bars mode of the visualizer uses the frequency components directly, while the ball and the particle mode only use the beat of the song. Each of these 3 modules uses their inputs to calculate the coordinates and corresponding colors of each LED in the matrix. The outputs of the modules are muxed and written to two buffers (since the matrix writes to two LEDs simultaneously). From here, another module reads the contents of the buffer, and drives the LED matrix via the GPIO pins on the FPGA.<\/p><\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>Sam Miller, Sahil Gupta,\u00a0and\u00a0Mashrur Mohiuddin built a 64&#215;64 RGB LED matrix audio visualizer\u00a0as their final project for the ECE5760 Microcontroller Design course at Cornell. The visualizer responds to a musical input\u00a0in real time with a graphic animation on the RGB panel using vertical bars, balls, and particle to enhance the user&#8217;s listening experience. The RGB visualizer\u00a0runs off of an Altera DE2-115 FPGA, which handles all the controls and processing of data for the 64&#215;64 LED Matrix as well as the beat detection and audio output. Our system starts with a musical input from the 3.5mm line-in input from the FPGA.<\/p>\n","protected":false},"author":1,"featured_media":11805,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[431],"tags":[1452,1453,1451],"class_list":["post-11804","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-fpga","tag-fpga-project","tag-rgb-audio-visualizer","tag-rgb-matrix"],"_links":{"self":[{"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/posts\/11804","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/comments?post=11804"}],"version-history":[{"count":1,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/posts\/11804\/revisions"}],"predecessor-version":[{"id":11807,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/posts\/11804\/revisions\/11807"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/media\/11805"}],"wp:attachment":[{"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/media?parent=11804"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/categories?post=11804"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/embedded-lab.com\/blog\/wp-json\/wp\/v2\/tags?post=11804"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}