RetroArch/menu
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
..
cbs Fast-Forward Audio Resampling (#15173) 2023-04-20 17:14:47 +02:00
drivers (XMB) Horizontal icon animation fix (#15093) 2023-03-14 00:36:39 +01:00
menu_cbs.h Get rid of obsolete HAVE_VIDEO_LAYOUT - obsolete spec, was only 2023-02-23 21:03:41 +01:00
menu_contentless_cores.c Revert "Header cleanups - don't include retroarch.h everywhere" 2023-01-08 09:05:46 +01:00
menu_defines.h Move enum screensavers to menu_defines.h 2022-11-27 23:08:14 +01:00
menu_dialog.h More hotkey cleanups (#14657) 2022-11-22 14:45:30 +01:00
menu_displaylist.c Fast-Forward Audio Resampling (#15173) 2023-04-20 17:14:47 +02:00
menu_displaylist.h Get rid of obsolete HAVE_VIDEO_LAYOUT - obsolete spec, was only 2023-02-23 21:03:41 +01:00
menu_driver.c Replay UI support (#15048) 2023-03-03 00:52:22 +01:00
menu_driver.h Replay UI support (#15048) 2023-03-03 00:52:22 +01:00
menu_entries.h Menu switch icon corrections (#14766) 2022-12-25 18:17:16 +01:00
menu_explore.c Revert "Header cleanups - don't include retroarch.h everywhere" 2023-01-08 09:05:46 +01:00
menu_input_bind_dialog.h (menu) move headers around - no more menu/widgets 2020-06-27 19:33:49 +02:00
menu_input.h Silence more -Wdocumentation warnings 2022-07-15 01:12:04 +02:00
menu_screensaver.c Reduce tertiary operators 2022-09-13 10:28:03 +02:00
menu_screensaver.h Revert "Header cleanups - don't include retroarch.h everywhere" 2023-01-08 09:05:46 +01:00
menu_setting.c Fast-Forward Audio Resampling (#15173) 2023-04-20 17:14:47 +02:00
menu_setting.h Get rid of menu_setting_ctl 2021-03-11 08:38:53 +01:00
menu_shader.h Append Preset (#14737) (#14757) 2022-12-22 21:36:32 +01:00