* [alsa-devel] [PATCH - speaker-test 1/1] speaker-test: add --force-frequency option to allow hz outside range
@ 2014-02-23 0:09 erik
2014-02-24 9:59 ` Takashi Iwai
0 siblings, 1 reply; 9+ messages in thread
From: erik @ 2014-02-23 0:09 UTC (permalink / raw)
To: patch; +Cc: alsa-devel, Erik Ackermann
From: Erik Ackermann <domohawk@gmail.com>
Signed-off-by: Erik Ackermann <domohawk@gmail.com>
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
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH - speaker-test 1/1] speaker-test: add --force-frequency option to allow hz outside range
2014-02-23 0:09 [alsa-devel] [PATCH - speaker-test 1/1] speaker-test: add --force-frequency option to allow hz outside range erik
@ 2014-02-24 9:59 ` Takashi Iwai
2014-02-24 15:04 ` Will R
0 siblings, 1 reply; 9+ messages in thread
From: Takashi Iwai @ 2014-02-24 9:59 UTC (permalink / raw)
To: erik; +Cc: alsa-devel, Erik Ackermann
At Sat, 22 Feb 2014 16:09:57 -0800,
erik@caspar.alsa-project.org wrote:
>
> From: Erik Ackermann <domohawk@gmail.com>
>
> Signed-off-by: Erik Ackermann <domohawk@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
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH - speaker-test 1/1] speaker-test: add --force-frequency option to allow hz outside range
2014-02-24 9:59 ` Takashi Iwai
@ 2014-02-24 15:04 ` Will R
2014-02-24 15:15 ` Takashi Iwai
0 siblings, 1 reply; 9+ messages in thread
From: Will R @ 2014-02-24 15:04 UTC (permalink / raw)
To: Takashi Iwai; +Cc: alsa-devel
[-- Attachment #1: Type: text/plain, Size: 5785 bytes --]
What is the reasoning behind the limit, protecting speaker hardware,
hearing? 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.
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:
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@suse.de> wrote:
> At Sat, 22 Feb 2014 16:09:57 -0800,
> erik@caspar.alsa-project.org wrote:
> >
> > From: Erik Ackermann <domohawk@gmail.com>
> >
> > Signed-off-by: Erik Ackermann <domohawk@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
> >
>
[-- Attachment #2: 0001-speaker-test-add-force-frequency-option-to-allow-hz-.patch --]
[-- Type: text/x-patch, Size: 2560 bytes --]
From 3d9ceb42e1205618b29479077b0bd3f2d71c64db Mon Sep 17 00:00:00 2001
From: Erik Ackermann <domohawk@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@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
[-- Attachment #3: Type: text/plain, Size: 0 bytes --]
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH - speaker-test 1/1] speaker-test: add --force-frequency option to allow hz outside range
2014-02-24 15:04 ` Will R
@ 2014-02-24 15:15 ` Takashi Iwai
2014-02-25 19:49 ` Erik Ackermann
0 siblings, 1 reply; 9+ messages in thread
From: Takashi Iwai @ 2014-02-24 15:15 UTC (permalink / raw)
To: Will R; +Cc: alsa-devel
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@suse.de> wrote:
>
> > At Sat, 22 Feb 2014 16:09:57 -0800,
> > erik@caspar.alsa-project.org wrote:
> > >
> > > From: Erik Ackermann <domohawk@gmail.com>
> > >
> > > Signed-off-by: Erik Ackermann <domohawk@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@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@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
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH - speaker-test 1/1] speaker-test: add --force-frequency option to allow hz outside range
2014-02-24 15:15 ` Takashi Iwai
@ 2014-02-25 19:49 ` Erik Ackermann
2014-02-26 7:14 ` Takashi Iwai
0 siblings, 1 reply; 9+ messages in thread
From: Erik Ackermann @ 2014-02-25 19:49 UTC (permalink / raw)
To: Takashi Iwai; +Cc: alsa-devel
[-- Attachment #1: Type: text/plain, Size: 9952 bytes --]
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@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@suse.de> wrote:
> >
> > > At Sat, 22 Feb 2014 16:09:57 -0800,
> > > erik@caspar.alsa-project.org wrote:
> > > >
> > > > From: Erik Ackermann <domohawk@gmail.com>
> > > >
> > > > Signed-off-by: Erik Ackermann <domohawk@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@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@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
> >
>
[-- Attachment #2: 0001-speaker-test-add-force-frequency-option-to-allow-hz-.patch --]
[-- Type: text/x-patch, Size: 4994 bytes --]
From 198c7dc70afe04a6072059ddc997417c3ceca3e2 Mon Sep 17 00:00:00 2001
From: Erik Ackermann <kurterikackermann@gmail.com>
Date: Tue, 25 Feb 2014 11:45:24 -0800
Subject: [PATCH - speaker-test 1/1] speaker-test: add --force-frequency option
to allow hz outside range
Signed-off-by: Erik Ackermann <kurterikackermann@gmail.com>
diff --git a/po/de.po b/po/de.po
index 0c47c65..586bde2 100644
--- a/po/de.po
+++ b/po/de.po
@@ -1487,6 +1487,7 @@ msgid ""
"-s,--speaker\tsingle speaker test. Values 1=Left, 2=right, etc\n"
"-w,--wavfile\tUse the given WAV file as a test sound\n"
"-W,--wavdir\tSpecify the directory containing WAV files\n"
+"-X,--force-frequency\tforce frequencies outside the 30-8000hz range\n"
"\n"
msgstr ""
"Verwendung: speaker-test [Option]...\n"
@@ -1504,6 +1505,7 @@ msgstr ""
"-s,--speaker teste einen einzelnen Lautsprecher; 1=links, 2=rechts, usw.\n"
"-w,--wavfile benutze WAV-Datei als Testton\n"
"-W,--wavdir benutze Verzeichnis mit darin enthaltenen WAV-Dateien\n"
+"-X,--force-frequency\termöglichen Frequenzen außerhalb der 30-8000Hz Bereich\n"
"\n"
#: speaker-test/speaker-test.c:921
diff --git a/po/fr.po b/po/fr.po
index a6028a4..876c9a3 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -1474,6 +1474,7 @@ msgid ""
"-s,--speaker\tsingle speaker test. Values 1=Left, 2=right, etc\n"
"-w,--wavfile\tUse the given WAV file as a test sound\n"
"-W,--wavdir\tSpecify the directory containing WAV files\n"
+"-X,--force-frequency\tforce frequencies outside the 30-8000hz range\n"
"\n"
msgstr ""
"Utilisation: speaker-test [OPTION]...\n"
@@ -1492,6 +1493,7 @@ msgstr ""
"\t\tValeurs 1=Gauche, 2=Droite, et c.\n"
"-w,--wavfile\tUtiliser le fichier WAV spécifié pour le test\n"
"-w,--wavdir\tSpécifier le répertoire contenant les fichiers WAV\n"
+"-X,--force-frequency\tpermettre fréquences en dehors de la gamme 30-8000Hz\n"
"\n"
#: ../speaker-test/speaker-test.c:852
diff --git a/po/ja.po b/po/ja.po
index 2c234f4..d8ef706 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -1429,6 +1429,7 @@ msgid ""
"-s,--speaker\tsingle speaker test. Values 1=Left, 2=right, etc\n"
"-w,--wavfile\tUse the given WAV file as a test sound\n"
"-W,--wavdir\tSpecify the directory containing WAV files\n"
+"-X,--force-frequency\tforce frequencies outside the 30-8000hz range\n"
"\n"
msgstr ""
"使用法: speaker-test [オプション]...\n"
@@ -1447,6 +1448,7 @@ msgstr ""
"-s,--speaker 単一スピーカーテスト 1=左 または 2=右\n"
"-w,--wavfile 指定のWAVファイルをテスト音源として使用\n"
"-W,--wavdir WAVファイルのあるディレクトリを指定\n"
+"-X,--force-frequency\t30-8000Hz範囲外許可\n"
"\n"
#: speaker-test/speaker-test.c:835
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
[-- Attachment #3: Type: text/plain, Size: 0 bytes --]
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH - speaker-test 1/1] speaker-test: add --force-frequency option to allow hz outside range
2014-02-25 19:49 ` Erik Ackermann
@ 2014-02-26 7:14 ` Takashi Iwai
2014-02-26 15:01 ` Erik Ackermann
0 siblings, 1 reply; 9+ messages in thread
From: Takashi Iwai @ 2014-02-26 7:14 UTC (permalink / raw)
To: Erik Ackermann; +Cc: alsa-devel
At Tue, 25 Feb 2014 11:49:46 -0800,
Erik Ackermann wrote:
>
> 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, applied the patch now.
Could you update the man page, too?
Takashi
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH - speaker-test 1/1] speaker-test: add --force-frequency option to allow hz outside range
2014-02-26 7:14 ` Takashi Iwai
@ 2014-02-26 15:01 ` Erik Ackermann
2014-02-26 15:16 ` Takashi Iwai
0 siblings, 1 reply; 9+ messages in thread
From: Erik Ackermann @ 2014-02-26 15:01 UTC (permalink / raw)
To: Takashi Iwai; +Cc: alsa-devel
[-- Attachment #1: Type: text/plain, Size: 509 bytes --]
Sure thing, sorry about that. Also cleaned up a bit of consistency, made
sure options that take parameters have them.
On Tue, Feb 25, 2014 at 11:14 PM, Takashi Iwai <tiwai@suse.de> wrote:
> At Tue, 25 Feb 2014 11:49:46 -0800,
> Erik Ackermann wrote:
> >
> > 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, applied the patch now.
> Could you update the man page, too?
>
>
> Takashi
>
[-- Attachment #2: 0001-speaker-test-update-man-page-for-new-X-arg-also-cons.patch --]
[-- Type: text/x-patch, Size: 3216 bytes --]
From a00213fda7f33d573d5526901e95f889bd03ec7b Mon Sep 17 00:00:00 2001
From: Erik Ackermann <kurterikackermann@gmail.com>
Date: Wed, 26 Feb 2014 06:52:29 -0800
Subject: [PATCH - speaker-test 1/1] speaker-test: update man page for new -X
arg, also consistency fixes
Signed-off-by: Erik Ackermann <kurterikackermann@gmail.com>
diff --git a/speaker-test/speaker-test.1 b/speaker-test/speaker-test.1
index 26d9882..add6b21 100644
--- a/speaker-test/speaker-test.1
+++ b/speaker-test/speaker-test.1
@@ -13,7 +13,7 @@
..
.TH SPEAKER\-TEST 1 "April 2nd, 2011" speaker\-test
.SH NAME
-speaker\-test \- command\-line speaker test tone generator for ALSA
+speaker\-test \- command\-line speaker test tone generator for ALSA
.SH SYNOPSIS
.B speaker\-test [\-options]
@@ -47,7 +47,7 @@ surround40:CARD=ICH5,DEV=0
.P Each of the devices is listed in the beginning of the definition so,
in the above example, there are four devices listed: null, default, front
-and surround40. So, if you want to test the last device you can
+and surround40. So, if you want to test the last device you can
run \fBspeaker\-test \-Dsurround40:ICH5 \-c 6\fR. The \fB\-c\fR option will
indicate that the six audio channels in the device have to be tested.
@@ -86,7 +86,7 @@ When 0 is given, the periods given by \fB\-P\fP option is used.
The default value is 0.
.TP
-\fB\-P\fP | \fB\-\-nperiods\fP \fPPERIODS\fP
+\fB\-P\fP | \fB\-\-nperiods\fP \fIPERIODS\fP
Use number of periods. The default value is 4.
.TP
@@ -106,7 +106,7 @@ Pink noise is perceptually uniform noise -- that is, it sounds like every freque
You can pass the number from 1 to 3 as a backward compatibility.
.TP
-\fB\-l\fP | \fB\-\-nloops\fP \fBCOUNT\fP
+\fB\-l\fP | \fB\-\-nloops\fP \fICOUNT\fP
Specifies the number of loops. Zero means to run infinitely.
@@ -114,7 +114,7 @@ When \fB\-s\fP option below with a valid channel is given, \fBspeaker\-test\fP w
always a single-shot without looping.
.TP
-\fB\-s\fP | \fB\-\-speaker\fP \fBCHANNEL\fP
+\fB\-s\fP | \fB\-\-speaker\fP \fICHANNEL\fP
Do a single-shot speaker test for the given channel. The channel number starts from 1.
The channel number corresponds to left, right, rear-left, rear-right, center, LFE,
side-left, side-right, and so on.
@@ -123,20 +123,24 @@ For example, when 1 is passed, it tests the left channel only once rather than b
with looping.
.TP
-\fB\-w\fP | \fB\-\-wavfile\fP
+\fB\-w\fP | \fB\-\-wavfile\fP \fIFILE\fP
Use the given WAV file for the playback instead of pre-defined WAV files.
.TP
-\fB\-W\fP | \fB\-\-wavdir\fP
+\fB\-W\fP | \fB\-\-wavdir\fP \fIDIRECTORY\fP
Specify the directory containing WAV files for playback.
The default path is \fI/usr/share/sounds/alsa\fP.
.TP
-\fB\-m\fP | \fB\-\-chmap\fP
+\fB\-m\fP | \fB\-\-chmap\fP \fIMAP\fP
Pass the channel map to override.
If the playback in a specific channel order or channel positions is
required, pass the channel position strings to this option.
+.TP
+\fB\-X\fP | \fB\-\-force-frequency\fP
+Allow supplied \fIFREQ\fP to be outside the default range of 30-8000Hz. A minimum of 1Hz is still enforced.
+
.SH USAGE EXAMPLES
Produce stereo sound from one stereo jack:
--
1.8.3.2
[-- Attachment #3: Type: text/plain, Size: 0 bytes --]
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH - speaker-test 1/1] speaker-test: add --force-frequency option to allow hz outside range
2014-02-26 15:01 ` Erik Ackermann
@ 2014-02-26 15:16 ` Takashi Iwai
0 siblings, 0 replies; 9+ messages in thread
From: Takashi Iwai @ 2014-02-26 15:16 UTC (permalink / raw)
To: Erik Ackermann; +Cc: alsa-devel
At Wed, 26 Feb 2014 07:01:10 -0800,
Erik Ackermann wrote:
>
> Sure thing, sorry about that. Also cleaned up a bit of consistency, made
> sure options that take parameters have them.
Applied now. Thanks!
Takashi
>
>
> On Tue, Feb 25, 2014 at 11:14 PM, Takashi Iwai <tiwai@suse.de> wrote:
>
> > At Tue, 25 Feb 2014 11:49:46 -0800,
> > Erik Ackermann wrote:
> > >
> > > 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, applied the patch now.
> > Could you update the man page, too?
> >
> >
> > Takashi
> >
> [1.2 <text/html; ISO-8859-1 (quoted-printable)>]
>
> [2 0001-speaker-test-update-man-page-for-new-X-arg-also-cons.patch <text/x-patch; US-ASCII (base64)>]
> From a00213fda7f33d573d5526901e95f889bd03ec7b Mon Sep 17 00:00:00 2001
> From: Erik Ackermann <kurterikackermann@gmail.com>
> Date: Wed, 26 Feb 2014 06:52:29 -0800
> Subject: [PATCH - speaker-test 1/1] speaker-test: update man page for new -X
> arg, also consistency fixes
>
> Signed-off-by: Erik Ackermann <kurterikackermann@gmail.com>
>
> diff --git a/speaker-test/speaker-test.1 b/speaker-test/speaker-test.1
> index 26d9882..add6b21 100644
> --- a/speaker-test/speaker-test.1
> +++ b/speaker-test/speaker-test.1
> @@ -13,7 +13,7 @@
> ..
> .TH SPEAKER\-TEST 1 "April 2nd, 2011" speaker\-test
> .SH NAME
> -speaker\-test \- command\-line speaker test tone generator for ALSA
> +speaker\-test \- command\-line speaker test tone generator for ALSA
> .SH SYNOPSIS
> .B speaker\-test [\-options]
>
> @@ -47,7 +47,7 @@ surround40:CARD=ICH5,DEV=0
>
> .P Each of the devices is listed in the beginning of the definition so,
> in the above example, there are four devices listed: null, default, front
> -and surround40. So, if you want to test the last device you can
> +and surround40. So, if you want to test the last device you can
> run \fBspeaker\-test \-Dsurround40:ICH5 \-c 6\fR. The \fB\-c\fR option will
> indicate that the six audio channels in the device have to be tested.
>
> @@ -86,7 +86,7 @@ When 0 is given, the periods given by \fB\-P\fP option is used.
> The default value is 0.
>
> .TP
> -\fB\-P\fP | \fB\-\-nperiods\fP \fPPERIODS\fP
> +\fB\-P\fP | \fB\-\-nperiods\fP \fIPERIODS\fP
> Use number of periods. The default value is 4.
>
> .TP
> @@ -106,7 +106,7 @@ Pink noise is perceptually uniform noise -- that is, it sounds like every freque
> You can pass the number from 1 to 3 as a backward compatibility.
>
> .TP
> -\fB\-l\fP | \fB\-\-nloops\fP \fBCOUNT\fP
> +\fB\-l\fP | \fB\-\-nloops\fP \fICOUNT\fP
>
> Specifies the number of loops. Zero means to run infinitely.
>
> @@ -114,7 +114,7 @@ When \fB\-s\fP option below with a valid channel is given, \fBspeaker\-test\fP w
> always a single-shot without looping.
>
> .TP
> -\fB\-s\fP | \fB\-\-speaker\fP \fBCHANNEL\fP
> +\fB\-s\fP | \fB\-\-speaker\fP \fICHANNEL\fP
> Do a single-shot speaker test for the given channel. The channel number starts from 1.
> The channel number corresponds to left, right, rear-left, rear-right, center, LFE,
> side-left, side-right, and so on.
> @@ -123,20 +123,24 @@ For example, when 1 is passed, it tests the left channel only once rather than b
> with looping.
>
> .TP
> -\fB\-w\fP | \fB\-\-wavfile\fP
> +\fB\-w\fP | \fB\-\-wavfile\fP \fIFILE\fP
> Use the given WAV file for the playback instead of pre-defined WAV files.
>
> .TP
> -\fB\-W\fP | \fB\-\-wavdir\fP
> +\fB\-W\fP | \fB\-\-wavdir\fP \fIDIRECTORY\fP
> Specify the directory containing WAV files for playback.
> The default path is \fI/usr/share/sounds/alsa\fP.
>
> .TP
> -\fB\-m\fP | \fB\-\-chmap\fP
> +\fB\-m\fP | \fB\-\-chmap\fP \fIMAP\fP
> Pass the channel map to override.
> If the playback in a specific channel order or channel positions is
> required, pass the channel position strings to this option.
>
> +.TP
> +\fB\-X\fP | \fB\-\-force-frequency\fP
> +Allow supplied \fIFREQ\fP to be outside the default range of 30-8000Hz. A minimum of 1Hz is still enforced.
> +
> .SH USAGE EXAMPLES
>
> Produce stereo sound from one stereo jack:
> --
> 1.8.3.2
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH - speaker-test 1/1] speaker-test: add --force-frequency option to allow hz outside range
@ 2014-02-23 0:09 erik
0 siblings, 0 replies; 9+ messages in thread
From: erik @ 2014-02-23 0:09 UTC (permalink / raw)
To: patch; +Cc: alsa-devel, Erik Ackermann
From: Erik Ackermann <domohawk@gmail.com>
Signed-off-by: Erik Ackermann <domohawk@gmail.com>
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
^ permalink raw reply related [flat|nested] 9+ messages in thread
end of thread, other threads:[~2014-02-26 15:16 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-02-23 0:09 [alsa-devel] [PATCH - speaker-test 1/1] speaker-test: add --force-frequency option to allow hz outside range erik
2014-02-24 9:59 ` Takashi Iwai
2014-02-24 15:04 ` Will R
2014-02-24 15:15 ` Takashi Iwai
2014-02-25 19:49 ` Erik Ackermann
2014-02-26 7:14 ` Takashi Iwai
2014-02-26 15:01 ` Erik Ackermann
2014-02-26 15:16 ` Takashi Iwai
2014-02-23 0:09 erik
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.