add midisynth
authorAndrew Lorimer <andrew@lorimer.id.au>
Mon, 24 Nov 2025 09:29:47 +0000 (20:29 +1100)
committerAndrew Lorimer <andrew@lorimer.id.au>
Mon, 24 Nov 2025 09:29:47 +0000 (20:29 +1100)
midisynth-organ.txt [new file with mode: 0644]
midisynth.sh [new file with mode: 0755]
diff --git a/midisynth-organ.txt b/midisynth-organ.txt
new file mode 100644 (file)
index 0000000..3d8784e
--- /dev/null
@@ -0,0 +1,28 @@
+load /usr/share/soundfonts/GeneralUser-GS/GeneralUser-GS.sf2
+select 0 1 0 19
+select 1 1 0 19
+select 2 1 0 19
+select 3 1 0 19
+select 4 1 0 19
+select 5 1 0 19
+select 6 1 0 19
+select 7 1 0 19
+select 8 1 0 19
+select 9 1 0 19
+select 10 1 0 19
+select 11 1 0 19
+select 12 1 0 19
+select 13 1 0 19
+select 14 1 0 19
+select 15 1 0 19
+router_clear
+router_begin note
+router_end
+router_begin cc
+router_end
+router_begin pbend
+router_end
+router_begin cpress
+router_end
+router_begin kpress
+router_end
diff --git a/midisynth.sh b/midisynth.sh
new file mode 100755 (executable)
index 0000000..4726e57
--- /dev/null
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+# Convert midi files from a Yamaha MDF2 MIDI data filer to wav
+# with both organ and piano instruments
+
+SRC=/mnt/usb
+DEST=midi
+MIDICONF_ORGAN=$(dirname "$0")/midisynth-organ.txt
+
+echo $MIDICONF
+
+for dir in $SRC/Disc*/
+do
+  dir=${dir%*/}
+  dest="$DEST/${dir##*/}"
+  mkdir -p "$dest"
+  for file in "$dir"/*X*
+  do
+    fluidsynth -f "$MIDICONF_ORGAN" -F "$dest/$(basename "$file")-organ.wav" "$file"
+    fluidsynth -F "$dest/$(basename "$file")-piano.wav" "$file"
+    echo $file
+  done
+done