Coder Social home page Coder Social logo

sidplayer's Introduction

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!

sidplayer's People

Contributors

beachviking avatar pschatzmann avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

beachviking

sidplayer's Issues

SID files do not end

Discussed in #2

Originally posted by pschatzmann March 2, 2023
I noticed that at least the first SID file is playing forever.
Is there a way to notice that we are at the end ?

#define MAX_DATA_LEN 65536 is hardcoded

We should provide the functionality the setMaxDataLength(int) method where we can define this dynamically. This way we can also support processors which do not have a huge RAM available.

The SIDPlayer should skip files which are exceeding the actual limit.

Unable to get player-sd.ino example to work

Hello, had some time to do some testing and I am for some reason unable to get the 'player-sd.ino' example from the SIDPlayer repo to work on my AI Thinker board. Seems to be a few issues, did you manage to get this example to work with the latest code?

  1. AudioBaseInfoDependent -> AudioBaseDependent?
  2. It reports file is NULL when I try to play a sid song from an SD card, FAT formatted. The example 'player-sd-audiokit.ino' works fine on the same board.
    Thanks!

Only first play is playing

It seems that SidPlayer::loadTune() is working only the first time.
Subsquent calls will not play any audio

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.