6 * Fix usage of meta-data in official macOS builds (private DB errors)
10 * Fix jack_control stopping after first command iteration
11 * Fix library compat/current version under macOS
12 * Fix return codes of jackd on success
13 * Ignore DB_VERSION_MISMATCH error on windows, it is expected
14 * Remove old workaround for asio4all, as it breaks with jack-router
16 External changes, related to macOS/Windows installer:
17 * Add jack-router to Windows installer, opt-in
18 * Fix registry keys for Windows, add 32bit compat ones on 64bit
19 * Support for arm64 macOS builds
20 * Show welcome and license pages on windows installer
21 * Update QjackCtl used in macOS/Windows installers to v0.9.0, with some commits cherry-picked from develop branch
25 * Fix/revert a change in how meta-data definitions were exposed (regression in 1.9.15)
26 * Remove jack-router Windows code from the repository
30 * Automated builds for macOS and Windows (see jackaudio/jack2-releases repository)
31 * Adapt wscript Windows build configuration to match old v1.9.11 installer
32 * Bump maximum default number of clients and ports (now 256 clients and 2048 ports)
33 * Delete various macOS and Windows-related files from the source code (no longer relevant)
34 * Mark JACK-Session as deprecated, please use NSM instead
35 * Remove unnecessary GPL include from LGPL code
36 * Split example-clients and tools, as done in JACK1 many years ago (WIP)
37 * Write Windows registry key during installation, so 3rd parties can find jackd.exe (as HKLM\\Software\\JACK\\Location)
38 * jack_control: Fix handling of dbus bytes
39 * jack_control: Return a proper exit status on DBus exception
40 * jack_property: Fix possible crash with "-l" argument usage
41 * jack_wait: Add client name option -n/--name
42 * Fix compilation of documentation
43 * Fix compilation of mixed mode with meta-data enabled
44 * Fix compilation with mingw
45 * Fix client-side crash if initial meta-data DB setup fails
46 * Fix macOS semaphore usage, so it works again
47 * Several fixes for Windows (with contributions from Kjetil S. Matheussen)
48 * Several minor fixes and grammar corrections (with contributions from Adam Miartus and Timo Wischer)
53 * Fix mixed mode build when meta-data is enabled
54 * Fix blocking DBus device reservation, so it plays nice with others (like PipeWire)
55 * Use python3 for the waf build scripts
59 * Meta-data API implementation. (and a few tools updated with support for it)
60 * Correct GPL licence to LGPL for files needed to build libjack.
61 * Remove FreeBoB backend (superseded by FFADO).
62 * define JACK_LIB_EXPORT, useful for internal clients.
63 * Mark jack_midi_reset_buffer as deprecated.
64 * Add example systemd unit file
65 * Signal to systemd when jackd is ready.
66 * Set "seq" alsa midi driver to maximum resolution possible.
67 * Fix loading internal clients from another internal client.
68 * Code cleanup and various fixes. (too many to mention here, see git log for details)
72 * Fix Windows build issues.
73 * Fix build with gcc-7.
74 * Show hint when DBus device reservation fails.
75 * Add support for internal session files.
77 * 1.9.11-RC1 (2017-06-13)
79 * Various corrections in NetJack2 code. Partial buffers can now be
80 transmitted with libjacknet API.
81 * Including S24_LE/BE formats to linux ALSA driver.
82 * More robust shared memory allocator.
83 * Allow autostart of jackd on OSX where device-names can contain spaces.
84 * Correct CoreAudio devices aggregation code.
85 * Waf and wscripts improvement and update.
86 * More flexible RT priority setup on Windows.
87 * New JackProxyDriver.
88 * Various fixes in JACK MIDI code.
89 * Fix return value of SetTimebaseCallback().
90 * Correct netmanager latency reporting.
91 * Implement new jack_port_rename and JackPortRenameCallback API.
92 * For OSX El Capitan support, use of Posix semaphore and move of Frameworks
94 * Fix CPU hogging of the midi_thread().
95 * Release audio devices when alsa_driver_new fails.
96 * String management fix.
97 * Correct JackDriver::Open: call to fGraphManager->SetBufferSize has to use
98 current fEngineControl->fBufferSize value.
99 * Use ARM neon intrinsics for AudioBufferMixdown.
100 * Fix Netjack alignment.
101 * Various wscript improvements and cleanup.
102 * Fix initialization of several class variables.
103 * Heap-allocate client matrix in topo sort.
104 * Add a toggle command to transport utility, to allow toggling between play
106 * Avoid side effects from parsing of "version" option in jackd.
107 * Allow firewire device be selected via -d.
108 * Add ARM-NEON acceleration for all non-dithering sample conversion
110 * Add jack_simdtest utility.
111 * Use Linux futex as JackSynchro.
112 * Add autoclose option to jack_load.
114 * 1.9.10 (2014-07-19)
116 * More robust code in JackPortAudioDriver to handle buffer size change and
118 * Fix bus error on ARM platforms.
119 * Dynamically scan and print backend and internal names in jackd.
120 * CoreMIDI driver fixes.
121 * Rework NetJack2 code (OPUS codec on OSX, latency management, libjacknet
123 * Correct auto-connect for audioadapter.
125 * Merge of Nedko no-self-connect branch.
126 * Fix freewheel mode.
127 * JackServer::SwitchMaster now correctly notify buffer_size and sample_rate
128 changes, cleanup/improvements in JackNetDriver.
129 * Tim Mayberry : Add support for building with mingw compiler.
130 * Merge of Kim Jeong Yeon Android branch.
131 * Partial port of metadata API.
133 * 1.9.9.5 (2012-11-26)
135 * Adrian Knoth fix in midiseq.c.
136 * Fix library symbols export issue.
137 * Cleanup drivers and internals loading code.
138 * jackctl_driver_params_parse API moved in public control.h.
139 * More general drivers/internals loading model on Windows.
140 * Factorize code the server/client request in JackRequestDecoder class.
141 * More robust server/client protocol.
142 * Implement shutdown for in server clients.
143 * Better time-out management in NetJack2.
144 * Experimental system port alias use in Windows JackRouter.
145 * Improve ShutDown in NetManager.
146 * Correct ShutDown in JackInternalClient and JackLibClient.
147 * Fix NetJack2 initialisation bug.
148 * Add EndTime function (especially for Windows).
149 * Rename JackProcessSync in JackPosixProcessSync.
150 * A bit more robust JackMessageBuffer implementation (in progress).
151 * Check server API callback from notification thread.
152 * Use a time-out in notification channel write function.
153 * Fix lock management in JackEngine.
154 * In control API, UNIX like sigset_t replaced by more abstract
155 jackctl_sigmask_t * opaque struct.
156 * Improve libjacknet master mode.
157 * Remove JACK_32_64 flag, so POST_PACKED_STRUCTURE now always used.
158 POST_PACKED_STRUCTURE used for jack_latency_range_t type.
159 * Rework JackMessageBuffer. [firewire]
161 * Introduce UpdateLatencies() in FFADO backend. [firewire]
163 * Allow FFADO backend to change the buffer size.
165 * New jack_get_cycle_times() implementation from Fons Adriennsen.
166 * Align buffers to 32 byte boundaries to allow AVX processing.
167 * Extend jack_control to have parameter reset commands.
168 * Fix alsa driver parameter order.
169 * Control API: Enforce driver/internal parameter order.
170 * Fix in ALSA adapter.
171 * Devin Anderson patch for Jack/CoreMIDI duplicated messages.
172 * Change framework installation hierarchy for OSX Mountain Lion.
173 * Update JackCoreAudioDriver and JackCoreAudioAdapter with more recent API.
174 * jack_control: fix epr command.
175 * Add opus support to NetJack2.
176 * More robust channel mapping handling in JackCoreAudioDriver.
177 * netjack1/netone opus support.
178 * controlapi: fix double free on master switch.
179 * Use string ids in the alsa device list.
180 * netjack/opus: don't re-init en/decoders.
181 * Correct JackPortAudioDriver::Open: special case for ASIO drivers.
185 * Merge newer-midi branch (Devin Anderson redesign of the MIDI drivers:
186 alsarawmidi, ffado, coremidi and winmme).
187 * Correction in jackdmp.cpp: notify_server_stop should be done after server
189 * Correct driver lifetime management.
190 * Add XRun detection in PortAudio driver.
191 * CELT code for NetJack2.
192 * Merge branch switch-master-port-registration-notifications: correct driver
194 * Libjacknet in progress.
195 * Correct MIDI in NetJack2.
196 * Correct OSX real-time thread setup.
197 * Correct rd_acquire in dbus code.
198 * Correct NetJack2 connection handling.
199 * SaveConnections/RestoreConnections in NetDriver and JackAudioDriver.
200 * Special version of jack_attach_shm/jack_release_shm on client side for
201 POSIX shared memory, to solve a memory leak issue.
202 * Another round of code improvements to handle completely buggy Digidesign
203 CoreAudio user-land driver.
204 * Special CATCH_CLOSE_EXCEPTION_RETURN to handle Close API calls.
205 * Add JACK_NETJACK_PORT and JACK_NETJACK_MULTICAST environment variables for
206 NetJack2. NetJack2 now only send data on network only is ports are
207 connected both sides.
208 * Fix for "starting two instances of same app in parallel does not work"
210 * Enable explicit channel mapping in CoreAudio driver.
211 * New JackTimedDriver class to be used by JackDummyDriver, JackNetDriver and
212 JackNetOneDriver classes.
213 * More robust code in synchronization primitives and in JackMessageBuffer.
214 * More robust Control API implementation. Add jackctl_driver_get_type in
216 * Singleton behaviour for JackCoreMidiDriver and JackWinMMEDriver.
217 * John Emmas patch for DSP CPU computation.
218 * John Emmas Windows server launching patch.
219 * Fix jack_set_port_name API.
220 * Enable local access in NetJack2 code.
221 * Dynamic port management in JACK/CoreMidi bridge.
225 * Sync JackAlsaDriver::alsa_driver_check_card_type with JACK1 backend.
226 * Correct JackServer::Open to avoid a race when control API is used on OSX.
227 * Improve backend error handling: fatal error returned by Read/Write now
228 cause a Process failure (so a thread exit for blocking backends).
229 Recoverable ones (XRuns..) are now treated internally in ALSA, FreeBob and
231 * In jackdmp.cpp, jackctl_setup_signals moved before jackctl_server_start.
232 * Correct symbols export in backends on OSX. ALSA backend: suspend/resume
234 * Correct dummy driver.
235 * Adrian Knoth jack_lsp patch.
236 * Remove JackPortIsActive flag.
237 * New latency API implementation.
238 * ComputeTotalLatencies now a client/server call.
239 * Add latent test client for latency API.
240 * Also print playback and capture latency in jack_lsp.
241 jack_client_has_session_callback implementation.
242 * Check requested buffer size and limit to 1..8192 - avoids weird behaviour
243 caused by jack_bufsize foobar.
244 * jack_port_type_get_buffer_size implementation.
245 * Stop using alloca and allocate buffer on the heap for alsa_io.
246 * Rename jdelay to jack_iodelay as per Fons' request.
247 * Call buffer size callback in activate (actually this is done on client side
248 in the RT thread Init method).
249 * Add jack_midi_dump client.
250 * Synchronize net JACK1 with JACK1 version.
251 * Synchronize jack_connect/jack_disconnect with JACK1 version.
252 * Correct JackNetMaster::SetBufferSize.
253 * Use jack_default_audio_sample_t instead of float consistently, fix ticket
255 * -X now allows to add several slave backends, add -I to load several
257 * Rework internal slave driver management, JackServerGlobals now handle same
258 parameters as jackdmp.
259 * Correct JackEngine::NotifyGraphReorder, update JackDebugClient with latest
261 * Devin Anderson server-ctl-proposal branch merged on trunk: improved control
262 API, slave backend reworked. Implement renaming in JackDriver::Open to
263 avoid name collision (thanks Devin Anderson).
264 * Correct alsa_driver_restart (thanks Devin Anderson). Correction of
265 jack_connect/jack_disconnect: use of jack_activate and volatile keyword for
266 thread shared variable.
267 * Correction of JackNetOneDriver for latest CELT API.
268 * Synchronize JackWeakAPI.cpp with new APIs.
272 * Improve JackCoreAudioDriver and JackCoreAudioAdapter : when no devices are
273 described, takes default input and output and aggregate them.
274 * Correct JackGraphManager::DeactivatePort.
275 * Correct JackMachServerChannel::Execute : keep running even in error cases.
276 Raise JACK_PROTOCOL_VERSION number.
277 * Arnold Krille firewire patch.
278 * Raise JACK_DRIVER_PARAM_STRING_MAX and JACK_PARAM_STRING_MAX to 127
279 otherwise some audio drivers cannot be loaded on OSX.
280 * Fix some file header to have library side code use LGPL.
281 * On Windows, now use TRE library for regexp (BSD license instead of GPL
283 * ffado-portname-sync.patch from ticket #163 applied.
284 * Remove call to exit in library code.
285 * Make jack_connect/jack_disconnect wait for effective port
286 connection/disconnection.
287 * Add tests to validate intclient.h API.
288 * On Linux, inter-process synchronization primitive switched to POSIX
290 * In JackCoreAudioDriver, move code called in MeasureCallback to be called
292 * David Garcia Garzon netone patch.
293 * Fix from Fernando Lopez-Lezcano for compilation on fc13.
294 * Fix JackPosixSemaphore::TimedWait : same behavior as
295 JackPosixSemaphore::Wait regarding EINTR.
296 * David Garcia Garzon unused_pkt_buf_field_jack2 netone patch.
297 * Arnold Krille firewire snooping patch.
298 * Jan Engelhardt patch for get_cycles on SPARC.
299 * Adrian Knoth hurd.patch, kfreebsd-fix.patch and alpha_ia64-sigsegv.patch
301 * Adrian Knoth fix for linux cycle.h (ticket 188).
302 * In JackCoreAudioDriver, fix an issue when no value is given for input.
306 * Dynamic choice of maximum port number.
307 * More robust sample rate change handling code in JackCoreAudioDriver.
308 * Devin Anderson patch for Jack FFADO driver issues with lost MIDI bytes
309 between periods (and more).
310 * Fix port_rename callback: now both old name and new name are given as
312 * Special code in JackCoreAudio driver to handle completely buggy Digidesign
313 CoreAudio user-land driver.
314 * Ensure that client-side message buffer thread calls thread_init callback
315 if/when it is set by the client (backport of JACK1 rev 3838).
316 * Check dynamic port-max value.
317 * Fix JackCoreMidiDriver::ReadProcAux when ring buffer is full (thanks Devin
319 * Josh Green ALSA driver capture only patch.
320 * When threads are cancelled, the exception has to be rethrown.
321 * Use a QUIT notification to properly quit the server channel, the server
322 channel thread can then be 'stopped' instead of 'canceled'.
323 * Mario Lang alsa_io time calculation overflow patch. Shared memory manager
324 was calling abort in case of fatal error, now return an error in caller.
325 * Change JackEngineProfiling and JackAudioAdapterInterface gnuplot scripts
326 to output SVG instead of PDF.
330 * Solaris boomer backend now working in capture or playback only mode.
331 * Add a -G parameter in CoreAudio backend (the computation value in RT
332 thread expressed as percent of period).
333 * Use SNDCTL_DSP_SYNCGROUP/SNDCTL_DSP_SYNCSTART API to synchronize input and
334 output in Solaris boomer backend.
335 * Big endian bug fix in memops.c.
336 * Fix issues in JackNetDriver::DecodeTransportData and
337 JackNetDriver::Initialize.
338 * Correct CPU timing in JackNetDriver, now take cycle begin time after Read.
339 * Simplify transport in NetJack2: master only can control transport.
340 * Change CoreAudio notification thread setup for OSX Snow Leopard.
341 * Correct server temporary mode: now set a global and quit after
342 server/client message handling is finished.
343 * Add a string parameter to server ==> client notification, add a new
344 JackInfoShutdownCallback type.
345 * CoreAudio backend now issue a JackInfoShutdownCallback when an
346 unrecoverable error is detected (sampling rate change, stream
347 configuration change).
348 * Correct jackdmp.cpp (failures case were not correct..).
349 * Improve JackCoreAudioDriver code.
350 * Raise default port number to 2048.
351 * Correct JackProcessSync::LockedTimedWait.
352 * Correct JACK_MESSAGE_SIZE value, particularly in OSX RPC code.
353 * Now start server channel thread only when backend has been started (so in
355 * Should solve race conditions at start time.
356 * jack_verbose moved to JackGlobals class.
357 * Improve aggregate device management in JackCoreAudioDriver: now a
358 "private" device only and cleanup properly.
359 * Aggregate device code added to JackCoreAudioAdapter.
360 * Implement "hog mode" (exclusive access of the audio device) in
362 * Fix jack_set_sample_rate_callback to have he same behavior as in JACK1.
363 * Dynamic system version detection in JackCoreAudioDriver to either create
364 public or private aggregate device.
365 * In JackCoreAudioDriver, force the SR value to the wanted one *before*
366 creating aggregate device (otherwise creation will fail).
367 * In JackCoreAudioDriver, better cleanup of AD when intermediate open
369 * In JackCoreAudioDriver::Start, wait for the audio driver to effectively
370 start (use the MeasureCallback).
371 * In JackCoreAudioDriver, improve management of input/output channels: -1 is
372 now used internally to indicate a wanted max value.
373 * In JackCoreAudioDriver::OpenAUHAL, correct stream format setup and
375 * Correct crash bug in JackAudioAdapterInterface when not input is used in
376 adapter (temporary fix).
377 * Sync JackCoreAudioAdapter code on JackCoreAudioDriver one.
378 * JACK_SCHED_POLICY switched to SCHED_FIFO.
379 * Now can aggregate device that are themselves AD.
380 * No reason to make jack_on_shutdown deprecated, so revert the incorrect
382 * Thread AcquireRealTime and DropRealTime were (incorrectly) using fThread
384 * Use pthread_self()) (or GetCurrentThread() on Windows) to get the calling
386 * Correctly save and restore RT mode state in freewheel mode.
387 * Correct freewheel code on client side.
388 * Fix AcquireRealTime and DropRealTime: now distinguish when called from
389 another thread (AcquireRealTime/DropRealTime) and from the thread itself
390 (AcquireSelfRealTime/DropSelfRealTime).
391 * Correct JackPosixThread::StartImp: thread priority setting now done in the
393 * Correct JackGraphManager::GetBuffer for the "client loop with one
394 connection" case: buffer must be copied.
395 * Correct JackInfoShutdownCallback prototype, two new
396 JackClientProcessFailure and JackClientZombie JackStatus code.
397 * Correct JackCoreAudio driver when empty strings are given as -C, -P or -d
399 * Better memory allocation error checking on client (library) side.
400 * Better memory allocation error checking in ringbuffer.c, weak import
402 * Memory allocation error checking for jack_client_new and jack_client_open
403 (server and client side).
404 * Memory allocation error checking in server for RPC.
405 * Simplify server temporary mode: now use a JackTemporaryException.
406 * Lock/Unlock shared memory segments (to test...).
407 * Sync with JACK1 : -r parameter now used for no-realtime, realtime (-R) is
408 now default, usable backend given vie platform.
409 * In JackCoreAudio driver, (possibly) clock drift compensation when needed
410 in aggregated devices.
411 * In JackCoreAudio driver, clock drift compensation in aggregated devices
413 * In JackCoreAudio driver, clock drift compensation semantic changed a bit:
414 when on, does not activate if not needed (same clock domain).
415 * Sync JackCoreAudioAdapter code with JackCoreAudioDriver.
419 * New JackBoomerDriver class for Boomer driver on Solaris.
420 * Add mixed 32/64 bits mode (off by default).
421 * Native MIDI backend (JackCoreMidiDriver, JackWinMMEDriver).
422 * In ALSA audio card reservation code, tries to open the card even if
424 * Clock source setting on Linux.
425 * Add jackctl_server_switch_master API.
426 * Fix transport callback (timebase master, sync) issue when used after
427 jack_activate (RT thread was not running).
428 * D-Bus access for jackctl_server_add_slave/jackctl_server_remove_slave API.
429 * Cleanup "loopback" stuff in server.
430 * Torben Hohn fix for InitTime and GetMicroSeconds in JackWinTime.c.
431 * New jack_free function added in jack.h.
432 * Reworked Torben Hohn fix for server restart issue on Windows.
433 * Correct jack_set_error_function, jack_set_info_function and
434 jack_set_thread_creator functions.
435 * Correct JackFifo::TimedWait for EINTR handling.
436 * Move DBus based audio device reservation code in ALSA backend compilation.
437 * Correct JackTransportEngine::MakeAllLocating, sync callback has to be
438 called in this case also.
439 * NetJack2 code: better error checkout, method renaming.
440 * Tim Bechmann patch: hammerfall, only release monitor thread, if it has
442 * Tim Bechmann memops.c optimization patches.
443 * In combined --dbus and --classic compilation code, use PulseAudio
444 acquire/release code.
445 * Big rewrite of Solaris boomer driver, seems to work in duplex mode at
447 * Loopback backend reborn as a dynamically loadable separated backend.
452 * New "profiling" tools.
453 * Rework the mutex/signal classes.
454 * Support for BIG_ENDIAN machines in NetJack2.
455 * D-BUS based device reservation to better coexist with PulseAudio on Linux.
456 * Add auto_connect parameter in netmanager and netadapter.
457 * Use Torben Hohn PI controler code for adapters.
458 * Client incorrect re-naming fixed : now done at socket and fifo level.
459 * Virtualize and allow overriding of thread creation function, to allow Wine
460 support (from JACK1).
464 * Fix jackctl_server_unload_internal.
465 * Filter SIGPIPE to avoid having client get a SIGPIPE when trying to access
467 * Libjack shutdown handler does not "deactivate" (fActive = false) the
468 client anymore, so that jack_deactivate correctly does the job later on.
469 * Better isolation of server and clients system resources to allow starting
470 the server in several user account at the same time.
471 * Report ringbuffer.c fixes from JACK1.
472 * Client and library global context cleanup in case of incorrect shutdown
473 handling (that is applications not correctly closing client after server
475 * Use JACK_DRIVER_DIR variable in internal clients loader.
476 * For ALSA driver, synchronize with latest JACK1 memops functions.
477 * Synchronize JACK2 public headers with JACK1 ones.
478 * Implement jack_client_real_time_priority and
479 jack_client_max_real_time_priority API.
480 * Use up to BUFFER_SIZE_MAX frames in midi ports, fix for ticket #117.
481 * Cleanup server starting code for clients directly linked with
483 * JackMessageBuffer was using thread "Stop" scheme in destructor, now use
484 the safer thread "Kill" way.
485 * Synchronize ALSA backend code with JACK1 one.
486 * Set default mode to 'slow' in JackNetDriver and JackNetAdapter.
487 * Simplify audio packet order verification.
488 * Fix JackNetInterface::SetNetBufferSize for socket buffer size computation
489 and JackNetMasterInterface::DataRecv if synch packet is received, various
491 * Better recovery of network overload situations, now "resynchronize" by
493 * Support for BIG_ENDIAN machines in NetJack2.
494 * Support for BIG_ENDIAN machines in NetJack2 for MIDI ports.
495 * Support for "-h" option in internal clients to print the parameters.
496 * In NetJack2, fix a bug when capture or playback only channels are used.
497 * Add a JACK_INTERNAL_DIR environment variable to be used for internal
499 * Add a resample quality parameter in audioadapter.
500 * Now correctly return an error if JackServer::SetBufferSize could not
501 change the buffer size (and was just restoring the current one).
502 * Use PRIu32 kind of macro in JackAlsaDriver again.
503 * Add a resample quality parameter in netadapter.
507 * Waf based build system: Nedko Arnaudov, Grame for preliminary OSX support.
508 * Control API, dbus based server control access: Nedko Arnaudov, Grame.
509 * NetJack2 components (in progress): jack_net backend, netmanager,
510 audioadapter, netadapter : Romain Moret, Grame.
511 * Code restructuring to help port on other architectures: Michael Voigt.
512 * Code cleanup/optimization: Tim Blechmann.
513 * Improve handling of server internal clients that can now be
514 loaded/unloaded using the new server control API: Grame.
515 * A lot of bug fix and improvements.
521 * Add port register/unregister notification in JackAlsaDriver.
522 * Correct JACK_port_unregister in MIDI backend.
523 * Add TimeCallback in JackDebugClient class.
524 * Correct jack_get_time propotype.
525 * Correct JackSocketClientChannel::ClientClose to use ServerSyncCall instead
527 * Better documentation in jack.h. libjackdmp.so renamed to
528 libjackservermp.so and same for OSX framework.
529 * Define an internal jack_client_open_aux needed for library wrapper feature.
530 * Remove unneeded jack_port_connect API.
531 * Correct jack_port_get_connections function (should return NULL when no
533 * In thread model, execute a dummy cycle to be sure thread has the correct
534 properties (ensure thread creation is finished).
535 * Fix engine real-time notification (was broken since ??).
536 * Implements wrapper layer.
537 * Correct jack_port_get_total_latency.
538 * Correct all backend playback port latency in case of "asynchronous" mode
540 * Add test for jack_cycle_wait, jack_cycle_wait and jack_set_process_thread
542 * RT scheduling for OSX thread (when used in dummy driver).
543 * Add -L (extra output latency in aynchronous mode) in CoreAudio driver.
544 * New JackLockedEngine decorator class to serialize access from ALSA Midi
545 thread, command thread and in-server clients.
546 * Use engine in JackAlsaDriver::port_register and
547 JackAlsaDriver::port_unregister.
548 * Fix connect notification to deliver *one* notification only.
549 * Correct JackClient::Activate so that first kGraphOrderCallback can be
550 received by the client notification thread.
551 * New jack_server_control client to test notifications when linked to the
553 * Synchronise transport.h with latest jackd version (Video handling).
554 * Transport timebase fix.
555 * Dmitry Baikov patch for alsa_rawmidi driver.
556 * Pieter Palmers patch for FFADO driver.
557 * Add an Init method for blocking drivers to be decorated using
558 JackThreadedDriver class.
559 * Correct PortRegister, port name checking must be done on server side.
560 * Correct a missing parameter in the usage message of jack_midiseq.
561 * New SetNonBlocking method for JackSocket.
562 * Correct a dirty port array issue in JackGraphManager::GetPortsAux.
566 * Updated API to match jack 0.109.0 version.
567 * Update in usx2y.c and JackPort.cpp to match jackd 0.109.2.
568 * Latest jack_lsp code from jack SVN.
569 * Add jack_mp_thread_wait client example.
570 * Add jack_thread_wait client example.
571 * Remove checking thread in CoreAudio driver, better device state change
572 recovery strategy: the driver is stopped and restarted.
573 * Move transport related methods from JackEngine to JackServer.
576 * Tim Blechmann sse optimization patch for JackaudioPort::MixAudioBuffer,
577 use of Apple Accelerate framework on OSX.
578 * Remove use of assert in JackFifo, JackMachSemaphore, and
579 JackPosixSemaphore: print an error instead.
580 * Correct "server_connect": close the communication channel.
581 * More robust external API.
582 * Use SetAlias for port naming.
583 * Use jackd midi port naming scheme.
584 * Notify ports unregistration in JackEngine::ClientCloseAux.
585 * Fix in JackClient::Error(): when RT thread is failing and calling
586 Shutdown, Shutdown was not desactivating the client correctly.
590 * On OSX, use CFNotificationCenterPostNotificationWithOptions with
591 kCFNotificationDeliverImmediately | kCFNotificationPostToAllSessions for
592 server ==> JackRouter plugin notification.
593 * On OSX, use jack server name in notification system.
594 * Correct fPeriodUsecs computation in JackAudioDriver::SetBufferSize and
595 JackAudioDriver::SetSampleRate.
596 * Correct JackMachNotifyChannel::ClientNotify.
597 * Correct bug in CoreAudio driver sample rate management.
598 * Add a sample_rate change listener in CoreAudio driver.
599 * Correct sample_rate management in JackCoreAudioDriver::Open.
600 * Better handling in sample_rate change listener.
601 * Pieter Palmers FFADO driver and scons based build.
602 * Pieter Palmers second new build system: scons and Makefile based build.
603 * Tim Blechmann scons patch.
604 * Change string management for proper compilation with gcc 4.2.2.
606 * Cleanup in CoreAudio driver.
607 * Tim Blechmann patch for JackGraphManager::GetPortsAux memory leak, Tim
608 Blechmann patch for scons install.
609 * Dmitry Baikov MIDI patch: alsa_seqmidi and alsa_rammidi drivers.
610 * CoreAudio driver improvement: detect and notify abnormal situations
611 (stopped driver in case of SR change...).
615 * Internal loadable client implementation, winpipe version added.
616 * Reorganize jack headers.
617 * Improve Linux install/remove scripts.
618 * Use LIB_DIR variable for 64 bits related compilation (drivers location).
619 * More generic Linux script.
620 * Correct jack_acquire_real_time_scheduling on OSX.
621 * Merge of Dmitry Baikov MIDI branch.
622 * Correct JackGraphManager::GetPortsAux to use port type.
623 * Remove JackEngineTiming class: code moved in JackEngineControl.
624 * Add midiseq and midisine examples.
625 * Cleanup old zombification code.
626 * Linux Makefile now install jack headers.
627 * Use of JACK_CLIENT_DEBUG environment variable to activate debug client
629 * Definition of JACK_LOCATION variable using -D in the Makefile.
630 * Restore jack 0.103.0 MIDI API version.
631 * Fix a bug in freewheel management in async mode: drivers now receive the
632 kStartFreewheelCallback and kStopFreewheelCallback notifications.
633 * Server and user directory related code moved in a JackTools file.
634 * Client name rewriting to remove path characters (used in fifo naming).
635 * Correct ALSA driver Attach method: internal driver may have changed the
636 buffer_size and sample_rate values.
637 * Add JackWinSemaphore class.
638 * Add an implementation for obsolete jack_internal_client_new and
639 jack_internal_client_close.
640 * Add missing jack_port_type_size.
641 * Use of JackWinSemaphore instead of JackWinEvent for inter-process
643 * Correct types.h for use with MINGW on Windows.
644 * Move OSX start/stop notification mechanism in Jackdmp.cpp.
645 * Correct CheckPort in JackAPI.cpp.
649 * Correct jack_client_open "status" management.
650 * Rename server_name from "default" to "jackdmp_default" to avoid conflict
651 with regular jackd server.
652 * Fix a resource leak issue in JackCoreAudioDriver::Close().
653 * Better implement "jack_client_open" when linking a client with the server
655 * Correct "jack_register_server" in shm.c.
656 * Add missing timestamps.c and timestamps.h files.
657 * Correctly export public headers in OSX frameworks.
658 * Suppress JackEngine::ClientInternalCloseIm method.
659 * Use .jackdrc file (instead of .jackdmprc).
660 * Install script now creates a link "jackd ==> jackdmp" so that automatic
661 launch can work correctly.
662 * Paul Davis patch for -r (--replace-registry) feature.
663 * Internal loadable client implementation.
664 * Fix JackEngine::Close() method.
665 * Windows JackRouter.dll version 0.17: 32 integer sample format.
670 * Windows JackRouter.dll version 0.16: use of "jack_client_open" API to
671 allow automatic client renaming, better Windows VISTA support, new
676 * Fix backend port alias management (renaming in system:xxx).
677 * Fix a bug in JackLibClient::Open introduced when adding automatic client
679 * Fix a bug in jack_test.
680 * Correct JackShmMem destructor.
681 * Correct end case in JackClient::Execute.
682 * Correct JackMachSemaphore::Disconnect.
683 * Implement server temporary (-T) mode.
684 * Make "Rename" a method of JackPort class, call it from driver Attach
686 * Server/library protocol checking implementation.
690 * Checking in the server to avoid calling the clients if no callback are
692 * Correct deprecated jack_set_sample_rate_callback to return 0 instead of
694 * Dmitry Baikov buffer size patch.
695 * Correct notification for kActivateClient event. Correct
696 JackEngine::ClientCloseAux (when called from
697 JackEngine::ClientExternalOpen).
698 * Correct JackWinEvent::Allocate.
699 * Automatic client renaming.
700 * Add "systemic" latencies management in CoreAudio driver.
701 * Automatic server launch.
702 * Removes unneeded 'volatile' for JackTransportEngine::fWriteCounter.
706 * Correct back JackAlsaDriver::Read method.
707 * Dmitry Baikov patch for JackGraphManager.cpp. Merge JackGraphManager Remove
708 and Release method in a unique Release method.
709 * Dmitry Baikov jackmp-time patch : add jack_get_time, jack_time_to_frames,
710 jack_frames_to_time. Add missing -D__SMP__in OSX project. Add new
711 jack_port_set_alias, jack_port_unset_alias and jack_port_get_aliases API.
712 * Steven Chamberlain patch to fix jack_port_by_id export.
713 * Steven Chamberlain patch to fix jack_port_type. Test for jack_port_type
714 behaviour in jack_test.cpp tool. Add jack_set_client_registration_callback
715 API. Add "callback exiting" and "jack_frame_time" tests in jack_test.
719 * More client debug code: check if the client is still valid in every
720 JackDebugClient method, check if the library context is still valid in
722 * Uses a time out value of 10 sec in freewheel mode (like jack).
723 * More robust activation/deactivation code, especially in case of client
725 * New LockAllMemory and UnlockAllMemory functions.
726 * Use pthread_attr_setstacksize in JackPosixThread class.
727 * Add Pieter Palmers FreeBob driver.
728 * Thibault LeMeur ALSA driver patch.
729 * Thom Johansen fix for port buffer alignment issues.
730 * Better error checking in PortAudio driver.
734 * Tom Szilagyi memory leak fix in ringbuffer.c.
735 * Move client refnum management in JackEngine.
736 * Shared_ports renamed to shared_graph.
737 * Add call to the init callback (set up using the
738 jack_set_thread_init_callback API) in Real-Time and Notification threads.
739 * Define a new 'kActivateClient' notification.
740 * New server/client data transfer model to fix a 64 bits system bug.
741 * Fix a device name reversal bug in ALSA driver.
742 * Implement thread.h API.
746 * Improve audio driver synchronous code to better handle possible time-out
748 * Correct JackWinEnvent::Allocate (handle the ERROR_ALREADY_EXISTS case).
749 * Correct JackEngine::ClientExternalNew.
753 * Various fixes in Windows version.
754 * Signal handling in the Windows server.
755 * Improved JackRouter ASIO/Jack bridge on Windows.
756 * Rename global "verbose" in "jack_verbose" to avoid symbol clash with
758 * Add a new cpu testing/loading client.
759 * Correct server SetBufferSize in case of failure.
760 * Correct PortAudio driver help.
761 * Use -D to setup ADDON_DIR on OSX and Linux.
762 * Synchronize ALSA backend with jack one.
766 * Correct a bug introduced in 0.55 version that was preventing coreaudio
767 audio inputs to work.
768 * Restructured code structure after import on svn.
772 * Correct bug in Mutex code in JackClientPipeThread::HandleRequest.
773 * ASIO JackRouter driver supports more applications.
774 * Updated HTML documentation.
775 * Windows dll binaries are compiled in "release" mode.
779 * Correct SetBufferSize in coreaudio driver, portaudio driver and
781 * Real-time notifications for Windows version.
782 * In the PortAudio backend, display more informations for installed WinMME,
784 * DirectSound and ASIO drivers.
789 * Correct management of monitor ports in ALSA driver.
790 * Engine code cleanup.
791 * Apply Rui patch for more consistent parameter naming in coreaudio driver.
792 * Correct JackProcessSync::TimedWait: time-out was not computed correctly.
793 * Check the return code of NotifyAddClient in JackEngine.
797 * Use the latest shm implementation that solve the uncleaned shm segment
799 * Close still opened file descriptors (report from Giso Grimm). Updated html
804 * Correct JackPilotMP tool on OSX.
805 * Correct CoreAudio driver for half duplex cases.
806 * Fix a bug in transport for "unactivated" clients.
807 * Fix a bug when removing "unactivated" clients from the server. Tested on
812 * Universal version for Mac Intel and PPC.
813 * Improvement of CoreAudio driver for half duplex cases.
817 * Correct bugs in transport API implementation.
821 * Transport API implementation.
825 * Internal connection manager code cleanup.
829 * Finish software monitoring implementation for ALSA and CoreAudio drivers.
830 * Simpler shared library management on OSX.
834 * More fix for 64 bits compilation.
835 * Correct ALSA driver.
836 * Create a specific folder for jackdmp drivers.
837 * Use /dev/shm as default for fifo and sockets.
838 * "Install" and "Remove" script for smoother use with regular jack.
842 * Fix a bug in loop management.
843 * Fix a bug in driver loading/unloading code.
844 * Internal code cleanup for better 64 bits architecture support.
845 * Compilation on OSX/Intel.
846 * Add the -d option for coreaudio driver (display CoreAudio devices internal
851 * Script to remove the OSX binary stuff.
852 * Correct an export symbol issue that was preventing QjackCtl to work on OSX.
853 * Fix the consequences of the asynchronous semantic of
854 connections/disconnections.
858 * Patch from Dmitry Daikov: use clock_gettime by default for timing.
859 * Correct dirty buffer issue in CoreAudio driver. Updated doc.
863 * Correct freewheel mode.
864 * Optimize ALSA and coreaudio drivers.
865 * Correct OSX installation script.
869 * Patch from Nick Mainsbridge.
870 * Correct default mode for ALSA driver.
871 * Correct XCode project.
875 * Add the ALSA MMAP_COMPLEX support for ALSA driver.
876 * Patch from Dmitry Daikov: compilation option to choose between
877 "get_cycles" and "gettimeofday" to measure timing.
881 * Linux version, code cleanup, new -L parameter to activate the loopback
882 driver (see Documentation), a number of loopback ports can be defined.
883 Client validation tool.
887 * Correct bug in mixing code that caused Ardour + jackdmp to crash...
891 * Implement client zombification + correct feedback loop management + code
896 * Implements jack_time_frame, new -S (sync) mode: when "synch" mode is
897 activated, the jackdmp server waits for the graph to be finished in the
898 current cycle before writing the output buffers. Note: To experiment with
899 the -S option, jackdmp must be launched in a console.
903 * First published version