MIDI was not declorated in this scope

Григорий777
Offline
Зарегистрирован: 26.11.2017

В чем проблема ? При компиляции пишет : 'MIDI' was not declorated in this scope везде , где есть MIDI.*функця*

#include <MIDI.h>                        
#include <LiquidCrystal.h>             

LiquidCrystal lcd(21, 22, 23, 24, 25, 26); 
int delayTime = 400;                  

void setup() {
  MIDI.begin(MIDI_CHANNEL_OMNI);       
  lcd.begin(16,4);                     
}

void loop() {
  int type, channel, number;
  if (MIDI.read()) {                   
    byte type = MIDI.getType();        
    switch (type) {                   
      case midi::NoteOn:                     
        channel = MIDI.getChannel();
        number = MIDI.getData1();
        lcd.setCursor(0,0);
        lcd.print(String("Note On") + (",Note#") + number);
        lcd.setCursor(0,1);
        lcd.print(String("Chan ") + channel + (",Value ") + MIDI.getData2());
        delay(delayTime);
        lcd.clear();
        break;
        case midi::NoteOff:
        channel = MIDI.getChannel();
        lcd.setCursor(0,0);
        lcd.print(String("Note On") + (",Note#") + number);
        lcd.setCursor(0,1);
        lcd.print(String("Chan ") + channel + (",Value ") + MIDI.getData2());
        delay(delayTime);
        lcd.clear();
        break;
      case midi::ControlChange:
        channel = MIDI.getChannel();
        number = MIDI.getData1();
        lcd.setCursor(0,0);
        lcd.print(String("Ctl.Ch") + (", CC#") + number);
        lcd.setCursor(0,1);
        lcd.print(String("Chan ") + channel + (",Value ") + MIDI.getData2());
        delay(delayTime);
        lcd.clear();
        break;
      case midi::ProgramChange:
        channel = MIDI.getChannel();
        number = MIDI.getData1();
        lcd.setCursor(0,0);
        lcd.print(String("Prog.Ch") + (",Pgrm#") + number);
        lcd.setCursor(0,1);
        lcd.print(String("Chan ") + channel + (",Value ") + MIDI.getData2());
        delay(delayTime);
        lcd.clear();
        break;
      case midi::AfterTouchPoly:
        channel = MIDI.getChannel();
        lcd.setCursor(0,0);
        lcd.print("After Touch Poly:");
        lcd.setCursor(0,1);
        lcd.print(String("Chan ") + channel + (",Value ") + MIDI.getData2());
        delay(delayTime);
        lcd.clear();
        break;
      case midi::AfterTouchChannel:
        channel = MIDI.getChannel();
        lcd.setCursor(0,0);
        lcd.print("After Touch Channel");
        lcd.setCursor(0,1);
        lcd.print(String("Chan ") + channel + (",Value ") + MIDI.getData2());
        delay(delayTime);
        lcd.clear();
        break;
      case midi::PitchBend:
        channel = MIDI.getChannel();
        lcd.setCursor(0,0);
        lcd.print("Pitch Bend");
        lcd.setCursor(0,1);
        lcd.print(String("Chan ") + channel + (",Value ") + MIDI.getData2());
        delay(delayTime);
        lcd.clear();
        break;
      case midi::SystemExclusive:
        channel = MIDI.getChannel();
        lcd.setCursor(0,0);
        lcd.print("Sysex");
        lcd.setCursor(0,1);
        lcd.print(String("Chan ") + channel + (",Value ") + MIDI.getData2());
        delay(delayTime);
        lcd.clear();
        break;
    }
  }
}

 

UserDead
UserDead аватар
Offline
Зарегистрирован: 29.11.2015

Оговорюсь сразу. Не тестировал midi и не сталкивался. Решил погуглить и скомпилить сам.

Нашел это

http://forum.arduino.cc/index.php?topic=265802.0

 

Говорят добавить после include


MIDI_CREATE_DEFAULT_INSTANCE();

 

Григорий777
Offline
Зарегистрирован: 26.11.2017

Спасибо большое , помогло