mirror of https://codeberg.org/Sonoj/osamc.de
34 lines
715 B
Bash
34 lines
715 B
Bash
#!/bin/bash
|
|
|
|
SOUNDFONT="${MIDI2FLAC_GMFONT:-/usr/share/soundfonts/FluidR3_GM.sf2}"
|
|
SAMPLERATE=44100
|
|
SAMPLEFORMAT="s16"
|
|
|
|
if [[ -e "$1" ]]; then
|
|
MIDI="$1"
|
|
elif [[ -e "$1.mid" ]]; then
|
|
MIDI="$1.mid"
|
|
fi
|
|
|
|
if [[ -e "${MIDI%.*}.fluid" ]]; then
|
|
OPTS="${MIDI%.*}.fluid"
|
|
elif [[ -e "midi2flac.fluid" ]]; then
|
|
OPTS="midi2flac.fluid"
|
|
fi
|
|
|
|
TMP="${TMP:-/tmp}"
|
|
AUDIO_TMP="$(mktemp "$TMP/midi2flac-XXXXXX.wav")"
|
|
BASENAME="${MIDI##*/}"
|
|
FLAC="${BASENAME%.*}.flac"
|
|
|
|
fluidsynth -nil \
|
|
-r ${SAMPLERATE} \
|
|
-O ${SAMPLEFORMAT} \
|
|
-F "$AUDIO_TMP" \
|
|
${OPTS:+-f $OPTS} \
|
|
"$SOUNDFONT" \
|
|
"$MIDI" && \
|
|
flac -f -o "$FLAC" "$AUDIO_TMP" && \
|
|
rm -f "$AUDIO_TMP" && \
|
|
echo "FLAC output file written to '$FLAC'."
|