/SIDPlayer

Playing Commodore 64 SID Audio on Arduino

Primary LanguageC

Playing SID Files

In the old days I was rather a Commodere PC guy but I know of colleagues of mine that were addicted to the Commodore 64 and knew it inside out. Here is another project that makes you feel nostalgic:

Sound Interface Device (SID) is a audio format used by the Commodore 64 and 128.

To get some SID files, I can recommend The High Voltage SID Collection (HVSC) which is a freeware hobby project that organizes Commodore 64 music into an archive for both musicians and fans alike.

Unfortunately we can not feed SID files incrementally to a codec, so this does not fit with my audio codecs that are used e.g. in the AudioPlayer of the AudioTools library.

Therefore this project provides a separate, dedicated SID stream and a SID player that can play SID from files or from in memory hex dumps on Arduino. The player is based on the AudioPlayer from the Arduino Audio Tools, so you can use different audio sources and audio sinks. The SID emulation is based on cSID light by Hermit (Mihaly Horvath), (Year 2017).

Memory Requirements

You can set the RAM implementation in the config file (SIDConfig.h): In most cases it is using 64KB fixed. By default this memory is reserved statically. You can also select to use PSRAM instead of RAM. There is also an experimenal memory implementation that can directly use the song stored in PROGMEM and just needs around 2K of additinal RAM.

Documentation

Installation

For Arduino you can download the library as zip and call include Library -> zip library. Or you can git clone this project into the Arduino libraries folder e.g. with

cd  ~/Documents/Arduino/libraries
git clone https://github.com/pschatzmann/SIDPlayer.git

And please do not forget to also install the AudioTools!