by: Joenio Marques da Costa
and Mari Moura
from Brazil living in France
from Brazil living in France
Live coding is a new direction in electronic music and video: live coders expose and rewire the innards of software while it generates improvised music and/or visuals.
TOPLAP has been collectively developing, exploring and promoting live coding since it was formed in a smoky bar in Hamburg in 2004.
Algorave is made from āsounds wholly or predominantly characterised by the emission of a succession of repetitive conditionalsā.
SuperCollider
supercollider.github.io
SuperCollider is an audio server, programming language, and IDE for sound synthesis and algorithmic composition.
Sonic Pi
sonic-pi.net
The Live Coding music synth for everyone, Sonic Pi has a Ruby-like syntax.
JACK
jackaudio.org
JACK is a professional sound server and pair of daemons to provide real-time, low-latency connections for audio and MIDI data.
PipeWire
pipewire.org
PipeWire improve handling of audio and video under Linux that can be used to support the use cases currently handled by both pulseaudio and JACK.
Debian:
sudo apt install sonic-pi
Windows or Mac:
Download from http://sonic-pi.net
Sample
water-to-glass.wav
Synthesizer
Pitfall! - Atari 2600
š§
Sample
sample :drum_cowbell
Synthesizer
play 60
sample :drum_cowbell
sleep 0.5
play 60
sleep 0.5
sample :drum_cowbell
sleep 0.5
play 60
sleep 0.5
sample :drum_cowbell
live_loop :myloop do
sample :drum_cowbell
sleep 0.5
play 60
sleep 0.5
end
rate
ā
live_loop :myloop do
sample :drum_cowbell, rate: 0.5
sleep 0.5
play 60
sleep 0.5
end
1
0
(zero)
live_loop :myloop do
#sample :drum_cowbell, rate: 0.5
sample :drum_cowbell, rate: 0.2
sleep 0.5
#play 60
play 120
sleep 0.5
end
amp
ā (Amplitude)
sample :drum_cowbell, amp: 0.5
sleep 0.5
play 60, amp: 0.5
sleep 0.5
amp = 0.5
means volume = 50%
0
to 1
pan
ā (Panning)
sample :drum_cowbell, pan: -1
sleep 0.5
play 60, pan: 1
sleep 0.5
-1
means 100%
on the left side1
means 100%
on the right side-1
to 1
use_synth :saw
play 60
Create 2 live loops, each one with a different synthesizer, playing alternately.
š§
choose
function
loop do
play choose([60, 65, 72])
sleep 1
end
3.times do
play 60
sleep 1
end
loop do
play 60
sleep 1
end
See also: github.com/toplap/awesome-livecoding
joenio@joenio.me
This presentation is available at:
http://joenio.me/debconf24-live-coding-workshop
export presentation to pdf (require chromium browser)
(source-code: https://gitlab.com/joenio/joenio.gitlab.io)
Where and when this presentation was done