Are you seeing your board showing up as one of the ports?
Can you upload the blink test program?
I tested out if some of my old stuff worked and I couldn't select the correct port for it. Turns out that my lead has gone faulty. So when I used a new lead things started to happen.
I did try it on a Leonardo because that was the first thing that came to hand. It also conveniently has a reset push button, which the Arduino Micro does not have. However it is simple to fit a temporary one, from the reset pin to ground.
If you double tap the reset button you should see about 8 seconds of the built in LED fade in and out. Do you see that if you double click the reset? This is the board searching for a USB port. This can be used because bad code in a board can screw up the normal working of the board. Try the double click just before the code finishes compiling and before it starts looking for a port to use for the download. You should see this LED fading bit before the code starts to be downloaded anyway.
This code fires random notes at regular intervals. Check out it works by either using the MIDI Monitor App and Garage Band if you have them. You can see it is old code but it still works.
/*
* MIDIUSB_test.ino
*
* Created: 4/6/2015 10:47:08 AM
* Author: gurbrinder grewal
* Modified by Arduino LLC (2015)
*/
#include "MIDIUSB.h"
// First parameter is the event type (0x09 = note on, 0x08 = note off).
// Second parameter is note-on/note-off, combined with the channel.
// Channel can be anything between 0-15. Typically reported to the user as 1-16.
// Third parameter is the note number (48 = middle C).
// Fourth parameter is the velocity (64 = normal, 127 = fastest).
void noteOn(byte channel, byte pitch, byte velocity) {
midiEventPacket_t noteOn = {0x09, 0x90 | channel, pitch, velocity};
MidiUSB.sendMIDI(noteOn);
}
void noteOff(byte channel, byte pitch, byte velocity) {
midiEventPacket_t noteOff = {0x08, 0x80 | channel, pitch, velocity};
MidiUSB.sendMIDI(noteOff);
}
void setup() {
Serial.begin(250000);
Serial1.begin(250000);
}
// First parameter is the event type (0x0B = control change).
// Second parameter is the event type, combined with the channel.
// Third parameter is the control number number (0-119).
// Fourth parameter is the control value (0-127).
void controlChange(byte channel, byte control, byte value) {
midiEventPacket_t event = {0x0B, 0xB0 | channel, control, value};
MidiUSB.sendMIDI(event);
}
void loop() {
int val;
val = random(20,100);
noteOn(0, val, 64);
MidiUSB.flush();
delay(100);
noteOff(0, val, 64);
MidiUSB.flush();
delay(800);
Serial1.println(val);
// controlChange(0, 10, 65); // Set the value of controller 10 on channel 0 to 65
}