Liking cljdoc? Tell your friends :D

Change Log

All notable changes to this project will be documented in this file. This change log follows the conventions of keepachangelog.com.

Unreleased

Nothing so far.

0.3.5 - 2017-10-08

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.

    :warning: 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:

  • 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 - 2017-09-05

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 - 2017-08-08

Added

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

Fixed

  • 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 - 2017-08-08

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.

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] - 2017-07-22

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 - 2017-06-25

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 - 2017-03-18

Added

  • You can now request track metadata from the CDJs, display it in the trigger windows, and use it in your trigger logic.
  • You can take Beat Link Trigger online after starting it in offline mode, or go offline when operating in online mode, at will using a new Network menu.
  • A sample integration with The Lighting Controller, also known as ShowXpress, QuickDMX, and SweetLight, a widely-used DMX lighting control package.
  • An example of how to automatically create a playlist logging all tracks played.

Fixed

  • The BeatListener was not being started, so Beat Expressions would never be run.
  • Previously an extra closing parenthesis in an Expression would cause anything after it to be silently ignored. Now it will properly cause a parse failure due to an unmatched delimiter.
  • Parse errors are also now identified with the trigger number and expression type, as well as proper line and column numbers.
  • Runtime exceptions within triggers are now also logged with the trigger number and type description, with better formatting, to help track them down.

Changed

  • The Carabiner connection is now configured through the new Network menu.

0.1.4 - 2016-11-20

Added

  • You can now tie an Ableton Link session's timeline to the beat grid being received on a trigger (setting its BPM and aligning either at the level of individual beats full bars), with the help of carabiner.

0.1.3 - 2016-10-02

Added

  • Thanks to new beat-link features, expressions can now determine the rekordbox ID number and source (player number and slot) of a track being played.
  • In describing tracks, triggers show the rekordbox ID when available in preference to the simple playlist position, as well as the source player and slot.
  • User expressions can override how a track is described by storing a custom description string under the key :track-description in the trigger locals map.
  • A Media Locations window to help keep track of media library locations so that triggers can identify tracks by their rekordbox ID regardless of where the DJ ends up needing to insert media during show setup.
  • A new, separate Tracked Update expression to use for relaying status updates about the tracked player to other systems, simplifying the purpose and use of the Enabled Filter expression
  • An example of how to control Pangolin BEYOND laser shows.
  • Takes advantage of beat-link's new slf4j integration to redirect any log output that beat-link produces into the beat-link-trigger log file.

Fixed

  • An exception which occurred trying, and failing, to clean out any previous local bindings when editing a trigger's Setup Expression.
  • Triggers were not being properly cleaned up (including leaving open now-orphaned expression editor windows) when replacing the entire trigger window, for example by opening a different trigger file.
  • Creating a trigger expression using the expression editor window that was automatically opened when you chose Custom as a Message or Enabled option for the trigger was not updating the state of the gear button.
  • Spurious exceptions could appear in the log file when triggers had Tracked Update expressions because they were being called during window creation without an actual status update. These expressions are now only called when a status update has been received.

0.1.2 - 2016-06-05

Added

  • A comment field for keeping notes about each trigger.
  • In addition to the former yes/no values (now renamed Always and Never), the Enabled setting of a trigger can be set to On-Air (enabled when its player reports being on the air), and Custom, which allows you to evaluate a Clojure expression on the player's status report and decide however you want.
  • A graphical indicator to summarize the trigger's enabled and tripped state.
  • A general framework for editing Clojure expressions to customize the application, including a large variety of convenience variables to simplify the task, and built-in help about the expressions and variables.
  • Support for sending MIDI Beat Clock.
  • A visible button to let people know about the trigger contextual menu even if they don't think of trying to control or right-click on it.
  • Errors and other important events are now logged to a log file, which is available for inspection via the File menu.
  • A user guide.

Fixed

  • The About box and the Searching for Devices box would appear in the top left corner of the screen momentarily before jumping to where they belonged.
  • Newly created trigger rows had a blank choice at the bottom of the MIDI Output menu.

0.1.1 - 2016-05-20

Added

  • A status summary of the selected player is shown after the menu.
  • The trigger can be enabled or disabled with a checkbox.
  • You can specify the channel on which the MIDI message should be sent.
  • You can now open multiple trigger windows using the new Window menu, and have each watching a different player and sending a different MIDI message. Closing the last window quits.
  • Support for offline operation when no DJ Link device can be found.
  • The list of triggers is saved when the application exits and restored when it starts.
  • You can save or load the configuration to a text file of your choice.
  • Triggers can be deleted by right-clicking on them as long as there is more than one in the list.
  • A first-stage loading process which checks the Java version and presents an error dialog if it is too old to successfully load the rest of the application, offering to open the download page.
  • The beginnings of an informative and attractive About box.

Changed

  • The MIDI Output menu now reformats names so you don't need to see the CoreMIDI4J prefix even when it is in use.
  • The Player menu stores its choices in a format that is more efficient for comparing with the incoming player packets.
  • The Player menu always lists Players 1 through 4 as choices, and reports when you have chosen one that is not currently visible.
  • Switched to a dark UI theme to fit in better with the kind of software this will be used with, and the dark environments in which it will be used.

Fixed

  • Identified a source of potential and unpredictable latency in the upstream beat-link library, and fixed it.
  • Moved all interaction with UI objects to the AWT Event Dispatch thread; we were trying to get the current output menu selection on the MIDI event thread, which was causing a ConcurrentModificationException within AWT.
  • Keep track of MIDI outputs as we open them, so we can reuse the same instance rather than creating new outputs every time. Clean them up when they disappear from the MIDI environment, like Afterglow does.

0.1.0 - 2016-05-13

Added

  • Set up initial project structure.
  • Selector to choose MIDI output as trigger destination.

Can you improve this documentation?Edit on GitHub

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close