Music Eclipticalis
A Song Using the Position of the Stars As Seen From Earth

This is a song that uses stellar data to generate its musical notes. At any given time, the song plays stars as musical notes based on their positions within a floating musical staff in the sky.

There is also an interactive version of this song that allows you to create your own unique compositions.

Background & Prior Work

Music Eclipticalis was inspired by John Cage's Atlas Eclipticalis. To create his score, Cage superimposed musical staves over the star charts of the Atlas Eclipticalis 1950.0, an atlas of the stars published in 1958 by Antonín Bečvář, a Czech astronomer.

Plate from Antonin Becvar's Atlas Elipticalis, 1958
Plate from Antonin Becvar's Atlas Elipticalis, 1958. Source: Astronomical Institute

Sketches for Atlas eclipticalis by John Cage
A sketch by John Cage for Atlas eclipticalis. Source: NYPL Digital Collections

In any performance, this score may be played in whole or in part by any number of players, up to the full 86 specified.

The Data

The stellar data used for this song was taken from the HYG Database 3.0, which is a combination of the Hipparcos Catalog, the Yale Bright Star Catalog, and the Gliese Catalog of Nearby Stars. The star selection is limited to stars visible to the human eye in the region between -30 and +30° of declination, the region represented in the original Atlas Eclipticalis 1950.0.

Composition

The song composition is entirely algorithmic and produced from the following steps:

  • From the HYG Database 3.0, I retrieved the Cartesian coordinates (x, y, z) for epoch and equinox 2000.0, declination, right ascension, apparent magnitude, and color index of every star between -30° and +30° of declination under an apparent magnitude of 6.5, the limit of stars observed by a mean naked eye observer under very good conditions.
  • I plotted the stars in three-dimensional space using Three.js, a javascript 3D library.
  • I affixed a musical staff in front of the camera.
  • I decided to use the B-flat major scale which was prevalant in John Cage's Atlas Eclipticalis and also inspired by In B-flat, a collaborative music project inspired by Terry Riley's In C.
  • I then made the earth rotate once from 0h to 24h right ascension from -30° to +30° declination, then again from +30° to -30° declination, creating a three-dimensional loop.
  • At any given time, if a star passed through the musical staff (as perceived from Earth), it would play the piano note that corresponds to its perceived two-dimensional position relative to the musical staff.
  • Supporting instrumentation was also added based on the current declination; higher notes are played with higher degrees of declination and lower notes are played with lower degrees of declination.

Sounds

Here are some of the samples that I took to create this song:

Tools & Code

The code for generating the 3D visual is found in this code repository. It contains the script for retrieving the data and the interface powered by Three.js, a javascript 3D library.

The code for generating the song can be found in this code repository using Python and ChucK, a programming language for real-time sound synthesis and music creation.

Questions & Feedback

I'd love to hear from you. I'm sure I've also made some erroneous statements somewhere, so please correct me. You can use the widget below or email me at hello@brianfoo.com.

Data-Driven DJ is a series of music experiments that combine data, algorithms, and borrowed sounds.

My goal is to explore new experiences around data consumption beyond the written and visual forms by taking advantage of music's temporal nature and capacity to alter one's mood. Topics will range from social and cultural to health and environmental.

Each song will be made out in the open: the creative process will be documented and published online, and all custom software written will be open-source. Stealing, extending, and remixing are inevitable, welcome, and encouraged. Check out the FAQs for more information.

About me

My name is Brian Foo and I am a programmer and visual artist living and working in New York City. Learn more about what I do on my personal website. You can also follow my work on Twitter, Facebook, Soundcloud, or Vimeo.