release.txt 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. RtMidi - a set of C++ classes that provides a common API for realtime MIDI input/output across Linux (ALSA & JACK), Macintosh OS X (CoreMIDI & JACK), and Windows (Multimedia Library).
  2. By Gary P. Scavone, 2003-2021 (with help from many others, especially Stephen Sinclair!)
  3. v.5.0.0: (16 November 2021)
  4. - see git history for complete list of changes
  5. - new Web MIDI API
  6. - iOS support
  7. - new setBufferSize() function
  8. - fixes for WinMM, Jack
  9. - added C API test program
  10. - now requiring C++11
  11. - build system updates
  12. - midiprobe probes all compiled APIs
  13. - various build system updates and code efficiencies
  14. v.4.0.0: (17 April 2019)
  15. - see git history for complete list of changes
  16. - updates to test programs to clarify port numbering
  17. - new C API wrapper
  18. - new functions to get API names
  19. - miscellaneous sysex fixes in Jack and ALSA
  20. - new setPortName() method (for Jack and ALSA)
  21. - new setClientName() method (for ALSA)
  22. - various build system updates and code efficiencies
  23. v.3.0.0: (31 August 2017)
  24. - see git history for complete list of changes
  25. - new sendMessage() function that does not use std::vector
  26. - various std::string updates, including use of UTF8 for port names
  27. - fixes for the MIDI queue
  28. - various build system updates and code efficiencies
  29. v2.1.1: (11 February 2016)
  30. - updates to automake routines
  31. - added C API (thanks to Atsushi Eno!)
  32. - JACK ringbuffer allocation change
  33. - OSX virtual port closing fix
  34. - OSX sysex sending fix
  35. - moved Windows kernel streaming code to other branch because it is incomplete
  36. - miscellaneous small fixes
  37. v2.1.0: (30 March 2014)
  38. - renamed RtError class to RtMidiError and embedded it in RtMidi.h (and deleted RtError.h)
  39. - fix to CoreMIDI implementation to support dynamic port changes
  40. - removed global ALSA sequencer objects because they were not thread safe (Martin Koegler)
  41. - fix for ALSA timing ignore flag (Devin Anderson)
  42. - fix for ALSA incorrect use of snd_seq_create_port() function (Tobias Schlemmer)
  43. - fix for international character support in CoreMIDI (Martin Finke)
  44. - fix for unicode conversion in WinMM (Dan Wilcox)
  45. - added custom error hook that allows the client to capture an RtMidi error outside of the RtMidi code (Pavel Mogilevskiy)
  46. - added RtMidi::isPortOpen function (Pavel Mogilevskiy)
  47. - updated OS-X sysex sending mechanism to use normal message sending, which fixes a problem where virtual ports didn't receive sysex messages
  48. - Windows update to avoid lockups when shutting down while sending/receiving sysex messages (ptarabbia)
  49. - OS-X fix to avoid empty messages in callbacks when ignoring sysex messages and split sysexes are received (codepainters)
  50. - ALSA openPort fix to better distinguish sender and receiver (Russell Smyth)
  51. - Windows Kernel Streaming support removed because it was uncompilable and incomplete
  52. v2.0.1: (26 July 2012)
  53. - small fixes for problems reported by Chris Arndt (scoping, preprocessor, and include)
  54. v2.0.0: (18 June 2012)
  55. - revised structure to support multiple simultaneous compiled APIs
  56. - revised ALSA client hierarchy so subsequent instances share same client (thanks to Dan Wilcox)
  57. - added beta Windows kernel streaming support (thanks to Sebastien Alaiwan)
  58. - updates to compile as a shared library or dll
  59. - updated license
  60. - various memory-leak fixes (thanks to Sebastien Alaiwan and Martin Koegler)
  61. - fix for continue sysex problem (thanks to Luc Deschenaux)
  62. - removed SGI (IRIX) support
  63. v1.0.15: (11 August 2011)
  64. - updates for wide character support in Windows
  65. - stopped using std::queue and implemented internal MIDI ring buffer (for thread safety ... thanks to Michael Behrman)
  66. - removal of the setQueueSizeLimit() function ... queue size limit now an optional arguement to constructor
  67. v1.0.14: (17 April 2011)
  68. - bug fix to Jack MIDI support (thanks to Alexander Svetalkin and Pedro Lopez-Cabanillas)
  69. v1.0.13: (7 April 2011)
  70. - updated RtError.h to the same version as in RtAudio
  71. - new Jack MIDI support in Linux (thanks to Alexander Svetalkin)
  72. v1.0.12: (17 February 2011)
  73. - Windows 64-bit pointer fixes (thanks to Ward Kockelkorn)
  74. - removed possible exceptions from getPortName() functions
  75. - changed sysex sends in OS-X to use MIDISendSysex() function (thanks to Casey Tucker)
  76. - bug fixes to time code parsing in OS-X and ALSA (thanks to Greg)
  77. - added MSW project file to build as library (into lib/ directory ... thanks to Jason Champion)
  78. v1.0.11: (29 January 2010)
  79. - added CoreServices/CoreServices.h include for OS-X 10.6 and gcc4.2 compile (thanks to Jon McCormack)
  80. - various increment optimizations (thanks to Paul Dean)
  81. - fixed incorrectly located snd_seq_close() function in ALSA API (thanks to Pedro Lopez-Cabanillas)
  82. - updates to Windows sysex code to better deal with possible delivery problems (thanks to Bastiaan Verreijt)
  83. v1.0.10: (3 June 2009)
  84. - fix adding timestamp to OS-X sendMessage() function (thanks to John Dey)
  85. v1.0.9: (30 April 2009)
  86. - added #ifdef AVOID_TIMESTAMPING to conditionally compile support for event timestamping of ALSA sequencer events. This is useful for programs not needing timestamps, saving valuable system resources.
  87. - updated functionality in OSX_CORE for getting driver name (thanks to Casey Tucker)
  88. v1.0.8: (29 January 2009)
  89. - bug fixes for concatenating segmented sysex messages in ALSA (thanks to Christoph Eckert)
  90. - update to ALSA sequencer port enumeration (thanks to Pedro Lopez-Cabonillas)
  91. - bug fixes for concatenating segmented sysex messages in OS-X (thanks to Emmanuel Litzroth)
  92. - added functionality for naming clients (thanks to Pedro Lopez-Cabonillas and Axel Schmidt)
  93. - bug fix in Windows when receiving sysex messages if the ignore flag was set (thanks to Pedro Lopez-Cabonillas)
  94. v1.0.7: (7 December 2007)
  95. - configure and Makefile changes for MinGW
  96. - renamed midiinfo.cpp to midiprobe.cpp and updated VC++ project/workspace
  97. v1.0.6: (9 March 2006)
  98. - bug fix for timestamp problem in ALSA (thanks to Pedro Lopez-Cabanillas)
  99. v1.0.5: (18 November 2005)
  100. - added optional port name to openVirtualPort() functions
  101. - fixed UNICODE problem in Windows getting device names (thanks Eduardo Coutinho!).
  102. - fixed bug in Windows with respect to getting Sysex data (thanks Jean-Baptiste Berruchon!)
  103. v1.0.4: (14 October 2005)
  104. - added check for status byte == 0xF8 if ignoring timing messages
  105. - changed pthread attribute to SCHED_OTHER (from SCHED_RR) to avoid thread problem when realtime cababilities are not enabled.
  106. - now using ALSA sequencer time stamp information (thanks to Pedro Lopez-Cabanillas)
  107. - fixed memory leak in ALSA implementation
  108. - now concatenate segmented sysex messages in ALSA
  109. v1.0.3: (22 November 2004)
  110. - added common pure virtual functions to RtMidi abstract base class
  111. v1.0.2: (21 September 2004)
  112. - added warning messages to openVirtualPort() functions in Windows and Irix (where it can't be implemented)
  113. v1.0.1: (20 September 2004)
  114. - changed ALSA preprocessor definition to __LINUX_ALSASEQ__
  115. v1.0.0: (17 September 2004)
  116. - first release of new independent class with both input and output functionality