FRODIGI - Free Running Oscillator Digi
screenshot added by algorithm on 2014-05-27 02:43:45
platform :
type :
release date : may 2014
  • 18
  • 1
  • 0
popularity : 54%
  • 0.95
alltime top: #8881
added on the 2014-05-27 02:43:45 by algorithm algorithm

popularity helper

increase the popularity of this prod by spreading this URL:

or via: facebook twitter pinterest tumblr


Algorithm presents a single file demo for the c64 that demonstrates a new method of playing back digitized samples.

It demonstrates the output of my new audio encoder that produces output that is able to be decoded on the c64 using only a few raster lines per frame.

It uses the free running sid oscillators on the c64's sid chip in 3 channels and a master volume to recreate the audio.

Mainly suited for speech, but can also work on other sources. This demonstration packs a few minutes of audio into less than 41k and running in a c64 made in the early 80's with only 1mhz processor. Enjoy
added on the 2014-05-27 02:54:46 by algorithm algorithm
I'm not hugely familiar with everything that's been achieved on C64s, but this absolutely blew my mind. Brilliant.
rulez added on the 2014-05-27 03:16:27 by squeakyneb squeakyneb
rulez added on the 2014-05-27 06:12:08 by Buckethead Buckethead
quite cool idea...!

even if it's sometimes hard to recognise...but some are quite cool like kraftwerk or ofra haza
rulez added on the 2014-05-27 11:00:27 by ultra ultra
Finally released! \:D/

Great job Algorithm, your routine is ACE! :)
rulez added on the 2014-05-27 12:44:05 by rez rez
Is there a youtube for this?
rulez added on the 2014-05-27 16:17:47 by tonyrocks tonyrocks
can this be adapted to other platforms somehow? POKEY?
rulez added on the 2014-05-27 16:54:12 by Heaven/TQA Heaven/TQA
The decoder is nothing special at all. It reads 9bits for each channel per frame to point to one of 512 predefined notes and a 4 bit volume control for that frame.

The encoder does all the hard grunt work.

Heaven, yes it can be adapted to any sound chip :-) More flexibility on the C64 side due to ringmodulation/filters (which this implementation does not do anyhow)

Youtube link as below

added on the 2014-05-27 21:19:42 by algorithm algorithm
Heh. Thats a nifty trick!
rulez added on the 2014-05-27 21:48:10 by xeron xeron
nice! would be cool to have a more detailed explanation, so we can try and port this to another chips (e.g. AY8912 is in desperate need of some love)
rulez added on the 2014-05-27 23:11:00 by bonefish bonefish
just checked the youtube vid again...
did you try not just to replay and before encode for 50hz...maybe 100hz or 200hz? if so how does this sound ?
added on the 2014-05-28 11:49:46 by ultra ultra
such BOOM TSCHAK! <3
rulez added on the 2014-05-28 12:27:06 by gentleman gentleman
super brilliant stuff!
added on the 2014-05-28 12:28:54 by gentleman gentleman
Thanks all for the comments.

The encoder specifically encodes each chunk for 50fps update (A sample at 44100hz would be equivelant to around 883 bytes.

As the oscillators are free running, the decoder may start waveforms from an unknown point per frame (While the encoder internally trys to find best sliding matches for each channel internally). This can be somewhat rectified if taking into account cycle exact writing in the decode and configuring the encoder to take this into account as well as saving the last state of the waveform position

This error is recognisable even more when there are more updates per frame unfortunately.

You would have noticed that there are less low frequencies on the audio. This is deliberate, as the error audibility is more on low frequency waveforms. Higher frequency data overlaps more occasionally with the other channels to reduce the error somewhat.

A brief technical insight into the routine as follows

An index into the predefined frequencies and waveforms for the three channels and a master volume are randomly selected initially

the "wavemerger" performs the calculations required and this is compared with the source audio chunk. In essence, this finds the error based on the three waveforms, frequencies and optimal offsets

A multishot-hill climbing method is used to reduce the error and to find a more optimal match. approximately 10,000 iterations are used and frequency data saved. the process is repeated for each shot, and the best final result is used.

This selection of data is passed onto the next generation where further tweaks are made

Without changing the encoder, improvement in quality can be made by using more note-tables. I chose to use notetables in order to provide the necessary compression as this uses 31 bits per frame (9bitsx3 channels+master volume for chunk)

By utilising for example 4096 note tables, it would increase quality rather more and use 40 bits only per frame.
added on the 2014-05-28 13:09:51 by algorithm algorithm
must. thumb.
rulez added on the 2014-05-28 20:53:53 by Sir Sir
rulez added on the 2014-05-29 09:47:26 by yzi yzi
Fucking awesome.
rulez added on the 2014-05-29 10:35:26 by ham ham
I can just imagine if there was 2 other coders with you, and talented graphic artists and musician... I think the result will be a surprising quality demo with newest techniques which will bring a new way of doing demos on the 64... just like trackmo bring a wind of change in the '90...
rulez added on the 2014-05-30 03:43:11 by F-Cycles F-Cycles
Does not sound very useful with only 2 rasterlines active, at least I had a good laugh.
rulez added on the 2014-05-30 10:36:11 by Exin Exin
cannot wait to see video+audio all together in a 64kb file... ;)
added on the 2014-05-30 16:33:02 by F-Cycles F-Cycles
don't know anything about platform, technical stuff and will never use it. still thumb up because it seems to be some wicked shit. looking forward for demos/intros that use it :)
rulez added on the 2014-05-30 18:40:28 by sensenstahl sensenstahl
clever, even an old cart can learn new tricks!
rulez added on the 2014-07-05 18:00:07 by T$ T$
for the boom-tschak
rulez added on the 2015-07-15 12:32:05 by Triace Triace

submit changes

if this prod is a fake, some info is false or the download link is broken,

do not post about it in the comments, it will get lost.

instead, click here !

[previous edits]

add a comment