Afterglow 0.2.5-SNAPSHOT

Released under the Eclipse Public License

A live-coding environment for light shows, built on the Open Lighting Architecture, using bits of Overtone.

Installation

To install, add the following dependency to your project or build file:

[afterglow "0.2.5-SNAPSHOT"]

Namespaces

afterglow.beyond

Provides the ability to communicate with Pangolin’s Beyond laser show software, including synchronizing it with Afterglow’s BPM and beat grid, and triggering cues. This initial implementation assumes that sending small UDP datagrams is fast enough that it can be done on the caller’s thread. If this turns out not to be true, it can be changed to use a core.async channel the way that ola-clojure does.

afterglow.channels

Functions for modeling DMX channels

afterglow.controllers

Provides shared services for all controller implementations.

afterglow.controllers.ableton-push

Allows the Ableton Push to be used as a control surface for Afterglow. Its features are described in the Developer Guide.

afterglow.controllers.ableton-push-2

Allows the Ableton Push 2 to be used as a control surface for Afterglow. Its features are described in the Developer Guide.

afterglow.controllers.color

Provides support for adjusting components of a show variable containing a color using any MIDI controller.

Public variables and functions:

afterglow.controllers.launchpad-mini

Allows the Novation Launchpad Mini and Launchpad S to be used as control surfaces for Afterglow.

afterglow.controllers.launchpad-mk2

Allows the Novation Launchpad Mk2 to be used as a control surface for Afterglow.

afterglow.controllers.launchpad-pro

Allows the Novation Launchpad Pro to be used as a control surface for Afterglow.

afterglow.controllers.tempo

Provides support for easily implementing tap-tempo and shift buttons on any MIDI controller.

afterglow.core

This is the main class for running Afterglow as a self-contained JAR application. When you are learning and experimenting in your REPL, the main namespace you want to be using is afterglow.examples

afterglow.coremidi4j

Public variables and functions:

afterglow.dj-link

Provides synchronization with equipment sending Pioneer Pro DJ Link packets on the local network, such as Pioneer Nexus mixers and players, using the beat-link library.

afterglow.effects

Support functions for building the effects pipeline.

afterglow.effects.channel

Effects pipeline functions for working with individual DMX channels.

afterglow.effects.color

Effects pipeline functions for working with color assignments to fixtures and heads.

afterglow.effects.cues

Cues provide a user interface for controlling effects, by associating them with cells in a cue grid so they can be easily triggered and monitored, either through a physical grid controller, or the web show control interface. They also provide a way of binding cue variables to effect parameters, which can enable controller interfaces to adjust them, and of tying those variables to velocity and pressure sensitivity on physical grid controllers which have such capabilities.

afterglow.effects.dimmer

Effects pipeline functions for working with dimmer channels for fixtures and heads. Dimmer effects are always tied to a master chain, which can scale back the maximum allowable value for that dimmer channel, as a percentage. Unless otherwise specified, the dimmer cue will be attached to the show grand master, but you can create other masters to adjust the brightness of groups of fixtures, perhaps because they are intrinsically brighter, or to adjust the balance of lighting for artistic reasons. Secondary masters can be chained to each other, and are always chained to the show grand master, so turning that down will dim the entire show; setting it to zero will black out the show.

afterglow.effects.fun

A collection of neat effects that are both useful in shows, and examples of how to create such things.

afterglow.effects.movement

Effects pipeline functions for working with direction assignments to fixtures and heads.

afterglow.effects.oscillators

Provide a variety of waveforms at frequencies related to the show metronome to facilitate building visually and musically pleasing effects.

afterglow.effects.params

A general mechanism for passing dynamic parameters to effect functions and assigners allowing for dynamic values to be computed either when an effect creates its assigners, or when the assigners are resolving DMX values. Parameters can be calculated based on the show metronome snapshot, show variables (which can be bound to OSC and MIDI mappings), and other, not-yet-imagined things.

afterglow.effects.show-variable

Virtual effects which set a value in a show variable while they are running. Pair well with conditional-effect to modify the behavior of scenes based on the activation of other cues.

Public variables and functions:

afterglow.examples

Show some simple ways to use Afterglow, and hopefully inspire exploration.

afterglow.fixtures

Utility functions common to fixture definitions.

afterglow.fixtures.american-dj

Definitions for fixtures provided by American DJ.

Public variables and functions:

afterglow.fixtures.blizzard

Definitions for fixtures provided by Blizzard Lighting.

afterglow.fixtures.chauvet

Models for fixtures provided by Chauvet Lighting.

afterglow.fixtures.qxf

Functions to work with Fixture Definition Files from the QLC+ open-source lighting controller project. While these do not contain all of the information Afterglow needs to fully control a fixture with its geometric reasoning, they can form a good starting point and save you a lot of tedious capability translation. You can find the available .qxf files on Github.

Public variables and functions:

afterglow.init

This namespace is the context in which any init-files specified on the command line will be loaded during startup, in case they forget to establish their own namespaces.

Public variables and functions:

    afterglow.midi

    Handles MIDI communication, including syncing a show metronome to MIDI clock pulses.

    afterglow.rhythm

    Functions to help work with musical time, evolved from the original version in Overtone.

    afterglow.show

    Encapsulates a synchronized light show, executing a varying collection of effects with output to a number of DMX universes. Assumes control of the assigned universes, so only one show at a time should be assigned a given universe. Of course, you can stack as many effects as you’d like in that show.

    afterglow.show-context

    Establishes a notion of the current show using the dynamic var *show*, to save having to pass it as a parameter to dozens of functions in the Afterglow API. This needs to be bound to a value for many Afterglow functions to work.

    Public variables and functions:

    afterglow.shows.sallie

    Cues for Sallie’s birthday/housewarming party. Useful as an example of how an actual small show was put together early in Afterglow’s development, and also as a source of effects that may want to make their way into a more central place.

    afterglow.shows.wedding

    Cues for Joey and Courtney’s wedding reception. Useful as an example of how an actual small show was put together using a subset of the Deep Symmetry lighting rig, and perhaps as a source of effects that may want to make their way to a more central place

    afterglow.transform

    Functions for modeling light position and rotation. If you want to make use of Afterglow’s spatial reasoning capabilities, you need to tell it, when patching a fixture, the location and orientation of that fixture.

    afterglow.util

    Utility functions that are likely to be widely useful

    afterglow.version

    Allows the runtime environment to determine the project name and version which built it.

    Public variables and functions:

    afterglow.web.handler

    Public variables and functions:

    afterglow.web.layout

    Public variables and functions:

    afterglow.web.middleware

    afterglow.web.routes.home

    Public variables and functions:

    afterglow.web.routes.show-control

    afterglow.web.routes.visualizer

    afterglow.web.routes.web-repl

    Provides a web interface for interacting with the Clojure environment.

    afterglow.web.session

    Manages the session store for Afterglow’s web interface

    Public variables and functions: