[LAD] Kobo II: Another song WIP

David Olofson david at olofson.net
Sun Nov 6 22:34:33 UTC 2011



I'm basically thinking chiptune sound and methods - but I'm using 50-150 
voices rather than the usual 3-8 or so. Sort of like what the old grand 
masters of game music might have done if the C64 had had 16 SID chips instead 
of one. :-)

It's an interesting exercise, trying to create a "full" sound (also including 
sound effects for the game) using only the built-in waveforms and noise. 
Sticking with that might make for an interesting item in the Tech Trivia 
section about the game as well. :-D

I was planning on adding a resonant filter early on, but I have yet to come to 
the point of actually needing it...! Being able to actually script your own 
waveforms (ie switching waveforms and modulating oscillator parameters at 
different points during each period), covers a whole lot of things that would 
normally require specific features in the synth engine.

Sure, one could always phatten things up with a 24 dB resonant LPF - but then 
again, that would just sound like all the other five billion virtual analog 
synths out there...! ;-)

I'll get to samples, filters, effects and all that eventually, but I'm 
actually more interested in running ChipSound programs off-line to render 
complex waveforms that are then played by other programs in real time. For 
example, for the strings/pad sounds, I use a dozen or two "nervously" 
modulated saw waves. Imagine using a dozen voices, each one playing a pre-
rendered loop of saw banks like that. I was planning on using IFFT synthesis 
for that kind of sounds (like strings that actually sound real), but I don't 
really see much need for that now...

As to the control, that's pretty much defined by how you implement your 
sounds. The single-argument "Velocity" and "Pitch" entry points are just a 
convenient "standard" I've been using so far. As of now ("arbitrary" 
implementation limits, to keep things simple, small and fast), you can have up 
to 8 entry points (0 being the main program launched when starting a new 
voice), and each entry point can take up to 8 arguments. What these entry 
points do is entirely defined by the code; nothing hardwired there.

Think of ChipSound as a huge pile of sound chips, each with an MCU running 
user defined code, but without the noise, artifacts and timing issues. :-)

Anyway, thanks for your response!

Hopefully, I'll get around to update the documentation and release that thing 
soon - but now, time to get that game out the door and see what happens! :-)



On Sunday 06 November 2011, at 20.40.22, Julien Claassen <julien at mail.upb.de> 
> Hello David!
>   This sounds really old-school 80s. The language looks a little
> restrictive in its control, but more than sufficient for this type of
> sound. Nice work! Thanks for sharing this!
>    Warm regards
>               Julien
> =-=-=-=-=-=-=-=-=-=-=-=-
> Such Is Life: Very Intensely Adorable;
> Free And Jubilating Amazement Revels, Dancing On - FLOWERS!
> ======      Find my music at      ======
> http://juliencoder.de/nama/music.html
> .....................................
> "If you live to be 100, I hope I live to be 100 minus 1 day,
> so I never have to live without you." (Winnie the Pooh)

//David Olofson - Consultant, Developer, Artist, Open Source Advocate

.--- Games, examples, libraries, scripting, sound, music, graphics ---.
|   http://consulting.olofson.net          http://olofsonarcade.com   |

More information about the Linux-audio-dev mailing list