1.01.2011

Some NXC sound experiments

Since it's taking me ages to build the nxtOSEK compiler, I started some sound experiments using the NXC and got quite nice sounding, little bleep and blop effects, The output is horribly tinny, but I think I can be solved with some physical "wrappers" around the speakers to get an altered acoustic output. However, I kind of fell in love with the idea how polyphony (atleast for two voices) and create a little systems that alters the currently played sequence in rapid manor for some kind of messy frequency modulation. The result were... well... let's say it's between disharmony/noise and arpeggiator sounds. I'd only use this for special effects, but otherwise it plainly sucks (though I haven't yet tested in a real song arranment). But then I got another idea! The NXC allows only four volume levels, but nxtOSEK and leJOS can give you a range of 0 to 100 - enough to get any kind of modulation done. So my idea is to choose a very, very low oscillation frequency but a rapid volume change. Rapid enough to create sound waves on my own, effectly enabling new sound waves. Unfortunately, this wouldn't result in a direct and smooth response like with an already preset sound wave. I studied leJOS source code and found out that they use premade, hard-coded sound waves, put them in a buffer and give it to the soundcard. If that's not what I want! Unfortunately, I don't think there's a way to access it except communicating directly with the hardware or modifying leJOS. I don't want to do this, I'm just not somebody digging so deep only for a hobbyist project. I also don't feel any joy by going dirty with the hardware on such a direct way. I prefer abstraction with fast and minimal functionality.

So to get less gaps between these dirty volume-based waves, I'm trying to run nxtOSEK, again. I hope it works this. Otherwise I'd have to code in Java... And that's a performance fail by default.

No comments: