Skip to content
@Deep-Symmetry

Deep Symmetry

Sharing and supporting electronic music through open-source software and performances

Deep Symmetry

Our open-source projects are organized here on GitHub. They fall into a few distinct categories:

  • afterglow is a Clojure live-coding environment for creating and running light shows with DMX and ArtNet fixtures. It led to…

  • dysentery, another Clojure project for exploring how to integrate performances with Pioneer DJ modular music performance gear. Its primary value is the language-independent protocol analysis documentation we published, and which has been used by multiple projects to create such integrations in a variety of programming languages. Our own implementation is:

  • beat-link, for which we dropped down from Clojure to Java to make it more accessible to by other developers in the JVM ecosystem. Although we find Clojure to be much faster and more expressive and safe as a development language, not all developers are familiar with it, so slowing down to offer this as a pure Java library made it easier for Java, Kotlin, and other JVM communities to use. Publishing this library led someone to ask us to create:

  • beat-link-trigger, a Clojure integration environment for shows using beat-link. Initially a demonstration of how one could send MIDI events in response to DJ actions and in sync with beats, it has grown into far more, and is our primary focus today, providing an on-ramp to performing musicians and their tech crews, who are not primarily software developers, to explore what is possible. Using Clojure means users can extend the program using the full power of the language that was used to create it, without having to fork the project or learn how to use a development environment. Code entered using the GUI is compiled and loaded with the same power and privileges as any other code in the project, and new dependencies can be downloaded and activated at runtime.

Over time these main projects spawned sub-projects, split out so that people who only needed parts of the functionality could use them separately. See this page for descriptions of them.

Star History

Here is one way to see how many people have been discovering the projects over time. To avoid hammering the GitHub API, this is a static image, but if you click on it you can see an up-to-date version (you may need to supply your own GitHub API token if you do it frequently):

Star History Chart

We have not had time to perform shows since 2016, so we aren't using afterglow any longer, but it is still the repository people are most excited about.

Most of the time we used to spend performing has been devoted to beat-link-trigger and the related repositories that underpin it, which many interesting artists are using to synchronize visuals and lighting with DJ performances.

Component Projects

As mentioned above, you can learn about the pieces that make up these main projects and which you might find useful on their own here.

Pinned Loading

  1. afterglow afterglow Public

    A live-coding lighting controller, building on the Open Lighting Architecture with Clojure and bits of Overtone.

    Clojure 415 23

  2. beat-link-trigger beat-link-trigger Public

    Trigger events and automate shows in response to events on Pioneer CDJs

    Clojure 408 35

  3. beat-link beat-link Public

    Java library for synchronizing and communicating with Pioneer DJ Link equipment

    Java 193 21

  4. carabiner carabiner Public

    A loose connector for interacting with Ableton Link

    C 152 14

  5. crate-digger crate-digger Public

    Java library for fetching and parsing rekordbox exports and track analysis files.

    Java 127 17

  6. bytefield-svg bytefield-svg Public

    Node module that generates byte field diagrams in SVG format

    Clojure 120 18

Repositories

Showing 10 of 24 repositories
  • crate-digger Public

    Java library for fetching and parsing rekordbox exports and track analysis files.

    Deep-Symmetry/crate-digger’s past year of commit activity
  • beat-link-trigger Public

    Trigger events and automate shows in response to events on Pioneer CDJs

    Deep-Symmetry/beat-link-trigger’s past year of commit activity
    Clojure 408 EPL-2.0 35 1 (1 issue needs help) 3 Updated Jul 16, 2024
  • beat-link Public

    Java library for synchronizing and communicating with Pioneer DJ Link equipment

    Deep-Symmetry/beat-link’s past year of commit activity
    Java 193 EPL-2.0 21 4 0 Updated Jul 16, 2024
  • open-beat-control Public

    Provides a subset of beat-link features over Open Sound Control.

    Deep-Symmetry/open-beat-control’s past year of commit activity
    Clojure 37 EPL-2.0 3 3 (1 issue needs help) 3 Updated Jul 8, 2024
  • beat-carabiner-java Public

    A minimal tempo bridge between Pioneer Pro DJ Link and Ableton Link in Java.

    Deep-Symmetry/beat-carabiner-java’s past year of commit activity
    Java 4 EPL-2.0 0 0 0 Updated Jul 8, 2024
  • beat-carabiner Public

    A minimal tempo bridge between Pioneer Pro DJ Link and Ableton Link in Clojure.

    Deep-Symmetry/beat-carabiner’s past year of commit activity
    Clojure 35 EPL-2.0 6 0 0 Updated Jul 8, 2024
  • lib-carabiner Public

    Java wrapper for the Carabiner bridge to Ableton Link

    Deep-Symmetry/lib-carabiner’s past year of commit activity
    Java 5 EPL-2.0 0 0 0 Updated Jul 8, 2024
  • carabiner Public

    A loose connector for interacting with Ableton Link

    Deep-Symmetry/carabiner’s past year of commit activity
    C 152 GPL-2.0 14 0 0 Updated Jul 7, 2024
  • .github Public template

    Repository for default community health files

    Deep-Symmetry/.github’s past year of commit activity
    0 0 0 0 Updated Jul 3, 2024
  • dysentery Public

    Exploring ways to participate in a Pioneer Pro DJ Link network

    Deep-Symmetry/dysentery’s past year of commit activity
    Clojure 185 EPL-1.0 24 6 (1 issue needs help) 3 Updated Jul 2, 2024

Top languages

Loading…

Most used topics

Loading…