Commit Graph

54 Commits

Author SHA1 Message Date
Stephen Anthony ce9b832f68 Improvements to logging for sound settings.
- Now shows all settings from AudioSettings (preset, resampler, etc)
- Only logs sound info when the settings have actually changed (similar to Framebuffer info)
2018-09-05 14:05:56 -02:30
Stephen Anthony 09b3d980f3 Fixed 'stuck' notes when changing video modes.
This is most apparent in OSX, where toggling windowed/fullscreen mode can sometimes take up to one second,
and any sounds playing from the ROM become stuck until the operation completes.
Also present on other systems to some extent.
Sound is now muted until the operation is complete.
2018-08-31 20:52:56 -02:30
Stephen Anthony 46b07d14b5 Fixes for warnings from Coverity. 2018-08-28 22:13:02 -02:30
Stephen Anthony e5fb010631 Allow sound sample rate/fragment size to change dynamically.
- Move sound debugging output to logging facilities
- This should fix issue #348, but more testing is required

Bumped version # for beta release.
2018-08-28 11:01:52 -02:30
Stephen Anthony 915e62f466 Fixed a few more warnings, and marked some code for later research. 2018-08-19 22:40:57 -02:30
Stephen Anthony 403f08e473 Clang strikes again :) Fix minor warning from clang compiler. 2018-08-10 08:51:03 -02:30
Christian Speckner f1a384fa83 Terminate audio after the SoundSDL2 has been destroyed. 2018-08-10 00:46:56 +02:00
Christian Speckner 95867f91cd Switch to SDL_OpenAudioDevice & friends, fix silence with very tight buffer
settings.
2018-08-10 00:46:39 +02:00
thrust26 21092b61be removed non-linear volume calculation 2018-07-11 22:37:21 +02:00
Stephen Anthony d8b4228ead Fixes for minor compile warnings in clang 6 and gcc 8.
Sorry that this is all I've been able to contribute for the past few weeks :(
2018-07-01 21:15:15 -02:30
Christian Speckner 47bbdb679e Remove unnecessary code, don't spam if audio is disabled. 2018-06-24 22:48:28 +02:00
Christian Speckner ef5261689a Major audio settings overhaul. 2018-06-23 00:58:28 +02:00
Stephen Anthony 741515a520 Fix minor compile warnings generated by clang:
- mostly change pointer -> 0 to use 'nullptr'
 - some commenting and formatting fixes
2018-05-11 21:01:40 -02:30
Christian Speckner 2da0ffa2f5 Rework available sampling rates (44100, 44800, 96000), add resampling.quality parameter. 2018-05-12 00:15:29 +02:00
Christian Speckner 1b0fb381d0 Lanczos resampling. 2018-05-11 23:52:00 +02:00
Christian Speckner b329c7ff5f Switch to F32 samples, make volume scale more linear in sound.. 2018-05-10 23:54:52 +02:00
Christian Speckner 3bac41dd46 Factor out resampling. 2018-05-09 00:38:01 +02:00
Christian Speckner 068dcad4a4 Remove hardcoded limit on sample rate. 2018-05-06 23:50:52 +02:00
Christian Speckner d2c930886b Sanitize and match emulation timing
-> no more perceivable audio latency
-> fewer underruns
2018-05-05 00:47:48 +02:00
Christian Speckner c905b01fca Merge branch 'master' into feature/precise-audio 2018-04-25 22:49:00 +02:00
Stephen Anthony 524cec907a Updated Windows build to support SDL 2.0.8. 2018-03-24 14:47:18 -02:30
Christian Speckner 803b85343a Tuning. 2018-02-03 01:23:19 +01:00
Christian Speckner cb89d09c7f Refactoring: remove framerate from OSystem and Console. 2018-02-03 01:01:02 +01:00
Christian Speckner f87316bfdb Dynamically adjust fragment buffer size based on fragmen size and period. 2018-01-29 00:09:21 +01:00
Christian Speckner c5aad2ae7a Volume adjustment. 2018-01-29 00:09:21 +01:00
Christian Speckner ae88a5b6b6 Fix crash on audio settings change. 2018-01-29 00:09:21 +01:00
Christian Speckner 6b984a8563 Avoid race condition in pause, switch to shared_ptr for simpler semantics. 2018-01-28 00:27:25 +01:00
Christian Speckner 4528b9067a Assorted fixes -> works (module timing glitches). 2018-01-25 22:48:00 +01:00
Christian Speckner 8198f6ccaf Crackling and screeching.... but it is correlated with the TIA :) 2018-01-25 20:48:34 +01:00
Christian Speckner 317f7391c2 Merge branch 'master' into feature/precise-audio 2018-01-15 23:53:35 +01:00
Stephen Anthony 3d879d0080 Updated copyright date to 2018. A few days early, but nobody will mind ... 2017-12-29 17:10:37 -03:30
Stephen Anthony 93dcc9807d Integrate 'TIATypes' into 'TIAConstants'; they serve the same purpose. 2017-12-22 23:47:07 -03:30
Christian Speckner e88751638b Gut current audio code. 2017-12-01 23:17:16 +01:00
Stephen Anthony ebb8725126 Refactor System::myCycles to be 64-bit instead of 32-bit.
- The cycles counter is now essentially monotonically increasing (ie, we never need to worry about it going backwards and giving a negative difference, simplifying a lot of code
- There are now reset() methods in all places that keep track of system cycles, but they are used for a full reset only; not called each frame like before (which had to be done to prevent overflow).
2017-09-08 11:29:30 -02:30
Stephen Anthony 025a1a7918 Minor refactoring, slight speedup of passing data in sound code. 2017-08-02 19:21:36 -02:30
Stephen Anthony cd689941b6 Move to C++14, now that all the minimum required compilers support it.
Clang 3.8, gcc 5, Visual Studio 2017 and Xcode 8 are now the minimum
supported compilers, and they all support C++14, so we may as well use it.

 - Change all make_ptr to make_unique
 - Change iterator begin(), end(), etc to const versions where appropriate
 - Remove UniquePtr, since C++14 supports it natively
2017-07-21 21:10:13 -02:30
Stephen Anthony 38deb5b1cf Potential fix for compile failure on ppc64le / SDL2. 2017-04-20 15:21:55 -02:30
Stephen Anthony abb7097cb7 Removed $Id$ stuff from codebase, since it's Subversion-specific.
Whitespace cleanup and update copyright to 2017.
2016-12-29 20:30:30 -03:30
Christian Speckner a99a4e1efd Stub implementation of new core. 2016-11-08 01:26:57 +01:00
stephena 1ecfee71e7 Reverted new TIA sound code until it is more mature. There are other
improvements in the pipeline waiting to be done, and are being delayed
by the sound stuff.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3310 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-08-18 18:44:57 +00:00
stephena 81e9480100 OK, this is the first pass at adding the new TIA sound emulation
core to Stella, as outlined in a thread on AtariAge.  It's currently
not working 100% due to timing issues with the TIA class.

Expect breakage over the next few months, as this code and the TIA
code in general will be borked from time to time.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3306 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-04-03 17:15:19 +00:00
stephena 8f2d3a6cbb Updated copyright to 2016, even though it's a few days early.
To anyone reading this, Merry (belated) Christmas and Happy New Year!


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3239 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-12-29 19:22:46 +00:00
stephena 9e23bc3580 Some bugs indicated by running Stella through Coverity. Note that many
of these aren't actually bugs per-se, but are to follow good programming
practices.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3234 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-12-05 01:30:17 +00:00
stephena d83d91570e More clang warnings fixed; these apply mostly to 'old-style-C' casts.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3205 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-09-14 21:33:50 +00:00
stephena 38dce5194e Some minor improvements, self-documentation, etc.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3191 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-08-09 18:07:04 +00:00
stephena c7ef1607be Some code cleanups.
Added updated C++14 make_unique templates, which now allow to also
use unique_ptr for arrays.

Updated SoundSDL class to use unique_ptr, eliminating another new/delete
pair.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3171 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-06-13 23:58:37 +00:00
stephena 7c0fc50a2f Fixed sound corruption upon starting the app; we need to continuously
write 'silence' to the sound card until there is available data to use.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3152 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-03-17 17:45:08 +00:00
stephena 0afb189322 Updated copyright to 2015. Happy New Year to anyone reading these logs :)
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3131 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-01-01 03:49:32 +00:00
stephena 6c900cdec5 Some minor code cleanups, and converting 0 to nullptr.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3106 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-12-13 21:00:33 +00:00
stephena 79ada8685c The long march to converting Stella to C++11 has finally started. Already,
I've found and fixed a few memory leaks.  You will need an up-to-date compiler.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3031 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-11-02 23:40:20 +00:00