MIDI

Dependencies:   mbed USBDevice

Committer:
Diego_Mbed
Date:
Wed Jul 08 03:33:13 2020 +0000
Revision:
1:185dc77ef1ee
Parent:
0:81e431d882ef
MIDI key;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Diego_Mbed 1:185dc77ef1ee 1 /*
Diego_Mbed 1:185dc77ef1ee 2 * Copyright (c) 2006-2020 Arm Limited and affiliates.
Diego_Mbed 1:185dc77ef1ee 3 * SPDX-License-Identifier: Apache-2.0
Diego_Mbed 1:185dc77ef1ee 4 */
Diego_Mbed 0:81e431d882ef 5 #include "mbed.h"
Diego_Mbed 0:81e431d882ef 6 #include "USBMIDI.h"
Diego_Mbed 1:185dc77ef1ee 7
Diego_Mbed 0:81e431d882ef 8 USBMIDI midi;
Diego_Mbed 1:185dc77ef1ee 9
Diego_Mbed 1:185dc77ef1ee 10 DigitalIn nota1(D8);
Diego_Mbed 1:185dc77ef1ee 11 DigitalIn nota2(D9);
Diego_Mbed 1:185dc77ef1ee 12 DigitalIn nota3(D10);
Diego_Mbed 1:185dc77ef1ee 13 DigitalIn nota4(D11);
Diego_Mbed 1:185dc77ef1ee 14 DigitalIn nota5(D12);
Diego_Mbed 1:185dc77ef1ee 15 DigitalIn nota6(PTA17);
Diego_Mbed 1:185dc77ef1ee 16 AnalogIn escala(A0);
Diego_Mbed 1:185dc77ef1ee 17 DigitalOut myled(LED1);
Diego_Mbed 1:185dc77ef1ee 18
Diego_Mbed 1:185dc77ef1ee 19 int fact=0;
Diego_Mbed 1:185dc77ef1ee 20
Diego_Mbed 1:185dc77ef1ee 21 void key1(){
Diego_Mbed 1:185dc77ef1ee 22 midi.write(MIDIMessage::NoteOn(12+fact));
Diego_Mbed 1:185dc77ef1ee 23 myled=1;
Diego_Mbed 1:185dc77ef1ee 24 wait_ms(175);
Diego_Mbed 1:185dc77ef1ee 25 midi.write(MIDIMessage::NoteOff(12+fact));
Diego_Mbed 1:185dc77ef1ee 26 myled=0;
Diego_Mbed 1:185dc77ef1ee 27 wait_ms(175);
Diego_Mbed 1:185dc77ef1ee 28 }
Diego_Mbed 1:185dc77ef1ee 29
Diego_Mbed 1:185dc77ef1ee 30 void key2(){
Diego_Mbed 1:185dc77ef1ee 31 midi.write(MIDIMessage::NoteOn(13+fact));
Diego_Mbed 1:185dc77ef1ee 32 myled=1;
Diego_Mbed 1:185dc77ef1ee 33 wait_ms(175);
Diego_Mbed 1:185dc77ef1ee 34 midi.write(MIDIMessage::NoteOff(13+fact));
Diego_Mbed 1:185dc77ef1ee 35 myled=0;
Diego_Mbed 1:185dc77ef1ee 36 wait_ms(175);
Diego_Mbed 1:185dc77ef1ee 37 }
Diego_Mbed 1:185dc77ef1ee 38
Diego_Mbed 1:185dc77ef1ee 39 void key3(){
Diego_Mbed 1:185dc77ef1ee 40 midi.write(MIDIMessage::NoteOn(14+fact));
Diego_Mbed 1:185dc77ef1ee 41 myled=1;
Diego_Mbed 1:185dc77ef1ee 42 wait_ms(175);
Diego_Mbed 1:185dc77ef1ee 43 midi.write(MIDIMessage::NoteOff(14+fact));
Diego_Mbed 1:185dc77ef1ee 44 myled=0;
Diego_Mbed 1:185dc77ef1ee 45 wait_ms(175);
Diego_Mbed 1:185dc77ef1ee 46 }
Diego_Mbed 1:185dc77ef1ee 47
Diego_Mbed 1:185dc77ef1ee 48 void key4(){
Diego_Mbed 1:185dc77ef1ee 49 midi.write(MIDIMessage::NoteOn(15+fact));
Diego_Mbed 1:185dc77ef1ee 50 myled=1;
Diego_Mbed 1:185dc77ef1ee 51 wait_ms(175);
Diego_Mbed 1:185dc77ef1ee 52 midi.write(MIDIMessage::NoteOff(15+fact));
Diego_Mbed 1:185dc77ef1ee 53 myled=0;
Diego_Mbed 1:185dc77ef1ee 54 wait_ms(175);
Diego_Mbed 1:185dc77ef1ee 55 }
Diego_Mbed 1:185dc77ef1ee 56
Diego_Mbed 1:185dc77ef1ee 57 void key5(){
Diego_Mbed 1:185dc77ef1ee 58 midi.write(MIDIMessage::NoteOn(16+fact));
Diego_Mbed 1:185dc77ef1ee 59 myled=1;
Diego_Mbed 1:185dc77ef1ee 60 wait_ms(175);
Diego_Mbed 1:185dc77ef1ee 61 midi.write(MIDIMessage::NoteOff(16+fact));
Diego_Mbed 1:185dc77ef1ee 62 myled=0;
Diego_Mbed 1:185dc77ef1ee 63 wait_ms(175);
Diego_Mbed 1:185dc77ef1ee 64 }
Diego_Mbed 1:185dc77ef1ee 65
Diego_Mbed 1:185dc77ef1ee 66 void key6(){
Diego_Mbed 1:185dc77ef1ee 67 midi.write(MIDIMessage::NoteOn(17+fact));
Diego_Mbed 1:185dc77ef1ee 68 myled=1;
Diego_Mbed 1:185dc77ef1ee 69 wait_ms(175);
Diego_Mbed 1:185dc77ef1ee 70 midi.write(MIDIMessage::NoteOff(17+fact));
Diego_Mbed 1:185dc77ef1ee 71 myled=0;
Diego_Mbed 1:185dc77ef1ee 72 wait_ms(175);
Diego_Mbed 1:185dc77ef1ee 73 }
Diego_Mbed 1:185dc77ef1ee 74
Diego_Mbed 1:185dc77ef1ee 75 void Botones(){
Diego_Mbed 1:185dc77ef1ee 76 if(nota1==1){
Diego_Mbed 1:185dc77ef1ee 77 key1();
Diego_Mbed 1:185dc77ef1ee 78 }else if (nota2==1) {
Diego_Mbed 1:185dc77ef1ee 79 key2();
Diego_Mbed 1:185dc77ef1ee 80 }else if (nota3==1) {
Diego_Mbed 1:185dc77ef1ee 81 key3();
Diego_Mbed 1:185dc77ef1ee 82 }else if (nota4==1) {
Diego_Mbed 1:185dc77ef1ee 83 key4();
Diego_Mbed 1:185dc77ef1ee 84 }else if (nota5==1) {
Diego_Mbed 1:185dc77ef1ee 85 key5();
Diego_Mbed 1:185dc77ef1ee 86 }else if (nota6==1) {
Diego_Mbed 1:185dc77ef1ee 87 key6();
Diego_Mbed 1:185dc77ef1ee 88 }else{
Diego_Mbed 1:185dc77ef1ee 89 midi.write(MIDIMessage::NoteOff(57));
Diego_Mbed 0:81e431d882ef 90 }
Diego_Mbed 0:81e431d882ef 91 }
Diego_Mbed 1:185dc77ef1ee 92
Diego_Mbed 1:185dc77ef1ee 93
Diego_Mbed 1:185dc77ef1ee 94
Diego_Mbed 1:185dc77ef1ee 95 int main(){
Diego_Mbed 1:185dc77ef1ee 96
Diego_Mbed 1:185dc77ef1ee 97 while (1){
Diego_Mbed 1:185dc77ef1ee 98 fact=escala.read()*64;
Diego_Mbed 1:185dc77ef1ee 99 Botones();
Diego_Mbed 0:81e431d882ef 100 }
Diego_Mbed 0:81e431d882ef 101 }