0.4.0
If you came here from the link in the DJ TechTools article, please look at my instructions for more information about how to install and use Beat Link Trigger!
What to Download
- If you already have a current Java runtime installed (Java 8 or later on the Mac, Java 9 or later on Windows), you can just download the executable
beat-link-trigger.jar
file, and should be able to run it by double-clicking. - If you are on a Mac and don’t want to have to worry about installing and managing a separate Java environment, you can download the disk image (
.dmg
) file, which contains a signed Mac application with the necessary Java 11 runtime built right in.
I’m still researching how to build a Windows all-in-one package, hopefully that will be available someday.
What’s in the Release
The most feature-packed release yet, with quite a few fixes as well!
Added
- Support for running under Java 9, 10 and 11.
- Beat Link Trigger can now become Tempo Master on the Pioneer DJ Link network, and can synchronize the tempo and beat grid of CDJs to Ableton Link in both directions.
- The Carabiner window now lets you control which device is the Tempo Master and which devices are synced to it.
- When Ableton Link is the tempo master, the Carabiner window also lets you nudge the Link tempo up or down, or type in an exact tempo value you want to set it to.
- Triggers configured to control Ableton Link can now use Link v3 Start/Stop Sync (transport control) to start Link playback when the trigger activates, and stop it when the trigger deactivates. (Of course this works only when Carabiner's Sync Mode is set to
Triggers
. In other modes, your expressions can call the
start-transport
andstop-transport
functions directly, as long as they first check that Carabiner is active using eitheractive?
orsync-enabled?
if they care about being synced.) - There is a new interface for picking a track from a player's media slot, and telling it (or another player) to load it. Players can also be stopped using this interface, and (as long as they are stopped at the cue point) started. This is useful for playing tracks during a pre-show from Front of House before there is a DJ on stage.
- There is a new Playlist Writer window for ease of use by radio stations and others wanting to be careful about royalties.
- Can now display metadata for non-rekordbox tracks, including audio and data CDs, thanks to dysentery and Beat Link updates.
- Player Status window shows a distinction between players with no track loaded, and with no metadata at all (which is now rare).
- The
Online?
option in theTriggers
menu now shows the player number that Beat Link Trigger is using once it is online, to help people understand how it is operating. - Icons are now displayed when no album art is available for a track, providing information about where the track was loaded from, or an indication that there is no track loaded.
- A new
Help
menu with options to open the User Guide, project page, Gitter chat, and to compose emails to report issues with pre-populated version details, or simply say "hello" as a new user. - An embedded copy of the User Guide will be served by an embedded web server when you access it from the
Help
menu, so you can read it even if you do not have an Internet connection. - The
About
window now shows Java version information, and all version information can be selected and copied, if useful in discussing issues. - The log files now include Java and operating system version information at the top.
Fixed
- Can now get metadata from Windows rekordbox; previously we were running into a rekordbox bug when sending dbserver messages split across more than one network packet. The Beat Link library now takes pains to prevent them from being split.
- The SD slots were showing up as mounted in the Player Status window even when they were emtpy.
- If we had trouble communicating with a player's database server when first trying to get metadata from it, we would not ever try again, even if taken offline and back online. Now when we go offline, we shut down the
ConnectionManager
, clearing out that state so the next time we go online we can try again. - The Player Status window would sometimes not show the correct (or any) remaining time information, when it should have been available.
- Make the Player Status window show up in the right size to not require scroll bars.
- The Player Status window display when no players were found was huge and lacked suitable borders. It looks much better now.
- The error dialog that was displayed when we did not hear the right response from a Carabiner daemon after connecting was not being displayed on the correct thread, and so was completely unreadable.
- If multiple messages were sent rapidly to or from Carabiner they might get grouped into a single network packet, and the later ones would be ignored. This release, along with a newer Carabiner release, process even later messages grouped in the same packet. This version will warn you if you need to upgrade Carabiner.
- Protect against race conditions reading and writing preferences from different threads, now that they are split across multiple nodes.
- Deep-linking to headings in the new User Guide will scroll the browser to the correct place (the problem was the browser not knowing the image sizes during layout, so its guess about where to scroll would get knocked off as they filled in).
Changed
- On Windows, the
About
window is now accessed through the newHelp
menu (which is more consistent with Windows applicaton standards), instead of theFile
menu. - The
Open Logs Folder
option has moved from theFile
menu to the newHelp
menu so it is right next to the options where you might need it.
What’s next?
I want to wrap up a few things that didn’t quite fit into this release, and then work can begin on separating the UI from the engine, which will enable a ton of very compelling new use cases! That will be a lengthy effort, but well worth it if I can get it working the way I am envisioning.