Add target to render guide track.
[music/pretentious.git] / targets.mk
index 8981f99e2af7cca6c173aa5625099489bb0dc1b0..e0c232c283e258bb2c71379c00ec7eabac8f9e02 100644 (file)
@@ -1,16 +1,40 @@
-SOUNDFONT = $(HOME)/FluidR3GM.sf2
+# Project root directory
+TOP := $(dir $(lastword $(MAKEFILE_LIST)))
 
-%.midi: %.ly parts/*.ly
-       lilypond $<
+# What soundfont to use to generate the MIDI file
+SOUNDFONT = $(HOME)/soundfonts/FluidR3GM.sf2
+# Determine how many processors are present
+CPU_CORES=`grep -m1 "cpu cores" /proc/cpuinfo | tr -cd '[:digit:]'`
+# The command to run lilypond
+LILY_CMD = lilypond -ddelete-intermediate-files -drelative-includes -djob-count=$(CPU_CORES)
+
+parts/%.pdf: parts/%.ly music/%.ly
+       $(LILY_CMD) $<
+
+%.pdf: %.ly music/*.ly
+       $(LILY_CMD) $<
+
+%.midi: %.ly music/*.ly
+       $(LILY_CMD) $<
 
 %.wav: %.midi
        fluidsynth -r 48000 -F $@ -l -R no -i -n -a alsa $(SOUNDFONT) $<
 
+%-klick-mono.wav: %.tempo
+       klick -W $@ -f $<
+
+%-klick.wav: %-klick-mono.wav
+       sox $< $@ channels 2
+
+%-guide.wav: %-klick.wav %.wav
+       sox --combine mix $*-klick.wav -v 0.25 $*.wav $@
+
 %.ogg: %.wav
        oggenc $<
 
 wav: $(NAME).wav
 ogg: $(NAME).ogg
+guide: $(NAME)-guide.wav
 
 upload-ogg: ogg
        scp $(NAME).ogg elephly.net:~/elephly.net/secret/band/$(NAME)/$(NAME).ogg