deltafire / scplayer Goto Github PK
View Code? Open in Web Editor NEWSam Coupe song player library
License: Other
Sam Coupe song player library
License: Other
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.
Just a heads up that there has been a flurry of activity over at https://github.com/stripwax/SAASound - you are now nearly 180 commits behind. :-)
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.
In case you are interested, I have created a disassembly of the e-tracker compiled module player at https://github.com/stefandrissen/e-tracker-player
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.