#! /bin/sh
# Merge Bass, Chords, & Drum
#	This file assumes files in DRUM were prepared for D110
# these for binky (D110)
BD=binky
BBC="chmap 2=1-16";		BBM="cat"
BCC="chmap 3=1-16";		BCM="cat"
BDC="chmap 10-12=10-12";	BDM="cat"
# these for spud (TX816, DX7, & RX5)
SD=spud
SBC="chmap 15=1-16";		SBM="transpose 1o"
SCC="chmap 1=1-16";		SCM="cat"
SDC="chmap 2=10 3=11"
SDM="kmap 0x2d=0x24 0x30=0x2f 0x34=0x26 0x39=0x2a 0x3e=0x3b"
SDM="$SDM 0x32=0x2d 0x38=0x45 0x33=0x25 0x3a=0x36 0x31=0x28"
SDM="$SDM 0x46=0x46 0x4a=0x43 0x4b=0x44 0x4c=0x20 0x4c=0x21"
C="mpuclean -L"
if [ ! -d $BD -o ! -d $SD ]; then
	echo "$BD or $SD does not exist"
	echo "$0 should be run from a directory in /u/psl/MIDI/BELLSCORE,"
	echo "e.g.: in /u/psl/MIDI/BELLSCORE/samba;"
	echo "but first /u/psl/MIDI/BELLSCORE/samba/{$BD,$SD} should exist."
	exit 2
fi
for i in 1 2 3 4; do
	$BBC <BASS/all.$i | $BBM >/tmp/xb$$
	$BCC <CHRD/all.$i | $BCM >/tmp/xc$$
	$BDC <DRUM/all.$i | $BDM >/tmp/xd$$
	merge /tmp/x[bcd]$$ | bars -h9 >/tmp/$BD.$i$$
	$SBC <BASS/all.$i | $SBM >/tmp/xb$$
	$SCC <CHRD/all.$i | $SCM >/tmp/xc$$
	$SDC <DRUM/all.$i | $SDM >/tmp/xd$$
	merge /tmp/x[bcd]$$ | bars -h9 >/tmp/$SD.$i$$
	set vamp 2 I-II 3 I-IV 4 I-V 5 I-VI 6 end 8 tiny 9
	BEGIN=0
	while [ "$1" != "" ]; do
		bars -f$BEGIN -l$2 </tmp/$BD.$i$$ | $C >$BD/$1.$i
		bars -f$BEGIN -l$2 </tmp/$SD.$i$$ | $C >$SD/$1.$i
		echo "$1.$i"
		BEGIN=$2
		shift; shift
	done
done
rm -f /tmp/x[bcd]$$ /tmp/*.[1234]$$
