Final Project for ECE4180, MIDI Controller
Dependencies: mbed 4DGL-uLCD-SE
You are viewing an older revision! See the latest version
Homepage
By Emeril Huang, Khayame Maiki, Mark Olorvida, Timothy Li
Overview¶
This final project is based on a Musical Instrument Digital Interface (MIDI) controller. The base idea of this is a device that allows a wide variety of electronic musical instruments or sounds to be played at the press of some buttons. This project uses a mbed hooked up to a PC with the standard USB, and utilizes a C# application on Windows to receive serial port messages and plays sound files.
Components¶
- /users/4180_1/notebook/pushbuttons/
- /users/4180_1/notebook/rgb-leds/
- /users/4180_1/notebook/ulcd-144-g2-128-by-128-color-lcd/
Wiring¶
mbed | Cable | uLCD |
---|---|---|
P28 | TX | RX |
P27 | RX | TX |
P30 | RES | RESET |
VU | +5V | +5V |
GND | GND | GND |
uLCD displays current Layer of sounds, and whether or not loops are on. Each layer allows for 8 different sound clips, with 3 layers total.
Push Buttons | Pins | GND |
---|---|---|
Pushbutton1 | P8 | GND |
Pushbutton2 | P9 | GND |
Pushbutton3 | P10 | GND |
Pushbutton4 | P11 | GND |
Pushbutton5 | P12 | GND |
Pushbutton6 | P13 | GND |
Pushbutton7 | P14 | GND |
Pushbutton8 | P15 | GND |
Pushbutton9 | P16 | GND |
Pushbutton10 | P17 | GND |
Pushbutton11 | P18 | GND |
The two rows of four Push buttons trigger sound clips when pressed. The top two buttons activate loops, recording current sounds and then continuously plays them over and over. If pressed again, the loop stops.
RGB LEDs | Red | GND | Green | Blue |
---|---|---|---|---|
LED1 | P26 | GND | P25 | P24 |
LED2 | P23 | GND | P22 | P21 |
LED3 | P5 | GND | P6 | P7 |
LEDs are used to indicate if something is on or not, or show the layer.
Program¶
Import programMIDI-Controller-4180FinalProject
Final Project for ECE4180, MIDI Controller
C# Files¶
C# Program¶
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.Windows.Forms; namespace Mbed_MIDI_Project { static class Program { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Form1 form1 = new Form1(); Application.Run(form1); } } }