forked from len0rd/rockbox
xduoox3: Global volume_limit now applies to the line output as well
The X3's line out is a bit hot, at ~4.3Vpp, so allow it to be backed off. (On my X3, backing it off to -6dB brings Vpp down to ~3.4V) Change-Id: Iea38ef1c6a1b183d0f8fb4eaf2bf9ed6b350a532
This commit is contained in:
parent
10facef17b
commit
cd64aa2b10
2 changed files with 44 additions and 40 deletions
|
@ -27,6 +27,7 @@
|
||||||
#include "cs4398.h"
|
#include "cs4398.h"
|
||||||
#include "kernel.h"
|
#include "kernel.h"
|
||||||
#include "button.h"
|
#include "button.h"
|
||||||
|
#include "settings.h"
|
||||||
|
|
||||||
#define PIN_CS_RST (32*1+10)
|
#define PIN_CS_RST (32*1+10)
|
||||||
#define PIN_CODEC_PWRON (32*1+13)
|
#define PIN_CODEC_PWRON (32*1+13)
|
||||||
|
@ -73,6 +74,7 @@ static void audiohw_mute(bool mute)
|
||||||
cs4398_write_reg(CS4398_REG_MUTE, cs4398_read_reg(CS4398_REG_MUTE) & ~(CS4398_MUTE_A | CS4398_MUTE_B));
|
cs4398_write_reg(CS4398_REG_MUTE, cs4398_read_reg(CS4398_REG_MUTE) & ~(CS4398_MUTE_A | CS4398_MUTE_B));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* TODO: Note this is X3-specific! */
|
||||||
void audiohw_preinit(void)
|
void audiohw_preinit(void)
|
||||||
{
|
{
|
||||||
cs4398_write_reg(CS4398_REG_MISC, CS4398_CPEN | CS4398_PDN);
|
cs4398_write_reg(CS4398_REG_MISC, CS4398_CPEN | CS4398_PDN);
|
||||||
|
@ -155,6 +157,8 @@ static void jz4760_set_vol(int vol_l, int vol_r)
|
||||||
cs4398_write_reg(CS4398_REG_MISC, val);
|
cs4398_write_reg(CS4398_REG_MISC, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* The xDuoo X3's line out is a bit on the hot side, with about 4.3Vpp
|
||||||
|
so allow the level to be backed off by using the global volume_limit */
|
||||||
void audiohw_set_volume(int vol_l, int vol_r)
|
void audiohw_set_volume(int vol_l, int vol_r)
|
||||||
{
|
{
|
||||||
#ifdef HAVE_LINEOUT_DETECTION
|
#ifdef HAVE_LINEOUT_DETECTION
|
||||||
|
@ -162,8 +166,7 @@ void audiohw_set_volume(int vol_l, int vol_r)
|
||||||
real_vol_r = vol_r;
|
real_vol_r = vol_r;
|
||||||
|
|
||||||
if (lineout_inserted()) {
|
if (lineout_inserted()) {
|
||||||
vol_l = 0;
|
vol_l = vol_r = global_settings.volume_limit;
|
||||||
vol_r = 0;
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
jz4760_set_vol(vol_l, vol_r);
|
jz4760_set_vol(vol_l, vol_r);
|
||||||
|
@ -176,7 +179,7 @@ void audiohw_set_lineout_volume(int vol_l, int vol_r)
|
||||||
|
|
||||||
#ifdef HAVE_LINEOUT_DETECTION
|
#ifdef HAVE_LINEOUT_DETECTION
|
||||||
if (lineout_inserted()) {
|
if (lineout_inserted()) {
|
||||||
jz4760_set_vol(0, 0);
|
jz4760_set_vol(global_settings.volume_limit, global_settings.volume_limit);
|
||||||
} else {
|
} else {
|
||||||
jz4760_set_vol(real_vol_l, real_vol_r);
|
jz4760_set_vol(real_vol_l, real_vol_r);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
% $Id$ %
|
% $Id$ %
|
||||||
\screenshot{configure_rockbox/images/ss-sound-settings}{The sound settings screen}{}
|
\screenshot{configure_rockbox/images/ss-sound-settings}{The sound settings screen}{}
|
||||||
|
|
||||||
The sound settings menu offers a selection of sound settings you may
|
The sound settings menu offers a selection of sound settings you may
|
||||||
change to customise your listening experience.
|
change to customise your listening experience.
|
||||||
|
|
||||||
\section{\label{ref:volume}Volume}
|
\section{\label{ref:volume}Volume}
|
||||||
|
@ -22,17 +22,17 @@ change to customise your listening experience.
|
||||||
minimum of -73~dB to a maximum of +6~dB.}%
|
minimum of -73~dB to a maximum of +6~dB.}%
|
||||||
\opt{ipodnano}{minimum of -72~dB to a maximum of +6~dB.}%
|
\opt{ipodnano}{minimum of -72~dB to a maximum of +6~dB.}%
|
||||||
\opt{ipodvideo,cowond2}{minimum of -89~dB to a maximum of +6~dB.}%
|
\opt{ipodvideo,cowond2}{minimum of -89~dB to a maximum of +6~dB.}%
|
||||||
\opt{ipodnano2g,ipodcolor,ipod1g2g,iriverh10,iriverh10_5gb,sansa,sansaAMS}{minimum of
|
\opt{ipodnano2g,ipodcolor,ipod1g2g,iriverh10,iriverh10_5gb,sansa,sansaAMS}{minimum of
|
||||||
-74~dB to a maximum of +6~dB.}%
|
-74~dB to a maximum of +6~dB.}%
|
||||||
\opt{gigabeats}{minimum of -90~dB to a maximum of +6~dB.}%
|
\opt{gigabeats}{minimum of -90~dB to a maximum of +6~dB.}%
|
||||||
\opt{gigabeatf,vibe500}{minimum of -74~dB to a maximum of +6~dB.}%
|
\opt{gigabeatf,vibe500}{minimum of -74~dB to a maximum of +6~dB.}%
|
||||||
\opt{fuzeplus}{minimum of -100~dB to a maximum of +6~dB.}
|
\opt{fuzeplus}{minimum of -100~dB to a maximum of +6~dB.}
|
||||||
\opt{samsungyh}{minimum of -128~dB to a maximum of 0~dB.}
|
\opt{samsungyh}{minimum of -128~dB to a maximum of 0~dB.}
|
||||||
\opt{ipodvideo}{\\Remark: Lowering the volume below -57~dB will also affect the line-out
|
\opt{ipodvideo}{\\Remark: Lowering the volume below -57~dB will also affect the line-out
|
||||||
and the recording gain.}
|
and the recording gain.}
|
||||||
\opt{cowond2}{\\Remark: Lowering the volume below -57~dB will also affect the line-out.}
|
\opt{cowond2}{\\Remark: Lowering the volume below -57~dB will also affect the line-out.}
|
||||||
|
|
||||||
\nopt{gigabeats}{
|
\nopt{gigabeats}{
|
||||||
\section{Bass}
|
\section{Bass}
|
||||||
This setting emphasises
|
This setting emphasises
|
||||||
\nopt{iriverh100,iriverh300}{or suppresses}
|
\nopt{iriverh100,iriverh300}{or suppresses}
|
||||||
|
@ -50,6 +50,7 @@ change to customise your listening experience.
|
||||||
default set to the maximum volume which equals to no limit. To set a volume
|
default set to the maximum volume which equals to no limit. To set a volume
|
||||||
limit, select a volume from the list and the maximum volume will be limited to
|
limit, select a volume from the list and the maximum volume will be limited to
|
||||||
the selected value all over the system.
|
the selected value all over the system.
|
||||||
|
\opt{xduoox3}{This setting also applies to the Line Out of the \dap{}, as at full scale the \dap{} overdrives the signal.}
|
||||||
|
|
||||||
\opt{ipodvideo}{
|
\opt{ipodvideo}{
|
||||||
\section{Bass Cutoff}
|
\section{Bass Cutoff}
|
||||||
|
@ -87,7 +88,7 @@ change to customise your listening experience.
|
||||||
implemented in hardware, and therefore does not tax the processor when in use.
|
implemented in hardware, and therefore does not tax the processor when in use.
|
||||||
Rockbox also features a more advanced five-band equalizer (see
|
Rockbox also features a more advanced five-band equalizer (see
|
||||||
\reference{ref:EQ}) that is implemented in software and allows more fine
|
\reference{ref:EQ}) that is implemented in software and allows more fine
|
||||||
grained control, but also requires more processor time.
|
grained control, but also requires more processor time.
|
||||||
|
|
||||||
\begin{description}
|
\begin{description}
|
||||||
\item[Band 1 Gain.]
|
\item[Band 1 Gain.]
|
||||||
|
@ -110,14 +111,14 @@ change to customise your listening experience.
|
||||||
\item[Advanced Tone Control Settings.]
|
\item[Advanced Tone Control Settings.]
|
||||||
This submenu allows you to change advanced parameters for each band.
|
This submenu allows you to change advanced parameters for each band.
|
||||||
\end{description}
|
\end{description}
|
||||||
|
|
||||||
As a general guide, EQ band 1 should be used for low frequencies, EQ bands 2
|
As a general guide, EQ band 1 should be used for low frequencies, EQ bands 2
|
||||||
to 4 should be used for mids, and EQ band 5 should be used for highs.\\*
|
to 4 should be used for mids, and EQ band 5 should be used for highs.\\*
|
||||||
|
|
||||||
\subsection{Advanced Tone Control Settings}
|
\subsection{Advanced Tone Control Settings}
|
||||||
As in the previous menu, the ``gain'' setting controls how much the
|
As in the previous menu, the ``gain'' setting controls how much the
|
||||||
loudness of the band is adjusted. In addition the following parameters
|
loudness of the band is adjusted. In addition the following parameters
|
||||||
can be adjusted:
|
can be adjusted:
|
||||||
|
|
||||||
\begin{description}
|
\begin{description}
|
||||||
\item[Band 1 Frequency.]
|
\item[Band 1 Frequency.]
|
||||||
|
@ -168,8 +169,8 @@ change to customise your listening experience.
|
||||||
\item[Karaoke.]
|
\item[Karaoke.]
|
||||||
Removes all sound that is common to both channels. Since most
|
Removes all sound that is common to both channels. Since most
|
||||||
music is recorded with vocals being equally present in both channels
|
music is recorded with vocals being equally present in both channels
|
||||||
to make the singer sound centrally placed, this often (but not
|
to make the singer sound centrally placed, this often (but not
|
||||||
always) has the effect of removing the voice track from a song. This
|
always) has the effect of removing the voice track from a song. This
|
||||||
setting also very often has other undesirable effects on the sound.
|
setting also very often has other undesirable effects on the sound.
|
||||||
\end{description}
|
\end{description}
|
||||||
|
|
||||||
|
@ -212,7 +213,7 @@ change to customise your listening experience.
|
||||||
the right ear hears only the right channel. The result is that sound from
|
the right ear hears only the right channel. The result is that sound from
|
||||||
headphones does not provide the same spatial cues to your ear and brain as
|
headphones does not provide the same spatial cues to your ear and brain as
|
||||||
speakers, and might for that reason sound unnatural to some listeners.\\
|
speakers, and might for that reason sound unnatural to some listeners.\\
|
||||||
|
|
||||||
The crossfeed function uses an algorithm to feed a delayed and filtered
|
The crossfeed function uses an algorithm to feed a delayed and filtered
|
||||||
portion of the signal from the right channel into the left channel and vice
|
portion of the signal from the right channel into the left channel and vice
|
||||||
versa in order to simulate the spatial cues that the ear and brain receive
|
versa in order to simulate the spatial cues that the ear and brain receive
|
||||||
|
@ -238,7 +239,7 @@ change to customise your listening experience.
|
||||||
of both this setting and the \setting{Cross Gain} setting.
|
of both this setting and the \setting{Cross Gain} setting.
|
||||||
\item[High-Frequency Cutoff.]
|
\item[High-Frequency Cutoff.]
|
||||||
Decides at which frequency the cross path audio will start to be cut
|
Decides at which frequency the cross path audio will start to be cut
|
||||||
by the amount described by the \setting{High-Frequency Attenuation}
|
by the amount described by the \setting{High-Frequency Attenuation}
|
||||||
setting.
|
setting.
|
||||||
\end{description}
|
\end{description}
|
||||||
|
|
||||||
|
@ -246,31 +247,31 @@ change to customise your listening experience.
|
||||||
for the more adventurous user the settings can be fine-tuned to provide a
|
for the more adventurous user the settings can be fine-tuned to provide a
|
||||||
virtual speaker placement suited to ones preference.
|
virtual speaker placement suited to ones preference.
|
||||||
% TODO: adapt the guidelines for crossfeed settings found here?
|
% TODO: adapt the guidelines for crossfeed settings found here?
|
||||||
% http://www.ohl.to/interests-in-audio/crossfeed-and-eq-for-headphones/
|
% http://www.ohl.to/interests-in-audio/crossfeed-and-eq-for-headphones/
|
||||||
Beware that the crossfeed function is capable of making the audio distort
|
Beware that the crossfeed function is capable of making the audio distort
|
||||||
if you choose settings which result in a too high output level.
|
if you choose settings which result in a too high output level.
|
||||||
|
|
||||||
\section{\label{ref:EQ}Equalizer}
|
\section{\label{ref:EQ}Equalizer}
|
||||||
\screenshot{configure_rockbox/images/ss-equalizer}{The graphical equalizer}{}
|
\screenshot{configure_rockbox/images/ss-equalizer}{The graphical equalizer}{}
|
||||||
Rockbox features a parametric equalizer (EQ). In contrast to non-parametric
|
Rockbox features a parametric equalizer (EQ). In contrast to non-parametric
|
||||||
equalizers, a parametric EQ enables adjusting the center frequency, gain, and
|
equalizers, a parametric EQ enables adjusting the center frequency, gain, and
|
||||||
width of EQ bands separately. The ability to adjust the frequency and width
|
width of EQ bands separately. The ability to adjust the frequency and width
|
||||||
of bands enables more precise control of the EQ frequency response while
|
of bands enables more precise control of the EQ frequency response while
|
||||||
avoiding the use of a large number of bands (often 12+) needed in a
|
avoiding the use of a large number of bands (often 12+) needed in a
|
||||||
non-parametric EQ.
|
non-parametric EQ.
|
||||||
|
|
||||||
The graphic below illustrates how the width of 10kHz band can be adjusted to
|
The graphic below illustrates how the width of 10kHz band can be adjusted to
|
||||||
cover a wider (lower Q) or narrower (higher Q) range of frequencies.
|
cover a wider (lower Q) or narrower (higher Q) range of frequencies.
|
||||||
|
|
||||||
\includegraphics[width=14cm]{configure_rockbox/images/Q_factor.png}
|
\includegraphics[width=14cm]{configure_rockbox/images/Q_factor.png}
|
||||||
|
|
||||||
\nopt{gigabeats}{In some ways the EQ is similar to the
|
\nopt{gigabeats}{In some ways the EQ is similar to the
|
||||||
\setting{Bass} and \setting{Treble} settings described earlier, but the EQ
|
\setting{Bass} and \setting{Treble} settings described earlier, but the EQ
|
||||||
allows you to control the sound much more carefully. Note that the parameteric
|
allows you to control the sound much more carefully. Note that the parameteric
|
||||||
EQ bands will be applied in addition to any bass or treble tone controls.
|
EQ bands will be applied in addition to any bass or treble tone controls.
|
||||||
} \opt{gigabeats}{The EQ is similar to the \setting{Tone Controls} described
|
} \opt{gigabeats}{The EQ is similar to the \setting{Tone Controls} described
|
||||||
above, but allows more delicate control.}\\
|
above, but allows more delicate control.}\\
|
||||||
|
|
||||||
\note{A maximum of 10 EQ bands are possible on most devices, but using more
|
\note{A maximum of 10 EQ bands are possible on most devices, but using more
|
||||||
than are required will waste battery and introduce additional rounding
|
than are required will waste battery and introduce additional rounding
|
||||||
noise. For best results, use the fewest number of bands required.}
|
noise. For best results, use the fewest number of bands required.}
|
||||||
|
@ -324,7 +325,7 @@ change to customise your listening experience.
|
||||||
This option brings up a graphic EQ screen, which allows adjustment of each of
|
This option brings up a graphic EQ screen, which allows adjustment of each of
|
||||||
the three parameters described above (gain, centre frequency, and Q) for each
|
the three parameters described above (gain, centre frequency, and Q) for each
|
||||||
of the five EQ bands.
|
of the five EQ bands.
|
||||||
|
|
||||||
\begin{btnmap}
|
\begin{btnmap}
|
||||||
\opt{IRIVER_H100_PAD,IRIVER_H300_PAD,IAUDIO_X5_PAD,GIGABEAT_PAD%
|
\opt{IRIVER_H100_PAD,IRIVER_H300_PAD,IAUDIO_X5_PAD,GIGABEAT_PAD%
|
||||||
,GIGABEAT_S_PAD,SANSA_C200_PAD,IAUDIO_M3_PAD,MROBE100_PAD%
|
,GIGABEAT_S_PAD,SANSA_C200_PAD,IAUDIO_M3_PAD,MROBE100_PAD%
|
||||||
|
@ -406,7 +407,7 @@ change to customise your listening experience.
|
||||||
\opt{touchscreen}{\TouchCenter
|
\opt{touchscreen}{\TouchCenter
|
||||||
\opt{COWON_D2_PAD}{/ \ButtonMenu}}
|
\opt{COWON_D2_PAD}{/ \ButtonMenu}}
|
||||||
&
|
&
|
||||||
\opt{HAVEREMOTEKEYMAP}{
|
\opt{HAVEREMOTEKEYMAP}{
|
||||||
\opt{IRIVER_RC_H100_PAD}{\ButtonRCSelect}
|
\opt{IRIVER_RC_H100_PAD}{\ButtonRCSelect}
|
||||||
\opt{GIGABEAT_RC_PAD,IAUDIO_RC_PAD}{\ButtonRCPlay}
|
\opt{GIGABEAT_RC_PAD,IAUDIO_RC_PAD}{\ButtonRCPlay}
|
||||||
&}
|
&}
|
||||||
|
@ -426,7 +427,7 @@ change to customise your listening experience.
|
||||||
\opt{touchscreen}{\TouchTopLeft
|
\opt{touchscreen}{\TouchTopLeft
|
||||||
\opt{COWON_D2_PAD}{/ \ButtonPower}}
|
\opt{COWON_D2_PAD}{/ \ButtonPower}}
|
||||||
&
|
&
|
||||||
\opt{HAVEREMOTEKEYMAP}{
|
\opt{HAVEREMOTEKEYMAP}{
|
||||||
\opt{IRIVER_RC_H100_PAD}{\ButtonRCStop}
|
\opt{IRIVER_RC_H100_PAD}{\ButtonRCStop}
|
||||||
\opt{GIGABEAT_RC_PAD}{\ButtonRCDsp}
|
\opt{GIGABEAT_RC_PAD}{\ButtonRCDsp}
|
||||||
\opt{IAUDIO_RC_PAD}{\ButtonRCRec}
|
\opt{IAUDIO_RC_PAD}{\ButtonRCRec}
|
||||||
|
@ -437,16 +438,16 @@ change to customise your listening experience.
|
||||||
\end{btnmap}
|
\end{btnmap}
|
||||||
|
|
||||||
\item[Pre-cut.]
|
\item[Pre-cut.]
|
||||||
If too much positive gain is added through the graphical EQ, your music may
|
If too much positive gain is added through the graphical EQ, your music may
|
||||||
distort. The \setting{Precut} setting allows you to apply a global negative
|
distort. The \setting{Precut} setting allows you to apply a global negative
|
||||||
gain to decoded audio, cancelling out positive gain from the EQ. This will
|
gain to decoded audio, cancelling out positive gain from the EQ. This will
|
||||||
prevent distortion when boosting certain frequency ranges, at the expense of
|
prevent distortion when boosting certain frequency ranges, at the expense of
|
||||||
making audio quieter.
|
making audio quieter.
|
||||||
|
|
||||||
Alternatively, precut can be used with a flat EQ curve to implement a volume
|
Alternatively, precut can be used with a flat EQ curve to implement a volume
|
||||||
cap. For example, on a player that allows overdriving the headphone output
|
cap. For example, on a player that allows overdriving the headphone output
|
||||||
to +6dB, maximum volume can be capped to +0dB by applying 6dB of precut. Note
|
to +6dB, maximum volume can be capped to +0dB by applying 6dB of precut. Note
|
||||||
that precut is not applied if EQ is disabled.
|
that precut is not applied if EQ is disabled.
|
||||||
|
|
||||||
\item[Simple EQ.]
|
\item[Simple EQ.]
|
||||||
This option provides an easier alternative for those who are daunted by all of
|
This option provides an easier alternative for those who are daunted by all of
|
||||||
|
@ -507,15 +508,15 @@ details about how to use the feature.
|
||||||
}
|
}
|
||||||
|
|
||||||
\section{Haas Surround}
|
\section{Haas Surround}
|
||||||
This setting implements the Haas effect with adjustable delay time to enhance
|
This setting implements the Haas effect with adjustable delay time to enhance
|
||||||
the stereo effect of the sound. A full range Haas effect creates the impression
|
the stereo effect of the sound. A full range Haas effect creates the impression
|
||||||
that sound starts from one channel and ends in the other. Therefore, four additional
|
that sound starts from one channel and ends in the other. Therefore, four additional
|
||||||
functions are provided to move the stage back to the center:
|
functions are provided to move the stage back to the center:
|
||||||
\setting{Balance} to change the left-right channel output ratio.
|
\setting{Balance} to change the left-right channel output ratio.
|
||||||
A bypass band for frequencies that mostly contain vocals, using \setting{f(x1)},
|
A bypass band for frequencies that mostly contain vocals, using \setting{f(x1)},
|
||||||
and \setting{f(x2)} to set frequencies which are not affected. The \setting{SIDE ONLY}
|
and \setting{f(x2)} to set frequencies which are not affected. The \setting{SIDE ONLY}
|
||||||
setting uses mid-side processing to determine and apply effect to the side channel only.
|
setting uses mid-side processing to determine and apply effect to the side channel only.
|
||||||
Finally, the \setting{Dry/Wet Mix} setting adjusts the proportion mixed from the
|
Finally, the \setting{Dry/Wet Mix} setting adjusts the proportion mixed from the
|
||||||
original (dry) and 'effected' (wet) signals.
|
original (dry) and 'effected' (wet) signals.
|
||||||
|
|
||||||
\section{Perceptual Bass Enhancement}
|
\section{Perceptual Bass Enhancement}
|
||||||
|
@ -523,10 +524,10 @@ This setting implements a group delay correction and an additional biophonic EQ
|
||||||
emphasize to boost bass perception. The \setting{precut} setting provides
|
emphasize to boost bass perception. The \setting{precut} setting provides
|
||||||
negative overall gain to prevent possible audio distortion due to the EQ
|
negative overall gain to prevent possible audio distortion due to the EQ
|
||||||
gain. The defult precut value is set to -2.5 dB and can be adjust from 0 dB to -4.5 dB.
|
gain. The defult precut value is set to -2.5 dB and can be adjust from 0 dB to -4.5 dB.
|
||||||
Note that this effect will stack with any other EQ applied.
|
Note that this effect will stack with any other EQ applied.
|
||||||
|
|
||||||
\section{Auditory Fatigue Reduction}
|
\section{Auditory Fatigue Reduction}
|
||||||
Human hearing is more senstive to some frequency bands. This setting applies additional
|
Human hearing is more senstive to some frequency bands. This setting applies additional
|
||||||
equalization and bi-shelf filtering to reduce signals in these bands to minimize
|
equalization and bi-shelf filtering to reduce signals in these bands to minimize
|
||||||
the chance that temporary threshold shift (auditory fatigue) occurs.
|
the chance that temporary threshold shift (auditory fatigue) occurs.
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue