Fork me on GitHub


The SoLoud::Vic is a vic-20 audio emulator. It is used by adjusting registers directly, like on the actual device.

This audio source is a bit of a work in progress. All instances of a single Vic object will play exactly the same audio, and registers are set at the object level.

Vic.setModel(), Vic.getModel()

The model of machine, between PAL and NTSC, can be set and queried. PAL is the default.

// Set model to NTSC

Vic.setRegister(), Vic.getRegister()

Registers can be set and read. All of the four registers are 8 bits wide.

// Increment register 2
unsigned char v = gMyVic.getRegister(2);
gMyVic.setRegister(2, v + 1); 

Vic.setLooping(), Vic.setLoopPoint(), Vic.getLoopPoint()

Adjusting the looping of a vic sound does not have any effect.


As with any other audio source, you can attach filters to monotone audio sources.

gMusic.setFilter(0, &gLofi);


You can stop all instances of a vic sound source with stop(). This is equivalent of calling soloud.stopAudioSource() with the sound source.



Set the inaudible behavior of the sound. By default, if a sound is inaudible, it's paused, and will resume when it becomes audible again. With this function you can tell SoLoud to either kill the sound if it becomes inaudible, or to keep ticking the sound even if it's inaudible.

// Keep on talking even if I'm not around
gSpeech.setInaudibleBehavior(true, false);


Set the default volume of the instances created from this audio source.


Inherited 3d audio interfaces

Like all other audio sources, monotone inherits the 3d audio interfaces. Please refer to the 3d audio chapter for details on:

Copyright©2013-2020 Jari Komppa