summaryrefslogtreecommitdiff
path: root/ChangeLog.rst
blob: d1f1c1f29d802e27628e46909a7d44a03232891a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
ChangeLog
#########

* 1.9.22 (2023-02-02)

  * The waf autooption ``--example-tools`` has been removed.
    The example clients and tools are no longer part of the jack2 project.
  * Drop dependencies that were only used for example clients and tools (readline, sndfile and zita libs)
  * Fix build with python3.11+
  * Fix compatibility with macOS 12+
  * Fix ringbuffer thread safety on ARM

* 1.9.21 (2022-04-15)

  * Add shell mode to ``jack_control`` (executes commands from stdin until EOF)
  * The waf autooption ``--example-tools`` introduced in 1.9.20 is now off by default,
    To get the previous behavior back pass ``--example-tools`` during build.
    This flag (and the related tools and their code) are going to be removed in the next release.
  * Fix alignas() on non-packed architectures
  * Fix build of jack-example-tools man pages (1.9.20 regression)
  * Fix compatibility with macOS 12
  * Fix missing symbols from jack client library (error and info callback pointers)
  * Fix potential memory corruption in midi_latency_test tool
  * Fix JackWeakAPI on Windows
  * Use predefined variables in pkg-config file (required for mingw)

External changes, related to macOS/Windows installer:
  * Fix application style in QJackCtl (qwindowsvistastyle.dll was missing)
  * Update QjackCtl used in macOS/Windows installers to 0.9.7

* 1.9.20 (2022-01-15)

  * Add waf autooption ``--example-tools`` to allow optional build of
    executables, libraries and man pages provided by `jack-example-tools
    <https://github.com/jackaudio/jack-example-tools>`_ (the files are built by
    default). Building and installing the additional files can be disabled by
    using ``--example-tools=no`` or ``--no-example-tools``.
  * Fix 32-bit support in ALSA driver
  * Fix incomplete ASIO support on Windows
  * Fix metadata usage with multiple users
  * Fix netsource tool missing on Windows
  * Fix semaphore usage on macOS
  * Official FreeBSD support

External changes, related to macOS/Windows installer:
  * Update Qt5 used in macOS/Windows installers to 5.12.12
  * Update QjackCtl used in macOS/Windows installers to 0.9.6

* 1.9.19 (2021-07-15)

  * Add jack_position_t::tick_double, and flags around it
  * Add zalsa "-w" argument to wait for soundcard to be available
  * Bump internal protocol version to 9 (due to struct alignment)
  * Fix alignment of fields for atomic accesses
  * Fix build for platforms needing __STDC_FORMAT_MACROS
  * Fix compilation of documentation

* 1.9.18 (2021-04-15)

  * Add zalsa_in/out as internal client (based on zita-a2j/j2a and jack1 code)
  * Fix jack_midi_dump deadlock on close after the jack server is restarted
  * Fix interrupt signal for linux futex waits
  * Fix usage of meta-data in official macOS builds (private DB errors)
  * Log error message when cleaning previous DB (macOS and Windows)

* 1.9.17 (2021-01-15)

  * Fix jack_control stopping after first command iteration
  * Fix library compat/current version under macOS
  * Fix return codes of jackd on success
  * Ignore DB_VERSION_MISMATCH error on windows, it is expected
  * Remove old workaround for asio4all, as it breaks with jack-router

External changes, related to macOS/Windows installer:
  * Add jack-router to Windows installer, opt-in
  * Fix registry keys for Windows, add 32bit compat ones on 64bit
  * Support for arm64 macOS builds
  * Show welcome and license pages on windows installer
  * Update QjackCtl used in macOS/Windows installers to v0.9.0, with some commits cherry-picked from develop branch

* 1.9.16 (2020-10-16)

  * Fix/revert a change in how meta-data definitions were exposed (regression in 1.9.15)
  * Remove jack-router Windows code from the repository

* 1.9.15 (2020-10-15)

  * Automated builds for macOS and Windows (see jackaudio/jack2-releases repository)
  * Adapt wscript Windows build configuration to match old v1.9.11 installer
  * Bump maximum default number of clients and ports (now 256 clients and 2048 ports)
  * Delete various macOS and Windows-related files from the source code (no longer relevant)
  * Mark JACK-Session as deprecated, please use NSM instead
  * Remove unnecessary GPL include from LGPL code
  * Split example-clients and tools, as done in JACK1 many years ago (WIP)
  * Write Windows registry key during installation, so 3rd parties can find jackd.exe (as HKLM\\Software\\JACK\\Location)
  * jack_control: Fix handling of dbus bytes
  * jack_control: Return a proper exit status on DBus exception
  * jack_property: Fix possible crash with "-l" argument usage
  * jack_wait: Add client name option -n/--name
  * Fix compilation of documentation
  * Fix compilation of mixed mode with meta-data enabled
  * Fix compilation with mingw
  * Fix client-side crash if initial meta-data DB setup fails
  * Fix macOS semaphore usage, so it works again
  * Several fixes for Windows (with contributions from Kjetil S. Matheussen)
  * Several minor fixes and grammar corrections (with contributions from Adam Miartus and Timo Wischer)

* 1.9.14 (2019-10-28)

  * Fix ARM build
  * Fix mixed mode build when meta-data is enabled
  * Fix blocking DBus device reservation, so it plays nice with others (like PipeWire)
  * Use python3 for the waf build scripts

* 1.9.13 (2019-10-06)

  * Meta-data API implementation. (and a few tools updated with support for it)
  * Correct GPL licence to LGPL for files needed to build libjack.
  * Remove FreeBoB backend (superseded by FFADO).
  * define JACK_LIB_EXPORT, useful for internal clients.
  * Mark jack_midi_reset_buffer as deprecated.
  * Add example systemd unit file
  * Signal to systemd when jackd is ready.
  * Set "seq" alsa midi driver to maximum resolution possible.
  * Fix loading internal clients from another internal client.
  * Code cleanup and various fixes. (too many to mention here, see git log for details)

* 1.9.12 (2017-12-13)

  * Fix Windows build issues.
  * Fix build with gcc-7.
  * Show hint when DBus device reservation fails.
  * Add support for internal session files.

* 1.9.11-RC1 (2017-06-13)

  * Various corrections in NetJack2 code. Partial buffers can now be
    transmitted with libjacknet API.
  * Including S24_LE/BE formats to linux ALSA driver.
  * More robust shared memory allocator.
  * Allow autostart of jackd on OSX where device-names can contain spaces.
  * Correct CoreAudio devices aggregation code.
  * Waf and wscripts improvement and update.
  * More flexible RT priority setup on Windows.
  * New JackProxyDriver.
  * Various fixes in JACK MIDI code.
  * Fix return value of SetTimebaseCallback().
  * Correct netmanager latency reporting.
  * Implement new jack_port_rename and JackPortRenameCallback API.
  * For OSX El Capitan support, use of Posix semaphore and move of Frameworks
    in /Library folder.
  * Fix CPU hogging of the midi_thread().
  * Release audio devices when alsa_driver_new fails.
  * String management fix.
  * Correct JackDriver::Open: call to fGraphManager->SetBufferSize has to use
    current fEngineControl->fBufferSize value.
  * Use ARM neon intrinsics for AudioBufferMixdown.
  * Fix Netjack alignment.
  * Various wscript improvements and cleanup.
  * Fix initialization of several class variables.
  * Heap-allocate client matrix in topo sort.
  * Add a toggle command to transport utility, to allow toggling between play
    and stop state.
  * Avoid side effects from parsing of "version" option in jackd.
  * Allow firewire device be selected via -d.
  * Add ARM-NEON acceleration for all non-dithering sample conversion
    functions.
  * Add jack_simdtest utility.
  * Use Linux futex as JackSynchro.
  * Add autoclose option to jack_load.

* 1.9.10 (2014-07-19)

  * More robust code in JackPortAudioDriver to handle buffer size change and
    backend switching.
  * Fix bus error on ARM platforms.
  * Dynamically scan and print backend and internal names in jackd.
  * CoreMIDI driver fixes.
  * Rework NetJack2 code (OPUS codec on OSX, latency management, libjacknet
    code).
  * Correct auto-connect for audioadapter.
  * Add IIO driver.
  * Merge of Nedko no-self-connect branch.
  * Fix freewheel mode.
  * JackServer::SwitchMaster now correctly notify buffer_size and sample_rate
    changes, cleanup/improvements in JackNetDriver.
  * Tim Mayberry : Add support for building with mingw compiler.
  * Merge of Kim Jeong Yeon Android branch.
  * Partial port of metadata API.

* 1.9.9.5 (2012-11-26)

  * Adrian Knoth fix in midiseq.c.
  * Fix library symbols export issue.
  * Cleanup drivers and internals loading code.
  * jackctl_driver_params_parse API moved in public control.h.
  * More general drivers/internals loading model on Windows.
  * Factorize code the server/client request in JackRequestDecoder class.
  * More robust server/client protocol.
  * Implement shutdown for in server clients.
  * Better time-out management in NetJack2.
  * Experimental system port alias use in Windows JackRouter.
  * Improve ShutDown in NetManager.
  * Correct ShutDown in JackInternalClient and JackLibClient.
  * Fix NetJack2 initialisation bug.
  * Add EndTime function (especially for Windows).
  * Rename JackProcessSync in JackPosixProcessSync.
  * A bit more robust JackMessageBuffer implementation (in progress).
  * Check server API callback from notification thread.
  * Use a time-out in notification channel write function.
  * Fix lock management in JackEngine.
  * In control API, UNIX like sigset_t replaced by more abstract
    jackctl_sigmask_t * opaque struct.
  * Improve libjacknet master mode.
  * Remove JACK_32_64 flag, so POST_PACKED_STRUCTURE now always used.
    POST_PACKED_STRUCTURE used for jack_latency_range_t type.
  * Rework JackMessageBuffer. [firewire]

  * Introduce UpdateLatencies() in FFADO backend. [firewire]

  * Allow FFADO backend to change the buffer size.
  * Update waf.
  * New jack_get_cycle_times() implementation from Fons Adriennsen.
  * Align buffers to 32 byte boundaries to allow AVX processing.
  * Extend jack_control to have parameter reset commands.
  * Fix alsa driver parameter order.
  * Control API: Enforce driver/internal parameter order.
  * Fix in ALSA adapter.
  * Devin Anderson patch for Jack/CoreMIDI duplicated messages.
  * Change framework installation hierarchy for OSX Mountain Lion.
  * Update JackCoreAudioDriver and JackCoreAudioAdapter with more recent API.
  * jack_control: fix epr command.
  * Add opus support to NetJack2.
  * More robust channel mapping handling in JackCoreAudioDriver.
  * netjack1/netone opus support.
  * controlapi: fix double free on master switch.
  * Use string ids in the alsa device list.
  * netjack/opus: don't re-init en/decoders.
  * Correct JackPortAudioDriver::Open: special case for ASIO drivers.

* 1.9.8 (2011-12-19)

  * Merge newer-midi branch (Devin Anderson redesign of the MIDI drivers:
    alsarawmidi, ffado, coremidi and winmme).
  * Correction in jackdmp.cpp: notify_server_stop should be done after server
    destruction.
  * Correct driver lifetime management.
  * Add XRun detection in PortAudio driver.
  * CELT code for NetJack2.
  * Merge branch switch-master-port-registration-notifications: correct driver
    port registration.
  * Libjacknet in progress.
  * Correct MIDI in NetJack2.
  * Correct OSX real-time thread setup.
  * Correct rd_acquire in dbus code.
  * Correct NetJack2 connection handling.
  * SaveConnections/RestoreConnections in NetDriver and JackAudioDriver.
  * Special version of jack_attach_shm/jack_release_shm on client side for
    POSIX shared memory, to solve a memory leak issue.
  * Another round of code improvements to handle completely buggy Digidesign
    CoreAudio user-land driver.
  * Special CATCH_CLOSE_EXCEPTION_RETURN to handle Close API calls.
  * Add JACK_NETJACK_PORT and JACK_NETJACK_MULTICAST environment variables for
    NetJack2. NetJack2 now only send data on network only is ports are
    connected both sides.
  * Fix for "starting two instances of same app in parallel does not work"
    bug.
  * Enable explicit channel mapping in CoreAudio driver.
  * New JackTimedDriver class to be used by JackDummyDriver, JackNetDriver and
    JackNetOneDriver classes.
  * More robust code in synchronization primitives and in JackMessageBuffer.
  * More robust Control API implementation. Add jackctl_driver_get_type in
    Control API.
  * Singleton behaviour for JackCoreMidiDriver and JackWinMMEDriver.
  * John Emmas patch for DSP CPU computation.
  * John Emmas Windows server launching patch.
  * Fix jack_set_port_name API.
  * Enable local access in NetJack2 code.
  * Dynamic port management in JACK/CoreMidi bridge.

* 1.9.7 (2011-03-30)

  * Sync JackAlsaDriver::alsa_driver_check_card_type with JACK1 backend.
  * Correct JackServer::Open to avoid a race when control API is used on OSX.
  * Improve backend error handling: fatal error returned by Read/Write now
    cause a Process failure (so a thread exit for blocking backends).
    Recoverable ones (XRuns..) are now treated internally in ALSA, FreeBob and
    FFADO backends.
  * In jackdmp.cpp, jackctl_setup_signals moved before jackctl_server_start.
  * Correct symbols export in backends on OSX. ALSA backend: suspend/resume
    handling.
  * Correct dummy driver.
  * Adrian Knoth jack_lsp patch.
  * Remove JackPortIsActive flag.
  * New latency API implementation.
  * ComputeTotalLatencies now a client/server call.
  * Add latent test client for latency API.
  * Also print playback and capture latency in jack_lsp.
    jack_client_has_session_callback implementation.
  * Check requested buffer size and limit to 1..8192 - avoids weird behaviour
    caused by jack_bufsize foobar.
  * jack_port_type_get_buffer_size implementation.
  * Stop using alloca and allocate buffer on the heap for alsa_io.
  * Rename jdelay to jack_iodelay as per Fons' request.
  * Call buffer size callback in activate (actually this is done on client side
    in the RT thread Init method).
  * Add jack_midi_dump client.
  * Synchronize net JACK1 with JACK1 version.
  * Synchronize jack_connect/jack_disconnect with JACK1 version.
  * Correct JackNetMaster::SetBufferSize.
  * Use jack_default_audio_sample_t instead of float consistently, fix ticket
    #201.
  * -X now allows to add several slave backends, add -I to load several
    internal clients.
  * Rework internal slave driver management, JackServerGlobals now handle same
    parameters as jackdmp.
  * Correct JackEngine::NotifyGraphReorder, update JackDebugClient with latest
    API.
  * Devin Anderson server-ctl-proposal branch merged on trunk: improved control
    API, slave backend reworked. Implement renaming in JackDriver::Open to
    avoid name collision (thanks Devin Anderson).
  * Correct alsa_driver_restart (thanks Devin Anderson). Correction of
    jack_connect/jack_disconnect: use of jack_activate and volatile keyword for
    thread shared variable.
  * Correction of JackNetOneDriver for latest CELT API.
  * Synchronize JackWeakAPI.cpp with new APIs.

* 1.9.6 (2010-08-30)

  * Improve JackCoreAudioDriver and JackCoreAudioAdapter : when no devices are
    described, takes default input and output and aggregate them.
  * Correct JackGraphManager::DeactivatePort.
  * Correct JackMachServerChannel::Execute : keep running even in error cases.
    Raise JACK_PROTOCOL_VERSION number.
  * Arnold Krille firewire patch.
  * Raise JACK_DRIVER_PARAM_STRING_MAX and JACK_PARAM_STRING_MAX to 127
    otherwise some audio drivers cannot be loaded on OSX.
  * Fix some file header to have library side code use LGPL.
  * On Windows, now use TRE library for regexp (BSD license instead of GPL
    license).
  * ffado-portname-sync.patch from ticket #163 applied.
  * Remove call to exit in library code.
  * Make jack_connect/jack_disconnect wait for effective port
    connection/disconnection.
  * Add tests to validate intclient.h API.
  * On Linux, inter-process synchronization primitive switched to POSIX
    semaphore.
  * In JackCoreAudioDriver, move code called in MeasureCallback to be called
    once in IO thread.
  * David Garcia Garzon netone patch.
  * Fix from Fernando Lopez-Lezcano for compilation on fc13.
  * Fix JackPosixSemaphore::TimedWait : same behavior as
    JackPosixSemaphore::Wait regarding EINTR.
  * David Garcia Garzon unused_pkt_buf_field_jack2 netone patch.
  * Arnold Krille firewire snooping patch.
  * Jan Engelhardt patch for get_cycles on SPARC.
  * Adrian Knoth hurd.patch, kfreebsd-fix.patch and alpha_ia64-sigsegv.patch
    from ticket 177.
  * Adrian Knoth fix for linux cycle.h (ticket 188).
  * In JackCoreAudioDriver, fix an issue when no value is given for input.

* 1.9.5 (2010-02-12)

  * Dynamic choice of maximum port number.
  * More robust sample rate change handling code in JackCoreAudioDriver.
  * Devin Anderson patch for Jack FFADO driver issues with lost MIDI bytes
    between periods (and more).
  * Fix port_rename callback: now both old name and new name are given as
    parameters.
  * Special code in JackCoreAudio driver to handle completely buggy Digidesign
    CoreAudio user-land driver.
  * Ensure that client-side message buffer thread calls thread_init callback
    if/when it is set by the client (backport of JACK1 rev 3838).
  * Check dynamic port-max value.
  * Fix JackCoreMidiDriver::ReadProcAux when ring buffer is full (thanks Devin
    Anderson).
  * Josh Green ALSA driver capture only patch.
  * When threads are cancelled, the exception has to be rethrown.
  * Use a QUIT notification to properly quit the server channel, the server
    channel thread can then be 'stopped' instead of 'canceled'.
  * Mario Lang alsa_io time calculation overflow patch. Shared memory manager
    was calling abort in case of fatal error, now return an error in caller.
  * Change JackEngineProfiling and JackAudioAdapterInterface gnuplot scripts
    to output SVG instead of PDF.

* 1.9.4 (2009-11-19)

  * Solaris boomer backend now working in capture or playback only mode.
  * Add a -G parameter in CoreAudio backend (the computation value in RT
    thread expressed as percent of period).
  * Use SNDCTL_DSP_SYNCGROUP/SNDCTL_DSP_SYNCSTART API to synchronize input and
    output in Solaris boomer backend.
  * Big endian bug fix in memops.c.
  * Fix issues in JackNetDriver::DecodeTransportData and
    JackNetDriver::Initialize.
  * Correct CPU timing in JackNetDriver, now take cycle begin time after Read.
  * Simplify transport in NetJack2: master only can control transport.
  * Change CoreAudio notification thread setup for OSX Snow Leopard.
  * Correct server temporary mode: now set a global and quit after
    server/client message handling is finished.
  * Add a string parameter to server ==> client notification, add a new
    JackInfoShutdownCallback type.
  * CoreAudio backend now issue a JackInfoShutdownCallback when an
    unrecoverable error is detected (sampling rate change, stream
    configuration change).
  * Correct jackdmp.cpp (failures case were not correct..).
  * Improve JackCoreAudioDriver code.
  * Raise default port number to 2048.
  * Correct JackProcessSync::LockedTimedWait.
  * Correct JACK_MESSAGE_SIZE value, particularly in OSX RPC code.
  * Now start server channel thread only when backend has been started (so in
    JackServer::Start).
  * Should solve race conditions at start time.
  * jack_verbose moved to JackGlobals class.
  * Improve aggregate device management in JackCoreAudioDriver: now a
    "private" device only and cleanup properly.
  * Aggregate device code added to JackCoreAudioAdapter.
  * Implement "hog mode" (exclusive access of the audio device) in
    JackCoreAudioDriver.
  * Fix jack_set_sample_rate_callback to have he same behavior as in JACK1.
  * Dynamic system version detection in JackCoreAudioDriver to either create
    public or private aggregate device.
  * In JackCoreAudioDriver, force the SR value to the wanted one *before*
    creating aggregate device (otherwise creation will fail).
  * In JackCoreAudioDriver, better cleanup of AD when intermediate open
    failure.
  * In JackCoreAudioDriver::Start, wait for the audio driver to effectively
    start (use the MeasureCallback).
  * In JackCoreAudioDriver, improve management of input/output channels: -1 is
    now used internally to indicate a wanted max value.
  * In JackCoreAudioDriver::OpenAUHAL, correct stream format setup and
    cleanup.
  * Correct crash bug in JackAudioAdapterInterface when not input is used in
    adapter (temporary fix).
  * Sync JackCoreAudioAdapter code on JackCoreAudioDriver one.
  * JACK_SCHED_POLICY switched to SCHED_FIFO.
  * Now can aggregate device that are themselves AD.
  * No reason to make jack_on_shutdown deprecated, so revert the incorrect
    change.
  * Thread AcquireRealTime and DropRealTime were (incorrectly) using fThread
    field.
  * Use pthread_self()) (or GetCurrentThread() on Windows) to get the calling
    thread.
  * Correctly save and restore RT mode state in freewheel mode.
  * Correct freewheel code on client side.
  * Fix AcquireRealTime and DropRealTime: now distinguish when called from
    another thread (AcquireRealTime/DropRealTime) and from the thread itself
    (AcquireSelfRealTime/DropSelfRealTime).
  * Correct JackPosixThread::StartImp: thread priority setting now done in the
    RT case only.
  * Correct JackGraphManager::GetBuffer for the "client loop with one
    connection" case: buffer must be copied.
  * Correct JackInfoShutdownCallback prototype, two new
    JackClientProcessFailure and JackClientZombie JackStatus code.
  * Correct JackCoreAudio driver when empty strings are given as -C, -P or -d
    parameter.
  * Better memory allocation error checking on client (library) side.
  * Better memory allocation error checking in ringbuffer.c, weak import
    improvements.
  * Memory allocation error checking for jack_client_new and jack_client_open
    (server and client side).
  * Memory allocation error checking in server for RPC.
  * Simplify server temporary mode: now use a JackTemporaryException.
  * Lock/Unlock shared memory segments (to test...).
  * Sync with JACK1 : -r parameter now used for no-realtime, realtime (-R) is
    now default, usable backend given vie platform.
  * In JackCoreAudio driver, (possibly) clock drift compensation when needed
    in aggregated devices.
  * In JackCoreAudio driver, clock drift compensation in aggregated devices
    working.
  * In JackCoreAudio driver, clock drift compensation semantic changed a bit:
    when on, does not activate if not needed (same clock domain).
  * Sync JackCoreAudioAdapter code with JackCoreAudioDriver.

* 1.9.3 (2009-07-21)

  * New JackBoomerDriver class for Boomer driver on Solaris.
  * Add mixed 32/64 bits mode (off by default).
  * Native MIDI backend (JackCoreMidiDriver, JackWinMMEDriver).
  * In ALSA audio card reservation code, tries to open the card even if
    reservation fails.
  * Clock source setting on Linux.
  * Add jackctl_server_switch_master API.
  * Fix transport callback (timebase master, sync) issue when used after
    jack_activate (RT thread was not running).
  * D-Bus access for jackctl_server_add_slave/jackctl_server_remove_slave API.
  * Cleanup "loopback" stuff in server.
  * Torben Hohn fix for InitTime and GetMicroSeconds in JackWinTime.c.
  * New jack_free function added in jack.h.
  * Reworked Torben Hohn fix for server restart issue on Windows.
  * Correct jack_set_error_function, jack_set_info_function and
    jack_set_thread_creator functions.
  * Correct JackFifo::TimedWait for EINTR handling.
  * Move DBus based audio device reservation code in ALSA backend compilation.
  * Correct JackTransportEngine::MakeAllLocating, sync callback has to be
    called in this case also.
  * NetJack2 code: better error checkout, method renaming.
  * Tim Bechmann patch: hammerfall, only release monitor thread, if it has
    been created.
  * Tim Bechmann memops.c optimization patches.
  * In combined --dbus and --classic compilation code, use PulseAudio
    acquire/release code.
  * Big rewrite of Solaris boomer driver, seems to work in duplex mode at
    least.
  * Loopback backend reborn as a dynamically loadable separated backend.

* 1.9.2 (2009-02-11)

  * Solaris version.
  * New "profiling" tools.
  * Rework the mutex/signal classes.
  * Support for BIG_ENDIAN machines in NetJack2.
  * D-BUS based device reservation to better coexist with PulseAudio on Linux.
  * Add auto_connect parameter in netmanager and netadapter.
  * Use Torben Hohn PI controler code for adapters.
  * Client incorrect re-naming fixed : now done at socket and fifo level.
  * Virtualize and allow overriding of thread creation function, to allow Wine
    support (from JACK1).

* 1.9.1 (2008-11-14)

  * Fix jackctl_server_unload_internal.
  * Filter SIGPIPE to avoid having client get a SIGPIPE when trying to access
    a died server.
  * Libjack shutdown handler does not "deactivate" (fActive = false) the
    client anymore, so that jack_deactivate correctly does the job later on.
  * Better isolation of server and clients system resources to allow starting
    the server in several user account at the same time.
  * Report ringbuffer.c fixes from JACK1.
  * Client and library global context cleanup in case of incorrect shutdown
    handling (that is applications not correctly closing client after server
    has shutdown).
  * Use JACK_DRIVER_DIR variable in internal clients loader.
  * For ALSA driver, synchronize with latest JACK1 memops functions.
  * Synchronize JACK2 public headers with JACK1 ones.
  * Implement jack_client_real_time_priority and
    jack_client_max_real_time_priority API.
  * Use up to BUFFER_SIZE_MAX frames in midi ports, fix for ticket #117.
  * Cleanup server starting code for clients directly linked with
    libjackserver.so.
  * JackMessageBuffer was using thread "Stop" scheme in destructor, now use
    the safer thread "Kill" way.
  * Synchronize ALSA backend code with JACK1 one.
  * Set default mode to 'slow' in JackNetDriver and JackNetAdapter.
  * Simplify audio packet order verification.
  * Fix JackNetInterface::SetNetBufferSize for socket buffer size computation
    and JackNetMasterInterface::DataRecv if synch packet is received, various
    cleanup.
  * Better recovery of network overload situations, now "resynchronize" by
    skipping cycles.".
  * Support for BIG_ENDIAN machines in NetJack2.
  * Support for BIG_ENDIAN machines in NetJack2 for MIDI ports.
  * Support for "-h" option in internal clients to print the parameters.
  * In NetJack2, fix a bug when capture or playback only channels are used.
  * Add a JACK_INTERNAL_DIR environment variable to be used for internal
    clients.
  * Add a resample quality parameter in audioadapter.
  * Now correctly return an error if JackServer::SetBufferSize could not
    change the buffer size (and was just restoring the current one).
  * Use PRIu32 kind of macro in JackAlsaDriver again.
  * Add a resample quality parameter in netadapter.

* 1.9.0 (2008-03-18)

  * Waf based build system: Nedko Arnaudov, Grame for preliminary OSX support.
  * Control API, dbus based server control access: Nedko Arnaudov, Grame.
  * NetJack2 components (in progress): jack_net backend, netmanager,
    audioadapter, netadapter : Romain Moret, Grame.
  * Code restructuring to help port on other architectures: Michael Voigt.
  * Code cleanup/optimization: Tim Blechmann.
  * Improve handling of server internal clients that can now be
    loaded/unloaded using the new server control API: Grame.
  * A lot of bug fix and improvements.

* 0.72 (2008-04-10)

* 0.71 (2008-02-14)

  * Add port register/unregister notification in JackAlsaDriver.
  * Correct JACK_port_unregister in MIDI backend.
  * Add TimeCallback in JackDebugClient class.
  * Correct jack_get_time propotype.
  * Correct JackSocketClientChannel::ClientClose to use ServerSyncCall instead
    of ServerAsyncCall.
  * Better documentation in jack.h. libjackdmp.so renamed to
    libjackservermp.so and same for OSX framework.
  * Define an internal jack_client_open_aux needed for library wrapper feature.
  * Remove unneeded jack_port_connect API.
  * Correct jack_port_get_connections function (should return NULL when no
    connections).
  * In thread model, execute a dummy cycle to be sure thread has the correct
    properties (ensure thread creation is finished).
  * Fix engine real-time notification (was broken since ??).
  * Implements wrapper layer.
  * Correct jack_port_get_total_latency.
  * Correct all backend playback port latency in case of "asynchronous" mode
    (1 buffer more).
  * Add test for jack_cycle_wait, jack_cycle_wait and jack_set_process_thread
    API.
  * RT scheduling for OSX thread (when used in dummy driver).
  * Add -L (extra output latency in aynchronous mode) in CoreAudio driver.
  * New JackLockedEngine decorator class to serialize access from ALSA Midi
    thread, command thread and in-server clients.
  * Use engine in JackAlsaDriver::port_register and
    JackAlsaDriver::port_unregister.
  * Fix connect notification to deliver *one* notification only.
  * Correct JackClient::Activate so that first kGraphOrderCallback can be
    received by the client notification thread.
  * New jack_server_control client to test notifications when linked to the
    server library.
  * Synchronise transport.h with latest jackd version (Video handling).
  * Transport timebase fix.
  * Dmitry Baikov patch for alsa_rawmidi driver.
  * Pieter Palmers patch for FFADO driver.
  * Add an Init method for blocking drivers to be decorated using
    JackThreadedDriver class.
  * Correct PortRegister, port name checking must be done on server side.
  * Correct a missing parameter in the usage message of jack_midiseq.
  * New SetNonBlocking method for JackSocket.
  * Correct a dirty port array issue in JackGraphManager::GetPortsAux.

* 0.70 (2008-01-24)

  * Updated API to match jack 0.109.0 version.
  * Update in usx2y.c and JackPort.cpp to match jackd 0.109.2.
  * Latest jack_lsp code from jack SVN.
  * Add jack_mp_thread_wait client example.
  * Add jack_thread_wait client example.
  * Remove checking thread in CoreAudio driver, better device state change
    recovery strategy: the driver is stopped and restarted.
  * Move transport related methods from JackEngine to JackServer.


  * Tim Blechmann sse optimization patch for JackaudioPort::MixAudioBuffer,
    use of Apple Accelerate framework on OSX.
  * Remove use of assert in JackFifo, JackMachSemaphore, and
    JackPosixSemaphore: print an error instead.
  * Correct "server_connect": close the communication channel.
  * More robust external API.
  * Use SetAlias for port naming.
  * Use jackd midi port naming scheme.
  * Notify ports unregistration in JackEngine::ClientCloseAux.
  * Fix in JackClient::Error(): when RT thread is failing and calling
    Shutdown, Shutdown was not desactivating the client correctly.

* 0.69

  * On OSX, use CFNotificationCenterPostNotificationWithOptions with
    kCFNotificationDeliverImmediately | kCFNotificationPostToAllSessions for
    server ==> JackRouter plugin notification.
  * On OSX, use jack server name in notification system.
  * Correct fPeriodUsecs computation in JackAudioDriver::SetBufferSize and
    JackAudioDriver::SetSampleRate.
  * Correct JackMachNotifyChannel::ClientNotify.
  * Correct bug in CoreAudio driver sample rate management.
  * Add a sample_rate change listener in CoreAudio driver.
  * Correct sample_rate management in JackCoreAudioDriver::Open.
  * Better handling in sample_rate change listener.
  * Pieter Palmers FFADO driver and scons based build.
  * Pieter Palmers second new build system: scons and Makefile based build.
  * Tim Blechmann scons patch.
  * Change string management for proper compilation with gcc 4.2.2.
  * JackLog cleanup.
  * Cleanup in CoreAudio driver.
  * Tim Blechmann patch for JackGraphManager::GetPortsAux memory leak, Tim
    Blechmann patch for scons install.
  * Dmitry Baikov MIDI patch: alsa_seqmidi and alsa_rammidi drivers.
  * CoreAudio driver improvement: detect and notify abnormal situations
    (stopped driver in case of SR change...).

* 0.68 (2007-10-16)

  * Internal loadable client implementation, winpipe version added.
  * Reorganize jack headers.
  * Improve Linux install/remove scripts.
  * Use LIB_DIR variable for 64 bits related compilation (drivers location).
  * More generic Linux script.
  * Correct jack_acquire_real_time_scheduling on OSX.
  * Merge of Dmitry Baikov MIDI branch.
  * Correct JackGraphManager::GetPortsAux to use port type.
  * Remove JackEngineTiming class: code moved in JackEngineControl.
  * Add midiseq and midisine examples.
  * Cleanup old zombification code.
  * Linux Makefile now install jack headers.
  * Use of JACK_CLIENT_DEBUG environment variable to activate debug client
    mode.
  * Definition of JACK_LOCATION variable using -D in the Makefile.
  * Restore jack 0.103.0 MIDI API version.
  * Fix a bug in freewheel management in async mode: drivers now receive the
    kStartFreewheelCallback and kStopFreewheelCallback notifications.
  * Server and user directory related code moved in a JackTools file.
  * Client name rewriting to remove path characters (used in fifo naming).
  * Correct ALSA driver Attach method: internal driver may have changed the
    buffer_size and sample_rate values.
  * Add JackWinSemaphore class.
  * Add an implementation for obsolete jack_internal_client_new and
    jack_internal_client_close.
  * Add missing jack_port_type_size.
  * Use of JackWinSemaphore instead of JackWinEvent for inter-process
    synchronization.
  * Correct types.h for use with MINGW on Windows.
  * Move OSX start/stop notification mechanism in Jackdmp.cpp.
  * Correct CheckPort in JackAPI.cpp.

* 0.67 (2007-09-28)

  * Correct jack_client_open "status" management.
  * Rename server_name from "default" to "jackdmp_default" to avoid conflict
    with regular jackd server.
  * Fix a resource leak issue in JackCoreAudioDriver::Close().
  * Better implement "jack_client_open" when linking a client with the server
    library.
  * Correct "jack_register_server" in shm.c.
  * Add missing timestamps.c and timestamps.h files.
  * Correctly export public headers in OSX frameworks.
  * Suppress JackEngine::ClientInternalCloseIm method.
  * Use .jackdrc file (instead of .jackdmprc).
  * Install script now creates a link "jackd ==> jackdmp" so that automatic
    launch can work correctly.
  * Paul Davis patch for -r (--replace-registry) feature.
  * Internal loadable client implementation.
  * Fix JackEngine::Close() method.
  * Windows JackRouter.dll version 0.17: 32 integer sample format.

* 0.66 (2007-09-06)

  * Internal cleanup.
  * Windows JackRouter.dll version 0.16: use of "jack_client_open" API to
    allow automatic client renaming, better Windows VISTA support, new
    JackRouter.ini file.

* 0.65 (2007-08-30)

  * Fix backend port alias management (renaming in system:xxx).
  * Fix a bug in JackLibClient::Open introduced when adding automatic client
    renaming.
  * Fix a bug in jack_test.
  * Correct JackShmMem destructor.
  * Correct end case in JackClient::Execute.
  * Correct JackMachSemaphore::Disconnect.
  * Implement server temporary (-T) mode.
  * Make "Rename" a method of JackPort class, call it from driver Attach
    method.
  * Server/library protocol checking implementation.

* 0.64 (2007-07-26)

  * Checking in the server to avoid calling the clients if no callback are
    registered.
  * Correct deprecated jack_set_sample_rate_callback to return 0 instead of
    -1.
  * Dmitry Baikov buffer size patch.
  * Correct notification for kActivateClient event. Correct
    JackEngine::ClientCloseAux (when called from
    JackEngine::ClientExternalOpen).
  * Correct JackWinEvent::Allocate.
  * Automatic client renaming.
  * Add "systemic" latencies management in CoreAudio driver.
  * Automatic server launch.
  * Removes unneeded 'volatile' for JackTransportEngine::fWriteCounter.

* 0.63 (2007-04-05)

  * Correct back JackAlsaDriver::Read method.
  * Dmitry Baikov patch for JackGraphManager.cpp. Merge JackGraphManager Remove
    and Release method in a unique Release method.
  * Dmitry Baikov jackmp-time patch : add jack_get_time, jack_time_to_frames,
    jack_frames_to_time. Add missing -D__SMP__in OSX project.  Add new
    jack_port_set_alias, jack_port_unset_alias and jack_port_get_aliases API.
  * Steven Chamberlain patch to fix jack_port_by_id export.
  * Steven Chamberlain patch to fix jack_port_type. Test for jack_port_type
    behaviour in jack_test.cpp tool. Add jack_set_client_registration_callback
    API. Add "callback exiting" and "jack_frame_time" tests in jack_test.

* 0.62 (2007-02-16)

  * More client debug code: check if the client is still valid in every
    JackDebugClient method, check if the library context is still valid in
    every API call.
  * Uses a time out value of 10 sec in freewheel mode (like jack).
  * More robust activation/deactivation code, especially in case of client
    crash.
  * New LockAllMemory and UnlockAllMemory functions.
  * Use pthread_attr_setstacksize in JackPosixThread class.
  * Add Pieter Palmers FreeBob driver.
  * Thibault LeMeur ALSA driver patch.
  * Thom Johansen fix for port buffer alignment issues.
  * Better error checking in PortAudio driver.

* 0.61 (2006-12-18)

  * Tom Szilagyi memory leak fix in ringbuffer.c.
  * Move client refnum management in JackEngine.
  * Shared_ports renamed to shared_graph.
  * Add call to the init callback (set up using the
    jack_set_thread_init_callback API) in Real-Time and Notification threads.
  * Define a new 'kActivateClient' notification.
  * New server/client data transfer model to fix a 64 bits system bug.
  * Fix a device name reversal bug in ALSA driver.
  * Implement thread.h API.

* 0.60 (2006-11-23)

  * Improve audio driver synchronous code to better handle possible time-out
    cases.
  * Correct JackWinEnvent::Allocate (handle the ERROR_ALREADY_EXISTS case).
  * Correct JackEngine::ClientExternalNew.

* 0.59 (2006-09-22)

  * Various fixes in Windows version.
  * Signal handling in the Windows server.
  * Improved JackRouter ASIO/Jack bridge on Windows.
  * Rename global "verbose" in "jack_verbose" to avoid symbol clash with
    PureData.
  * Add a new cpu testing/loading client.
  * Correct server SetBufferSize in case of failure.
  * Correct PortAudio driver help.
  * Use -D to setup ADDON_DIR on OSX and Linux.
  * Synchronize ALSA backend with jack one.

* 0.58 (2006-09-06)

  * Correct a bug introduced in 0.55 version that was preventing coreaudio
    audio inputs to work.
  * Restructured code structure after import on svn.

* 0.57

  * Correct bug in Mutex code in JackClientPipeThread::HandleRequest.
  * ASIO JackRouter driver supports more applications.
  * Updated HTML documentation.
  * Windows dll binaries are compiled in "release" mode.

* 0.56

  * Correct SetBufferSize in coreaudio driver, portaudio driver and
    JackServer.
  * Real-time notifications for Windows version.
  * In the PortAudio backend, display more informations for installed WinMME,

  * DirectSound and ASIO drivers.

* 0.55

  * Windows version.
  * Correct management of monitor ports in ALSA driver.
  * Engine code cleanup.
  * Apply Rui patch for more consistent parameter naming in coreaudio driver.
  * Correct JackProcessSync::TimedWait: time-out was not computed correctly.
  * Check the return code of NotifyAddClient in JackEngine. 

* 0.54

  * Use the latest shm implementation that solve the uncleaned shm segment
    problem on OSX.
  * Close still opened file descriptors (report from Giso Grimm). Updated html
    documentation.

* 0.53

  * Correct JackPilotMP tool on OSX.
  * Correct CoreAudio driver for half duplex cases.
  * Fix a bug in transport for "unactivated" clients.
  * Fix a bug when removing "unactivated" clients from the server. Tested on
    Linux/PPC.

* 0.52

  * Universal version for Mac Intel and PPC.
  * Improvement of CoreAudio driver for half duplex cases.

* 0.51

  * Correct bugs in transport API implementation.

* 0.50

  * Transport API implementation.

* 0.49

  * Internal connection manager code cleanup.

* 0.48

  * Finish software monitoring implementation for ALSA and CoreAudio drivers.
  * Simpler shared library management on OSX.

* 0.47

  * More fix for 64 bits compilation.
  * Correct ALSA driver.
  * Create a specific folder for jackdmp drivers.
  * Use /dev/shm as default for fifo and sockets.
  * "Install" and "Remove" script for smoother use with regular jack.

* 0.46

  * Fix a bug in loop management.
  * Fix a bug in driver loading/unloading code.
  * Internal code cleanup for better 64 bits architecture support.
  * Compilation on OSX/Intel.
  * Add the -d option for coreaudio driver (display CoreAudio devices internal
    name).

* 0.45

  * Script to remove the OSX binary stuff.
  * Correct an export symbol issue that was preventing QjackCtl to work on OSX.
  * Fix the consequences of the asynchronous semantic of
    connections/disconnections.

* 0.44

  * Patch from Dmitry Daikov: use clock_gettime by default for timing.
  * Correct dirty buffer issue in CoreAudio driver. Updated doc.

* 0.43

  * Correct freewheel mode.
  * Optimize ALSA and coreaudio drivers.
  * Correct OSX installation script.

* 0.42

  * Patch from Nick Mainsbridge.
  * Correct default mode for ALSA driver.
  * Correct XCode project.

* 0.41

  * Add the ALSA MMAP_COMPLEX support for ALSA driver.
  * Patch from Dmitry Daikov: compilation option to choose between
    "get_cycles" and "gettimeofday" to measure timing.

* 0.4

  * Linux version, code cleanup, new -L parameter to activate the loopback
    driver (see Documentation), a number of loopback ports can be defined.
    Client validation tool.

* 0.31

  * Correct bug in mixing code that caused Ardour + jackdmp to crash...

* 0.3

  * Implement client zombification + correct feedback loop management + code
    cleanup.

* 0.2

  * Implements jack_time_frame, new -S (sync) mode: when "synch" mode is
    activated, the jackdmp server waits for the graph to be finished in the
    current cycle before writing the output buffers. Note: To experiment with
    the -S option, jackdmp must be launched in a console.

* 0.1

  * First published version