Commit Graph

70 Commits

Author SHA1 Message Date
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 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 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 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 1325c23329 added Platform class to abstract millis() 2020-03-05 19:58:49 +01:00
lathoub fc752bc834 lift and shift of the Serial code into a seperate class, allowing for other serializers
lift and shift of the Serial code into a seperate class, allowing for other serializers as AppleMIDI, USBMIDI, ipMIDI, BLE-MIDI
2020-03-04 19:49:27 +01:00
lathoub 5fab6b3fc3 replaced ActiveSensing with Sender Active Sensing
Receiver active Sensing is not implemented (yet)
2020-02-04 10:46:14 +01:00
lathoub 7f9934b1aa added support for ActiveSensing
From: https://www.midi.org/specifications/item/table-1-summary-of-midi-message

Active Sensing. This message is intended to be sent repeatedly to tell the receiver that a connection is alive. Use of this message is optional. When initially received, the receiver will expect to receive another Active Sensing message each 300ms (max), and if it does not then it will assume that the connection has been terminated. At termination, the receiver will turn off all voices and return to normal (non- active sensing) operation.
2020-01-26 11:05:10 +01:00
Francois Best 1c01effbd9 feat: Handle Korg-style of flipping SysEx data header bits
Closes #92
2018-03-10 16:58:17 +01:00
Francois Best 82f5dca265 Bumped version to 4.3.1, fixing Arduino lib file.
Removed redundant version mentions in sources.
2016-11-04 10:53:18 +01:00
Francois Best 437d5ebce0 Bump version in sources. 2016-10-30 09:50:01 +01:00
Francois Best 5d3cbd1f9f #54: added overload of sendAfterTouch for poly. Deprecates sendPolyPressure. 2016-10-28 09:13:06 +02:00
Francois Best f1f0ef41ce Using new definitions for Thru. 2016-10-27 08:11:29 +02:00
Francois Best 8ebd4f9161 Cleanup & init'd thru. 2016-10-20 10:08:00 +02:00
Francois Best e4bd7f1c18 Fix initialization order warnings. 2016-10-13 19:01:59 +02:00
Francois Best 606e732490 Moved examples & keywords.txt to follow 1.5 lib spec. 2016-10-10 15:38:08 +02:00
Francois Best 96374a1fa1 Added RPN/NRPN sending facilities.
Needs doc, closes #37.
2016-10-07 00:38:27 +02:00
Francois Best 993f12ce30 Added accessor to settings template arg. 2016-10-04 18:55:27 -07:00
Francois Best fb693e7245 Changed license to MIT. 2015-08-13 09:03:17 +02:00
Francois Best e31d0a1910 Doc. 2014-06-11 09:33:32 +02:00
Francois Best b1b978d63c 4.2 2014-06-11 09:13:34 +02:00
Francois Best 219340ea96 Fix SysEx size callback bug, using template settings instead of preprocessor macros. 2014-06-11 09:09:08 +02:00
Francois Best f88012b38f Removed auto-instanciation 2014-04-20 17:24:35 +02:00
Francois Best 410e51c91a Template settings. 2014-04-20 17:23:10 +02:00
Francois Best b041abaca3 Helper method. 2014-04-01 09:04:31 +02:00
Francois Best 240cd22021 Added explicit license header and starting 4.1 branch. 2014-04-01 09:03:44 +02:00
Francois Best 3f1e5c474a Handling null-velocity NoteOn as NoteOff (with setting), inlined some methods. 2014-03-12 21:34:46 +01:00
Francois Best b2800e5fdd Doc & formatting. 2014-02-13 21:58:37 +01:00
Francois Best c4d5d76f4a unsigned int -> unsigned and trimmed whitespace. 2013-07-07 15:11:58 +02:00
Francois Best 601ddb3773 Reverted Thru changes on branch release/4.0 (breaking thread/merge-safety). 2013-07-07 15:10:13 +02:00
Francois Best cc9927fd50 Fixed build. 2013-07-07 14:53:56 +02:00
Francois Best d78cace1b2 Working on thru. 2013-07-07 14:13:32 +02:00
Francois Best 8c9d289216 Working on thru. 2013-07-07 12:52:27 +02:00
Francois Best d8e0631399 Include ak47 for trace and debug info. 2013-07-06 16:00:24 +02:00
Francois Best 1d10ce0a46 No need for channel info when parsing. 2013-07-06 15:53:40 +02:00
Francois Best 6fbc9bd5a7 Reworked encoding/decoding methods to support larger arrays. 2013-07-05 11:21:13 +02:00
Francois Best 287b3625db Renamed file for ST's counterpart detection. 2013-06-28 09:09:47 +02:00
Francois Best 6f0535be90 Added detection of channel messages to fix running status. 2012-10-09 08:28:24 +02:00
Francois Best 691b172187 Target detection and simplified auto-instanciation. 2012-10-02 21:51:18 +02:00
Francois Best d8b0d6f838 Moved encode/decode sysex out of MidiInterface. 2012-09-27 21:23:15 +02:00
Francois Best a63afb0868 Added multiple instanciation. 2012-09-27 21:13:57 +02:00
Franky47 2ce571d937 Added SysEx conversion static methods. Note: could be integrated in SysEx send/receive methods.. 2012-09-26 08:33:29 +02:00