ZX Spectrum Computer Sound Chip Emulator
What is Ay_Emul?
ZX Spectrum Sound Chip Emulator (Ay_Emul) is a Windows and Linux program developed for playing music for the AY-3-8912 sound chip (or the analogous AY-3-8910 and YM2149F). Ay_Emul emulates these sound chips so you do not need the real ones. Ay_Emul can also emulate ZX Spectrum's beeper sound, and playback CD digital audio tracks and MIDI files as well. The optional BASS library by Ian Luck can be used for playing various additional formats like MP3 and MOD.
Ay_Emul can play files of the following types:
- Dumps (or logs) of sound chip registers recorded in many computers' emulators:
- OUT (produced by a ZX Spectrum emulator 'Z80' v3.xx by G.A. Lunter);
- PSG (produced by a ZX Spectrum emulator 'Z80 Stealth' by Mr.Kirill, and in many other emulators);
- EPSG (recorded in a ZX Spectrum emulator 'Z80 Stealth');
- YM ('StSound Project' by Leonard/Oxygen files; the supported subtypes are YM2, YM3, YM3b, YM5 and YM6);
- VTX (files made with 'Vortex Project' by V_Soft);
- ZXAY (custom-made for Ay_Emul).
- Popular ZX Spectrum musical editors' module formats:
- ST1: Sound Tracker v1.xx non-compiled;
- AY type ST11: Sound Tracker v1.1 non-compiled, an analog of ST1;
- STC, ZXS: Sound Tracker v1.xx, Super Sonic v1.xx;
- ST3: STC recompiled (in KSA's S.T. Music's Recompiler);
- PSC: Pro Sound Creator v1.xx;
- AS0, ASC: ASC Sound Master v0.xx-2.xx;
- PT1, PT2, PT3: Pro Tracker v1.xx-3.xx, Vortex Tracker II v1.0;
- STF: Sound Tracker Pro non-compiled;
- STP: Sound Tracker Pro;
- FTC: Fast Tracker v1.xx;
- FLS: Flash Tracker;
- SQT: SQ-Tracker;
- GTR: Global Tracker v1.x;
- FXM: Fuxoft AY Language;
- AY type AMAD: Amadeus modules, analogous to FXM;
- PSM: Pro Sound Maker.
- ZX Spectrum, Atari ST/STe or Amstrad CPC's memory dumps which include the player for Z80 or MC68000 processors:
- AY type EMUL (DeliAY and AYPlay project files);
- AYM (RDOSPLAY project files);
- SNDH (Atari ST or Atari STe music files).
- CD audio tracks (CDA). Ay_Emul can work with several CD drives, and also with disks containing not only audio tracks.
- MIDI files:
- MID, MIDI: MIDI standard format;
- RMI: MID files wrapped in the RIFF container;
- KAR: standard MID files with song texts for karaoke;
- XMI: Miles Design XMIDI format.
- Files played by BASS library:
- MP3, MP2, MP1: MPEG-1 encoded waveform sound recording;
- OGG: Vorbis-encoded audio;
- WAV: any codecs of PCM audio that are installed in the system;
- WMA: Windows Media encoded audio (via basswma extension);
- APE: Monkey's Audio records (via bass_ape extension);
- FLAC: Free Lossless Audio Codec audio (via bassflac extension);
- WV: WavPack audio (via basswv extension);
- AC3: multichannel Dolby AC3 encoded audio;
- AAC: Advanced Audio Coding records;
- M4A, MP4: MPEG-4 wrapped audio (Advanced Audio Coding, Apple Lossless Audio Codec)
- DFF, DSF: Direct Stream Digital (Sony/Philips audio format)
- MO3: modules with MP3/OGG encoded samples;
- IT: Impulse Tracker;
- XM: Fast Tracker 2;
- S3M: Scream Tracker 3;
- MTM: MultiTracker;
- MOD: Sound/Noise/Star/Pro/FastTracker (and many more) module format;
- UMX: Unreal Tournament music package;
- HTTP:// and FTP:// shoutcast streams (internet radio, etc.).
Any two of the majority of tracker modules listed within item 2 can be replayed simultaneously in Turbo Sound mode (TS, a device for ZX Spectrum with two ordinary sound chips onboard). The dedicated TS format of PT 3.7+ is also supported.
For SNDH playback, MFP, DMA-Sound timers and some TOS functions are emulated. The MC68000 emulation uses the Starscream 680x0 emulation library by Neill Corlett (firstname.lastname@example.org). Also supported is the SNDH known music durations database by Benjamin Gerard, imported from timedb.inc.h. To install or update it, just place the timedb.inc.h file in the main folder of Ay_Emul, and sndhtimedb will be generated/regenerated at next startup. The .h file can be downloaded from the sc68 project sources.
Ay_Emul supports Winamp playlist files (M3U, M3U8), XMPlay (PLS) and its own format, AYL, as well as CUE sheets for sound streams. AYL can contain full info about each item.
Ay_Emul can be used as a powerful tool for working with AY/YM data files. The built-in Speccy music ripper can find and extract modules of many ZX Spectrum music editors in any non-compressed source data. Ay_Emul can convert modules to WAV, ZXAY, VTX, YM6 or PSG formats. Ay_Emul can playback digital sound stored in OUT, ZXAY, EPSG, AY or AYM files. Beeper music in AY and AYM formats is supported too. Ay_Emul can reproduce special effects used by Atari ST musicians and stored in YM2, YM5 and YM6 formats.
The skin files can change the look of Ay_Emul's main window.
BASS library is only loaded immediately before playing a corresponding file and unloaded right after the playback stops.
System requirements: at least Windows XP or Linux; a 80386 or greater compatible CPU is required to run the software; for playback a sound card is needed that supports 8 or 16 bit Stereo or Mono digital sound at any sample frequency in the range of 8000 to 300000 Hz and a powerful processor (by default, Ay_Emul uses a special filter to improve the quality of sound chip and beeper emulation). The requirements for playing the BASS-supported file types are DirectX 3 or above (in Windows), for MOD music a processor with MMX support too.
Ay_Emul is distributed as archive files that contain the executable file, BASS libraries, interface translations, skins and documentation (for Windows and Linux, 32- and 64-bit, four archives in total) and an archive with Ay_Emul's source code and other required files needed to build the executable and its help system. You can download the source code from the For Developers section.
In a minimal configuration, if you just have the executable file you have a full-featured player (excluding the BASS formats) with the English interface.
If you are using Ay_Emul sources, algorithms and ideas, don't forget to credit the author of Ay_Emul.
Skins (visual themes) help transform the looks of the main window of Ay_Emul. The Skins folder of the Ay_Emul distributive contains all the skins available at the time of its preparation were added. They have been either found on the Internet, or sent by the users.
You can make your own skins using the Skin Manager II program, instructions and one of the skin templates. All skins and the aforementioned program are published on the official site of Ay_Emul in the "Emulator" section.
To add your skin to the future distributives and to the official site of Ay_Emul, you can send it to the author of Ay_Emul.
The most actual version of Ay_Emul is version 2.9. If you are updating and want the files to be correctly supported by Windows Explorer, do not forget to press the "Register" button in the "Tools" window at first run (even if you updating beta versions). The experimental (and rather obsolete) Ay_Emul 3.0 alpha is in an embryonic state, the VCL/LCL component library is not used in it (alpha 11 uses the KOL library, alpha 9, available in the source section, only WinAPI), due to which the size of the executable file is an order of magnitude smaller. The sources of these and other Ay_Emul versions can be downloaded from the For Developers section.
The most recent stable versions of Ay_Emul
||AY-3-8910/12 Emulator version 2.9 for Windows (the 32-bit build)
||AY-3-8910/12 Emulator version 2.9 for Windows (the 64-bit build)
||AY-3-8910/12 Emulator version 2.9 for Linux (the 32-bit build)
||AY-3-8910/12 Emulator version 2.9 for Linux (the 64-bit build)
Historical versions of Ay_Emul
||AY-3-8910/12 Emulator version 2.9 beta 16 for Windows (the last version supporting Windows 98)
Experimental versions of Ay_Emul
||AY-3-8910/12 Emulator version 3.0 alpha 11
User-corrected skin versions
||The skin "breeze" by breeze (fixed by TAD)
||The skin "Denvil" by Denvil (several remakes by TAD)
Read more on unpacking the archive files at the Unpacking page.
Music for Ay_Emul can be found in the Music Archive section.