Commit Graph

410 Commits

Author SHA1 Message Date
lathoub da891a6678 adding boards (but not the Zero) 2020-03-24 09:30:26 +01:00
lathoub 3de5dc9c42 extending platforms 2020-03-24 09:07:31 +01:00
lathoub aa629c5baf reorder variables for initialisation 2020-03-23 22:26:10 +01:00
lathoub 4db8186d73 order of initialization 2020-03-23 22:00:44 +01:00
lathoub 9a0f2dcf21 LCOV_EXCL_LINE in sendCommon 2020-03-23 21:54:23 +01:00
lathoub 4e970d586a struggling with travis 2020-03-23 21:45:05 +01:00
lathoub 322a13ea31 removed USB references 2020-03-23 21:34:13 +01:00
lathoub 03707964ee setting the CMake env 2020-03-23 21:19:01 +01:00
lathoub f1ad860efb removed references to USB in the test scripts 2020-03-23 14:03:04 +01:00
lathoub 240082c0fb Removed Undefined_F9 (Tick) as an invalid token (so it valid now) 2020-03-23 13:56:35 +01:00
lathoub 9a644aca25 Simplified NoteValues
Need need for extra index (that is the same as the noteName anyway)
2020-03-22 23:29:13 +01:00
lathoub 050e9c9160 added Tick (0xF9) 2020-03-22 23:03:39 +01:00
lathoub ef878344cd moved code to avoid doc clash 2020-03-22 21:29:39 +01:00
lathoub 8f492ec456 shorter syntax using iif 2020-03-22 21:24:57 +01:00
lathoub e78c51a1d9 adding comment section 2020-03-22 21:23:31 +01:00
lathoub e292118e8e moved #version to MIDI.h
#version of the library does not belong in general MIDI definitions
(making midi_Defs.h as generic as possible - usable on other platforms)
2020-03-22 20:36:27 +01:00
lathoub 0f74f054b6 Create NoteNames.ino
demonstrate use of MIDI_NAMESPACE::NoteValues[inNote].strptr
2020-03-22 20:30:37 +01:00
lathoub e79fb67d17 Update Bench.ino 2020-03-22 20:16:58 +01:00
lathoub 07b6f17cc6 move bridge example to other Transport mechanisms 2020-03-22 20:09:16 +01:00
lathoub a707548fd3 removed typedef
when instanciating multiple instances of SerialMIDI, a redefinition error accors because of typing of the serial##Name.
Fix: removed the typdef, a bit harder to read, but avoided complex #ifdef
2020-03-22 20:06:52 +01:00
lathoub 28e9a8cb97 added header 2020-03-22 19:35:47 +01:00
lathoub 1737eb10ab Removed USB examples 2020-03-22 17:41:26 +01:00
lathoub c7195d9522 updating authors 2020-03-22 17:33:18 +01:00
lathoub 575beb5526 prepare for v5 2020-03-22 17:32:37 +01:00
lathoub d7f323435f getting ready for v5 2020-03-22 17:28:17 +01:00
lathoub a1de741e8a removed deprecated MidiFilterMode (to be removed for v5) 2020-03-22 17:27:53 +01:00
lathoub 3db2424fc9 cleanup 2020-03-22 17:26:22 +01:00
lathoub c43d92d649 use #defined value, not the literal 2020-03-22 17:23:08 +01:00
lathoub d4b692ab76 UseSenderActiveSensing & UseReceiverActiveSensing to enable/disable Active Sensing
UseSenderActiveSensing & UseReceiverActiveSensing in Settings are global switches to turn on/off ActiveSensing (and save memory)
2020-03-22 17:19:15 +01:00
lathoub 8730ae0bde added SendCommon, consistent with SendRealTime
including:

sendClock, sendStart, sendStop, sendContinue, sendActiveSensing, sendSystemReset
2020-03-22 15:39:21 +01:00
lathoub 0ab711a067 + noteValues 2020-03-22 15:37:41 +01:00
lathoub 1a025ce79d + Manufacturer System Exclusive ID (incomplete) 2020-03-22 15:37:12 +01:00
lathoub 5699e3fe00 cleanup of basic example
use LED_BUILTIN
2020-03-22 15:34:12 +01:00
lathoub d6ac0f6b82 + receiver ActiveSensing, + error Callback
1) Active Sensing:
Once an ActiveSensing message is received, the system checks for timeouts: if no message is received within the specified 300ms (see in _Defs), an error is set and the checks for timeout stop.

2) added a callback for errors. 2 errors are defined: parse error and ActiveSensing timeout
2020-03-22 15:33:42 +01:00
lathoub 874b44e6f3 Fixed "FML" case: fall down here with an overflown SysEx..
Splitting larger incoming messages into smaller SysEx packets - using an RrtpMidi trick:
            //   first:  0xF0 .... 0xF0
            //   midlle: 0xF7 .... 0xF0
            //   last:   0xF7 .... 0xF7

see: https://tools.ietf.org/html/rfc4695#section-3.2

(Understanding this is not part of the original MIDI spec, but does allow for receiving very very large SysEx messages on a small footprint (does require some 'handy' parsing))

SysExMaxSize in Settings can be reduced significatly (16bytes works fine - pending use case)
2020-03-21 19:51:53 +01:00
lathoub e4ad19d40e cleanup setHandleMessage
unfortunately, not using aliases yet (too complex)
2020-03-18 07:06:02 +01:00
lathoub c09c8e8148 aliasing for callbacks (and default initializers 2020-03-18 06:55:45 +01:00
lathoub bc4e940701 strong typing Channel in the callbacks 2020-03-17 23:44:24 +01:00
lathoub 8fc25fa8f9 DefaultPlatform for Arduino 2020-03-17 09:22:24 +01:00
lathoub 2734894485 mPendingMessageExpectedLength as before
mMessage.length is reset to 0 before the callback, so bring back mPendingMessageExpectedLength as before, and set mMessage.length (and not reset it)
2020-03-15 16:57:01 +01:00
lathoub e7588b906d return a *pointer* (not a ref) to the transport layer 2020-03-15 01:59:12 +01:00
lathoub 4da4538cd3 return reference to Transport layer 2020-03-15 01:46:13 +01:00
lathoub ee4e7b3942 changed based on Franky47's feedback
- send: pass the message as a const ref, to avoid copies
- add mSerial.begin (with Baudrate - added Settings)
- ThruActivated defaults to true
- class name serialMIDI => SerialMIDI
2020-03-11 22:46:06 +01:00
lathoub 8893642b27 added send(MidiMessage), added (untested) bridge example
added send(MidiMessage) for Bridge application (that convert MIDI transport x into MIDI transport y), avoiding parsing entry a stream, setting up all callback - whilst this allows for passing the content, without to much processing/parsing.

Had to move mPendingMessageExpectedLenght into MidiMessage to avoid parsing the data again, just to know the size

Added Bridge example (untested)
2020-03-09 23:05:44 +01:00
lathoub 8905d36c0e added callback for Message
before the specific callback are called, a generic mMessage callback can be fired to inform the user that 'a' message has been received.
2020-03-09 09:40:44 +01:00
lathoub 7bb64074e1 renamed Encoder -> Transport, added MidiType to beginTransmission in serialMIDI 2020-03-09 09:00:17 +01:00
lathoub 08ab5b93de added namespace reference 2020-03-07 10:26:47 +01:00
lathoub 35d1d6216a set ActiveSensing Periodicity in ms
Gives more control over the bool value. Typical value is 300 (ms) - an Active Sensing command is send every 300ms; or 0 (zero) to disable sending ActiveSensing
2020-03-07 10:15:59 +01:00
lathoub 771f923223 active sensing defaults to false, to avoid spamming devices 2020-03-07 08:37:04 +01:00
lathoub 1b6a755c58 add MidiType to beginTransmission
Avoids reparsing of the stream in the transport layer, in order to get the MidiType
2020-03-07 08:25:16 +01:00