Skip to content

Releases: Deep-Symmetry/beat-link-trigger

0.3.8

17 Jun 23:27
Compare
Choose a tag to compare

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!

✨ At this point I strongly encourage everyone to switch to version 0.4.0. It works with current versions of Java, and includes many other improvements.

Version 0.3.8 includes some small improvements to the Carabiner integration discovered when upgrading that project to work with the latest version of Ableton’s Link protocol. It also provides an official entry point for people who want their expressions to be able to automatically open the Player Status window.

Even though this is a small release, I wanted to get it out before starting to work on investigating whether it will be possible to support working in versions of Java more recent than Java 8.

Fixed

  • An infinite loop reporting that Carabiner could not be found if you tried to connect to it when it was not running.
  • The Carabiner Connection window could show a connected state even after Carabiner had terminated.

Added

  • For very special situations, you can configure MIDI Clock and Carabiner tempo sync to ignore the actual track BPM, and sync a fixed tempo value adjusted by the player pitch.
  • Provided a safe entry point for expression code to make sure the Player Status window is showing.

0.3.7

27 Mar 04:35
Compare
Choose a tag to compare

This fixes some oversights discovered while helping the larger audience introduced to Beat Link Trigger by the DJ TechTools article build some interesting new integrations. (If you came here from the article, please look at my instructions for more information!)

Because this project is rapidly developing, there is also a -PREVIEW.jar file available for download above; this will be more recent than the named release, and will reflect a coherent set of changes to the master branch, planned for the next release. It is posted here to make in-progress downloads available without the need to create a ton of short-lived releases. Once the project settles down, this will no longer be necessary.

Fixed

  • Setup expressions are now always compiled before other expressions, so the context they set up is guaranteed to be available even at compile time when Beat Link Trigger is initially launched.
  • The Beat Expression is now fired only when beats are received from the player being tracked by the trigger (which is controlled by the Watch Menu, as well as the Enabled Filter if Any Player is
    chosen). This makes the Beat Expression far more useful, and an example of synchronizing light shows driven by the Ableton Live timeline locked to actual track positions became practical. I plan
    to add that example to the Wiki and/or the User Guide shortly after this release.

Added

  • You can now access track album metadata using the track-album convenience variable within expressions that work with CDJ status updates (the omission of this was an oversight, prompted by an
    oversight in the Beat Link library itself).
  • If you would like the Player Status Window to be always on top of other windows, you can arrange for that by creating a global variable entry (using the Global Setup Expression) with the key :player-status-always-on-top and the value true before showing the window.
  • The Beat Link MetadataFinder is now imported into the namespace used by the expression compiler, so it is easier to use from your expressions.

0.3.6

01 Dec 04:22
Compare
Choose a tag to compare

This fixes a lingering issue found by the person I originally wrote Beat Link Trigger for, as well as some other small ones reported by the larger audience introduced to it by the DJ TechTools article. (If you came here from the article, please look at my instructions for more information!)

Fixed

  • When looping a track that has audio data that extends well past the
    final beat in the beat grid, players sometimes report playing a beat
    that does not exist in the beat grid. This previously caused an
    exception in the log, and the reported playback position would keep
    growing without bound as long as the loop continued. The Beat Link
    library has been updated to handle this better by interpolating
    missing beats at the end of the beat grid, so there is no exception
    and the looping of the player is properly reflected in the Player
    Status
    window.
  • In Windows, the MIDI environment sometimes throws exceptions trying
    to find or open devices which do not get thrown on the Mac. These
    were interfering with trigger display and event delivery, now they
    are more gracefully treated as a missing device, although they still
    will get stack traces in the log.

Added

  • Now displays the build date in the About box, to make it easier
    for people who are kindly testing pre-release versions keep track of
    which one they are running.
  • Also shows the build date and version number at the start of the
    log to help remote troubleshooting.

0.3.5

08 Oct 22:17
Compare
Choose a tag to compare

This fixes another issue found by the larger audience introduced to Beat Link Trigger by the DJ TechTools article. (If you came here from the article, please look at my instructions for more information!)

Fixed

  • The embedded CoreMidi4J library which is used to communicate with MIDI devices on the Mac has been upgraded to improve stablity and to better handle working with multiple devices of the same type.

    ⚠️ Unfortunately, this causes most devices to show up with different names than they used to, so when you upgrade to this version you are going to need to go through all of your triggers that are configured to talk to MIDI devices, and reconnect them to the new device name if it has changed. See the CoreMidi4J project for details.

    If your device name has changed (and, again, this only affects the Macintosh platform), instead of seeing the Enabled section at the bottom right end of the trigger, you will see “Not found.” in red, just as you would see if the device was unplugged:

    Missing Device
  • The embedded Beat Link library which communicates with the Pioneer network has been updated to handle creating metadata caches from playlists that contain more than one copy of the same track. (This would previously fail with an exception when trying to create a duplicate entry in the ZIP file that holds the metadata cache; now extra copies of a track are simply skipped.)

Added

  • Taking advantage of the new TimeFinder class (which supports the Time and Remain fields in the Player Status window), expressions that run in response to player status updates can use a new convenience variable, track-time-reached, which will contain how far into the playing track has been reached, in milliseconds. (This value will only be available if the TimeFinder is running, otherwise track-time-reached will have the value nil. The easiest way to make sure the TimeFinder is running is to open the Player Status window.)

0.3.4

05 Sep 23:38
Compare
Choose a tag to compare

This fixes a problem and adds a feature brought up by the much wider audience finding Beat Link Trigger through the DJ TechTools article. (If you came here from the article, please look at my instructions for more information!)

Fixed

  • If you created too many triggers, or your triggers got too large because of complex expressions, they would fail to save because of exceeding the size limit for an entry in the Java Preferences. Even worse, this would happen silently (unless you happened to look in the log file). Now they will be split across multiple entries if needed, and if anything does fail, an error dialog will be displayed.

Added

  • A menu item which lets you view the contents of a metadata cache file, so you can work on triggers when you don't have a player or the actual media handy.

0.3.3

09 Aug 04:53
Compare
Choose a tag to compare

This is a small release to improve the new-user experience for the much wider audience that has been introduced to Beat Link Trigger through the DJ TechTools article. (If you came here from the article, please look at my instructions for more information!)

Added

  • Log more details of the process of going online, to better support people who are reporting issues with metadata.

Fixed

  • Warn that the Player Status window is not very useful until metadata requests are turned on.
  • Provide more specific guidance when turning on metadata requests, based on the actual number of physical players detected on the network, and stop offering the unreliable metadata option if there is only one real player, since it cannot be used in that situation.
  • Stop logging stack traces on each beat if we are offline but configured to align the master player with Ableton Link.
  • Found one more (albeit extremely unlikely) path where trying to create a metadata cache could fail silently, and added an error message there.

0.3.2

08 Aug 05:26
Compare
Choose a tag to compare

This is a small release to fix some issues found by the much wider audience that has been introduced to Beat Link Trigger through the DJ TechTools article. (If you came here from the article, please look at my instructions for more information!)

Fixed

  • If there was a problem retrieving metadata when the user asked to create a cache file (for example, if they did not have Request Track Metadata turned on, and there was only one player on the network), it would silently fail with a somewhat cryptic entry in the log file. It now gives a nice error dialog explaining how to fix the situation. It also gives a general error dialog if something else unexpected blows up the process.
  • The explanation of the timestamp value inside trigger expressions incorrectly stated they were millisecond values. In order to be compatible with Ableton Link, Beat Link switched to using seconds in its packet timestamps.
  • Added information about the status value available in the documentation for all triggers where it is present (some were previously missing this important detail).
  • Improved wording and variable name in grandMA2 example, thanks to suggestions from Alex Hughes.

0.3.1

22 Jul 17:51
Compare
Choose a tag to compare

This is a small release primarily to make it easier for people who discover Beat Link Trigger through
the DJ TechTools article to find the correct version, with on-air indicators and SMPTE integration support.

Added

  • On-Air indicators for players in the Player Status window. If you have the players configured to track and report this, it will be reflected right above the beat phase display.

  • A new version of Beat Link which adds hooks needed to allow triggers to generate SMPTE timecode synced to the track position (with the help of an external daemon).

  • Beat Expressions can now check whether the player sending the beat was on the air by simply looking at the value of on-air? as was already possible in Enabled and Tracked Update expressions. (Even though the information is not part of the beat packet itself, Beat Link Trigger will look it up from the last status packet received from the same player.)

  • It is now possible to reconfigure the maximum log file size and the number of backlog files by calling, for example:

    (beat-link-trigger.logs/install-appenders 1000000 4)
    

    This would allow the log files to grow to a million bytes each, with five backlog files kept. The default maximum size has been doubled to 200,000 bytes, and the default backlog file count remains 5.

0.3.0

26 Jun 02:47
Compare
Choose a tag to compare

This release made a big step forward, taking advantage of some great new information about how to work with the player database server.

Added

  • Some major new features taking advantage of the incredible advances
    in the Beat Link library over the past month. The most visible are
    found in the new Player Status window, available in the Network
    menu, providing a detailed view of what the player on the network
    are currently doing.
  • This also provides the foundation for upcoming work to generate
    timecode, now that we can keep track of detailed playback location
    when a player is playing normally.
  • There is a whole new infrastructure for creating, attaching, and
    using metadata cache files for performance settings with four
    players all linked to a single media library, which makes requesting
    metadata difficult.

Changed

  • Now that metadata has become so fundamental to so many features in
    Beat Link Trigger, the user guide assumes that you will be working
    with it turned on. You can also make use of the extensive new
    metadata cache file mechanism to cope with performance environments
    in which requesting the metadata from a player is difficult.

Fixed

  • File management is much improved, adding standard file extensions
    for configuration and trigger export files, filtering on those
    extensions to make it easier to see the right files, asking for
    confirmation before overwriting an existing file, and still letting
    you load a file with the wrong extension (such as one you saved
    before this release) by choosing "All files" in the Open dialog.

0.2.1

21 Jun 16:02
Compare
Choose a tag to compare

Includes the new ability to request track metadata (artist, title, etc.) from the CDJs. This is still more experimental than the rest of the features, but enough people have now used it successfully to make an official release. For other details, see the Change Log.