@echo off
rmdir /s /q .\temp
rmdir /s /q .\WAVs
mkdir .\temp
mkdir .\WAVs
cls
echo #####################################
echo # E-mu Drumulator ROM Decoder v0.60 # (standard format)
echo #####################################
echo.
echo Input files must be Drumulator sound ROM binaries placed within the 
echo [Drumulator_ROMS] folder. All ROMs must have a *.bin file extension!
echo.
echo There must be four sound ROM binaries per kit and must be named as 
echo A.BIN, B.BIN, C.BIN, and D.BIN exactly.
echo.
echo New WAV files will appear in the WAVS folder when the decoding task 
echo is finished.
echo.
echo Note: This decoder works with the factory/stock sound ROMs, but also any kits 
echo which were created with the standard format encoder tool.
echo.
pause
echo.
echo Copying needed files into temp directory for processing...
copy .\[Drumulator_ROMS]\*.* .\temp >NUL
echo.
echo Merging sound ROMs...
copy /B .\temp\A.BIN + .\temp\B.BIN + .\temp\C.BIN + .\temp\D.BIN .\temp\DRUMUINV.BIN >NUL
echo.
echo Inverting mu-Law values for proper signing...
.\tools\srec_cat .\temp\DRUMUINV.BIN -raw -xor 0xFF -o .\temp\DRUMULAW.RAW -raw
echo.
echo Splitting sound ROM into individual instruments...
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0xB84F 0xBFFE .\temp\CLAVE.RAW -quiet -yes
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0xF549 0xFFFD .\temp\COWBELL.RAW -quiet -yes
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0xE6B5 0xF549 .\temp\CLAPS.RAW -quiet -yes
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0x800C 0xA1EC .\temp\OPENHAT.RAW -quiet -yes
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0xA1EC 0xABBC .\temp\CL_HAT.RAW -quiet -yes
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0x000C 0x3FFF .\temp\CYMBAL.RAW -quiet -yes
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0xD78E 0xDD95 .\temp\KICK.RAW -quiet -yes
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0xABBC 0xB84F .\temp\SNARE.RAW -quiet -yes
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0xDD95 0xE6B5 .\temp\RIMSHOT.RAW -quiet -yes
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0xC00C 0xD78E .\temp\HI_TOM.RAW -quiet -yes
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0x400C 0x5C21 .\temp\MID_TOM.RAW -quiet -yes
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0x5C21 0x7FDC .\temp\LOW_TOM.RAW -quiet -yes
echo.
echo Converting mu-Law to 16-bit WAV...
.\tools\sox\sox.exe -r 22050 -c 1 -e mu-law -t raw .\temp\CLAVE.RAW -b 16 -c 1 -e signed-integer .\WAVS\CLAVE.WAV
.\tools\sox\sox.exe -r 22050 -c 1 -e mu-law -t raw .\temp\COWBELL.RAW -b 16 -c 1 -e signed-integer .\WAVS\COWBELL.WAV
.\tools\sox\sox.exe -r 22050 -c 1 -e mu-law -t raw .\temp\CLAPS.RAW -b 16 -c 1 -e signed-integer .\WAVS\CLAPS.WAV
.\tools\sox\sox.exe -r 22050 -c 1 -e mu-law -t raw .\temp\OPENHAT.RAW -b 16 -c 1 -e signed-integer .\WAVS\OPENHAT.WAV
.\tools\sox\sox.exe -r 22050 -c 1 -e mu-law -t raw .\temp\CL_HAT.RAW -b 16 -c 1 -e signed-integer .\WAVS\CL_HAT.WAV
.\tools\sox\sox.exe -r 22050 -c 1 -e mu-law -t raw .\temp\CYMBAL.RAW -b 16 -c 1 -e signed-integer .\WAVS\CYMBAL.WAV
.\tools\sox\sox.exe -r 22050 -c 1 -e mu-law -t raw .\temp\KICK.RAW -b 16 -c 1 -e signed-integer .\WAVS\KICK.WAV
.\tools\sox\sox.exe -r 22050 -c 1 -e mu-law -t raw .\temp\SNARE.RAW -b 16 -c 1 -e signed-integer .\WAVS\SNARE.WAV
.\tools\sox\sox.exe -r 22050 -c 1 -e mu-law -t raw .\temp\RIMSHOT.RAW -b 16 -c 1 -e signed-integer .\WAVS\RIMSHOT.WAV
.\tools\sox\sox.exe -r 22050 -c 1 -e mu-law -t raw .\temp\HI_TOM.RAW -b 16 -c 1 -e signed-integer .\WAVS\HI_TOM.WAV
.\tools\sox\sox.exe -r 22050 -c 1 -e mu-law -t raw .\temp\MID_TOM.RAW -b 16 -c 1 -e signed-integer .\WAVS\MID_TOM.WAV
.\tools\sox\sox.exe -r 22050 -c 1 -e mu-law -t raw .\temp\LOW_TOM.RAW -b 16 -c 1 -e signed-integer .\WAVS\LOW_TOM.WAV
echo.
echo Process complete.
echo.
pause
rmdir /s /q .\temp