Before creating THoTH, I kept a database of songs, as a teaching reference. At that point I simply had fields for Title, Composer, Key, and Details, and I dumped various information into the Details field. Searching worked pretty well, as long as I knew what to search for.
In about 1995, I wrote the first incarnation of the program that is now THoTH. It was a more capable database program, but it required that information such as key, style, chords, and modes, be entered by hand. At the time I was using MusicPrinter Plus, a music notation program written by Jack Jarrett. MusicPrinter Plus was a DOS program and so was limited to 8-character file names. On the song page there was a field for the MusicPrinter Plus path and filename. This made it a lot easier to keep track of my MusicPrinter Plus files.
About that time I attended an Intentional Association of Jazz Educators conference where Temporal Acuity Products had a booth displaying MusicPrinter Plus. I spoke with the owner of the company, and told him about my program. I said it was useful in cataloging MusicPrinter Plus files, and asked if he'd be interested in bundling it with MusicPrinter Plus. He said, "You know, you sho uldn't have to enter all that information by hand; it's all in the MusicPrinter Plus file, so why don't you just hook into it and grab the data?" I said that I couldn't decipher the binary MusicPrinter Plus file format. Roger said, "Well, why don't you talk to Jack Jarrett and have him give you the file format?"
Jack and I were both teaching at Berklee at the time, so I talked with him. He told me that he and his partner on the project were about to rewrite MusicPrinter Plus for Windows, so this would be a good time to collaborate. Jack was kind enough to not only give me the file format, but to walk through some of the MusicPrinter Plus code with me. My program was soon able to read MusicPrinter Plus files and populate the database from the MusicPrinter Plus file information.
Recently MusicXML has become a standard for music notation interchange. I replaced the code that read MusicPrinter Plus files with code to read MusicXML files.