add opus output

This commit is contained in:
Sebastian Hugentobler 2025-01-17 10:31:05 +01:00
parent 9c701c1263
commit 88c27e8b3a
Signed by: shu
GPG Key ID: BB32CF3CA052C2F0
2 changed files with 21 additions and 9 deletions

View File

@ -6,6 +6,7 @@ BUILD_DIR=build
SONG_DIR=${SRC_DIR}/songs
BUILD_SONG_DIR=${BUILD_DIR}/songs
BUILD_BOOK_DIR=${BUILD_DIR}/book
BUILD_OPUS_DIR=${BUILD_DIR}/opus
BOOK_FULL=$(BUILD_BOOK_DIR)/full.pdf
BOOKLET=$(BUILD_BOOK_DIR)/booklet.pdf
@ -14,11 +15,13 @@ TYP_FILES=$(wildcard ${SONG_DIR}/*.typ)
LY_FILES=$(wildcard ${SONG_DIR}/*.ly)
LY_PDFS=$(patsubst %.ly,${BUILD_SONG_DIR}/%.pdf,$(notdir ${LY_FILES}))
LY_SVGS=$(patsubst %.ly,${BUILD_SONG_DIR}/%.svg,$(notdir ${LY_FILES}))
LY_OPUS=$(patsubst %.ly,${BUILD_OPUS_DIR}/%.opus,$(notdir ${LY_FILES}))
.PHONY: clean directories all
.PHONY: clean book opus all
.DEFAULT_GOAL := all
directories: $(BUILD_DIR) $(BUILD_SONG_DIR) $(BUILD_BOOK_DIR)
book: $(BOOK_FULL) $(BOOKLET) $(LY_SVGS) $(GENERATED_SONGS)
opus: $(LY_OPUS)
$(BUILD_DIR):
mkdir -p $(BUILD_DIR)
@ -26,26 +29,35 @@ $(BUILD_DIR):
$(BUILD_SONG_DIR):
mkdir -p $(BUILD_SONG_DIR)
$(BUILD_OPUS_DIR):
mkdir -p $(BUILD_OPUS_DIR)
$(BUILD_BOOK_DIR):
mkdir -p $(BUILD_BOOK_DIR)
$(GENERATED_SONGS): $(LY_FILES) $(TYP_FILES)
bin/generate
$(BUILD_SONG_DIR)/%.pdf: $(SONG_DIR)/%.ly $(SRC_DIR)/setup.ly
$(BUILD_SONG_DIR)/%.pdf: $(SONG_DIR)/%.ly $(SRC_DIR)/setup.ly | $(BUILD_SONG_DIR)
lilypond --pdf -o $(basename $@) $<
pdfcrop $@ $@
$(BUILD_SONG_DIR)/%.svg: $(BUILD_SONG_DIR)/%.pdf
$(BUILD_SONG_DIR)/%-1.midi: $(SONG_DIR)/%.ly $(SRC_DIR)/setup.ly | $(BUILD_SONG_DIR)
lilypond -o $(BUILD_SONG_DIR)/$* $<
$(BUILD_SONG_DIR)/%.svg: $(BUILD_SONG_DIR)/%.pdf | $(BUILD_SONG_DIR)
pdftocairo -svg $< $@
$(BOOK_FULL): $(TYP_FILES) $(LY_SVGS) $(GENERATED_SONGS) $(SRC_DIR)/singalongs.typ $(SRC_DIR)/song.typ
${BUILD_OPUS_DIR}/%.opus: $(BUILD_SONG_DIR)/%-1.midi | $(BUILD_OPUS_DIR)
timidity $< -Ow -o - | opusenc - $@
$(BOOK_FULL): $(TYP_FILES) $(LY_SVGS) $(GENERATED_SONGS) $(SRC_DIR)/singalongs.typ $(SRC_DIR)/song.typ | $(BUILD_BOOK_DIR)
typst compile --root $(WORKING_DIR) $(SRC_DIR)/singalongs.typ $@
$(BOOKLET): $(BOOK_FULL)
pdfbook2 --short-edge $<
pdfjam --booklet true --a4paper --outfile $@ $<
all: directories $(BOOK_FULL) $(BOOKLET) $(LY_SVGS) $(GENERATED_SONGS)
all: book opus
clean:
rm -rf $(BUILD_DIR)

View File

@ -17,7 +17,7 @@
with pkgs;
mkShell {
buildInputs = [
texlivePackages.pdfbook2
texlivePackages.pdfjam
lilypond-with-fonts
poppler_utils
gnumake