GithubHelp home page GithubHelp logo

scplayer's Introduction

SAM Coupé song replayer library
===============================

Background:

 The SAM Coupé is an 8-bit British home computer that was first released in
 late 1989. It is commonly considered a clone of the Sinclair ZX Spectrum
 computer, since it features a compatible screen mode and emulated
 compatibility, and it was marketed as a logical upgrade from the Spectrum.
 Six channel, 8 octave stereo sound is provided by a Philips SAA 1099 chip.


Purpose:

 The purpose of this library is to replay SAM Coupé song files (these
 generally have the extension .sng or .cop).  This is achieved by the use of
 a Z80 CPU emulator coupled to a SAA1099 audio chip emulator, with some RAM
 thrown in.  The Z80 replayer routine is either included with the song
 files, or the E-Tracker replayer is used (this is stored in the library
 itself).

 It is intended that this library is used to develop input plugins for
 multi-format media players.  However, a simple SDL test player (scplay) is
 included for reference and to test playback.


Installation:

 This project uses the cmake build system. Typical build steps are as follows:

   $ mkdir build
   $ cd build
   $ cmake ..
   $ make
   $ make install (optional)

The command line player 'scplay' is built only if SDL is detected.


Usage:

 For the command-line player (if installed and in the path):

   scplay <filename>

 The following command line arguments are accepted:

   -d <duration> stop playback after 'duration' seconds
   -n            disable looping when playing eTracker songs
   -o            write audio to stdout, raw S16 stereo

 For use of the replayer library in your own projects, you will need the
 header file "SCPlayer.h" and the libscplayer library file. If you have
 installed the package, these should be available in PREFIX/include and
 PREFIX/lib. Please refer to the source code of scplay.cpp for an example
 usage of this library.

   1. Include "SCPlayer.h"
   2. Create a SCPlayer object (named player for the purpose of these
      directions).
   3. player.load(<filename>)
   4. player.init(<Mixer frequency>)
   5. Call player.generate(<pointer to buffer>, <length in bytes>) to
      generate audio samples.
   6. Link with libscplayer.


Credits:

 SAASound library:
   Dave Hooper <[email protected]>
   http://sourceforge.net/projects/saasound/

 Z80 CPU emulator:
   Marat Fayzullin
   http://fms.komkon.org/
 
E-Tracker replayer (Z80 binary):
   Ethanol Software Inc (ESI)
     Maciej J. Woloszyk (Mat)
     Andrzej Siuda (Ziutek)

 This package/library:
   Christopher O'Neill <[email protected]>

 Thanks to Spot / Up Rough for the idea, motivation and beta testing.

scplayer's People

Contributors

deltafire avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

scplayer's Issues

generate produces silence on Android

I compiled this for Android, init and load works as expected but when i try to generate sound, i only get buffer full of zeroes. I followed the guideline how to use this lib.

No sound output?

Hi

I compiled the library and scplay. I try to load via scplay .cop, but no sound output. I added a few debug printf and Etracker is loaded etc. However no OUT, 0x1FF ever is generated to write into the sound chip.

Can you confirm that everything works or I am missing something?

Best regards
Bastian

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.