The other day, Disasterpeace mentioned an idea about speech synthesis based on pulse waves, and I remembered playing around with something like that back in 1995, while doing sound effects for a little university project game.
I actually found the original code, and ported it to ChipSound! The original was done in Borland Pascal on DOS, using the sound, nosound and delay calls. It’s basically PWM/hardsync with occasional noise generated by randomly modulating the frequency; all “commands” issued with 1 ms granularity. (Except for the “m”, where I was apparently creating a half-amplitude pulse by setting the frequency to 40kHz, whereas the ChipSound version is just creating a very short pulse.)
It’s all very primitive, and there’s a lot more tweaking that could be done – like adding multiple formants to improve the vowels – but the point is, it seems like one might actually get away with synthesizing speech using only fixed amplitude pulse waves.
A recording of the ChipSound version, first with some flanger and delay effects, and then mostly dry: pc-bot-emergency.mp3
As I mentioned in my previous post, I have decided to release the native part of Kobo II as Free/Open Source – and next up is the final, major part: EEL with its bindings to OpenGL, ChipSound (that previous post) and ZeeSpace (included), a small physics engine and some other stuff.
I have decided make regular releases of EEL with EELBox along with Kobo II in order to make the game available to more players. I just don’t have the time and resources to make proper builds for other platforms than Win32 at this point. (Even though I’m actually doing the development entirely on Linux. The irony…!)
The release is in the download section, as usual. See the ChangeLog for more details.
Like 0.3.4, this version uses ChipSound for sound synthesis. ChipSound is now under the zlib license!
Note that this is not really an official release aimed at EEL users. Things are under heavy development, and I just don’t have the time to touch anything that isn’t strictly needed for Kobo II and my inhouse tools at this point. Contributions would be welcome, and I’ll try to answer questions, but please keep in mind that these are just my private tools that I use to get my job done at this point. Use at your own risk, etc.
I’ve decided to officially release the engines (scripting, physics, sound and 2.5D rendering) behind Kobo II as Free/Open Source, in order to make the game available to basically anyone with OpenGL and a C compiler.
Actually, older versions have already been released in conjunction with The Grumpy Pinball Ball, but at the time I hadn’t decided on a license for the sound engine, ChipSound.
Don’t expect this to be seriously usable production code! I am indeed using it for Kobo II and various tools, but I implement only the very features I need right now, so expect a generally odd feature set, little documentation and a few dangling wires.
First out is ChipSound, which is now under the zlib license.
Included with this is a small SDL based test program that demonstrates how to load, play and control sounds, and how to implement oscilloscopes by wiring an application callback to the “master” voice.
The included work-in-progress demo songs belong to Kobo II, and are NOT covered by the zlib license. They’re only provided as examples of what can be done with ChipSound. More info on some of these songs can be found here, here, here and here.
Finally, Tech Preview 3 is out! Basically, things haven’t been going my way lately, and I’m also at the point where I have to do other stuff to pay the bills, which is a situation that does not blend with custom engines and unusual solutions. But even so, here it is!
ZeeSpace is on vacation for now, awaiting a proper toolchain – but in the meantime, there will be some nice high altitude battles instead. Parallax scrolling, for the true retro fans out there!
There are now two game modes; a more true Survival Mode (much more aggressive spawning; no continues), and the beginnings of a new Campaign mode that is a bit more like the old Kobo Deluxe – except we have physics around here! That is something I’m going to leverage big time later on.
Trying to get Kobo II TP3 out this weekend, and if that goes well, I might do something like this, and maybe submit it to the GDC Pirate Kart. Monochrome sprites, some layered sprites, glow effects, parallax scrolling and of course, chip inspired music and retro sound effects. And, it will be fast and hardcore! Might throw in some basic physics as well, for that extra retro-futuristic twist.
Things (apart from time, that is!) haven’t been moving as fast as I would have liked around here, and it doesn’t help that I need to take on some contract work to pay the bills. However, the state of affairs with this account here is, as you’ve probably noticed, even worse! So, here’s a short summary of what I’ve been up to since TP2.
While things haven’t really been going my way lately, which is not helped by having to resort to contract work, there is some progress, and I’m beginning to see something resembling a new Tech Preview.
Meanwhile, first ever screenshot of the new, physics based bases:
(Yep, that’s a true 6000 rpm gatling gun you see there.)
Early work in progress this one, so the arrangement is still rather plain and simple, and the track needs some more parts beyond the current intro, chorus and break – but you get the idea. I think I’m starting to get the adrenaline levels a bit closer to where I want them to be now.
Tools and methods are the usual suspects, apparently; same as for the other ones: Title, Epilogue and PulseTronic – that is, it’s all coded in a text editor for ChipSound.
Ok, back to doing what I was actually trying to do…
It seems like I’m coming back up to speed a bit with the music, and I’ve also realized that literally typing music in as code isn’t really as awkward or backwards as it may seem at first. One gets used to expressing chords, melodies and rhythm figures as numbers, and one starts to get it right without trying all the alternatives. More interestingly, I actually feel closer to my ideas in some way, as if the plain numbers serve as an equalizer, putting anything that I can possibly imagine within reach, without bias.
I’ll probably write some kind of live ChipSound code editor with MIDI record facilities and some piano roll style editor later on, as that would be quite handy and speed up some of the more basic work – but other than that, I don’t really miss the world of Cubase clones much. Or maybe I’ve just lost my mind completely… Who cares, as long as it works!?
Anyway, before I return to damped spring physics, plasma power links and other weird stuff, I wanted to post a sample from one of the tracks I started working on during a surge of musical inspiration the other week. Not really sure what to make of this… Chip flavored EuroDance: EuroChip…!? (I have a bit of a background in that general area, so it’s not entirely random, actually.) Not really what I had in mind when I started working on this track, but it all seemed to make sense in some way, so I went with it.
Currently using it as the ingame track, as it’s at least less boring than the old placeholder, “Evil Noises”. Might keep it if people like it, and it fits the theme of some maps. What do you think?