A music live-coding suite. Still under development, and not ready for prime-time yet!
aeon
is a live-coding music system. That means that you can
improvise live electronic music by typing into a text editor or
terminal. Its primary purpose is to create sequences of musical events
that can be modified on the fly.
This is far from a new idea, as the list of alternatives suggests. But
aeon
tries to bring some new ideas to the table, or at least to
remix existing ones in novel ways. Some of these are listed in the
‘features’ document. If you want more comprehensive documentation, try
the tutorial or manual.
The most important thing: you don’t need to know programming to use
aeon
. At least, that is my goal. Instead toyou’ll be using a very
stripped-down custom notation to define patterns. I think of it a bit
like HTML for music. And later you may accidentally learn some
programming if you aren’t careful ;)
aeon
currently supports macOS and Linux only. If you’re on Linux, you
already have (and probably use) a package manager. If you’re on macOS, I
recommend you install Homebrew.
# Install dependencies:
$ brew install chezscheme supercollider # macOS
$ sudo apt install chezscheme supercollider # Ubuntu/Debian linux
# Install
$ git clone [email protected]:tommaisey/aeon.git
$ cd aeon
$ chez aeon.scm
Note that some package managers name the Chez Scheme binary scheme
, so
the final command might be scheme aeon.scm
.
You should see a Chez Scheme welcome message followed by some messages
about files being compiled. This will take a short while, but should
only happen the first time you launch aeon
.
If everything went well, you should see the following message:
----------------------------------------------- [aeon] musical patterns -----------------------------------------------
Now you can check that your sound is working by typing this and pressing enter:
(pattern hello (in! (over [4 2 1 2])))
To stop the sound, type: (stop hello)
. To exit aeon
entirely you can
hit Ctrl-D
or type (exit)
.
If you want to learn how to get started constructing patterns, sounds and projects, head to the ‘tutorial’ document.
The REPL (the prompt you are now in) is a fun way to explore and test ideas while learning. But as you build more complex patterns you will want to store and edit them in text files.
The simplest approach is to write your code in any editor you like, then
launch scheme aeon.scm
and run (load "/path/to/my/file.scm")
to
evaluate it. You can resave your text file and rerun that command to
change the pattern as it plays.
However, for a more seamless experience you will want two things:
- Send code to the REPL directly from your editor.
- Structural editing and navigation.
‘Structural editing’ is a fancy way of saying that your editor can
navigate and edit code quickly using the ubiquitous parentheses ()
of scheme. This turns those annoying and fiddly parentheses into an
advantage, streamlining your experience enormously. But it does take a
little practice.
My plan is to create a simple plugin for VS Code that offers these features in the simplest way possible.
Until then, the best choices are:
If you’re not experienced with Emacs, note that it can take a long time to become proficient and to customize it to your tastes. However, the end result is powerful and satisfying. If you just want to make music quickly, you should use VS Code, which is more friendly to newcomers.
If you don’t hear any sound it’s likely that SuperCollider isn’t
connecting to your audio outputs correctly. The log output above may
give some clues, or if not, it’s worth hitting Ctrl-D
to get out of
scheme, and running scsynth
directly, to see if it can tell you more:
# macOS:
$ /Applications/SuperCollider.app/Contents/Resources/scsynth -u 57100
- SuperCollider [procedural] [object-oriented]
- Tidal Cycles [functional] [haskell]
- Orca [esoteric] [stateful]
- Extempore [scheme]
- Overtone [clojure]
- FoxDot [python] [simple]