Giter VIP home page Giter VIP logo

saasound's Introduction

SAA SOUND is a software emulation library for the Philips SAA-1099 sound chip device (popular in computing and gaming devices in the late 1980's / early 1990's). Development of SAA SOUND began around 1996 with completion around 1999 and active development ending around 2001 (aside from an update in 2004 to address an issue with frequency generator SYNC behaviour that was exploited to generate digital audio in a demo from Fred 59 magazine, which was failing to be emulated correctly!)

Simon Owen (author of SimCoupe) made additional infrastructure changes to support compilation on a variety of different platforms. The latest releases of SAASound.dll continue to be compatible with the released version (1.0) of SimCoupe .

After a considerable time, the original author revisited the project in August 2018 following a conversation about emulation accuracy, which he intends to continue to improve following some recent reverse-engineering efforts of original hardware by the DosBox team, in conjunction with some crowd-sourced test cases comparing emulated behaviour to real original devices.

It has been incorporated into standalone chiptune players, computer hardware emulators (e.g. SimCoupe), and has even been the basis of SAA-1099 hardware emulators implemented in FPGA devices (such as MiST / MiSTer)

Moved permanently to: https://github.com/stripwax/SAASound/

To use with SimCoupe (https://github.com/simonowen/simcoupe) :

  • If using version 1.0 of SimCoupe, or any version from 20200117 and newer, simply copy the SAASound.dll from this repository, over the top of the SAASound.dll in your installed version of SimCoupe
  • If using version 1.1 Alpha of SimCoupe, this has an embedded version of SAASound built-in. This means you cannot replace the SAA Sound version. You should probably upgrade to a more recent build of SimCoupe

saasound's People

Contributors

davidhooper-bpi avatar simonowen avatar stripwax avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

saasound's Issues

x64 release of development build?

Since SimCoupe now defaults to an x64 install (on Windows), the 32-bit development-bleeding-edge dlls no longer work.
For SimCoupe this is not a problem since Si is compiling the SAASound sources as part of the build.

Any chance of an x64 development bleeding edge dll release?

WritePCMOutput file names

When debug mode is enabled, files are named:

<base>0
<base>1
<base>2
<base>3
<base>4
<base>5

With <base> generally being saa.pcm, making this:

saa.pcm0
saa.pcm1
saa.pcm2
saa.pcm3
saa.pcm4
saa.pcm5

If <base> contains a file extension, could the channel number be inserted, leaving the file extension intact?

saa.0.pcm
saa.1.pcm
saa.2.pcm
saa.3.pcm
saa.4.pcm
saa.5.pcm

EnvExt_34 tests failing

Seems I broke something in the latest huge batch of changes, and now the env generators are generating the wrong envelopes

Too high runtime requirements in Windows

As you know I use SaaSound in my ASCD emulator. And ASCD is built with Visual Studio 2005 so it cleanly supports all operating systems from Windows 2000 to Windows 10. (Pre-2000 versions are not supported just because my timer code uses NT-kernel. This could be rewritten to support even older systems, but that's not really needed.)

In contrast to that, your SaaSound is compiled with Visual Studio 2017 which supports only Windows Vista and above and your DLL file also depends on VCRUNTIME140.DLL file which comes from Visual Studio 2017 and it is not present by default on each machine and people needs to search internet to get it (if they don't have it already from some other program).

I assume these restrictions are not needed and they are just caused by using that particular C++ compiler. So it would be nice if you could at least recompile it with static CRT library which would remove that VCRUNTIME140.DLL dependency. (I am not sure about those older Windows, how far it is compatible or not. We can test it.)

Your DLLs are binary-compatible with older versions, exactly as you stated in documentation, but only as far as people have that dependency DLL on their computer and use a new-enough operating system. :-) So I am thinking about recompilation in an older Visual Studio, but the project files are not backward compatible and cannot be opened directly in there.

Logarithmic volume?

In his recently published book Beep to Boom: The Development of Advanced Runtime Sound Systems for Games and Extended Reality, Simon N Goodwin writes:

The volume controls of POKEY, TIA and SID supported 4-bit linear output in 15 even-sized steps. The AY, TI and SAA chips were superior in that respect because their volume controls used logarithmic 2 dB steps. Such non-linear volume controls are sensibly psychoacoustically weighted, so that each step up or down in volume sounded equivalent to the logarithmic human ear, but taking advantage of this requires that recordings made with a linear analogue-to-digital converter should be captured at much higher resolution and re-scaled as part of the conversion process.

I tried reading the source code - and failed - are SAASound's volumes logarithmic?

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.