lathoub/Arduino-AppleMIDI-Library
Send and receive MIDI messages over Ethernet (rtpMIDI or AppleMIDI)
📋 Changes
- events return a pointer to this for easy command/event chaining and avoid have to create separate function declarations. It adds to the readability and brevity of the code.
- setPort
📋 Changes
- if ONE_PARTICIPANT was defined, no connection is established
📋 Changes
- session name longer than 48 bytes would hang the parser #128
- data parser could hang in rare cases #127
- fix for Malformed packets #129
- remote session name return in stead of local session name #130
📋 Changes
- Increased stability in high-throughput [situations](https://github.com/lathoub/Arduino-AppleMIDI-Library/wiki/Enlarge-Ethernet-buffer-size-to-avoid-dropping-UDP-packages)
- Updated [wiki](https://github.com/lathoub/Arduino-AppleMIDI-Library/wiki)
📋 Changes
- Bug Fixes (long session names get cropped)
- Reduced memory footprint (see AVR_MinMemUsage example and note below)
- Extended and revised callbacks to receive AppleMIDI protocol feedback (see AVR_Callbacks example)
- Who may connect to me (Directory) (see AVR_Directory example)
📋 Changes
- Fixed suport for ESP8266
- remove usimg namespace under include (requires namespace when using eg ssrc_t: APPLEMIDI_NAMESPACE::ssrc_t)
- bug fix where wrong ssrc was sent during SYNC
- bug fix where
- debug MACROS moved to own header file
- various enhancements in the examples
📋 Changes
- easier integration of custom settings
- bug fix: buffer empty too soon in multi participant environment
- bug fix: allow missing sessionNames in responses (part of the [AppleMID spec](https://developer.apple.com/library/archive/documentation/Audio/Conceptual/MIDINetworkDriverProtocol/MIDI/MIDI.html))
- UDP buffer size moved to Settings (No longer using UDP_TX_PACKET_MAX_SIZE)
- Compiles on MS Visual C++ and Xcode
- Removed warning from Endian.h
- Moved Endian.h to Platform.h
Bug fix when receiving message with empty Recovery Journal (thank you @hugbug for fixing)
ThruActivated defaults to false
Major rewrite of the Arduino AppleMIDI library on top of the [FortySevenEffects arduino_midi_library](https://github.com/FortySevenEffects/arduino_midi_library)
📋 Changes
- Save 2000 bytes when not initiating sessions, by #undef APPLEMIDI_REMOTE_SESSIONS in AppleMidi_Settings.h
- Fixed travis-ci compilation errors
- removed unused variables
- tested on MKRZERO + MKR ETH shield
💥 Non-Breaking Changes
- The following changes mark the following old parts of the API as deprecated.
- `noteOn` becomes `sendNoteOn`
- `noteOff` becomes `sendNoteOff`
- ...
- All examples have been upgraded to the new naming
Fixed Pitch Bend Reception/Decoding
Source code cleanup (AppleMIDI messages to a single file) and reduce memory footprint
This release only addresses a mismatch in the library.properties Arduino library file.
RTP-MIDI (also known as AppleMIDI) is a protocol to transport MIDI messages within RTP (Real-time Protocol) packets over Ethernet and WiFi networks. It is completely open and free (no license is needed), and is compatible both with LAN and WAN application fields. Compared to MIDI 1.0, RTP-MIDI includes new features like session management, device synchronization and detection of lost packets (with automatic regeneration of lost data). RTP-MIDI is compatible with real-time applications, and supports sample-accurate synchronization for each MIDI message. (from https://en.wikipedia.org/wiki/RTP-MIDI) Tested on Windows 10 and Mac OS 10.12.6 using Arduino Mega, Arduino Ethernet and Adafruit Huzzah New feature: send and receive SysEx
RTP-MIDI (also known as AppleMIDI) is a protocol to transport MIDI messages within RTP (Real-time Protocol) packets over Ethernet and WiFi networks. It is completely open and free (no license is needed), and is compatible both with LAN and WAN application fields. Compared to MIDI 1.0, RTP-MIDI includes new features like session management, device synchronization and detection of lost packets (with automatic regeneration of lost data). RTP-MIDI is compatible with real-time applications, and supports sample-accurate synchronization for each MIDI message. (from https://en.wikipedia.org/wiki/RTP-MIDI) Tested on Windows 10 and Mac OS 10.12.6 using Arduino Mega, Arduino Ethernet and Adafruit Huzzah
RTP-MIDI (also known as AppleMIDI) is a protocol to transport MIDI messages within RTP (Real-time Protocol) packets over Ethernet and WiFi networks. It is completely open and free (no license is needed), and is compatible both with LAN and WAN application fields. Compared to MIDI 1.0, RTP-MIDI includes new features like session management, device synchronization and detection of lost packets (with automatic regeneration of lost data). RTP-MIDI is compatible with real-time applications, and supports sample-accurate synchronization for each MIDI message. (from https://en.wikipedia.org/wiki/RTP-MIDI)
RTP-MIDI (also known as AppleMIDI) is a protocol to transport MIDI messages within RTP (Real-time Protocol) packets over Ethernet and WiFi networks. It is completely open and free (no license is needed), and is compatible both with LAN and WAN application fields. Compared to MIDI 1.0, RTP-MIDI includes new features like session management, device synchronization and detection of lost packets (with automatic regeneration of lost data). RTP-MIDI is compatible with real-time applications, and supports sample-accurate synchronization for each MIDI message. (from https://en.wikipedia.org/wiki/RTP-MIDI)
Summer 2015 pre-release
