Music Community Lab (MCL) put together a write-up of the events of Live Code Lab 2019, back in February. This is just a brief synopsis of my experience.
MCL Board Member Activities
As a board member, I was lucky enough to assist with event setup, errand running, check in, and photography. I also go the chance to chat with volunteers, participants, and Dr. Adam Patrick Bell’s visiting research group.
As a MCL board member, I often do not get to participate in workshops at our events. This time, my fellow board members ensured that I got to participate. Thank you! Attending these workshops allowed me to broaden my Csound and Python knowledge.
Both workshops started out similarly. We learned how to make a basic beat, added more and more on top of it that beat, and were given pointers. The workshop leaders described the different capabilities of each system. They hinted about how to learn more about both.
Why these two workshops? My private dabblings in computer music often use Csound and Python.
Csound: Hexadecimal Beats
Steven Yi, currently a visiting assisting professor at RIT, presented Hexidecimal Beats. Hexidecimal Beats is his system for using hexadecimal notation to live code in Csound. Basically, this system allows you to set what four 16th notes are doing with one keystroke. Coupled with the fact that Csound itself allows for highly customizable instruments, this allows for a very customizable and fast live coding experience.
This system lends itself to 4 based meters easily. Triplets, 32nd notes, and other rhythms can be introduced using lag.
To try this out, go to live.csound.com.
Steven created a cheat sheet describing useful functions for the Hexadecimal beat system.
He also has a few tutorials and references describing how to use Csound live.
If you want to try it yourself, I recommend starting with Tutorial 1.
While not specific to the hexadecimal technique,
the tutorial gives you a lot of background on
Whitout this, the hexidecimal beat technique is confusing.
I am excited about getting better at using Csound live with hexadecimal beats . I need to do some more digging in the documents to learn how to do everything. You can also learn by watching some of Steven’s live code sessions for tricks, which are linked to on his blog.
I have not yet gotten the hang of doing much that sounds interesting in Csound Live. However, I have high hopes of doing so in the future. Here is a demo to copy and paste into live.csound.com, which shows you what I can do so far!
Csound Live Code / Hexidecimal Beats Demo
Paste the example code into live.csound.com, paste it over all the code in the browser, highlight everything, and hit
cntrl-e to run. This is what I can currently do with CsoundLive!
I was inspired by Basin Street Blues, and was trying create something similar in Csound Live Code. There is quite a ways to go before this sounds bluesy, or anything like the original. Without introducing some sort of lag, I don’t think it is possible. If you think otherwise, please, enlighten me! I would love to make this a bit better.
Python / Supercollider: FoxDot
David Stein, or ColonelPanix in live coding circles, introduced us to live coding using an environment called FoxDot. In FoxDot, we used the Python programming language to control the Supercollider music programming language, and ended up with sounds as output.
ColonelPanix has live coding tutorial and cheat sheet on his website. Read them!
FoxDot with Python draws a lot of inspiration from Python. Data structures are the same.
I have not experimented with if I can use other libraries in conjunction with FoxDot,
but it seems likely that I can.
While the tutorial was run in an outside environment,
I can run FoxDot using my
Atom editor from inside of a
Follow the directions at FoxDot’s installation
page to start up FoxDot. One method of going through the process includes opening SuperCollider, typing
FoxDot.start, and highlighting the line and hitting
cntrl-Enter to start up SuperCollider. Then, to start FoxDot, go to the command line, and type
Python -m FoxDot. The FoxDot documents have other methods of startup, as well as many tutorials.
To see what I can currently do,
copy and paste the code below into a FoxDot programming environment,
highlight the lines you want to hear, and hit
Once again, I tried to recreate Basin Street Blues.
This one sounds a little closer to the original.
To stop instruments, uncomment one of the lines
db.stop(), etc., and run them by hitting
If you uncomment the comments behind the pitches or durations,
you can soup up the performance with other variations on the theme.
What if I wanted to replace an instrument?
After all, there is a list of instruments (SynthDefs)
in comments at the bottom of my code.
Say we wish to switch
dbass out for
db >> .
CsoundLive vs. FoxDot
With CsoundLive, it’s easier to control sixteenth note based rhythms, drum tempos, and the construction of different instruments. With higher customizability comes a steeper learning curve. But once that curve is surpassed, it should be possible to change code more speedily using Csound Live.
With FoxDot, it’s easier to code, and jump into coding. There is less confusion about how to code. Python is also a slightly more popular programming language, and it is likely because of this that Foxdot has more inbuilt functions that you can use to modify the expression of the code.
With both, it’s easy to change the flavor of the piece by highlighting and selecting different instruments.
Live Code Lab as Inspiration
One day, I would like to see if I can use a live coding language to recreate and reimagine traditional blues pieces. Live coders write code that sounds like a dj’s music in real time. Dancers could dance to it. As a blues dancer, I think that a dj being able to change the music as I dance would be neat.
Try this in NYC
If you want to know more about live coding and are near NY, the LiveCodeNYC community is very friendly. It can’t hurt to join them and code while learning.