[alsa-devel] [PATCH - speaker-test 1/1] speaker-test: add --force-frequency option to allow hz outside range
Erik Ackermann
kurterikackermann at gmail.com
Tue Feb 25 20:49:46 CET 2014
Updated the english po and de/fr/ja translations courtesy of Google
translate. Is there any sign-off required beyond the header git
format-patch adds?
Thanks,
Erik
On Mon, Feb 24, 2014 at 7:15 AM, Takashi Iwai <tiwai at suse.de> wrote:
> At Mon, 24 Feb 2014 07:04:27 -0800,
> Will R wrote:
> >
> > What is the reasoning behind the limit, protecting speaker hardware,
> > hearing?
>
> I guess so.
>
> > I think common speakers have frequency response up to 15 or 16kHz
> > or so, so maybe a bit higher default limit of 8kHz would be okay.
>
> Agreed.
>
> > I was doing some tests around 20kHz - 22kHz (to test my hearing and freq
> > response of my 25kHz rated headphones), so still see the merit in a force
> > option for people who are certain they want to test that high.
> >
> > New patch: Added min of 1.0Hz for force option, changed default max to
> > 8kHz, fixed typo in flag name:
>
> The changes look good to me.
>
> But could you update the man page, and give your sign-off, too?
>
>
> thanks,
>
> Takashi
>
>
> >
> > diff --git a/speaker-test/speaker-test.c b/speaker-test/speaker-test.c
> > index 261f399..61396f2 100644
> > --- a/speaker-test/speaker-test.c
> > +++ b/speaker-test/speaker-test.c
> > @@ -106,6 +106,7 @@ static snd_pcm_uframes_t period_size;
> > static const char *given_test_wav_file = NULL;
> > static char *wav_file_dir = SOUNDSDIR;
> > static int debug = 0;
> > +static int force_frequency = 0;
> > static int in_aborting = 0;
> > static snd_pcm_t *pcm_handle = NULL;
> >
> > @@ -1015,6 +1016,7 @@ static void help(void)
> > "-w,--wavfile Use the given WAV file as a test sound\n"
> > "-W,--wavdir Specify the directory containing WAV files\n"
> > "-m,--chmap Specify the channel map to override\n"
> > + "-X,--force-frequency force frequencies outside the 30-8000hz
> range\n"
> > "\n"));
> > printf(_("Recognized sample formats are:"));
> > for (fmt = supported_formats; *fmt >= 0; fmt++) {
> > @@ -1057,6 +1059,7 @@ int main(int argc, char *argv[]) {
> > {"wavfile", 1, NULL, 'w'},
> > {"wavdir", 1, NULL, 'W'},
> > {"debug", 0, NULL, 'd'},
> > + {"force-frequency", 0, NULL, 'X'},
> > #ifdef CONFIG_SUPPORT_CHMAP
> > {"chmap", 1, NULL, 'm'},
> > #endif
> > @@ -1078,7 +1081,7 @@ int main(int argc, char *argv[]) {
> > while (1) {
> > int c;
> >
> > - if ((c = getopt_long(argc, argv, "hD:r:c:f:F:b:p:P:t:l:s:w:W:d"
> > + if ((c = getopt_long(argc, argv, "hD:r:c:f:F:b:p:P:t:l:s:w:W:d:X"
> > #ifdef CONFIG_SUPPORT_CHMAP
> > "m:"
> > #endif
> > @@ -1114,8 +1117,6 @@ int main(int argc, char *argv[]) {
> > break;
> > case 'f':
> > freq = atof(optarg);
> > - freq = freq < 30.0 ? 30.0 : freq;
> > - freq = freq > 5000.0 ? 5000.0 : freq;
> > break;
> > case 'b':
> > buffer_time = atoi(optarg);
> > @@ -1173,6 +1174,9 @@ int main(int argc, char *argv[]) {
> > case 'd':
> > debug = 1;
> > break;
> > + case 'X':
> > + force_frequency = 1;
> > + break;
> > #ifdef CONFIG_SUPPORT_CHMAP
> > case 'm':
> > chmap = optarg;
> > @@ -1190,6 +1194,13 @@ int main(int argc, char *argv[]) {
> > exit(EXIT_SUCCESS);
> > }
> >
> > + if (!force_frequency) {
> > + freq = freq < 30.0 ? 30.0 : freq;
> > + freq = freq > 8000.0 ? 8000.0 : freq;
> > + } else {
> > + freq = freq < 1.0 ? 1.0 : freq;
> > + }
> > +
> > if (test_type == TEST_WAV)
> > format = SND_PCM_FORMAT_S16_LE; /* fixed format */
> >
> > --
> > 1.8.3.2
> >
> >
> > On Mon, Feb 24, 2014 at 1:59 AM, Takashi Iwai <tiwai at suse.de> wrote:
> >
> > > At Sat, 22 Feb 2014 16:09:57 -0800,
> > > erik at caspar.alsa-project.org wrote:
> > > >
> > > > From: Erik Ackermann <domohawk at gmail.com>
> > > >
> > > > Signed-off-by: Erik Ackermann <domohawk at gmail.com>
> > >
> > > But still it should have some sanity checks like freq <= 0, as freq is
> > > used as a divisor.
> > >
> > > Or, we may simply relax the frequency range. What value do you want
> > > to take in your use case?
> > >
> > >
> > > Takashi
> > >
> > > >
> > > > diff --git a/speaker-test/speaker-test.c
> b/speaker-test/speaker-test.c
> > > > index 261f399..22927f2 100644
> > > > --- a/speaker-test/speaker-test.c
> > > > +++ b/speaker-test/speaker-test.c
> > > > @@ -106,6 +106,7 @@ static snd_pcm_uframes_t period_size;
> > > > static const char *given_test_wav_file = NULL;
> > > > static char *wav_file_dir = SOUNDSDIR;
> > > > static int debug = 0;
> > > > +static int force_frequency = 0;
> > > > static int in_aborting = 0;
> > > > static snd_pcm_t *pcm_handle = NULL;
> > > >
> > > > @@ -1015,6 +1016,7 @@ static void help(void)
> > > > "-w,--wavfile Use the given WAV file as a test
> sound\n"
> > > > "-W,--wavdir Specify the directory containing WAV files\n"
> > > > "-m,--chmap Specify the channel map to override\n"
> > > > + "-X,--force-frequency force frequencies outside the
> > > 30-5000hz range\n"
> > > > "\n"));
> > > > printf(_("Recognized sample formats are:"));
> > > > for (fmt = supported_formats; *fmt >= 0; fmt++) {
> > > > @@ -1057,6 +1059,7 @@ int main(int argc, char *argv[]) {
> > > > {"wavfile", 1, NULL, 'w'},
> > > > {"wavdir", 1, NULL, 'W'},
> > > > {"debug", 0, NULL, 'd'},
> > > > + {"force-frequncy", 1, NULL, 'X'},
> > > > #ifdef CONFIG_SUPPORT_CHMAP
> > > > {"chmap", 1, NULL, 'm'},
> > > > #endif
> > > > @@ -1078,7 +1081,7 @@ int main(int argc, char *argv[]) {
> > > > while (1) {
> > > > int c;
> > > >
> > > > - if ((c = getopt_long(argc, argv, "hD:r:c:f:F:b:p:P:t:l:s:w:W:d"
> > > > + if ((c = getopt_long(argc, argv,
> "hD:r:c:f:F:b:p:P:t:l:s:w:W:d:X"
> > > > #ifdef CONFIG_SUPPORT_CHMAP
> > > > "m:"
> > > > #endif
> > > > @@ -1114,8 +1117,6 @@ int main(int argc, char *argv[]) {
> > > > break;
> > > > case 'f':
> > > > freq = atof(optarg);
> > > > - freq = freq < 30.0 ? 30.0 : freq;
> > > > - freq = freq > 5000.0 ? 5000.0 : freq;
> > > > break;
> > > > case 'b':
> > > > buffer_time = atoi(optarg);
> > > > @@ -1173,6 +1174,9 @@ int main(int argc, char *argv[]) {
> > > > case 'd':
> > > > debug = 1;
> > > > break;
> > > > + case 'X':
> > > > + force_frequency = 1;
> > > > + break;
> > > > #ifdef CONFIG_SUPPORT_CHMAP
> > > > case 'm':
> > > > chmap = optarg;
> > > > @@ -1190,6 +1194,11 @@ int main(int argc, char *argv[]) {
> > > > exit(EXIT_SUCCESS);
> > > > }
> > > >
> > > > + if (!force_frequency) {
> > > > + freq = freq < 30.0 ? 30.0 : freq;
> > > > + freq = freq > 5000.0 ? 5000.0 : freq;
> > > > + }
> > > > +
> > > > if (test_type == TEST_WAV)
> > > > format = SND_PCM_FORMAT_S16_LE; /* fixed format */
> > > >
> > > > --
> > > > 1.8.3.2
> > > >
> > >
> > [1.2 <text/html; ISO-8859-1 (quoted-printable)>]
> >
> > From 3d9ceb42e1205618b29479077b0bd3f2d71c64db Mon Sep 17 00:00:00 2001
> > From: Erik Ackermann <domohawk at gmail.com>
> > Date: Mon, 24 Feb 2014 06:53:08 -0800
> > Subject: [PATCH - speaker-test 1/1] speaker-test: add --force-frequency
> option
> > to allow hz outside range
> >
> > Signed-off-by: Erik Ackermann <domohawk at gmail.com>
> >
> > diff --git a/speaker-test/speaker-test.c b/speaker-test/speaker-test.c
> > index 261f399..61396f2 100644
> > --- a/speaker-test/speaker-test.c
> > +++ b/speaker-test/speaker-test.c
> > @@ -106,6 +106,7 @@ static snd_pcm_uframes_t period_size;
> > static const char *given_test_wav_file = NULL;
> > static char *wav_file_dir = SOUNDSDIR;
> > static int debug = 0;
> > +static int force_frequency = 0;
> > static int in_aborting = 0;
> > static snd_pcm_t *pcm_handle = NULL;
> >
> > @@ -1015,6 +1016,7 @@ static void help(void)
> > "-w,--wavfile Use the given WAV file as a test sound\n"
> > "-W,--wavdir Specify the directory containing WAV files\n"
> > "-m,--chmap Specify the channel map to override\n"
> > + "-X,--force-frequency force frequencies outside the
> 30-8000hz range\n"
> > "\n"));
> > printf(_("Recognized sample formats are:"));
> > for (fmt = supported_formats; *fmt >= 0; fmt++) {
> > @@ -1057,6 +1059,7 @@ int main(int argc, char *argv[]) {
> > {"wavfile", 1, NULL, 'w'},
> > {"wavdir", 1, NULL, 'W'},
> > {"debug", 0, NULL, 'd'},
> > + {"force-frequency", 0, NULL, 'X'},
> > #ifdef CONFIG_SUPPORT_CHMAP
> > {"chmap", 1, NULL, 'm'},
> > #endif
> > @@ -1078,7 +1081,7 @@ int main(int argc, char *argv[]) {
> > while (1) {
> > int c;
> >
> > - if ((c = getopt_long(argc, argv, "hD:r:c:f:F:b:p:P:t:l:s:w:W:d"
> > + if ((c = getopt_long(argc, argv, "hD:r:c:f:F:b:p:P:t:l:s:w:W:d:X"
> > #ifdef CONFIG_SUPPORT_CHMAP
> > "m:"
> > #endif
> > @@ -1114,8 +1117,6 @@ int main(int argc, char *argv[]) {
> > break;
> > case 'f':
> > freq = atof(optarg);
> > - freq = freq < 30.0 ? 30.0 : freq;
> > - freq = freq > 5000.0 ? 5000.0 : freq;
> > break;
> > case 'b':
> > buffer_time = atoi(optarg);
> > @@ -1173,6 +1174,9 @@ int main(int argc, char *argv[]) {
> > case 'd':
> > debug = 1;
> > break;
> > + case 'X':
> > + force_frequency = 1;
> > + break;
> > #ifdef CONFIG_SUPPORT_CHMAP
> > case 'm':
> > chmap = optarg;
> > @@ -1190,6 +1194,13 @@ int main(int argc, char *argv[]) {
> > exit(EXIT_SUCCESS);
> > }
> >
> > + if (!force_frequency) {
> > + freq = freq < 30.0 ? 30.0 : freq;
> > + freq = freq > 8000.0 ? 8000.0 : freq;
> > + } else {
> > + freq = freq < 1.0 ? 1.0 : freq;
> > + }
> > +
> > if (test_type == TEST_WAV)
> > format = SND_PCM_FORMAT_S16_LE; /* fixed format */
> >
> > --
> > 1.8.3.2
> >
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-speaker-test-add-force-frequency-option-to-allow-hz-.patch
Type: text/x-patch
Size: 4994 bytes
Desc: not available
URL: <http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20140225/6bc5750c/attachment-0001.bin>
More information about the Alsa-devel
mailing list