summaryrefslogtreecommitdiff
path: root/portmidi/CHANGELOG.txt
diff options
context:
space:
mode:
authorMitja Felicijan <mitja.felicijan@gmail.com>2024-10-07 06:50:04 +0200
committerMitja Felicijan <mitja.felicijan@gmail.com>2024-10-07 06:50:04 +0200
commit988f5d2b5343850e19ad1512cefe6c53953aa02e (patch)
tree1ff29934294e73b2575488c06df91866ce251dbe /portmidi/CHANGELOG.txt
parent9b5839c58a2e1df8bddf6b98805998508ea417d5 (diff)
downloadttdaw-988f5d2b5343850e19ad1512cefe6c53953aa02e.tar.gz
Added bunch of examples
Diffstat (limited to 'portmidi/CHANGELOG.txt')
-rw-r--r--portmidi/CHANGELOG.txt213
1 files changed, 213 insertions, 0 deletions
diff --git a/portmidi/CHANGELOG.txt b/portmidi/CHANGELOG.txt
new file mode 100644
index 0000000..fee4330
--- /dev/null
+++ b/portmidi/CHANGELOG.txt
@@ -0,0 +1,213 @@
1/* CHANGELOG FOR PORTMIDI
2 *
3 * 21Feb22 v2.0.3 Roger Dannenberg
4 * - this version allows multiple hardware devices to have the same name.
5 *
6 * 03Jan22 v2.0.2 Roger Dannenberg
7 * - many changes for CMake including install support
8 * - bare-bones Java and PmDefaults support. It runs, but no
9 * installation.
10 *
11 * 16Sep21 Roger Dannenberg
12 * - Added CreateVirtualInput and CreateVirtualOutput functions (macOS
13 * & Linux) only.
14 * - Fix for unicode endpoints on macOS CoreMIDI.
15 * - Parsing in macOS of realtime message embedded in short messages
16 * (can this actually happen?)
17 * - renamed pm_test/test.c to pm_test/testio.c
18 * - with this release, pm_java, pm_csharp, pm_cl, pm_python, pm_qt
19 * are marked as "legacy code" and README.txt's refer to other
20 * projects. I had hoped for "one-stop shopping" for language
21 * bindings, but developers decided to move work to independent
22 * repositories. Maybe that's better.
23 *
24 * 19Oct09 Roger Dannenberg
25 * - Changes dynamic library names from portmidi_d to portmidi to
26 * be backward-compatible with programs expecting a library by
27 * the old name.
28 *
29 * 04Oct09 Roger Dannenberg
30 * - Converted to using Cmake.
31 * - Renamed static and dynamic library files to portmidi_s and portmidi_d
32 * - Eliminated VC9 and VC8 files (went back to simply test.vcproj, etc.,
33 * use Cmake to switch from the provided VC9 files to VC8 or other)
34 * - Many small changes to prepare for 64-bit architectures (but only
35 * tested on 32-bit machines)
36 *
37 * 16Jun09 Roger Dannenberg
38 * - Started using Microsoft Visual C++ Version 9 (Express). Converted
39 * all *-VC9.vcproj file to *.vcproj and renamed old project files to
40 * *-VC8.proj. Previously, output from VC9 went to special VC9 files,
41 * that breaks any program or script looking for output in release or
42 * debug files, so now both compiler version output to the same folders.
43 * Now, debug version uses static linking with debug DLL runtime, and
44 * release version uses static linking with statically linked runtime.
45 * Converted to Inno Setup and worked on scripts to make things build
46 * properly, especially pmdefaults.
47 *
48 * 02Jan09 Roger Dannenberg
49 * - Created Java interface and wrote PmDefaults application to set
50 * values for Pm_GetDefaultInputDeviceID() and
51 * Pm_GetDefaultOutputDeviceID(). Other fixes.
52 *
53 * 19Jun08 Roger Dannenberg and Austin Sung
54 * - Removed USE_DLL_FOR_CLEANUP -- Windows 2000 through Vista seem to be
55 * fixed now, and can recover if MIDI ports are left open
56 * - Various other minor patches
57 *
58 * 17Jan07 Roger Dannenberg
59 * - Lots more help for Common Lisp user in pm_cl
60 * - Minor fix to eliminate a compiler warning
61 * - Went back to single library in OS X for both portmidi and porttime
62 *
63 * 16Jan07 Roger Dannenberg
64 * - OOPS! fixed bug where short messages all had zero data
65 * - Makefile.osx static library build now makes universal (i386 + ppc)
66 * binaries
67 *
68 * 15Jan07 Roger Dannenberg
69 * - multiple rewrites of sysex handling code to take care of
70 * error-handling, embedded messages, message filtering,
71 * driver bugs, and host limitations.
72 * - fixed windows to use dwBufferLength rather than
73 * dwBytesRecorded for long buffer output (fix by Nigel Brown)
74 * - Win32 MME code always appends an extra zero to long buffer
75 * output to work around a problem with earlier versions of Midi Yoke
76 * - Added mm, a command line Midi Monitor to pm_test suite
77 * - Revised copyright notice to match PortAudio/MIT license (requests
78 * are moved out of the license proper and into a separate paragraph)
79 *
80 * 18Oct06 Roger Dannenberg
81 * - replace FIFO in pmutil with Light Pipe-based multiprocessor-safe alg.
82 * - replace FIFO in portmidi.c with PmQueue from pmutil
83 *
84 * 07Oct06 cpr & Roger Dannenberg
85 * - overhaul of CoreMIDI input to handle running status and multiple
86 * - messages per packet, with additional error detection
87 * - added Leigh Smith and Rick Taube support for Common Lisp and
88 * - dynamic link libraries in OSX
89 * - initialize static global seq = NULL in pmlinuxalsa.c
90 *
91 * 05Sep06 Sebastien Frippiat
92 * - check if (ALSA) seq exists before closing it in pm_linuxalsa_term()
93 *
94 * 05Sep06 Andreas Micheler and Cecilio
95 * - fixed memory leak by freeing someo objects in pm_winmm_term()
96 * - and another leak by freeing descriptors in Pm_Terminate()
97 *
98 * 23Aug06 RBD
99 * - various minor fixes
100 *
101 * 04Nov05 Olivier Tristan
102 * - changes to OS X to properly retrieve real device name on CoreMidi
103 *
104 * 19Jul05 Roger Dannenberg
105 * - included pmBufferMaxSize in Pm_GetErrorText()
106 *
107 * 23Mar05 Torgier Strand Henriksen
108 * - cleaner termination of porttime thread under Linux
109 *
110 * 15Nov04 Ben Allison
111 * - sysex output now uses one buffer/message and reallocates buffer
112 * - if needed
113 * - filters expanded for many message types and channels
114 * - detailed changes are as follows:
115 * ------------- in pmwinmm.c --------------
116 * - new #define symbol: OUTPUT_BYTES_PER_BUFFER
117 * - change SYSEX_BYTES_PER_BUFFER to 1024
118 * - added MIDIHDR_BUFFER_LENGTH(x) to correctly count midihdr buffer length
119 * - change MIDIHDR_SIZE(x) to (MIDIHDR_BUFFER_LENGTH(x) + sizeof(MIDIHDR))
120 * - change allocate_buffer to use new MIDIHDR_BUFFER_LENGTH macro
121 * - new macros for MIDIHDR_SYSEX_SIZE and MIDIHDR_SYSEX_BUFFER_LENGTH
122 * - similar to above, but counts appropriately for sysex messages
123 * - added the following members to midiwinmm_struct for sysex data:
124 * - LPMIDIHDR *sysex_buffers; ** pool of buffers for sysex data **
125 * - int num_sysex_buffers; ** how many sysex buffers **
126 * - int next_sysex_buffer; ** index of next sysexbuffer to send **
127 * - HANDLE sysex_buffer_signal; ** to wait for free sysex buffer **
128 * - duplicated allocate_buffer, alocate_buffers and get_free_output_buffer
129 * - into equivalent sysex_buffer form
130 * - changed winmm_in_open to initialize new midiwinmm_struct members and
131 * - to use the new allocate_sysex_buffer() function instead of
132 * - allocate_buffer()
133 * - changed winmm_out_open to initialize new members, create sysex buffer
134 * - signal, and allocate 2 sysex buffers
135 * - changed winmm_out_delete to free sysex buffers and shut down the sysex
136 * - buffer signal
137 * - create new function resize_sysex_buffer which resizes m->hdr to the
138 * - passed size, and corrects the midiwinmm_struct accordingly.
139 * - changed winmm_write_byte to use new resize_sysex_buffer function,
140 * - if resize fails, write current buffer to output and continue
141 * - changed winmm_out_callback to use buffer_signal or sysex_buffer_signal
142 * - depending on which buffer was finished
143 * ------------- in portmidi.h --------------
144 * - added pmBufferMaxSize to PmError to indicate that the buffer would be
145 * - too large for the underlying API
146 * - added additional filters
147 * - added prototype, documentation, and helper macro for Pm_SetChannelMask
148 * ------------- in portmidi.c --------------
149 * - added pm_status_filtered() and pm_realtime_filtered() functions to
150 * separate filtering logic from buffer logic in pm_read_short
151 * - added Pm_SetChannelMask function
152 * - added pm_channel_filtered() function
153 * ------------- in pminternal.h --------------
154 * - added member to PortMidiStream for channel mask
155 *
156 * 25May04 RBD
157 * - removed support for MIDI THRU
158 * - moved filtering from Pm_Read to pm_enqueue to avoid buffer ovfl
159 * - extensive work on Mac OS X port, especially sysex and error handling
160 *
161 * 18May04 RBD
162 * - removed side-effects from assert() calls. Now you can disable assert().
163 * - no longer check pm_hosterror everywhere, fixing a bug where an open
164 * failure could cause a write not to work on a previously opened port
165 * until you call Pm_GetHostErrorText().
166 * 16May04 RBD and Chris Roberts
167 * - Some documentation wordsmithing in portmidi.h
168 * - Dynamically allocate port descriptor structures
169 * - Fixed parameter error in midiInPrepareBuffer and midiInAddBuffer.
170 *
171 * 09Oct03 RBD
172 * - Changed Thru handling. Now the client does all the work and the client
173 * must poll or read to keep thru messages flowing.
174 *
175 * 31May03 RBD
176 * - Fixed various bugs.
177 * - Added linux ALSA support with help from Clemens Ladisch
178 * - Added Mac OS X support, implemented by Jon Parise, updated and
179 * integrated by Andrew Zeldis and Zico Kolter
180 * - Added latency program to build histogram of system latency using PortTime.
181 *
182 * 30Jun02 RBD Extensive rewrite of sysex handling. It works now.
183 * Extensive reworking of error reporting and error text -- no
184 * longer use dictionary call to delete data; instead, Pm_Open
185 * and Pm_Close clean up before returning an error code, and
186 * error text is saved in a system-independent location.
187 * Wrote sysex.c to test sysex message handling.
188 *
189 * 15Jun02 BCT changes:
190 * - Added pmHostError text handling.
191 * - For robustness, check PortMidi stream args not NULL.
192 * - Re-C-ANSI-fied code (changed many C++ comments to C style)
193 * - Reorganized code in pmwinmm according to input/output functionality (made
194 * cleanup handling easier to reason about)
195 * - Fixed Pm_Write calls (portmidi.h says these should not return length but Pm_Error)
196 * - Cleaned up memory handling (now system specific data deleted via dictionary
197 * call in PortMidi, allows client to query host errors).
198 * - Added explicit asserts to verify various aspects of pmwinmm implementation behaves as
199 * logic implies it should. Specifically: verified callback routines not reentrant and
200 * all verified status for all unchecked Win32 MMedia API calls perform successfully
201 * - Moved portmidi initialization and clean-up routines into DLL to fix Win32 MMedia API
202 * bug (i.e. if devices not explicitly closed, must reboot to debug application further).
203 * With this change, clients no longer need explicitly call Pm_Initialize, Pm_Terminate, or
204 * explicitly Pm_Close open devices when using WinMM version of PortMidi.
205 *
206 * 23Jan02 RBD Fixed bug in pmwinmm.c thru handling
207 *
208 * 21Jan02 RBD Added tests in Pm_OpenInput() and Pm_OpenOutput() to prevent
209 * opening an input as output and vice versa.
210 * Added comments and documentation.
211 * Implemented Pm_Terminate().
212 *
213 */