[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

I might actually have free time again!



After 11.5 years, I finally decided to switch jobs.  Now I might have
some freetime to spend with my children and on hobbies again.  (yay!)

Some side projects I wanted to get around to:

-Finish JACE (ok, not going to happen until Java has real joystick
support.  It kind-of works, is that ok?)

-Apple // Sound Compression hacks (more on this, scroll down)

- 8-bit megademo (Using video and sound compression hacks and a 1mb
memory card to buffer the datastream)

Ok, so about the sound compression.  I had this crazy idea a few
months back and emailed a former professor to gauge the feasibility of
the underlying theory.  I think that I might be able to train a neural
network (using a genetic algorithm for tuning) to "hear" a small sound
sample and output the nearest approximate register values to reproduce
that snippet of sound using the 3-voice synth chip on a mockingboard.
The advantage of this approach over a table-driven one: Using a psycho-
accoustic perceptive model might yield more natural sounding results
with a higher level of compression than PWM with fewer compression
artifacts than low-bandwidth mp3.  At least that's the theory of it
all anyway.

Training the neural net wouldn't be too hard, since I can just
enumerate through a random set of actual parameters and feed them
through an emulation to get the same snippet of audio from an
emulation.  Of course, to get a real accurate training, I'll have to
collect the same sample set from a real mockingboard but I won't worry
about that unless I can prove it out in emulation first.

As for megademo, well it is not a shock that our friendly ][ is too
slow to blit full-screen animated hi-res graphics -- not in any sort
way other than limited-size scrollers.  I might pull it off if my name
was Nasir, but that's not gonna happen with my skillset.  But it IS
possible to pipe data through lo-res (and possibly double-lo) graphics
modes fast enough to achieve the necessary POV to make decent
animation.  Since I'd already written the compression routines for
apple game server (and I did some preliminary testing in emulation for
video), I would only have to change the playback loop to read bytes
from a slinky card instead of from the serial port.  Easy!  But I kept
waiting until I did the sound stuff before trying this... and then
months and years passed by quite literally  (ugh!)

Anyway, hopefully I'll have some progress in this regard.  And if I
don't get very far, I'm more than happy to share code snippets and
ideas with anyone eager to reproduce these experiments for their own
self amusement. ;-)

-Brendan