HAL v2.0.0 Release Notes

HAL v2 is here. This version represents a fairly large refactor of most of the code base, many usability improvements, and some improved or additional functionality. It also, unfortunately, means that some code written for HAL v1 may no longer work, or work slightly differently. I kept the APIs as similar as possible, but some behavior may not always be as you expect, so if you decide to upgrade from v1, test carefully and keep the docs on hand.

Special Passages

HAL v2 now uses special passages both to configure the library and to set up track definitions.

The hal.config special passage is the new way to configure HAL. You no longer have to hand-edit the libraries source code, which was a hack-y nightmare, especially when you needed to upgrade to a new version. Do not attempt to hand-edit the source code anymore.

The hal.tracks special passage is the new, recommended way for users to define tracks and assign them source files. The old A.newTrack() method is still available and still works, and is joined by the (newtrack:) macro, so you have options if you want them.


HAL v2 adds a number of custom macros to the library that allow you to use macro code to interact with HAL instead of JavaScript.

The macros are:

  • (masteraudio:)
  • (newtrack:)
  • (newplaylist:)
  • (newgroup:)
  • (track:)
  • (playlist:)
  • (group:)

Details on the macros are in the docs.

The Guide

In addition to rewritten reference documentation, HAL now includes a gentler guide to help get novices acclimated quickly with just the info needed to get started. Docs for v1 are still available.

Please Report Problems

Changes this big rarely go completely smoothly. If you find any bugs or other issues, please report them on the issue tracker.