[alsa-devel] [PATCH - speaker-test 1/1] speaker-test: add --force-frequency option to allow hz outside range
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 */
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"
printf(_("Recognized sample formats are:")); for (fmt = supported_formats; *fmt >= 0; fmt++) {"-X,--force-frequency force frequencies outside the 30-5000hz range\n" "\n"));
@@ -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;
case 'b': buffer_time = atoi(optarg);freq = freq > 5000.0 ? 5000.0 : freq; break;
@@ -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
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 */
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;
case 'b': buffer_time = atoi(optarg);freq = freq > 5000.0 ? 5000.0 : freq; break;
@@ -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;
case 'b': buffer_time = atoi(optarg);freq = freq > 5000.0 ? 5000.0 : freq; break;
@@ -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"
printf(_("Recognized sample formats are:")); for (fmt = supported_formats; *fmt >= 0; fmt++) {"-X,--force-frequency force frequencies outside the 30-8000hz range\n" "\n"));
@@ -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;
case 'b': buffer_time = atoi(optarg);freq = freq > 5000.0 ? 5000.0 : freq; break;
@@ -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
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;
case 'b': buffer_time = atoi(optarg);freq = freq > 5000.0 ? 5000.0 : freq; break;
@@ -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;
case 'b': buffer_time = atoi(optarg);freq = freq > 5000.0 ? 5000.0 : freq; break;
@@ -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;
case 'b': buffer_time = atoi(optarg);freq = freq > 5000.0 ? 5000.0 : freq; break;
@@ -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
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
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
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
participants (4)
-
Erik Ackermann
-
erik@caspar.alsa-project.org
-
Takashi Iwai
-
Will R