113 Commits

Author SHA1 Message Date
Felipe Tavares
ea81928e39
Fast-Forward Audio Resampling (#15173)
* 🎵 Fast forward audio resampling. Solves #15160.

Previously, we avoided doing any resampling while fastforwarding based
on the assumption it was impossible to make the audio not crackle due to
both flush-to-flush timing fluctuations and timer accuracy.

However, turns out this is not the case. The audio doesn't "crackle" per
se when the timing fluctuates! It's just that the sounds don't make
sense since the time compression and decompression caused by the flush
time fluctuations mess with the audio consistency.

To work around that, we introduce a running average flush delta time
that makes sure the audio is both resampled to approximately the correct
rate and consistent.

This was tested in two settings:

- Limited rate fastforwarding (2x-4x)
- Unlimited fastforwarding

In both cases it seems to work well, but with unlimited fastforwarding
it's just high pitched and annoying, so this is probably the most useful
in the 2x to 4x range.

* Move declartion to support C89

* resampling ratio upper and lower bounds

* Add toggle for speeding up audio
2023-04-20 17:14:47 +02:00
Skirlez
f84093496f implement scrolling sounds for ozone
using roughly the same implementation for the ok/notice/cancel sounds, but i've made an exclusive function for scrolling since it's going to be called a lot more than those sounds
2023-01-03 19:34:35 +01:00
LibretroAdmin
fcbd72dbf3
Use flags pt4 (#14497)
* * Use flags for rarch_state
* Get rid of ^M linebreaks in retroarch_types.h

* Buildfixes for consoles

* (audio driver) use flags instead of bools

* (video) Use flags instead of bools

* Rewrite input driver state bools into flags
2022-10-08 10:39:15 +02:00
jdgleaver
e3217b4a35
Remove frame limit from audio batch callback (#13333) 2021-12-06 18:11:46 +01:00
twinaphex
514ed00f2d Move configuration state over to configuration.c - take it out of
p_rarch
2021-11-03 21:22:37 +01:00
twinaphex
d87e0c1744 * Fix implicit declaration
* Move more code to gfx/video_driver.c
2021-10-13 16:36:38 +02:00
twinaphex
e47e9968ed Move audio_driver_menu_sample to audio_driver.c and turn
audio_driver_flush into static function
2021-10-13 16:29:41 +02:00
Autechre
e7f182811a
Split up audio code into new file audio/audio_driver.c (#13097)
* Split up audio code into new file audio/audio_driver.c

* Fix build issues #1

* Small cleanup

* Fix typo
2021-10-11 18:01:37 +02:00
twinaphex
127bf556c7 Merge audio_driver.c into retroarch.c 2019-06-17 12:49:21 +02:00
Brad Parker
10df615d14 add "Send Debug Info" option under Help 2019-03-07 19:17:54 -05:00
twinaphex
829aedc6e2 (Video/Audio) Remove 'own driver' mechanism 2019-02-27 17:09:15 +01:00
twinaphex
6aca340927 (OSX) Add CoreAudio V3 driver from stuartcarnie 2019-01-31 23:14:56 +01:00
twinaphex
fe02db911d Header include cleanups 2019-01-31 20:36:39 +01:00
twinaphex
000646e51e Update header includes 2019-01-31 19:06:27 +01:00
Brad Parker
90db5e7e27 Implement in-menu sound effects 2019-01-27 11:22:16 -05:00
twinaphex
fc57b41ab6 (Audio mixer) You can now specifically set a slot to load a sound in
- set type to AUDIO_MIXER_SLOT_SELECTION_MANUAL and set idx to the
slot you want to load in (begins at 0)
2019-01-18 00:24:31 +01:00
twinaphex
65d5de6674 Add 4 additional mixer slots for system sound effects and music
for menu
2019-01-17 03:03:46 +01:00
nia
3ef9bbb592 Add an AudioIO dirver for NetBSD and Solaris. 2018-12-21 14:15:30 +00:00
Francisco Javier Trujillo Mata
0880bd00b0 PS2 is compiling with null drivers 2018-11-09 22:40:50 +01:00
twinaphex
2a7a2e7dee (LIBNX) Start backporting libnx code; beginning with audio drivers 2018-09-12 08:14:17 +02:00
twinaphex
ea77fbbd38 Increase max streams from 8 to 16 2018-05-02 23:42:39 +02:00
twinaphex
ab360ae3ac (Audio mixer) Add Sequential playback mode 2018-05-02 21:43:16 +02:00
twinaphex
9fbfd503af Add value descriptions for audio mixer streams 2018-05-02 20:13:13 +02:00
twinaphex
5aeab54ab7 (Audio mixer) Ability to individually set volume per stream 2018-04-30 17:51:01 +02:00
twinaphex
49341bac26 Add Play/Play (Looped) actions 2018-04-30 15:04:29 +02:00
twinaphex
965859ddcb Start adding mixer controls - ability to stop and remove loaded tracks 2018-04-30 14:34:25 +02:00
twinaphex
773fc1ebad Create audio_driver_menu_sample 2018-04-29 00:06:54 +02:00
twinaphex
875450e228 Statistics - add sample count 2018-03-24 15:42:45 +01:00
twinaphex
9343eacc0a Create public function compute_audio_buffer_statistics 2018-03-24 12:25:52 +01:00
Dwedit
7deeb6d2fa Functions to enable and disable audio and video, and an environment function to query status of audio and video enables 2018-03-23 14:12:05 -05:00
twinaphex
b9248cf3af Start preparing runtime toggleable resampler quality settings 2017-12-31 20:55:26 +01:00
misson20000
033a7259b4 audio driver for the switch 2017-12-29 00:10:01 +01:00
gblues
6904101c44 Clean up trailing whitespace
== DETAILS

Really simple code cleanup, because my editor flags trailing whitespaces
and it's pretty annoying.
2017-12-12 00:24:18 -08:00
Charlton Head
4ad5f67663 TinyALSA support 2017-06-23 20:44:00 -05:00
twinaphex
cdf7a403ea Add audio mixer mute enable 2017-06-08 23:53:24 +02:00
twinaphex
8f5f3d15f3 Add AUDIO_ACTION_MIXER_VOLUME_GAIN 2017-06-08 22:38:54 +02:00
twinaphex
420d0d0607 Get rid of audio_driver_set_volume_gain 2017-06-08 22:24:51 +02:00
twinaphex
5851d103d0 Add 'Add to Mixer' option for Ogg/WAV files inside the music tab 2017-05-27 21:03:17 +02:00
twinaphex
5343648dc9 Start creating state machien for audio mixer streams 2017-05-18 06:16:16 +02:00
twinaphex
67610b8263 Update task_audio_mixer.c 2017-05-15 11:07:12 +02:00
twinaphex
99e7cb7d75 Only need to grab settings pointer from within audio_driver_flush
now when setting slowmotion
2017-05-08 21:50:21 +02:00
twinaphex
097515fa63 No longer have to grab settings pointer to get audio mute value 2017-05-08 21:39:08 +02:00
twinaphex
3fb630c571 Get rid of is_perfcnt_enable for audio_driver_write function 2017-04-20 10:15:11 +02:00
twinaphex
e21df42ec1 Turn function static 2017-04-18 03:59:15 +02:00
twinaphex
8aa7ae168e Remove unused function 2017-04-18 03:54:53 +02:00
Zoran Vuckovic
129151d5fc add wasapi audio driver 2017-04-11 00:24:37 +02:00
twinaphex
eacac11abd Add more documentation to audio_driver.h 2017-01-26 02:36:48 +01:00
twinaphex
e74853750b (audio driver) Pass is_perfcnt_enable boolean variable to audio
driver write function
2017-01-25 17:30:50 +01:00
twinaphex
90bc170829 Get rid of runloop_ctl calls inside audio drivers 2017-01-22 18:05:07 +01:00
twinaphex
96c8ca5a09 Header update #1 2017-01-22 13:40:32 +01:00