by Fred Parcells
Email me from my reelbook contact page
MIDI Organizer and Search has been tested on Windows XP.
MIDI Organizer and Search is a MIDI program that takes a user defined melody and searches
instances of that note sequence for matches in MIDI files located in the
midi.mdb Database or selected directories on a hard drive.
If the ‘Try in every key signature’ checkbox is checked then the user melody will
be transposed into every key and compared to each file’s melody. If the ‘Ignore
harmony notes’ checkbox is checked then harmony notes are ignored.
NOTE: No MIDI data is ever deleted or changed by this program. All files are opened in Read Only mode.
If Windows Installer doesn’t start the install process by itself, double click on
Setup.exe. Follow the Setup Wizard instructions.
Installation creates 4 folders in the Program Files/MIDI Organizer Search directory.
NOTE: Virus Protection programs may complain about these scripts during the install.
I’ve tested these scripts so they won’t mess up your ODBC.INI file.
If you’re interested, after install, take a look in the bin directory at these two files.
Right click and open them up in Notepad. If you double click the uninstadminODBC.vbs the two
lines of code:
- MIDI Organizer Search Info – Documentation in HTML format
- MIDI Samples – MIDI files preloaded into the database and used as examples in the documentation for demonstrating the program.
NOTE: Don’t use the MIDI Samples Folder to store your own MIDI files. The place to keep your work is somewhere in the My Documents Folder.
- midiDatabase - contains midi.mdb
- bin – two VBScript files(hidden)
- instadminODBC.vbs adds text to your ODBC.INI file during install so the database
DSN will appears in the ODBC Administrator Window
- uninstadminODBC.vbs removes the same text from your ODBC.INI file during uninstall
will be removed from the ODBC.INI file. If you then double click on the instadminODBC.vbs file
the two lines are added again. Leave the two lines in if you want to see the midi DSN in your
ODBC Administrator Window.
If you resize the columns or the window, clicking the Menu item View - Resize Columns will evenly space the columns across the window.
If you left click on a column header, the list is sorted by that column A to Z ignoring upper case
letters. This applies to the main Dialog Box called MIDI and the Search Melody Results Database
Using the Database:
Open the program.
Click the first Row
Click the menu item Record
Then click the submenu item Edit
Browse to the MIDI Samples Folder
Double click the MIDI Samples Folder
Double click on Alouette_10362.mid
Now you have entered the path to your Alouette MIDI file into the database. Only the file
name is shown in the list however.
Repeat this for all the MIDI files with Titles until your list looks like this
Now click Record then Add
Click Browse and double click SCALE.MID
Type C Major Scale in the Tune Title Edit Box and CDEFGABC in the Comments Edit Box.
Add the last two tunes
Searching The Database:
Here are the melody notes for the Test Cases:
|The Pink Panther
|C Major Scale
You may put in any or all notes starting from anywhere in the sequence in any key
including all enharmonic note spellings up to 2 characters(no double flats or
NOTE: The only way to hear the found MIDI files is to manually play them with
Media Player or whatever installed application plays .MID files. I’ve included a
“File Path” button on the Melody Search Results Dialog Box which displays the full path
to help locate files.
Click the menu item Search.
Click the submenu item MelodyDatabase.
Note entry for Circus Theme ( circus1.mid )
Original key: C B A# B A# A G# G F# G
In every key:
Click the Search Button
The notes you entered for this search are displayed above the File Path Button.
If everything is working, add your own MIDI file Paths to the Database.
The Album Table is not implemented yet.
Searching Your Hard Drive:
To search your hard drive use the menu item Search, submenu item MelodyDirectory.
Using the keyboard this time and the same Melody Search Dialog Box as when searching the database, I have
entered the C Major Scale.
Click the Search Button
Navigate to the Samples Folder and put in the check mark.
NOTE: Searching the entire Drive: If you put a checkmark on a Drive CheckBox ( C:\ for example) the
search will take a long time depending on the number of files. Since the Cancel Button on the
StatusBar control of the Search Directory Dialog Box cancels the search process between each
directory call, this is seen as one call. This means the cancel button must wait until the entire
Drive is searched. In plain English: You will be waiting with no escape button. Recommended:
Break down the search into groups of directories.
NOTE: If you click on a + box to expand a directory there could be a short wait depending
on the number of folders and files under that directory.
The Melody Search Results Directory Dialog Box gives the found MIDI files. The Melody Notes you
typed in for this search appear at the lower left hand corner of the Dialog Box.
Unless Windows says otherwise, install the new version of the program on top of the old version.
If you want a new database, the old database can be deleted manually using Windows Explorer before
doing the new install. First delete the database file then delete the folder. If you leave the
database, the new install will leave the data intact.
Uninstalling the program using Control Panel Add/Remove Programs removes everything except
the midi.mdb database file.
NOTE: Don’t use the MIDI Samples Folder to store your own MIDI files. Keep your work in My Documents.
Without the CTA program (changed to ITP) at Columbia University I could not have realized this
project. I would like to thank all my teachers: Jim Keogh, Ted Fike, Jeff Thaw, Richard Weiss,
Lenny Henriquez, and Mario Giannini. When I was really stuck, I would call my tutor
The StatusBar class was written by Roland Trainor and downloaded from
Status Progress Feedback - CodeProject
For the Tree view I started with Adrien Pinet's CFolderTreeCtrl class which can be found at
CFolderTreeCtrl class, or how to select folders and subfolders from a drive - CodeProject
10/17/2004 - Original Configuration
10/20/2004 - HTML icon, Documentation
11/16/2004 - Added Directory Search (menu item Search - MelodyDirectory), Documentation
11/17/2004 - Fixed the Status Bar on the Search Directory Dialog Box
11/22/2004 - Fixed a bug in the Cancel Button on the Search Directory Dialog Box and Status Bar.
They now default to the Search Melody Dialog Box. Added a 'Long Processing Time' Warning Message
Box if a Drive is selected in the Search Directory Dialog Box. Added Update: mm/dd/yyyy to the
Help-AboutMidi... menu item Dialog Box. Documentation.
12/10/2004 - Added Click on Column Header Sort Ascending for MIDI and Search Melody Results Database
12/27/2004 Version 1.20 When searching the database, if no path was present in a record, the search
stopped instead of trying the next record.
6/28/2013 Installing with the MIDI Organizer Search.msi file gives the error:
Solution: Right click on notepad and Run as Administrator. Save the empty Notepad file as odbc.ini (Save as type: All Files (*.*)) in C:\Windows.
Close the notepad file you just created. Double click on MIDI Organizer Search.msi. If you get this error:
Right click on C:\Windows\odbc.ini and choose properties. In the security tab click the Edit button choose Users and check the allow write permission checkbox.
Click apply, then OK and OK again to exit. Now when you double click on MIDI Organizer Search.msi you get Repair MIDI Organizer Search. Click finish.
You should get: