Hi
So I am tyring to learn a little bit about MIDI controllers and have been reading around about some of there features. I wondered if anyone could clear a few things up for me with the MIDI.h library here as setup doesnt seem to be performing exactly as I would expect.
Firstly I have flashed the mega126U2 with MIDI firmware to convert the arduino to a midi controller. I am programming the arduino (2560) with a AVRISP MKII.
My ultiamte aim is to have a few buttons being scanned by the arduino to check if they are being pressed. If they are send a midi signal out of the usb. I also want a pitch bend wheel and a modulator. Also I am thinking about an arpeggiator which will require tempo set by the midi software on the computer, so I will need to be able to pickup midi signal coming back.
So this is what I think has to happen:
In setup() I need midi.begin() - then in the brackets I set the channel. I am a bit confused about this. If I set the channel to 1 then does that mean the arduino will appear to midi softwre as midi instrument on channel 1? What would the difference to the software be if I set it to omni? And why in midi.sendNoteOn do I then have to set the channel again? Does that have to be the same channel?
Modulator's as i understand it send a CC message. Is that also a SendNoteOn method call with a different 'Type' or a different call alltogether?
The pitch bend, I have noticed has its own method to call, so I think once I understand sending SendNote commands, I should be able to handle that.
over receiving a tempo from the computer, can this be done along side sending to the pc? Remember I am using the usb cable for midi, with the firmware changed to the midi firmware...
Lastly just to check, When a user releases a button I need to send a SendNoteOff. Is it better to send a Send a SendNoteOff or a SendNoteOn with 0 velocity?
Thanks guys.