rockbox/apps/plugins/sdl/SDL_mixer
Aidan MacDonald 5b27e2255a Add perceptual volume adjustment
The perceived loudness change of a change in volume depends
on the listening volume: at high volumes a 1 dB increment is
noticeable, but at low volumes a larger increment is needed
to get a comparable change in loudness.

Perceptual volume adjustment accounts for this fact, and
divides the hardware volume range into a number of steps.
Each step changes the dB volume by a variable amount, with
most of the steps concentrated at higher volumes. This
makes it possible to sweep over the entire hardware volume
range quickly, without losing the ability to finely adjust
the volume at normal listening levels.

Use "Volume Adjustment Mode" in the system settings menu
to select perceptual volume mode. The number of steps used
is controlled by "Number of Volume Steps". (Number of steps
has no effect in direct adjustment mode.)

It's still possible to set a specific dB volume level from
the sound settings menu when perceptual volume is enabled,
and perceptual volume does not affect the volume displayed
by themes.

Change-Id: I6f91fd3f7c5e2d323a914e47b5653033e92b4b3b
2023-01-22 21:19:57 +00:00
..
native_midi
timidity Add perceptual volume adjustment 2023-01-22 21:19:57 +00:00
CHANGES
COPYING
dynamic_flac.c
dynamic_flac.h SDL: Silence a large number of compile warnings (WIP) 2020-04-11 19:29:47 +02:00
dynamic_fluidsynth.c
dynamic_fluidsynth.h
dynamic_mod.c
dynamic_mod.h SDL: Silence a large number of compile warnings (WIP) 2020-04-11 19:29:47 +02:00
dynamic_mp3.c
dynamic_mp3.h SDL: Silence a large number of compile warnings (WIP) 2020-04-11 19:29:47 +02:00
dynamic_ogg.c
dynamic_ogg.h SDL: Silence a large number of compile warnings (WIP) 2020-04-11 19:29:47 +02:00
effect_position.c
effect_stereoreverse.c
effects_internal.c
effects_internal.h
fluidsynth.c
fluidsynth.h
load_aiff.c
load_aiff.h
load_flac.c
load_flac.h
load_ogg.c
load_ogg.h
load_voc.c
load_voc.h
Makefile.in
mixer.c
music.c SDL: Silence a large number of compile warnings (WIP) 2020-04-11 19:29:47 +02:00
music_cmd.c
music_cmd.h
music_flac.c
music_flac.h
music_mad.c
music_mad.h
music_mod.c
music_mod.h
music_modplug.c
music_modplug.h
music_ogg.c
music_ogg.h
playmus.c
playwave.c
README
wavestream.c SDL: Silence a large number of compile warnings (WIP) 2020-04-11 19:29:47 +02:00
wavestream.h

SDL_mixer 1.2

The latest version of this library is available from:
http://www.libsdl.org/projects/SDL_mixer/

Due to popular demand, here is a simple multi-channel audio mixer.
It supports 8 channels of 16 bit stereo audio, plus a single channel
of music, mixed by the popular MikMod MOD, Timidity MIDI and SMPEG MP3
libraries.

See the header file SDL_mixer.h and the examples playwave.c and playmus.c
for documentation on this mixer library.

The mixer can currently load Microsoft WAVE files and Creative Labs VOC
files as audio samples, and can load MIDI files via Timidity and the
following music formats via MikMod:  .MOD .S3M .IT .XM. It can load
Ogg Vorbis streams as music if built with Ogg Vorbis or Tremor libraries,
and finally it can load MP3 music using the SMPEG or libmad libraries.

Tremor decoding is disabled by default; you can enable it by passing
	--enable-music-ogg-tremor
to configure, or by defining OGG_MUSIC and OGG_USE_TREMOR.

libmad decoding is disabled by default; you can enable it by passing
	--enable-music-mp3-mad
to configure, or by defining MP3_MAD_MUSIC
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
WARNING: The license for libmad is GPL, which means that in order to
         use it your application must also be GPL!
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

The process of mixing MIDI files to wave output is very CPU intensive,
so if playing regular WAVE files sound great, but playing MIDI files
sound choppy, try using 8-bit audio, mono audio, or lower frequencies.

To play MIDI files, you'll need to get a complete set of GUS patches
from:
http://www.libsdl.org/projects/mixer/timidity/timidity.tar.gz
and unpack them in /usr/local/lib under UNIX, and C:\ under Win32.

This library is under the zlib license, see the file "COPYING" for details.