Saturday, October 30, 2010

Happy Halloween! Also, feedback requested

Well, I wasn't even thinking about Halloween when I started Let's Play King's Quest V with an MT-32. I just wanted viewers to hear how the music is supposed to sound, as opposed to the AdLib/SoundBlaster version that most probably know.

But about a week or so ago, I realized that the last area of this classic game happens to have an atmosphere appropriate to Halloween, and better yet, I looked to be on-schedule to show it off just in time for the holiday. And what do you know, I actually timed it just right. Here's episode 10. Enjoy!

And since this LP is just about over, there is the question of which game I should LP next. I have three in mind. Each one has its merits:
  • King's Quest IV: The Perils of Rosella. This one has some pretty good music, which I think sounds at least as good as that of KQ5. There's no speech in this one, which you might regard as a plus or a minus. The intro seems a little on the sugary side, but I'm willing to look past that. Also, I've only played part of the game, so it would be semi-blind.
  • King's Quest VI: Heir Today, Gone Tomorrow. Also good music, and really good voice acting ('cause they used professionals this time). I did a recording of the intro while manipulating the emulation speed so you can hear more of the music than you would normally. I'll upload that just before starting the LP. Also, I'd like to try to do all of the different paths in the game and involve you, the viewers in deciding which ones to do when.
  • The Legend of Kyrandia: Book One. Fantastic sounding music and pretty good voice acting, although the sound levels can be a problem sometimes, at least in my experience (fortunately my recording setup allows me to balance the sound elements after recording).
So, dear readers, please comment and let me know what you think. Which one would you like to see next?

Thursday, October 28, 2010

Wlcm t th *nprncbl *n's blg

Greetings everyone. It is I, fllthdcrb (a.k.a. danielcdawson on YouTube). No, don't bother trying to pronounce it, 'cause it isn't written to be pronounceable. Maybe I'll tell you sometime what it means. In the meantime, I've established this blog to... um... blog about... stuff. I dunno whether it will turn out interesting or not, but I'm going to try it out.

So, my current project is Let's Play King's Quest V with an MT-32. I found other LPs of KQ5, but none utilizing the Roland MT-32, the famous synthesizer module for which the music in Sierra games of this era was written. I bought one a couple years ago and you can too: you're likely to find one or two on eBay at any time.

I think, though, KQ5 was written for a second-generation MT-32. What I have is a first-generation, by far the most common, and unfortunately it has some problems, namely a very small buffer for System Exclusive messages (used to program custom instrument sounds, among other things), so anything that doesn't leave about 40 ms between them will cause buffer overflows. Strangely enough, I tried it under Windows XP with the USB MIDI adapter I have and found it works just fine; I think Windows does buffering of its own.

Under Linux, there's a different problem with some sounds not getting programmed and some events not registering, which it took me a while to figure out. After searching around the Web for a while, I finally found the real cause: apparently something (either the MT-32 itself or the USB adapter; I'm not clear which) needs 4-byte packets, but the adapter advertises 8-byte packets, and extra events in 8-byte packets get dropped. Fortunately, a simple 3- or 4-line change in the Linux kernel (forcing all USB MIDI packets to be limited to 4 bytes) took care of that problem; it helped that there was a device for which that was already being done, so only a simple change in logic was needed. However, I'm now seeing buffer overflows. A workaround in some cases (with DOSBox) is to lower the CPU cycles setting to about 500 while the sounds are being programmed. It makes the startup take a while, but it seems to work very well, at least for KQ5 and KQ6.

An easier alternative might be to get a later-generation MT-32. But good luck finding one. What to look for: the later ones have a headphone jack in back next to the line-outs. If you already have an MT-32, you can hold down the "4", "RHYTHM", and "MASTER VOLUME" buttons while turning it on, to see the version number and revision date on the LED panel. If it says something like "ver2.xx", you're good. The serial number is also telltale: serial 950500 and up is the new model.

Anyway, my current setup for recording my LP is as follows:
  • MT-32 connected by a USB-MIDI adapter, with its audio output connected to the computer's line-in with a 1/4" jack-3.5mm jack adapter.
  • Line-in software-forwarded to a USB headset. (It's tricky to get the latency down enough so that the music isn't lagged for me, without getting lots of buffer underruns and overruns, which seem to create cumulative delays.)
  • Commentary also recorded from the headset, of course.
  • Game video and audio recorded using DOSBox's video capture feature. (Watch out: this can produce large files, so make sure you have plenty of storage space.)
  • Game music captured using DOSBox's raw MIDI capture feature. I can then play it back later and record the MT-32's output while other things aren't running. (Be sure to capture from when the game is first started, or the sounds will be wrong when you record later.)
This works quite well, although DOSBox doesn't actually start the MIDI file until it sees the first event, so I have a little work synching it, but it's not too bad.

After all the audio is recorded, I then use Audacity to remove some background noise, adjust the track levels (use the Amplify effect, not Normalize; Normalize applies to each channel independently! and you don't want to completely normalize anyway since that can lead to clipping when everything is mixed), and apply Autoduck. Then I use Kdenlive to edit the video, add titles, etc. Throughout the process, MPlayer and MEncoder come in handy for various tasks like reducing the framerate (DOSBox's videos are over 70 FPS!), extracting audio tracks, and upscaling the video, as well as the final encode. (I haven't figured out how to get Kdenlive to stop producing horribly inflated files for the kind of output I want; maybe because it uses libavcodec instead of x264? I don't know.)

Oh yeah, I also maintain a playlist of all the episodes in Ross Scott's Civil Protection and Freeman's Mind and the (good quality) Mind series inspired thereby. I started it in order to make a convenient record for what order things came out in the early days of Mind series (Machinima.com re-uploaded the early videos so the dates are misleading; I had to scour Ross's old blog on Blogspot to get the truth). But it's taken on a life of its own, since not only have I continued to add new episodes as they come out, I also add new series from those who become Masterminds (a meritocracy whose membership is decided (informally, I assume) by existing members).

Anyway, I hope you enjoy.