Commit graph

115 commits

Author SHA1 Message Date
Jeffrey Goode
2b7ef6b928 FS#10199: Adds limiter DSP function
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22394 a1c6a512-1295-4272-9138-f99709370657
2009-08-18 03:24:45 +00:00
Jeffrey Goode
e3f36a1f47 FS#10446: Bug defense in dsp.c, minor tweaks and comments
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22282 a1c6a512-1295-4272-9138-f99709370657
2009-08-12 19:00:31 +00:00
Maurus Cuelenaere
3c7c79189e * Move DSP_CALLBACK_* enum to sound.h
* Add software based volume control for a certain range (SW_VOLUME_MIN -> SW_VOLUME_MAX)
 * Make Onda VX747 use it
 * Don't change volume or frequency in Ingenic Jz4740 codec driver when they're already set


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22106 a1c6a512-1295-4272-9138-f99709370657
2009-08-01 21:38:18 +00:00
Alexander Levin
cc7c665d9b Improvements to the pitch screen UI (FS#10359 by David Johnston)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21781 a1c6a512-1295-4272-9138-f99709370657
2009-07-11 16:46:19 +00:00
Maurus Cuelenaere
802743a061 Take 2 at 'Consolidate all fixed point math routines in one library' (FS#10400) by Jeffrey Goode
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21664 a1c6a512-1295-4272-9138-f99709370657
2009-07-05 18:06:07 +00:00
Maurus Cuelenaere
c3bc8fda80 Revert "Consolidate all fixed point math routines in one library (FS#10400) by Jeffrey Goode"
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21635 a1c6a512-1295-4272-9138-f99709370657
2009-07-04 13:17:58 +00:00
Maurus Cuelenaere
4710a32800 Consolidate all fixed point math routines in one library (FS#10400) by Jeffrey Goode
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21633 a1c6a512-1295-4272-9138-f99709370657
2009-07-04 12:26:45 +00:00
Alexander Levin
8589fcb3e3 Merge the "Replaygain Off" option into the replaygain type; eliminate the "On/Off" setting (FS#10356). All WPS tags should work as before.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21414 a1c6a512-1295-4272-9138-f99709370657
2009-06-20 21:13:24 +00:00
Steve Bavin
bb8244a176 Fix silly typo in comment, but nothing more.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21318 a1c6a512-1295-4272-9138-f99709370657
2009-06-17 11:30:34 +00:00
Steve Bavin
6264941776 Rework internal timestretch enable/disable code - fix FS#10341(hopefully).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21317 a1c6a512-1295-4272-9138-f99709370657
2009-06-17 11:19:51 +00:00
Steve Bavin
d6ad019af3 Renamed routines and changed comments for clarity.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21309 a1c6a512-1295-4272-9138-f99709370657
2009-06-16 07:10:05 +00:00
Thomas Martitz
cb57a568e8 Get rid of tdspeed_enabled in struct dsp_config and use the global_settings member instead. That one needs to be checked in tdspeed_init() as well, else the buffers are always allocated.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21305 a1c6a512-1295-4272-9138-f99709370657
2009-06-16 00:59:24 +00:00
Steve Bavin
77f6f4caad Fix FS#10331 and get mpegplayer working again.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21293 a1c6a512-1295-4272-9138-f99709370657
2009-06-15 15:46:09 +00:00
Steve Bavin
fb2380790e FS#8894 - Add time stretching feature to all SWCODEC targets - the current algorithm is best for spoken word.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21258 a1c6a512-1295-4272-9138-f99709370657
2009-06-12 07:20:50 +00:00
Steve Bavin
4bb8fd286b Something horrible happened with binsize, so revert FS#8894 completely (for now).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18449 a1c6a512-1295-4272-9138-f99709370657
2008-09-08 09:00:41 +00:00
Steve Bavin
f6982346a1 Add timestretching from FS#8894, as written by Stephane Doyon based on work by Nicolas Pitre. Shouldn't affect playback unless it's explicitly enabled, but let me know if it does. Currently has a dedicated setting, but maybe inclusion of the code will inspire someone to integrate this with the pitch screen...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18446 a1c6a512-1295-4272-9138-f99709370657
2008-09-08 08:27:51 +00:00
Dan Everton
0229e94545 Fix FS #8361 - Custom stereo width reset by changing treble on e200. Thanks to Tomer Shalev for the investigation work and the patch.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17976 a1c6a512-1295-4272-9138-f99709370657
2008-07-07 08:11:52 +00:00
Daniel Stenberg
2acc0ac542 Updated our source code header to explicitly mention that we are GPL v2 or
later. We still need to hunt down snippets used that are not. 1324 modified
files...
http://www.rockbox.org/mail/archive/rockbox-dev-archive-2008-06/0060.shtml


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17847 a1c6a512-1295-4272-9138-f99709370657
2008-06-28 18:10:04 +00:00
Bertrik Sikken
e15f8a21a9 Made source files #include the header file that they implement to make sure they are in sync. Made some local functions static.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17312 a1c6a512-1295-4272-9138-f99709370657
2008-05-03 08:35:14 +00:00
Thom Johansen
18fc7fd654 Remove FRACMUL_8_LOOP macro. This only benefited Coldfire, and we have assembler routines for the gain function there now.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17040 a1c6a512-1295-4272-9138-f99709370657
2008-04-08 21:44:07 +00:00
Thom Johansen
66427c3e47 Remove ACC_INIT, ACC and GET_ACC macros. These were quite Coldfire-centric macros which really aren't needed since all performance sensitive target DSP code should be assembler anyway.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17037 a1c6a512-1295-4272-9138-f99709370657
2008-04-08 20:02:56 +00:00
Michael Sevakis
d3ecbbf988 Turnaround time must be included in dsp yielding to throttle against other threads. Do at least one per buffer full as well (or things can stick a bit on initial input triggers).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16721 a1c6a512-1295-4272-9138-f99709370657
2008-03-20 17:03:57 +00:00
Andree Buschmann
fd052ec753 Commit FS#8750. Add ARM assembler for the dsp-functions channels_process_sound_chan_mono(), channels_process_sound_chan_karaoke(), sample_output_mono() and sample_output_stereo(). By measurement the speed up is ~75% for the first three functions and ~40% for sample_output_stereo(). Additionally avoid calling yield() to often in dsp.c -- it is now limited to once per tick.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16717 a1c6a512-1295-4272-9138-f99709370657
2008-03-19 13:55:53 +00:00
Thom Johansen
39e2de8f1b Crossfeed settings used to be stored inverted in the cfg file for legacy reasons, change that and kill some identical formatting functions while we're at it. NOTE TO CROSSFEED USERS: this will completely garble your crossfeed settings, write them down if you want to keep them.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15895 a1c6a512-1295-4272-9138-f99709370657
2007-12-08 01:45:04 +00:00
Thom Johansen
b911ee822a FS #8106. Fix overflow when dithering files that clip a lot, caused by noise shaping error being calculated after clipping instead of before.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15873 a1c6a512-1295-4272-9138-f99709370657
2007-12-04 16:59:45 +00:00
Michael Sevakis
99617d71ba Make speex the new voice format for SWCODEC targets (non-Archos). Remove codec swapping and build speex voice decoding directly into the core binary.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15668 a1c6a512-1295-4272-9138-f99709370657
2007-11-18 17:12:19 +00:00
Thom Johansen
e9001ae514 Just because it's #if 0 doesn't make it inferior...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15370 a1c6a512-1295-4272-9138-f99709370657
2007-10-30 00:06:09 +00:00
Thom Johansen
daf937422c Fix faulty clipping when dithering is enabled (thanks to Jens Arnold). This bug would only affect people using WMA. Also, add a small comment in an unrelated place.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15369 a1c6a512-1295-4272-9138-f99709370657
2007-10-29 23:58:00 +00:00
Thom Johansen
c668de3085 FS #7286. Do correct rounding of final 16 bit samples before sending to DAC, for you golden-eared people.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14514 a1c6a512-1295-4272-9138-f99709370657
2007-08-29 14:32:52 +00:00
Dave Chapman
f02cba8096 Code cleaning - remove some unnecessary defined(SIMULATOR) checks
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13369 a1c6a512-1295-4272-9138-f99709370657
2007-05-10 13:16:08 +00:00
Michael Sevakis
62e0a516a0 Accept FS#6918 - Remove Nested Functions by Tim Ross. Adjust some names. Hunt down and remove the remaining ones in the recording system as well.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12955 a1c6a512-1295-4272-9138-f99709370657
2007-03-29 01:55:47 +00:00
Michael Sevakis
138baaa669 SWCODEC: Need to call resampler_new_delta when resetting DSP.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12929 a1c6a512-1295-4272-9138-f99709370657
2007-03-26 18:39:03 +00:00
Michael Sevakis
369c2a37b7 SWCODEC & Coldfire: Do some more DSP straigntening out. Do as much Coldfire optimizing as seems reasonably possible by jumping through some hoops to avoid stalls. Further boost reduction will just be fractional points if taken to extremes-- not worth it. Wrap up the ASM for awhile.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12905 a1c6a512-1295-4272-9138-f99709370657
2007-03-25 04:03:44 +00:00
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
8e6e290a95 Factor first order shelving filter code out for easier reuse and replace the crossfeed filter with it. Crossfeed _should_ still sound the same, so please do tell if it doesn't.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12674 a1c6a512-1295-4272-9138-f99709370657
2007-03-07 15:06:33 +00:00
Michael Sevakis
ab66955664 SWCODEC: Patchup the short crossfade glitching reported for FLAC but seemed not limited to FLAC actually. Crossfade doesn't like being hand the larger chunks that the dsp was now able to process when not resampling. The real fix is making it not matter.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12521 a1c6a512-1295-4272-9138-f99709370657
2007-02-28 17:32:31 +00:00
Michael Sevakis
b5b4a16b6d Fix a problem when dithering mono audio. Left samples weren't being duplicated into right channel in pcm buffer.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12509 a1c6a512-1295-4272-9138-f99709370657
2007-02-27 19:14:21 +00:00
Thom Johansen
92e6bcbe17 Fix old bug where applying a crossfeed direct gain of 0 dB would result in negative gain.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12508 a1c6a512-1295-4272-9138-f99709370657
2007-02-27 17:55:38 +00:00
Thom Johansen
9636c1b61e Adapt ARM crossfeed assembler to work like the Coldfire one. Remove SWITCHPARAM cruft as it's no longer needed.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12507 a1c6a512-1295-4272-9138-f99709370657
2007-02-27 17:33:23 +00:00
Michael Sevakis
342337031c crossfeed_data needn't be initialized for every target
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12506 a1c6a512-1295-4272-9138-f99709370657
2007-02-27 14:42:38 +00:00
Michael Sevakis
6fbdb912b0 SWCODEC: Tighten up coldfire assembly a little bit more. Cleanup to make differing parameters between ARM and Coldfire halfway clean. Hopefully those differences can be reconciled soon. A tiny bit of C optimizing for karaoke channel mode.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12505 a1c6a512-1295-4272-9138-f99709370657
2007-02-27 14:25:36 +00:00
Michael Sevakis
9b9e22731c SWCODEC: Fix the problem of replaygain not being applied unless the menu is entered. Make all codecs set the replay gain or else formats that do not have replaygain will not set the gain back to default if a file with gain applied proceeded them.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12498 a1c6a512-1295-4272-9138-f99709370657
2007-02-26 17:15:04 +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
Thom Johansen
011bc8934c Fix broken conversion of 16 bit interleaved stereo to internal format.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12441 a1c6a512-1295-4272-9138-f99709370657
2007-02-21 21:46:05 +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
Daniel Stenberg
0c74d2ce8e include stdbool.h to get the bool type and fix the build error
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12361 a1c6a512-1295-4272-9138-f99709370657
2007-02-17 22:25:23 +00:00
Daniel Stenberg
20a5926d2e build with -Wundef to make sure we have spelled the defines right in #if lines
and have the proper includes included etc


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12360 a1c6a512-1295-4272-9138-f99709370657
2007-02-17 21:54:17 +00:00
Michael Sevakis
09186e31ae SWCODEC: Remove the last quirks when upsampling.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12336 a1c6a512-1295-4272-9138-f99709370657
2007-02-16 12:01:35 +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