/crt-live-coding

Music visualization and livecoding for supercollider

Primary LanguageC++

crt-live-coding

In action

Description

This project is an attempt to a nice looking music live coding environment based on a cool-retro-term fork. It currently makes use of FoxDot, supercollider and vim, but any cli application with a supercollider backend is theoretically supported.

Beware, you are dealing with a very early release so don't expect a plug and play experience!

Build instructions (Linux)

Make sure FoxDot and supercollider (with sc3 plugins) are property installed: https://github.com/Qirky/FoxDot.

Install qt5 and the related dependencies: https://github.com/Swordfish90/cool-retro-term.

# Get it from GitHub
git clone --recursive https://github.com/Swordfish90/crt-live-coding.git

cd crt-live-coding

qmake && make

Run instructions

Open a terminal into the project root and type:

# Launch supercollider and the FoxDot server
sclang sc-foxdot-visual.scd & python3 foxdot-server.py

# This will launch crt-live-coding running vim with a custom vimrc file
./crt-live-coding -e vim -u vimrc

# Press enter (in normal mode) to play that line of foxdot code!

How does it work?

There are a few pieces here working together.

sc-foxdot-visual.scd launches FoxDot.start and analyzes the audio stream, extracting features needed for graphical effects. These are sent to crt-live-coding via OSC commands on port 7089.

foxdot-server.py runs a FoxDot server in the background and listens on port 7088 for FoxDot instructions.

crt-live-coding is running vim with a custom vimrc file. Every time you press enter (in normal mode) vim will send the current line to port 7088.

Donations

I made this project in my spare time because I love what I'm doing. If you are enjoying it and you want to buy me a beer click here.