MIDI to WAVE - Windows Edition

Introduction: MIDI to WAVE - Windows Edition

About: I once wrote an about me that said: "I can make your dreams come true.... if your dreams involve a stranger entering your home and breaking stuff."

A while ago, I posted a Ubuntu MIDI to WAVE Converter. I have finally sat here and wrote a BATCH script (Windows) that can do the same. It wasn't easy as BATCH is weird. But I finally got it done. So here we go.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Requirements

You will need Zenity and Timidity. I assume you know how to set up Timidity. That is all you need. Well, a text editor, but you should already have that.

Step 2: The Script

The script, apparently, doesn't support spaces in the filenames. I do not know why, and I do not want to fix it. But take the following code and copy/paste it into your text editor. Make sure to save it with a ".bat" extension under "All Files" or else you will have a text file. I also recommend saving it in its own folder.

I have figured out how to fix the problem with spaces not being supported. I have updated the code to include these changes.

@echo off
if exist timidity.txt GOTO get_tdir
zenity --file-selection --directory --title="Directory for timidity.exe" > timidity.txt

set /p tdir=
for /f "delims=" %%a in ('zenity --file-selection --title="MIDI File"') do @set midi=%%a
start /wait zenity.exe
IF ["%midi%"] == [] GOTO cancelled

for /f "delims=" %%a in ('zenity --file-selection --save --title="Save"') do @set save=%%a
start /wait zenity.exe
IF ["%save%"] == [] GOTO cancelled

cd %tdir%

timidity "%midi%" -Ow -o "%save%".wav | zenity --progress --pulsate
start /wait timidity.exe

zenity --alert --text="Finished Conversion"
start /wait zenity.exe

zenity --info --text="Cancelled the Conversion"
start /wait zenity.exe

Step 3: How to Use the Script

The script requires a text file (.txt)(see below) to operate. When you first run the script, it will ask for where you where timidity.exe. The default location is "C:\timidity". Choose the timidity folder itself. If you installed timidity.exe somewhere else, choose it's folder. The chosen location will then be stored in a text file in the same folder as the script. If you chose the wrong directory, you can edit the text file itself or delete it. The script will always look for this file and create it should it not see it.

When this file exists, it will ask for a MIDI file to convert (I'm not sure if spaces are supported in folder/file names). Upon choosing one, it will ask for where to save the wave file and what to save it as. The ".wav" is appended automagically.

Be the First to Share


    • Trash to Treasure Contest

      Trash to Treasure Contest
    • Raspberry Pi Contest 2020

      Raspberry Pi Contest 2020
    • Wearables Contest

      Wearables Contest