Some rants on SMELT, QMidiPlayer and Virtools

2018-03-17
#devel #qmidiplayer #opengl

Well, I have to admit that creating a new blog post but not writing the actual content until more than a month later is bullshit. I've almost forgotten what I was thinking about when I created the post...

But as you can tell from my recent activity, development of QMidiPlayer seemed to be stalled. No new features has been added since the rewrite of the MIDI mapper. However the rewrite is actually for the next planned major feature: an OPL3 emulator plugin and probably a VST host plugin. I spent one third of my winter break on reading the specs of the YMF262 chip but made no real progress, which is a real shame.

As for SMELT, I ported it to OpenGL 3.3+ but this is definitely not in my original schedule. The initial port has a whole bunch of bugs and quirks, also its performance was poor. Most of these were fixed later on with the help of apitrace. However currently the new port still makes way more OpenGL calls than expected.

Planned features for SMELT include vertex array switching, material, lighting and custom shaders. Adding these features will likely make the older version deprecated though. Plus there's no strong demand for these features. Therefore they may not be added any time soon.

The Virtools part is an entirely accident. 2jjy and I suddenly got excited with the Virtools SDK and decided to find out what can it achieve. Before long 2jjy managed to analyze the internal structure of a Virtools behavior. These data determines how the behavior graph is presented in the schemetic interface. Checking 'hide script representation in schemetic' while saving simply discards these data, effectively obfuscating the script. The final tool we made public reconstructs the base of this structure using the logic of the script and tries to arrange behavior building blocks in a more human-readable way. It definitely helps future analysis of our old pal (Ballance), but not so much in my opinion. Porting the custom DLLs used by Ballance to a "newer" Virtools verion might be way more important.

The tool has been made public. As the job it does falls into a "grey zone", we don't know whether it is legally acceptable to use it. Use at your own risk!