Commit Graph

347 Commits

Author SHA1 Message Date
twinaphex 70e64897be Fixes PC build 2013-01-17 14:24:26 +01:00
twinaphex 3b43155b06 rarch_console_rsound.c code moved to audio/utils.c 2013-01-17 14:21:49 +01:00
Themaister f3309b8997 Compiled XAudio as C++.
No point hacking around with vtables in C and shit ...
2013-01-11 01:13:55 +01:00
twinaphex 6795d74025 (XAudio2) Fix Xbox360 build 2013-01-10 16:33:29 +01:00
Themaister b1eb277d1f Actually use 2.7 CLS id ... 2013-01-10 16:39:39 +01:00
Themaister bd483fbb6b Use XAudio2 2.7 CLS. 2013-01-10 16:33:14 +01:00
Themaister a0f12d6887 Correct XAudio2 interface. 2013-01-10 16:22:39 +01:00
Themaister dec73e17ef Refactor out some redundancies. 2013-01-10 11:05:55 +01:00
Themaister f3da29706c Fix build on Windows. 2013-01-10 10:55:14 +01:00
twinaphex cd28dbcd92 (360) Uses the same Xaudio header now as PC 2013-01-10 02:46:35 +01:00
twinaphex 436f05709b (360) Xaudio2 360 driver uses same C backend file as PC now 2013-01-10 01:53:37 +01:00
twinaphex 11c1d149d6 (Xaudio) indenting nits 2013-01-09 22:17:43 +01:00
twinaphex 589b5eefdb (360) 360 audio driver now goes through the same Xaudio driver
as PC
2013-01-09 22:04:28 +01:00
twinaphex 05863ffe31 (360) Move xaudio.h header to audio/xaudio-c/xaudio_xdk360.h 2013-01-09 20:57:20 +01:00
ToadKing aed2aa146c copyrights 2013-01-04 15:02:40 -05:00
ToadKing fd0bb1b3ee make alsathread a seperate audio driver 2013-01-04 14:58:34 -05:00
Themaister 0b4cf2d053 Update license headers to 2013. 2013-01-01 01:41:15 +01:00
Themaister e3a0668f55 Fix segfault when samples < 8 on NEON. 2012-12-28 21:25:41 +01:00
Themaister 6bb2349833 Kill off external driver plug interfaces.
These are too much work to maintain, and aren't really all
that useful.
2012-12-22 11:37:15 +01:00
OV2 a193bac6a1 Fix hermite compile 2012-12-19 20:01:12 +01:00
twinaphex 5598c75071 (OpenSL) Get rid of Android-specific hack 2012-12-11 14:16:47 +01:00
notaz f6de3722ef (utils_neon) Don't use callee-save registers 2012-12-09 18:58:47 +02:00
notaz 17f42531c3 (sinc_neon) Don't use callee-save registers
fixes a crash on ARM Linux.
2012-12-09 18:30:05 +02:00
notaz 16edc7c80e Add ARM NEON support for main build. 2012-12-09 18:30:04 +02:00
twinaphex 242d2d0d65 (Android) Fixes crippled performance on 4.1 (Jelly Bean) - I thought
4.1 - Jelly Bean - had a fast SL mixer? How to get lower latency with
this then?
2012-12-08 18:10:08 +01:00
twinaphex 3a3953aef3 (Android) Add back PHOENIX_LEGACY hack because new Phoenix frontend
doesn't work yet for me
2012-12-08 12:58:16 +01:00
twinaphex ecc2376e6f (Phoenix Legacy) Adding back phoenix legacy for now 2012-12-08 12:37:00 +01:00
Themaister 4adf390486 Actually align samples to 8. 2012-12-05 23:17:07 +01:00
Themaister eba6cfa3eb Fix build for NEON. 2012-12-05 23:04:44 +01:00
Themaister 36c595335b NEON optimized s16->float->s16. 2012-12-05 22:45:29 +01:00
twinaphex 2c2328d8a0 (NEON) Change WANT_NEON define back to HAVE_NEON 2012-12-04 07:57:31 +01:00
twinaphex 6a7e03aadb (Android) Fix sound - don't fix samplerate at 44Khz 2012-12-03 03:21:10 +01:00
twinaphex 7403faa608 HAVE_NEON define seems to give problems - WANT_NEON seems to work
- so quick-fix hack for now
2012-12-03 00:20:21 +01:00
twinaphex 63cf9247f1 (Hermite) Add log 2012-12-02 23:53:08 +01:00
twinaphex 1c9dec56a8 (NEON/Android) Some fixes 2012-12-02 23:50:32 +01:00
Themaister 2b04e1ece6 Start adding NEON sinc. 2012-12-03 00:22:51 +01:00
Themaister 511995311f Fix very stupid SINC bug.
Note to self: Don't write code when you're
an emotional wreck.
2012-12-02 16:57:04 +01:00
Themaister 92616a66a7 Fix variable shadowing in hermite. 2012-12-02 10:51:28 +01:00
twinaphex a2b0f9afb6 (Android) Set audio_out rate to 44100 2012-12-02 09:09:33 +01:00
twinaphex 623822126a (Android) Set buffer count to 4 instead of 8 for Jelly Bean and
higher - test experimental lower latency for fast OpenSL mixer
2012-12-02 07:32:28 +01:00
Themaister 78d0edc4aa Don't use a crazy large phase LUT. 2012-11-29 17:27:21 +01:00
Themaister c1a00fac4d Improve ratio accuracy in SINC. 2012-11-29 11:49:57 +01:00
Themaister f2e02bde1e Guard against high frequency aliasing a bit. 2012-11-25 14:54:07 +01:00
Themaister ccd1449aa8 Fix hermite cracking when ratio < 1.0. 2012-11-25 12:32:24 +01:00
twinaphex aae3b10169 Move baked-in dependencies to 'deps' directory 2012-11-20 03:34:45 +01:00
twinaphex 1d99cb62a2 (Xbox 1) Build fixes - don't compile in pragma comments for
XBOX
2012-11-15 14:24:56 +01:00
Themaister 0e729bcaa0 Style nits. 2012-11-15 09:40:31 +01:00
OV2 54d39dff74 win32: make d3d9 compile in msvc, add linker pragmas to source files 2012-11-14 21:07:06 +01:00
Themaister 752b7608e7 Fix audio test. 2012-11-07 23:42:23 +01:00
Themaister 6421fe248b Optimize SINC resampler.
Trade memory for performance. Avoid using linear interpolation
between phases.
2012-11-07 23:27:31 +01:00
Themaister bebe0d78a7 Optimize sinc for AVX as well.
Disable it for now however, as it's slightly slower
than SSE1 for the few taps we're using.

From testing, it's 10-20% faster when number of taps are increased.
The AVX path might need some more tuning, but it's fair to
assume the algorithm is memory bound.
2012-11-06 18:52:09 +01:00
Themaister 330e724f34 Use vec_madd instead of vec_mul.
vec_mul was apparently a POWER7 instruction.
2012-11-06 09:26:28 +01:00
twinaphex 876bf69a80 (PS3) Hack around vec_mul not being supported for PS3 VMX/Altivec
for now
2012-11-06 03:33:00 +01:00
Themaister 61a5b42ee7 Purge some more fixed point cruft. 2012-11-03 23:03:57 +01:00
Themaister aaefdbf27e Remove lingering HAVE_FIXED_POINT define. 2012-11-03 23:02:27 +01:00
Themaister 91edc8ff49 Add volume control.
It imposes no performance loss as it is performed
during s16->float conversion.

It is however grouped together with check_mute.
2012-11-03 14:15:03 +01:00
twinaphex 34f5d0ceb6 Revert "(OpenSL/Android) Reduce latency by going from 8 to 6 buffers"
This reverts commit 26d6d18a02.
2012-11-01 21:08:04 +01:00
twinaphex 26d6d18a02 (OpenSL/Android) Reduce latency by going from 8 to 6 buffers 2012-11-01 20:21:07 +01:00
Themaister 50d6080af5 Print more sensible output for SNR. 2012-10-31 00:03:15 +01:00
Themaister ff9167f56b Remove obsolete fixed-point test. 2012-10-30 23:54:30 +01:00
twinaphex 670289839f (Android/OpenSL) Improved latency - still not good enough though 2012-10-30 17:33:33 +01:00
twinaphex fb25f31598 (Android/OpenSL) Bigger audio buffers - bigger latency/longer
delay in audio, but no audio breakup - also applied -O3 and -funroll-loops
for Android Makefile - seems to help
2012-10-30 05:25:14 +01:00
twinaphex 033e94acfd (Android) Force audio input control rate in OpenSL ES driver 2012-10-30 03:50:18 +01:00
twinaphex 492bbc7d78 (OpenSL) Fix derp 2012-10-30 00:48:16 +01:00
Themaister 16d67a43cd Add rate-control interfaces to SL. 2012-10-30 00:40:05 +01:00
Themaister d9a903b293 Revert "Might improve audio performance in SL."
This broke stuff.
2012-10-30 00:37:00 +01:00
Themaister 5812a5e445 Might improve audio performance in SL. 2012-10-30 00:20:32 +01:00
twinaphex 6e79dd6046 (OpenSL) Fixed fall-through in sl_init 2012-10-30 00:05:24 +01:00
twinaphex dccfb80010 (OpenSL) compiles now 2012-10-30 00:01:47 +01:00
Themaister 1554f8ce2d Rewrite OpenSL driver (untested).
Use openal-soft-android as a starting point.
2012-10-29 23:55:36 +01:00
Themaister c92f1e8281 Do not fail in OSS if write() returns 0. 2012-10-23 22:27:15 +02:00
twinaphex 497f4dfb31 (OpenSL ES) Add workaround for OutputMix - setting volume not working
with Android OSL ES implementation - seems to fail at init now though
2012-10-18 08:03:21 +02:00
twinaphex 943ee288e1 (OpenSL ES) memset pcmData to 0 at init 2012-10-18 07:51:57 +02:00
twinaphex 26fcdae48b (OpenSL ES) Small nits 2012-10-18 07:33:45 +02:00
twinaphex 161afd98dc (OpenSL ES) OpenSL init seems to work now despite OutputMix interface
apparently being unsupported on Android. Included note for workaround.
2012-10-18 07:28:56 +02:00
twinaphex 6bf7c3cb06 Update credits for collaborated files 2012-10-18 06:06:55 +02:00
twinaphex 63238d3b67 (OpenSL) Add preliminary driver - OpenSL ES implementation in NDK
is a half-baked, half-implemented hackfest, so will have to go over
Android-specific examples to get this to work
2012-10-18 05:46:09 +02:00
Themaister be7a63932f Remove output_rate from DSP plug. 2012-10-16 12:54:58 +02:00
Themaister d027287d71 Leave some notes about downsampling. 2012-10-16 12:54:58 +02:00
Themaister a22193d83d Fix potential crash in hermite as well. 2012-10-15 23:13:51 +02:00
Themaister 34713f40d1 Fix spurious segfaults when ratio dips below 1. 2012-10-15 22:53:05 +02:00
twinaphex 174c7d9d98 (RARCH_CONSOLE) g_console struct removed now - console settings
now a part of g_extern and also compiled in for PC - will use
this for RMenu
2012-10-15 06:25:12 +02:00
Themaister 11b9f039b2 Remove some useless ifdefs. 2012-10-14 23:22:16 +02:00
Themaister b8abf34785 Purge some now useless code.
Removes manual input rate adjustments.
Don't allow DSP plugs to resample as it would complicate things alot
with dynamic rate control.
Also purges optional ssnes_* symbols for external plugs.
2012-10-13 20:22:45 +02:00
Themaister 254e711e2d Comment out spammy error message. 2012-09-25 13:33:11 +02:00
Themaister c472688663 Do not segfault when snd_pcm_avail_update() fails. 2012-09-24 16:40:51 +02:00
Themaister d4712d97c9 Fixup error checking in ALSA. 2012-09-14 21:41:58 +02:00
Themaister 82d726f6dd Add some diagnostics for ALSA. 2012-09-10 21:25:03 +02:00
Themaister 6a169513c9 Allow ~/ to be used in config for regular paths on *nix. 2012-09-07 22:20:49 +02:00
Themaister 29a1e7ac27 Purge some still lingering SSNES-isms. 2012-09-07 21:56:26 +02:00
twinaphex eca2c09fdd (Xbox 1 RMenu) Add sound volume level setting 2012-08-22 16:59:12 +02:00
Themaister 2234073c2f Readding static to globals in dsound. 2012-08-17 23:20:08 +02:00
twinaphex 6a08c92ada (Xbox 1) Cut down on some static variables 2012-08-17 17:45:14 +02:00
Themaister bfdb1615b5 Style nitting. 2012-07-25 04:50:46 +02:00
freakdave 64378ea072 (Xbox 1) Fixed low volume issue 2012-07-19 16:53:24 +02:00
twinaphex c676341404 (Xbox 1) DirectSound works 2012-07-08 19:30:19 +03:00
Themaister 45481634f2 Add tests for fixed point sinc. 2012-07-06 17:04:54 +01:00
Themaister 7b12182a0f Add optional fixed point resampler. 2012-07-06 17:36:37 +02:00
TwinAphex51224 e4e7216b90 Revert rarch_stdint.h references 2012-06-24 21:55:36 +02:00
TwinAphex51224 d5bb5fd7af (Xbox 1)) Changes 2012-06-24 21:25:11 +02:00
Themaister e5b3a61f9f Replace use of unsafe strtok() with strtok_r.
Implement compatibility for strtok_r() on Win32.
2012-06-24 02:37:19 +02:00
Themaister acda9dea35 Forgot to commit null drivers ... 2012-06-20 00:44:40 +02:00
Themaister 2b712f5f46 Avoid ifdef. 2012-05-22 15:34:53 +02:00
Themaister 4debf60bad Do not output FFT sanity test to stdout. 2012-05-08 13:02:29 +02:00
Themaister bc604f5029 Output SNR results to CSV. 2012-05-08 12:55:12 +02:00
Themaister 3878e81ce4 Improve SNR measurement. 2012-05-08 12:14:03 +02:00
Themaister 6b6e1556f6 Clean up ALSA plug a bit. 2012-04-25 19:49:56 +02:00
Themaister b95b101a37 Add compat to external APIs. 2012-04-21 23:36:55 +02:00
Themaister ce740f8948 More fixups. 2012-04-21 23:31:57 +02:00
Themaister aab8fb6151 ssnes_* => rarch_*. 2012-04-21 23:25:32 +02:00
Themaister 9ab51ad23a SSNES => RetroArch. 2012-04-21 23:17:43 +02:00
Themaister 8fed2d1efb Should fix high CPU bug in Pulse. (Thanks to fable2012). 2012-04-18 20:30:32 +02:00
Themaister 00fd46c0f6 Style nit. 2012-04-18 20:19:58 +02:00
Themaister 9f0211d9d7 Fixup C++ build. 2012-04-09 22:30:29 +02:00
Themaister e3a71a8c5b Fixup headers. 2012-04-09 22:05:26 +02:00
Themaister 62c96ea937 Change license header. 2012-04-09 22:03:57 +02:00
Themaister 9698cd7dbd Change headers. 2012-04-09 22:03:57 +02:00
Themaister eca337ee55 Allow device to be selected in DirectSound. 2012-03-30 20:09:40 +02:00
Themaister 996d6d25b7 Add support to select device in XAudio2. 2012-03-30 19:53:12 +02:00
Themaister 36885e35d7 Kill obsolete test code. 2012-03-12 22:02:34 +01:00
Themaister 449b08e9d5 Fix warning. 2012-03-04 23:17:27 +01:00
TwinAphex51224 4b67a3c59e (PS3) Compiles in rsound now 2012-03-01 21:32:01 +01:00
Themaister 59dbc4727b Generate for rest of slide window. 2012-02-28 23:01:18 +01:00
Themaister 57e17d9b14 Optimize resampler some more. 2012-02-28 22:58:19 +01:00
Themaister 18aebfedc2 Test for IDFT. 2012-02-28 00:52:49 +01:00
Themaister c8173aaf62 Calculate imaginary part correctly. 2012-02-28 00:29:45 +01:00
Themaister c975145914 Use omega to report response. 2012-02-27 21:34:31 +01:00
Themaister 2fecfc7fca Drop phase measurement as they're kinda useless. 2012-02-27 21:13:50 +01:00
Themaister 24817543e0 Implement FFT for better SNR verification. 2012-02-27 19:49:00 +01:00
Themaister afa6776b1d Add cutoff. 2012-02-26 19:18:51 +01:00
Themaister 9b4a91fd29 Add rate control to coreaudio. 2012-02-26 01:22:07 +01:00
Themaister b4fe5198b3 Win32 doesn't have memalign ... 2012-02-25 22:37:40 +01:00
Themaister 37ed625bab Use shuffles/movehl. 2012-02-25 21:47:40 +01:00
Themaister a5c47a568e Attempt to measure phase distortion as well. 2012-02-25 21:17:48 +01:00
Themaister 3dc5b21b78 Use lanzcos instead (better SNR). 2012-02-25 16:45:06 +01:00
Themaister bdc8cd1cb1 Apply deltas to last phase as well. 2012-02-25 16:33:33 +01:00
Themaister 6643bf3e1c Use floating point for sample offsets. 2012-02-25 14:31:57 +01:00
Themaister cd54cc6822 Improve SNR testing routines. 2012-02-25 14:02:56 +01:00
Themaister 5f330cbfa5 Fix printf format. 2012-02-25 01:50:08 +01:00
Themaister 9bad6f2bba Add resampler tests. 2012-02-25 01:47:23 +01:00
Themaister 0496ffc007 Optimize sinc resampler a bit. 2012-02-24 21:01:29 +01:00
Themaister 1ea4b5ce7c Fix build. 2012-02-23 23:57:35 +01:00
Themaister f5a4ea55f5 Add sinc resampler. 2012-02-23 23:53:18 +01:00
Themaister aecd9a1ecb Rename resampler functions to something more generic. 2012-02-23 23:22:08 +01:00
Themaister 341baf6918 If samplerate is not supported, do not fail. 2012-02-21 23:39:50 +01:00
Themaister d68658b7fb Merge branch 'ratecontrol' 2012-02-20 18:40:07 +01:00
Themaister c833a71d2c Rate control for Pulse and Jack. 2012-02-20 18:39:50 +01:00
Themaister 6f04c38fda Use larger fragsize for OSS. 2012-02-20 18:30:26 +01:00
Themaister fe2134cb8c Fix warning. 2012-02-15 20:19:29 +01:00
Themaister 80372f54a6 Add rate control calls for more backends. 2012-02-14 16:58:13 +01:00