#!/bin/bash # Converts a MuseScore file to PDFs, one for each part. # USAGE: mscz2pdfs -s -o score= output_dir='.' while getopts 's:o:' flag; do case "${flag}" in s) score=$OPTARG ;; o) output_dir=$OPTARG ;; *) error "Unexpected option ${flag}" ;; esac done if [ -z "$score" ]; then echo "Provide score" fi base_filename=${score%.mscz} base_filename=${score##*/} json=`mktemp "/tmp/tmp-XXXXXXX.json"` echo "putting json in $json" musescore --score-parts-pdf "$score" > "$json" parts=`jq --raw-output '.parts[]' "$json"` i=0 IFS=$'\n'; for part in $parts; do jq --raw-output ".partsBin[$i]" "$json" | base64 --decode > "$output_dir"/"$base_filename-$part.pdf" i=$((i + 1)) done IFS=' '