the most basic and simplest possible one octave midi controller. this is just to demonstrate the awesomeness of MIDI library and to show how easy it is to make a basic midi controller in just half an hour. more advanced versions coming soon :) YOUTUBE link: http://youtu.be/6qNmku_InRI Peace,
Revision 0:1a0457675056, committed 2011-01-30
- Comitter:
- AliBros
- Date:
- Sun Jan 30 02:19:25 2011 +0000
- Commit message:
Changed in this revision
diff -r 000000000000 -r 1a0457675056 TextLCD.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TextLCD.lib Sun Jan 30 02:19:25 2011 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/simon/code/TextLCD/#e4cb7ddee0d3
diff -r 000000000000 -r 1a0457675056 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Sun Jan 30 02:19:25 2011 +0000 @@ -0,0 +1,166 @@ +/*Version 0.01 of my midi controller +Basic midi keyboard using 11 push + button to represent C0-B0. + Problems: + .:B0 sounds weird! and I can't understand why! + .:no polyphony for now!! + + ******************************************************************************** + +WARNING: Use at your own risk, sadly this software comes with no guarantees. +This software is provided 'free' and in good faith, but the author does not +accept liability for any damage arising from its use. + +******************************************************************************** +Ali Bros + + */ + + + + + + +#include "mbed.h" +#include "MIDI.h" +#include "TextLCD.h" +MIDI midi(p13, p14); +DigitalIn C(p21); +DigitalIn CSh(p22); +DigitalIn D(p23); +DigitalIn DSh(p24); +DigitalIn E(p25); +DigitalIn F(p26); +DigitalIn FSh(p27); +DigitalIn G(p28); +DigitalIn GSh(p29); +DigitalIn A(p30); +DigitalIn ASh(p11); +DigitalIn B(p12); + +//DigitalOut led1(p25); +//DigitalOut led2(p26); +//DigitalOut led3(p27); +//DigitalOut led4(p28); +TextLCD lcd(p15, p16, p17, p18, p19, p20); +int main() { +int octave=12; + lcd.cls(); + lcd.locate(0,0); + lcd.printf("MIDI SEND:"); + lcd.locate(0,1); + lcd.printf("Note:"); + while(1){ +while(!C&&!CSh&&!D&&!DSh&&!E&&!F&&!FSh&&!G&&!GSh&&!A&&!ASh&&!B); + + if (C) + { + lcd.locate(8,1); + lcd.printf("C0 "); + midi.noteon(48 + octave); + while(C); + midi.noteoff(48 + octave); + } + midi.noteoff(48 + octave); +while(!C&&!CSh&&!D&&!DSh&&!E&&!F&&!FSh&&!G&&!GSh&&!A&&!ASh&&!B); +midi.noteoff(48 + octave); + if (CSh) + { + lcd.locate(8,1); + lcd.printf("C#0"); + midi.noteon(49 + octave); + while(CSh); + midi.noteoff(49 + octave); + } +while(!C&&!CSh&&!D&&!DSh&&!E&&!F&&!FSh&&!G&&!GSh&&!A&&!ASh&&!B); + if (D) + { + lcd.locate(8,1); + lcd.printf("D0 "); + midi.noteon(50 + octave); + while(D); + midi.noteoff(50 + octave); + } + midi.noteoff(50 + octave); +while(!C&&!CSh&&!D&&!DSh&&!E&&!F&&!FSh&&!G&&!GSh&&!A&&!ASh&&!B); + if (DSh) + { + lcd.locate(8,1); + lcd.printf("D#0"); + midi.noteon(51 + octave); + while(DSh); + midi.noteoff(51 + octave); + } +while(!C&&!CSh&&!D&&!DSh&&!E&&!F&&!FSh&&!G&&!GSh&&!A&&!ASh&&!B); + if (E) + { + lcd.locate(8,1); + lcd.printf("E0 "); + midi.noteon(52 + octave); + while(E); + midi.noteoff(52 + octave); + } +while(!C&&!CSh&&!D&&!DSh&&!E&&!F&&!FSh&&!G&&!GSh&&!A&&!ASh&&!B); + if (F) + { + lcd.locate(8,1); + lcd.printf("F0 "); + midi.noteon(53 + octave); + while(F); + midi.noteoff(53 + octave); + } +while(!C&&!CSh&&!D&&!DSh&&!E&&!F&&!FSh&&!G&&!GSh&&!A&&!ASh&&!B); + if (FSh) + { + lcd.locate(8,1); + lcd.printf("F#0"); + midi.noteon(54 + octave); + while(FSh); + midi.noteoff(54 + octave); + } +while(!C&&!CSh&&!D&&!DSh&&!E&&!F&&!FSh&&!G&&!GSh&&!A&&!ASh&&!B); + if (G) + { + lcd.locate(8,1); + lcd.printf("G0 "); + midi.noteon(55 + octave); + while(G); + midi.noteoff(55 + octave); + } +while(!C&&!CSh&&!D&&!DSh&&!E&&!F&&!FSh&&!G&&!GSh&&!A&&!ASh&&!B); + if (GSh) + { + lcd.locate(8,1); + lcd.printf("G#0"); + midi.noteon(56 + octave); + while(GSh); + midi.noteoff(56 + octave); + } +while(!C&&!CSh&&!D&&!DSh&&!E&&!F&&!FSh&&!G&&!GSh&&!A&&!ASh&&!B); + if (A) + { + lcd.locate(8,1); + lcd.printf("A0 "); + midi.noteon(57 + octave); + while(A); + midi.noteoff(57 + octave); + } + while(!C&&!CSh&&!D&&!DSh&&!E&&!F&&!FSh&&!G&&!GSh&&!A&&!ASh&&!B); + if (ASh) + { + lcd.locate(8,1); + lcd.printf("A#0"); + midi.noteon(58 + octave); + while(ASh); + midi.noteoff(58 + octave); + } while(!C&&!CSh&&!D&&!DSh&&!E&&!F&&!FSh&&!G&&!GSh&&!A&&!ASh&&!B); + if (B) + { + lcd.locate(8,1); + lcd.printf("B0 "); + midi.noteon(59 + octave); + while(DSh); + midi.noteoff(59 + octave); + } + } +} \ No newline at end of file
diff -r 000000000000 -r 1a0457675056 mbed.bld --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Sun Jan 30 02:19:25 2011 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/9a9732ce53a1