Thom Johansen
99b2742cd0
Use the new DSP callback functionality in firmware/sound.c to deal with SWCODEC stereo width and channel configuration instead of the old more spread out #ifdef based approach. Rename the DSP functions involved for more consistent naming.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12677 a1c6a512-1295-4272-9138-f99709370657
2007-03-07 19:11:16 +00:00
Thom Johansen
a7fabf0741
Add software based bass/treble controls for targets which have no such functionality in hardware (currently only X5). They can also be used on any other SWCODEC target by adding #define HAVE_SW_TONE_CONTROLS in the relevant config-*.h file. Also remove some now unneeded zero checks when using get_replaygain_int(). Comments on sound quality are welcome as some parameters can still be fine-tuned.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12489 a1c6a512-1295-4272-9138-f99709370657
2007-02-26 00:41:26 +00:00
Michael Sevakis
d4e904bf35
SWCODEC: Dsp speed optimizations. Changes for more modularity. Removal of some usless stuff. Some assembly routines for Coldfire with speed in mind over size for the outputs but the channel modes remain compact. Miscellaneous coldfire asm updates to accomodate the changes. Codec API structure version has to increase so do a full update.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12472 a1c6a512-1295-4272-9138-f99709370657
2007-02-24 17:06:36 +00:00
Michael Sevakis
36175ac945
SWCODEC: DSP optimizations for conversion to internal format and resampling. Assembly resampling for Coldfire. Word has it ARM will get that soon.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12399 a1c6a512-1295-4272-9138-f99709370657
2007-02-19 02:49:26 +00:00
Thom Johansen
96e5e9eef8
Optimise/touchup some asm macros in dsp.h, and also remove some now unneeded ones. Add config.h to dsp.c so that these macros actually get used, and also do some minor nitpicks to the resampler while I'm at it.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12322 a1c6a512-1295-4272-9138-f99709370657
2007-02-15 22:51:45 +00:00
Michael Sevakis
97f369a587
SWCODEC: Annoying neatness update. Use intptr_t for codec_configure_callback and dsp_configure and stop all the silly type casting of intergral types to pointers to set dsp configuration and watermarks. Shouldn't have any effect on already compiled codecs at all. Will fix any important patches in the tracker so they compile.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12259 a1c6a512-1295-4272-9138-f99709370657
2007-02-10 16:34:16 +00:00
Michael Sevakis
aba6ca0881
Fix resampling clicking as much as possible at the moment. 1) Upsampling clicked because of size inaccuracies returned by DSP. Fix by simplifying audio system to use per-channel sample count from codec to pcm buffer. 2) Downsampling affected by 1) and was often starting passed the end of the data when not enough was available to generate an output sample. Fix by clamping input range to last sample in buffer and using the last sample value in the buffer. A perfect fix will require a double buffering scheme on the resampler to sufficient data during small data transients on both ends at all times of the down ratio on input and the up ratio on output.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12218 a1c6a512-1295-4272-9138-f99709370657
2007-02-07 00:51:50 +00:00
Thom Johansen
5f48e1590f
Optimise EQ coef calculation routines for both speed and size. Move now unneeded fsqrt function to plugin fixed point library in case it'll be needed. Move all fixed point helper macros to dsp.h. Added FRACMUL_SHL macro to facilitate high-precision shifting of 64 bit multiplies and remove rounding from macsr in main thread to make this work as intended.
...
Tested quite thorougly, but as always, be careful with your ears.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12203 a1c6a512-1295-4272-9138-f99709370657
2007-02-05 01:01:15 +00:00
Michael Sevakis
bbef13eddf
SWCODEC: Stop clicks between tracks when resampler is active by only switching the DSP frequency and not resetting the resampler at track boundaries. Will make sure DSP is correctly flushed at dicontinuities but don't hear any problems currently.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11600 a1c6a512-1295-4272-9138-f99709370657
2006-11-26 12:02:47 +00:00
Thom Johansen
354770088e
Re-enable the currently unused and broken dithering and noise shaping code already in Rockbox, and make it a user option instead of a codec-controlled option. The majority of people probably will not even hear any difference with this enabled, but feedback is welcome. Save your settings!
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11368 a1c6a512-1295-4272-9138-f99709370657
2006-10-27 20:41:33 +00:00
Magnus Holmgren
719d220925
Applied patch #5879 by Andrew Cupper: Fix backward seeking bug.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10807 a1c6a512-1295-4272-9138-f99709370657
2006-08-30 15:47:18 +00:00
Brandon Low
f3bc1efc49
First commit of reworking voice to be mroe stable on swcodec
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9758 a1c6a512-1295-4272-9138-f99709370657
2006-04-22 14:40:13 +00:00
Thom Johansen
8238b49c74
New crossfeed complete with no volume reducing bugs. Feedback on all the
...
new options is appreciated. Thanks to Dan Everton for the settings/GUI
code.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9609 a1c6a512-1295-4272-9138-f99709370657
2006-04-11 13:49:05 +00:00
Dan Everton
daebff8b5d
Update equalizer precut value as it's adjusted.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9332 a1c6a512-1295-4272-9138-f99709370657
2006-03-28 21:19:30 +00:00
Dan Everton
91db368845
Add precut setting for the equalizer and add some more comments to the eq menu code.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9298 a1c6a512-1295-4272-9138-f99709370657
2006-03-27 21:20:35 +00:00
Thom Johansen
b0960aed11
Enabled channel configuration and stereo width option on software codec
...
platforms.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9173 a1c6a512-1295-4272-9138-f99709370657
2006-03-21 23:20:17 +00:00
Dan Everton
5a1d77de83
Reduce CPU usage while changing EQ by only updating the coefficients of the band being modified.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8718 a1c6a512-1295-4272-9138-f99709370657
2006-02-17 19:56:22 +00:00
Brandon Low
413da2a3d9
Rework PCM buffer
...
* Linked list instead of static array buffer pointers
* Variable sized chunks
* Improved mix handling
* Reduction in duplicated code
* Reduced IRAM usage w/o sacrificing performance
* Converted to almost entirely unsigned math
* Add pause function to reduce pcm_* exposure to playback.
This WILL break playback on the iPod until linuxstb makes a followup commit.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8612 a1c6a512-1295-4272-9138-f99709370657
2006-02-07 20:38:55 +00:00
Dan Everton
88abdd97b2
Add Equalizer configuration to Sound Settings menu.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8606 a1c6a512-1295-4272-9138-f99709370657
2006-02-07 14:07:46 +00:00
Linus Nielsen Feltzing
dd8cb8a2c1
Committed a little too much
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8569 a1c6a512-1295-4272-9138-f99709370657
2006-02-04 23:16:31 +00:00
Linus Nielsen Feltzing
621bcc2294
The simulator should use the keypad period key, not the regular one
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8568 a1c6a512-1295-4272-9138-f99709370657
2006-02-04 23:15:15 +00:00
Thom Johansen
27c658c8a6
Enabled playback speed adjustment support for H1x0. Modified the resampler to do both channels in one pass.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8099 a1c6a512-1295-4272-9138-f99709370657
2005-11-28 22:26:20 +00:00
Miika Pekkarinen
9c0f1a9e39
More stable playback with reduced stuttering when skipping tracks.
...
Removed CODEC_SET_FILEBUF_LIMIT setting; now playback.c determines how
to buffer the files.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7970 a1c6a512-1295-4272-9138-f99709370657
2005-11-18 20:21:13 +00:00
Marcoen Hirschberg
e13fad3b4b
add crossfeed dsp effect. Makes some music more enjoyable with headphones.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7884 a1c6a512-1295-4272-9138-f99709370657
2005-11-14 21:56:56 +00:00
Thom Johansen
f60e6200f6
DSP_* constants moved from playback.h to dsp.h.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7529 a1c6a512-1295-4272-9138-f99709370657
2005-09-21 13:09:10 +00:00
Magnus Holmgren
4a53787992
ReplayGain support for Ogg Vorbis files (also called VorbisGain) added.
...
Note that there is a small delay from leaving a setting until the change
can be heard (due to audio data buffering).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7234 a1c6a512-1295-4272-9138-f99709370657
2005-07-24 15:32:28 +00:00
Magnus Holmgren
08761aaa52
Restructured DSP code for readability and speed. Simplified the API.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7174 a1c6a512-1295-4272-9138-f99709370657
2005-07-16 12:25:28 +00:00
Miika Pekkarinen
2023b47293
Decreased pcm buffer low watermark when crossfade is not enabled.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7036 a1c6a512-1295-4272-9138-f99709370657
2005-07-06 08:20:53 +00:00
Miika Pekkarinen
d8cb703b1e
Initial DSP implementation. DSP supports resampling audio stream from
...
codecs (currently works corrently only with mp3's, somebody should fix
that).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6877 a1c6a512-1295-4272-9138-f99709370657
2005-06-26 19:41:29 +00:00