diff --git a/README.md b/README.md index 3b8608e..e75ba6a 100644 --- a/README.md +++ b/README.md @@ -5,10 +5,11 @@ [![GitHub release](https://img.shields.io/github/release/FortySevenEffects/arduino_midi_library.svg?maxAge=3600)](https://github.com/FortySevenEffects/arduino_midi_library/releases/latest) [![License](https://img.shields.io/github/license/FortySevenEffects/arduino_midi_library.svg?maxAge=3600)](LICENSE) -This library enables MIDI I/O communications on the Arduino serial ports. +This library adds MIDI I/O communications to an Arduino board. ### Features +- **New** : USB MIDI Device support with [`MIDIUSB`](https://github.com/arduino-libraries/MIDIUSB). - Compatible with all Arduino boards (and clones with an AVR processor). - Simple and fast way to send and receive every kind of MIDI message (including all System messages, SysEx, Clock, etc..). - OMNI input reading (read all channels). @@ -16,36 +17,36 @@ This library enables MIDI I/O communications on the Arduino serial ports. - [Callbacks](https://github.com/FortySevenEffects/arduino_midi_library/wiki/Using-Callbacks) to handle input messages more easily. - Last received message is saved until a new one arrives. - Configurable: [overridable template-based settings](https://github.com/FortySevenEffects/arduino_midi_library/wiki/Using-custom-Settings). -- Create more than one MIDI port for mergers/splitters applications. +- Create more than one MIDI interface for mergers/splitters applications. - Use any serial port, hardware or software. ### Getting Started -1. Use Arduino's Library Manager to install the library. +1. Use the Arduino Library Manager to install the library. ![Type "MIDI" in the Arduino IDE Library Manager](res/library-manager.jpg) 2. Start coding: - ```c++ - #include +```c++ +#include - // Created and binds the MIDI interface to the default hardware Serial port - MIDI_CREATE_DEFAULT_INSTANCE(); +// Create and bind the MIDI interface to the default hardware Serial port +MIDI_CREATE_DEFAULT_INSTANCE(); - void setup() - { - MIDI.begin(MIDI_CHANNEL_OMNI); // Listen to all incoming messages - } +void setup() +{ + MIDI.begin(MIDI_CHANNEL_OMNI); // Listen to all incoming messages +} - void loop() - { - // Send note 42 with velocity 127 on channel 1 - MIDI.sendNoteOn(42, 127, 1); +void loop() +{ + // Send note 42 with velocity 127 on channel 1 + MIDI.sendNoteOn(42, 127, 1); - // Read incoming messages - MIDI.read(); - } - ``` + // Read incoming messages + MIDI.read(); +} +``` 3. Read the [documentation](#documentation) or watch the awesome video tutorials from [Notes & Volts](https://www.youtube.com/playlist?list=PL4_gPbvyebyH2xfPXePHtx8gK5zPBrVkg).