diff --git a/music/Makefile b/music/Makefile
new file mode 100644
index 0000000..21a030b
--- /dev/null
+++ b/music/Makefile
@@ -0,0 +1,26 @@
+SONGS = space drums
+OGG = $(SONGS:%=%.ogg)
+WAV = $(SONGS:%=%.wav)
+MID = $(SONGS:%=%.mid)
+PDF = $(SONGS:%=%.pdf)
+
+all: $(OGG)
+
+%.ogg: %.wav
+ oggenc $<
+
+%.mid: %.abc
+ abc2midi $< -o $@
+
+%.wav: %.mid %.csd
+ csound -d -o $@ -T -F $< `basename $< .mid`.csd
+
+%.pdf: %.abc
+ abcm2ps -B 4 -O - $< | ps2pdf - $@
+
+pdf: $(PDF)
+
+clean:
+ rm -f $(OGG) $(WAV) $(MID) $(PDF)
+
+.PHONY: all clean
diff --git a/music/drums.abc b/music/drums.abc
new file mode 100644
index 0000000..b639b40
--- /dev/null
+++ b/music/drums.abc
@@ -0,0 +1,37 @@
+X:1
+T:Drums & Bass
+C:Guus Sliepen
+M:4/4
+L:1/4
+Q:150
+K:Bb
+%%MIDI drummap C 36
+%%MIDI drummap E 40
+%%MIDI drummap ^F 42
+%%MIDI drummap ^G 44
+%%MIDI drummap ^A 46
+%%MIDI drummap ^c 49
+V:1 clef=treble
+%%MIDI channel 10
+| CCCC | CCCC | CCCC | Czz/z//C//C/C/
+| CCCC | CCCC | CCCC | Czz/z//C//C/C/
+| CCCC | CCCC | CCCC | Czz/z//C//C/C/
+| CCCC | CCCC | CCCC | Czz/z//C//C/C/
+V:2 clef=treble
+%%MIDI channel 10
+| z4 | z4 | z4 | z4
+| z4 | z4 | z4 | z4
+| z4 | z4 | z4 | z2 ^c2
+| zEzE | zEzE | zEzE | z!p!^c!f!^c!fff!^c
+V:3 clef=treble transpose=-36
+%%MIDI channel 1
+| z4 | z4 | z4 | z _e d _d
+| c/c/c/c/c/c/c/c/ | c/c/c/c/c/c/c/_B/ | c/c/c/c/c/c/c/c/ | _B _B _B _B
+| c/c/c/c/c/c/c/c/ | c/c/c/c/c/c/c/_B/ | c/c/c/c/c/c/c/c/ | _B _B _B _B
+| c/c/c/c/c/c/c/c/ | c/c/c/c/c/c/c/_B/ | c/c/c/c/c/c/c/c/ | _B _B _B _B
+V:4 clef=treble
+%%MIDI channel 2
+| z4 | z4 | z4 | z4
+| z4 | z4 | z4 | z4
+| z[CEG]/z//[CEG]//z[CEG]/z/ | z[CEG]/z//[CEG]//z[CEG]/z/ | z[CEG]/z//[CEG]//z[CEG]/z/ | z[B,DF]/z/z2
+| z[CEG]/z//[CEG]//z[CEG]/z/ | z[CEG]/z//[CEG]//z[CEG]/z/ | z[CEG]/z//[CEG]//z[CEG]/z/ | z[B,DF]/z/z2
diff --git a/music/drums.csd b/music/drums.csd
new file mode 100644
index 0000000..b9fa48e
--- /dev/null
+++ b/music/drums.csd
@@ -0,0 +1,32 @@
+
+
+sr = 48000
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+; Use Fluidsynth to render the score using soundfonts
+
+gifluid fluidEngine; start fluidsynth engine
+ifont fluidLoad "/usr/share/sounds/sf2/FluidR3_GM.sf2", gifluid, 1
+fluidProgramSelect gifluid, 1, ifont, 0, 38 ;Synth bass 1
+fluidProgramSelect gifluid, 2, ifont, 0, 29 ;Distortion guitar
+fluidProgramSelect gifluid, 10, ifont, 128, 25 ;TR-808 drums
+
+instr 1, 2, 10
+ ikey notnum
+ ivel ampmidi 127
+ fluidNote gifluid, p1, ikey, ivel
+endin
+
+instr 99
+ al, ar fluidOut gifluid
+ al, ar reverbsc al, ar, 0.6, 10000
+ outs al, ar
+endin
+
+
+i 99 0 3600
+e 1
+
+
diff --git a/music/space.abc b/music/space.abc
new file mode 100644
index 0000000..72fdac9
--- /dev/null
+++ b/music/space.abc
@@ -0,0 +1,20 @@
+X:1
+T:Space (Starfighter intro)
+C:Guus Sliepen
+M:2/2
+L:1/8
+Q:120
+K:Bb
+V:1 clef=treble
+%%MIDI channel 1
+%%MIDI gchordoff
+[| z8 | z8 | z8 | z8
+|| "Eb" e6 dc | f4 d4 | "Cm" e6 dc | f4 d4 | "Gm" B6 AG | d4 B4 | "F" A8- | "Dm" A8
+| "Eb" e6 dc | f4 d4 | "Cm" e6 dc | g4 e4 | "Gm" d6 cB | f4 d4 | "F" c8 | "Bb" d8
+|]
+V:2 clef=treble
+%%MIDI channel 2
+[| C8- | [CF]8- | [CFB]8- | [CFBe]8
+|| [EGB]8- | [EGB]8 | [CEG]8- | [CEG]8 | [B,DG]8- | [B,DG]8 | [A,CF]8- | [A,DF]8
+| [EGB]8- | [EGB]8 | [CEG]8- | [CEG]8 | [B,DG]8- | [B,DG]8 | [A,CF]8- | [B,DF]8
+|]
diff --git a/music/space.csd b/music/space.csd
new file mode 100644
index 0000000..82f42cd
--- /dev/null
+++ b/music/space.csd
@@ -0,0 +1,31 @@
+
+
+sr = 48000
+ksmps = 32
+nchnls = 2
+0dbfs = 1
+
+; Use Fluidsynth to render the score using soundfonts
+
+gifluid fluidEngine; start fluidsynth engine
+ifont fluidLoad "/usr/share/sounds/sf2/FluidR3_GM.sf2", gifluid, 1
+fluidProgramSelect gifluid, 1, ifont, 0, 98 ; Crystal
+fluidProgramSelect gifluid, 2, ifont, 0, 89 ; Warm pad
+
+instr 1, 2
+ ikey notnum
+ ivel ampmidi 127
+ fluidNote gifluid, p1, ikey, ivel
+endin
+
+instr 99
+ al, ar fluidOut gifluid
+ al, ar reverbsc al * 0.5, ar * 0.5, 0.9, 10000
+ outs al, ar
+endin
+
+
+i 99 0 3600
+e 1
+
+