Home » Blog
date 19.Apr.2026

■ AI generates a 95% working plugin for MIDI music file properties


MIDI is a very old musical format that sounds "funny". You won't find any shell extensions that expose MIDI properties like Tempo, Duration and so on for use with windows explorer and xplorer². I know nothing about the internals of MIDI files, but apparently the format is simple. So I thought it would be a perfect subject for AI vibe coding: a small, self contained project without external dependencies (that failed spectacularly my previous attempt on half-brain programming). To my surprise, it kind of worked! I prompted the great Edge copilot as such:
can you give me a complete C++ program that will create a WDX total commander plugin to show MIDI file properties like tempo etc?

I asked for WDX plugin instead of a property handler shell extension because it is much simpler

My windows copilot isn't on the same page as the mighty mythos AI, but it presented a reasonable source file. I couldn't tell what was it doing with the MIDI file headers, but the WDX plugin interface (DLL exports) seemed ok. Of course it didn't work 100%, but with a few corrections here and there I had a working prototype. You will find more information on the "discussion" we had in the source code:

Click to download C++ source code and WDX64 compiled plugin

Supported MIDI properties: Tempo (BPM), Format, Duration (sec), Length (ticks) etc

To use it with xplorer² for MIDI details "install" the contained MIDI.WDX64 using this tool and search for MIDI in the column selection dialog

MIDI properties in xplorer2

Here are a few anecdotes of this mini vibe-coding adventure. In the first round Copilot gave me a source code with char* 1-byte strings. When I asked for LPCTSTR instead (this is the 3rd millennium) the returned code was largely rubbish. WDX interface is a muddle, some of its exports are stuck with char* arguments, whereas some take wide strings. Our AI friend got its knickers in a twist here. It also completely forgot to adjust the string capacity (maxlen veriable) for wide character support, a potential GPF risk. A weathered human programmer (me) caught these elementary mistakes.

The AI also insisted that ContentGetDetectString returned nothing (void) whereas all the headers I know of declare it returning an integer. It wouldn't take my word for it, neither did it trust the numerous website references I presented. Stubborn isn't the word for it!?

Conclusion

I was able to create (in a couple of hours) a property plugin for MIDI files, despite being wholly ignorant of the subject. This is quite amazing. Of course there are ifs and buts: Anyway, the market for MIDI musical properties is tiny, so we'll leave the project at its current elementary state. Whoever needs to optimize it further, please help yourself to the source code above.

Post a comment on this topic »


©2002-2026 ZABKAT LTD, all rights reserved | Privacy policy | Sitemap