
You can get the executables with my changes here. So, after a week's ordeal, I have a MIDI tracker I can actually use that doesn't make me curse at the computer and want to punch the goddamned programmers.
By fortuitous coincidence, I study Japanese, so I can make Japanese comments in the code, and maintain the Japanese language UI in parallel which work on the English side. Fixed! I've beat up on the program, cutting and pasting thousands of events randomly like a monkey, with no crash. This turned out to be a buffer overflow in the handling of the clipboard buffer. #Open source midi editor free
Finally, not home free yet, I ran into a crash bug when editing the score: cutting and pasting of MIDI events triggered corrupt behavior and application crashes. Fixed that one and have not heard a missed accented beat since. This was due to a faulty timing assumption between the main UI and the record/playback thread which also generates the metronome. Sometimes, it was replaced by silence, which is annoying and throws you off. After this, I discovered a bug: the metronome was not aways playing the first bar accented beat, even when recording after rewinding to the very beginning. If you use 0 for the mapping, then echo from that input is disabled. Echoing is now implemented by a separately configured "thru binding" map where for each MIDI input device, you can tell the program to echo events to some designated output device. I didn't think that was good enough, so I implemented a new feature: I took out all the logic which causes Sekaiju to echo real-time being pumped through its tracking system. It turned out that Sekaiju 3.6 had no way to disable loopback (MIDI thru) other than to disable output on specific tracks (which also mutes playback!) I was told by the author that disabling of loopback is not implemented, and I should kick my synth out of local control mode to use it with a sequencer. Then I ran into the problem that all notes were being doubled. (No registry use in this puppy, by the way! Blow away the files and it is uninstalled!) I fixed the bug and started my own public GIT repository for Sekaiju on my server. Running under the debugger, I root caused the problem: my MIDI dongle has a device name with trailing spaces, which Sekaiju was not preserving in its. I converted the whole project to Visual Studio 2008 and the character encoding to UTF-8. I had a bit of a hard time wrestling with the code, which is in a Japanese SHIFT-JIS encoding rather than Unicode (causing the compiler to choke, unless you switch your entire Windoze OS to Japanese locale). At this point, it was clear I would have to build the program from source to solve this. It would always show "unable to open" error dialogs, but would always successfully open the device if I went to the config and selected it. Next, Sekaiju was not able to open my USB Midi device upon being restarted. I found the root cause and turned off the offending setting. My synth interpreted that as notes and was playing garbage together with legit notes. The first aggravation turned out ot be a dumb default configuration: it was generating some clock data and sending it out to MIDI. (The only hope may be some of the Linux-only programs I didn't try). You can forget everything else it is unusable garbage. The only wortwhile program turned out to be Sekaiju. I lowered my expectations from: "Find great program" to "Find program that comes with source code, and is close enough to perfect that I'm willing to put in the time to fix it". Soon it became apparent, to my dismay, that I'm dealing with raw manure. Recently, I've spent several days getting my hands on every piece of MIDI freeware that runs on Windoze, with the goal of finding a good one with real-time input capability, decent editing, and all round usability.