macOS and Windows nightly builds
On by falkTX
Just a small heads up to mention that macOS and Windows nightly builds are now available for JACK2.
You can find them in the JACK2 GitHub actions section, each successful build will have matching artifacts.
When you open a pull request, builds will be automatically generated.
(pending approval from JACK2 maintainers, but there is typically no reason not to approve)
These artifacts include macOS-intel, macOS-universal, Ubuntu 20.04, Windows 32bit and Windows 64bit builds.
Note that neither QjackCtl or JACK-Router are included in these builds, only JACK.
JACK2 v1.9.19 release
On by falkTX
A new version of JACK2 has just been released.
You can grab the latest release source code at
https://github.com/jackaudio/jack2/releases and macOS/Windows installers at
https://github.com/jackaudio/jack2-releases/releases.
This release focuses on 2 main things: jack_position_t::tick_double addition and forced alignment of a few internal data structures.
A few other fixes were made as contributed by developers.
This relase adds tick_double to the jack_position_t struct and JackTickDouble as a validation flag for it.
Since older versions of JACK do not expose this variable, the macro JACK_TICK_DOUBLE is provided, which can be used as build-time detection.
The alignment change is because the packed structure layouts as used in JACK2 need to be naturally aligned in order to be accessed atomically in some systems.
A non-aligned read or write can result in a “Bus error”, which brings down jackd.
This seems to only be relevant on certain ARM systems, as JACK2 was obviously working before this change for most people.
As a consequence of this change, the internal protocol version was bumped to 9, which requires the restart of the JACK server after the update.
The official changelog is:
- 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
External changes, related to macOS/Windows installer:
- Fix macOS microphone permissions on qjackctl macOS app bundle
- Update qjackctl to 0.9.4
Now, for the rationale behind the transport tick_double API update:
When using JACK transport to sync between clients with precise timing requirements (such as MIDI sequencers) rounding errors would accumulate and eventually make the separate clients out of sync.
This was observed in Carla and mod-host, which use audio plugins as JACK clients.
Some MIDI plugins could miss notes due to rounding errors.
This change has been deployed in MOD Devices for a couple of releases already and it is known to work (that is, it corrects the situation).
There were discussions on IRC about this potentially be unnecessary, that clients can just use bar_start_tick to store the non-integer part of the tick.
While the idea could work in theory, supporting it turns out to be non-trivial and from all applications that I have tested none implemented this part correctly.
Some applications do not set bar_start_tick at all, even though they can be run as transport master.
So since the transport API has padding members available for use and it has been unchanged for several years (so there won’t be a need to add more fields in the short or middle term), well let’s just go for it.
Here is example code for transport-listening clients:
double tick;
#ifdef JACK_TICK_DOUBLE
if (pos.valid & JackTickDouble)
tick = pos.tick_double;
else
#endif
tick = pos.tick;
JACK2 v1.9.18 release
On by falkTX
A new version of JACK2 has just been released.
You can grab the latest release source code at
https://github.com/jackaudio/jack2/releases and macOS/Windows installers at
https://github.com/jackaudio/jack2-releases/releases.
This release focuses on 2 main things: adding zalsa internal client and fixing macOS builds in regards to DB/meta-data.
A few other fixes were made as contributed by developers.
With zalsa now part of JACK2, we are one more step closer to JACK1 feature parity.
Worth noting that this is purely the client, we still need to add the switches to be able to load internal clients directly from jackd startup command-line.
Will be interesting to attempt to make this zalsa client also behave as a “slave adapter” like done with ALSA audioadapter, coremidi and winmme drivers.
Something for a future release.
On macOS, please restart the JACK server after updating to 1.9.18.
The official changelog is:
- 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)
Now for those unaware of this whole “zalsa” thing…
This is basically zita-a2j/j2a by Fons Adriaensen repackaged as an internal client instead of being an external standalone tool.
JACK1 already added this a few years ago.
This zalsa version is slightly more up to date and with a few new fixes on top.
On supported systems, we can use it by running:
jack_load zalsa_out -i "-d hw:Mio"
This will activate the “Mio” soundcard as an output in the JACK graph.
You can use jack_unload zalsa_out to deactivate it, or alternatively control the start/stop purely in CLI with:
jack_load -w -a zalsa_out -i "-d hw:Mio"
Which will automatically unload the internal client after Ctrl+C or SIGTERM.
Worth noting that, since internal clients run in the JACK server process,
they will log/print information on that process and not on the jack_load one.
So watch out for that if you need to debug anything.
JACK2 v1.9.17 release
On by falkTX
A new version of JACK2 has just been released.
You can grab the latest release source code at
https://github.com/jackaudio/jack2/releases and macOS/Windows installers at
https://github.com/jackaudio/jack2-releases/releases.
This release focuses on improvements to the macOS and Windows binaries, now with macOS universal builds natively supporting Apple M1 hardware.
On M1 hardware, you can now have native arm64 JACK clients talk to Intel/x64 once and vice-versa.
On Windows, JACK-Router (the special ASIO driver that allows any ASIO-compatible application to talk to other JACK clients)
has been brought back, now integrated with the installer so it is much easier to manage.
Also, 32-bit and 64-bit clients can now be mixed without any side-effects to the meta-data.
Please restart the JACK server after updating to 1.9.17 on those systems.
The official changelog is:
- Add jack-router to Windows installer, opt-in
- Fix jack_control stopping after first command iteration
- Fix library compat/current version under macOS
- Fix registry keys for Windows, add 32bit compat ones on 64bit
- 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
- 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
JACK2 v1.9.16 quick hot-fix (for v1.9.15)
On by falkTX
An issue was found on the last JACK2 release that caused a few applications to crash on start.
This is a quick hot-fix for that release. If you are running v1.9.15, please update.
Because of a new release being needed, we took the chance to remove the jack-router Windows code,
as it now belongs in its own repository.
These two items are the full release.
You can grab the latest release source code at https://github.com/jackaudio/jack2/releases.
You can also grab the latest pre-built installers for macOS and Windows at
https://github.com/jackaudio/jack2-releases/releases.
On other systems, ask your jack2 package maintainer to update to the latest release.
[ News Archive ]