Week Six



WEEK 6


The objectives for week six were to; 
  • Program the Arduino to change LED lights.
  • Write code to allow change the LED lights using Midi Input.
          Besides getting the LED lights to change color with code from the Arduino, the team also conducted extensive research on using the Arduino in conjunction with a Digital Audio Workstation to process midi inputs into velocity and pitch. The link below shows a video of  an Arduino receiving and processing midi data from a Digital Audio Workstation. The team hopes to change the color of the LED lights by using a similar process to take midi input from a midi controller.


          Due to the delay in the shipping and arrival of the Arduino and the Spectrum Shield, the progress of the team has been very slow. The team therefore has a lot of work to catch up on in terms of programing the Arduino and getting the entire system to work as a unit. Certain unforeseen complications like the inability of the Spectrum shield to properly fit on the Arduino without headers and also, the need for a Digital Audio Workstation for Midi inputs are some challenges currently faced by the team.

          Despite this, the team made good progress during the week. LED lighting and breadboard matrix was connected to the Arduino and a code was written for the Arduino IDE program. We worked on simplifying both the code and the lighting matrix so that efficiency would be maximized. Initially, our lighting lighting matrix was very cluttered, only allowing for a few spaces on the breadboard. The LED bulbs were reorganized to fit more lights in the same amount of space.


                      There are essentially four major software components that are required to communicate in order for the project to function. The MIDI controller is connected to a laptop which is simultaneously running a Processing script, a digital audio workstation (DAW) and virtual MIDI port software. Inputs on the controller are received by the DAW and processed. Within the DAW the MIDI information can be simultaneously sent to one of the virtual MIDI ports and a virtual instrument. This ensures that audible notes will be produced in conjunction with the changes in lighting. Processing is a Java based programming application that was designed with the intention of communicating between computers and microprocessors. Two libraries are essential to this application in order for it to communicate MIDI signals to the Arduino board. The first is a generic library titled “Arduino” which contains functions and example codes which communicate with Arduino boards that have cooperative firmware installed on them.  The second is a library titled “promidi” which allows processing to handle midi data through varying sources.
               

                




No comments:

Post a Comment