tests/src/io: improve examples
authorPaul Brossier <piem@piem.org>
Sun, 3 Mar 2013 18:30:40 +0000 (13:30 -0500)
committerPaul Brossier <piem@piem.org>
Sun, 3 Mar 2013 18:30:40 +0000 (13:30 -0500)
tests/src/io/test-sink.c
tests/src/io/test-sink_apple_audio_file.c
tests/src/io/test-sink_sndfile.c
tests/src/io/test-source.c
tests/src/io/test-source_apple_audio_file.c
tests/src/io/test-source_sndfile.c
tests/utils_tests.h [new file with mode: 0644]

index cf57536bbe2b2e068207e668fd32644a019a1ab4..8fdba9792ae5debfab373790e8777482da477edf 100644 (file)
@@ -1,25 +1,40 @@
-#include <stdio.h>
 #include <aubio.h>
-#include "config.h"
+#include "utils_tests.h"
 
-char_t *path = "/home/piem/archives/drum_Chocolate_Milk_-_Ation_Speaks_Louder_Than_Words.wav";
-char_t *outpath = "/var/tmp/test.wav";
+int main (int argc, char **argv)
+{
+  sint_t err = 0;
+
+  if (argc < 3) {
+    err = 2;
+    PRINT_ERR("not enough arguments\n");
+    PRINT_MSG("usage: %s <input_path> <output_path> [samplerate]\n", argv[0]);
+    return err;
+  }
 
-int main(){
-  int err = 0;
   uint_t samplerate = 44100;
   uint_t hop_size = 512;
-  uint_t read = hop_size;
+  uint_t n_frames = 0, read = 0;
+
+  char_t *source_path = argv[1];
+  char_t *sink_path = argv[2];
+  if ( argc == 4 ) samplerate = atoi(argv[3]);
+
   fvec_t *vec = new_fvec(hop_size);
-  aubio_source_t * i = new_aubio_source(path, samplerate, hop_size);
-  aubio_sink_t *   o = new_aubio_sink(outpath, samplerate);
+  aubio_source_t *i = new_aubio_source(source_path, samplerate, hop_size);
+  if (samplerate == 0 ) samplerate = aubio_source_get_samplerate(i);
+  aubio_sink_t *o = new_aubio_sink(sink_path, samplerate);
 
-  if (!i || !o) { err = -1; goto beach; }
+  if (!i || !o) { err = 1; goto beach; }
 
-  while ( read == hop_size ) {
+  do {
     aubio_source_do(i, vec, &read);
     aubio_sink_do(o, vec, read);
-  }
+    n_frames += read;
+  } while ( read == hop_size );
+
+  PRINT_MSG("%d frames read from %s\n written to %s at %dHz\n",
+      n_frames, source_path, sink_path, samplerate);
 
 beach:
   del_aubio_source(i);
@@ -27,4 +42,3 @@ beach:
   del_fvec(vec);
   return err;
 }
-
index 60c18b9e1beae429c640ab01bd68839558a9fef2..195f5d7831cc8d7d9586f408e77680f4670ee3c2 100644 (file)
@@ -1,34 +1,49 @@
-#include <stdio.h>
 #include <aubio.h>
-#include "config.h"
+#include "utils_tests.h"
 
-char_t *path = "/Users/piem/archives/sounds/loops/drum_Chocolate_Milk_-_Ation_Speaks_Louder_Than_Words.wav";
-char_t *outpath = "/var/tmp/test.wav";
+int main (int argc, char **argv)
+{
+  sint_t err = 0;
+
+  if (argc < 3) {
+    err = 2;
+    PRINT_ERR("not enough arguments\n");
+    PRINT_MSG("usage: %s <input_path> <output_path> [samplerate]\n", argv[0]);
+    return err;
+  }
 
-int main(){
-  int err = 0;
 #ifdef __APPLE__
   uint_t samplerate = 44100;
   uint_t hop_size = 512;
-  uint_t read = hop_size;
+  uint_t n_frames = 0, read = 0;
+
+  char_t *source_path = argv[1];
+  char_t *sink_path = argv[2];
+  if ( argc == 4 ) samplerate = atoi(argv[3]);
+
   fvec_t *vec = new_fvec(hop_size);
-  aubio_source_apple_audio_t * i = new_aubio_source_apple_audio(path, samplerate, hop_size);
-  aubio_sink_apple_audio_t *   o = new_aubio_sink_apple_audio(outpath, samplerate);
+  aubio_source_apple_audio_t *i = new_aubio_source_apple_audio(source_path, samplerate, hop_size);
+  if (samplerate == 0 ) samplerate = aubio_source_apple_audio_get_samplerate(i);
+  aubio_sink_apple_audio_t *o = new_aubio_sink_apple_audio(sink_path, samplerate);
 
-  if (!i || !o) { err = -1; goto beach; }
+  if (!i || !o) { err = 1; goto beach; }
 
-  while ( read == hop_size ) {
+  do {
     aubio_source_apple_audio_do(i, vec, &read);
     aubio_sink_apple_audio_do(o, vec, read);
-  }
+    n_frames += read;
+  } while ( read == hop_size );
+
+  PRINT_MSG("%d frames read from %s\n written to %s at %dHz\n",
+      n_frames, source_path, sink_path, samplerate);
 
 beach:
   del_aubio_source_apple_audio(i);
   del_aubio_sink_apple_audio(o);
   del_fvec(vec);
 #else
-  fprintf(stderr, "ERR: aubio was not compiled with aubio_source_apple_audio\n");
+  PRINT_ERR("aubio was not compiled with aubio_source_apple_audio\n");
+  err = 3;
 #endif /* __APPLE__ */
   return err;
 }
-
index 1e10e14e73f886a9cdd6a9a38e11b3aff252f11b..0f0857e90b0fe8f33fec46f6db61b270058927fb 100644 (file)
@@ -1,34 +1,49 @@
-#include <stdio.h>
 #include <aubio.h>
-#include "config.h"
+#include "utils_tests.h"
 
-char_t *path = "/home/piem/archives/drum_Chocolate_Milk_-_Ation_Speaks_Louder_Than_Words.wav";
-char_t *outpath = "/var/tmp/test.wav";
+int main (int argc, char **argv)
+{
+  sint_t err = 0;
+
+  if (argc < 3) {
+    err = 2;
+    PRINT_ERR("not enough arguments\n");
+    PRINT_MSG("usage: %s <input_path> <output_path> [samplerate]\n", argv[0]);
+    return err;
+  }
 
-int main(){
-  int err = 0;
 #ifdef HAVE_SNDFILE
   uint_t samplerate = 44100;
   uint_t hop_size = 512;
-  uint_t read = hop_size;
+  uint_t n_frames = 0, read = 0;
+
+  char_t *source_path = argv[1];
+  char_t *sink_path = argv[2];
+  if ( argc == 4 ) samplerate = atoi(argv[3]);
+
   fvec_t *vec = new_fvec(hop_size);
   aubio_source_sndfile_t * i = new_aubio_source_sndfile(path, samplerate, hop_size);
+  if (samplerate == 0 ) samplerate = aubio_source_sndfile_get_samplerate(i);
   aubio_sink_sndfile_t *   o = new_aubio_sink_sndfile(outpath, samplerate);
 
-  if (!i || !o) { err = -1; goto beach; }
+  if (!i || !o) { err = 1; goto beach; }
 
-  while ( read == hop_size ) {
+  do {
     aubio_source_sndfile_do(i, vec, &read);
     aubio_sink_sndfile_do(o, vec, read);
-  }
+    n_frames += read;
+  } while ( read == hop_size );
+
+  PRINT_MSG("%d frames read from %s\n written to %s at %dHz\n",
+      n_frames, source_path, sink_path, samplerate);
 
 beach:
   del_aubio_source_sndfile(i);
   del_aubio_sink_sndfile(o);
   del_fvec(vec);
 #else
-  fprintf(stderr, "ERR: aubio was not compiled with aubio_source_sndfile\n");
+  PRINT_ERR("aubio was not compiled with aubio_source_sndfile\n");
+  err = 3;
 #endif /* HAVE_SNDFILE */
   return err;
 }
-
index 3e1b9f513523cde580644fe32fc55a1b715338d6..12469ae518e50eb1de6f70722701646f77ee0b81 100644 (file)
@@ -1,25 +1,38 @@
-#include <stdio.h>
 #include <aubio.h>
+#include "utils_tests.h"
 
-char_t *path = "/Users/piem/archives/sounds/loops/drum_Chocolate_Milk_-_Ation_Speaks_Louder_Than_Words.wav";
-//char_t *path = "/Users/piem/Downloads/Keziah Jones - Where's Life.mp3";
+int main (int argc, char **argv)
+{
+  uint_t err = 0;
+  if (argc < 2) {
+    err = 2;
+    PRINT_ERR("not enough arguments\n");
+    PRINT_MSG("usage: %s <source_path> [samplerate]\n", argv[0]);
+    return err;
+  }
 
-int main(){
   uint_t samplerate = 32000;
-  uint_t hop_size = 1024;
-  uint_t read = hop_size;
+  uint_t hop_size = 256;
+  uint_t n_frames = 0, read = 0;
+  if ( argc == 3 ) samplerate = atoi(argv[2]);
+
+  char_t *source_path = argv[1];
+
   fvec_t *vec = new_fvec(hop_size);
-  aubio_source_t* s = new_aubio_source(path, samplerate, hop_size);
+  aubio_source_t* s = new_aubio_source(source_path, samplerate, hop_size);
+  if (samplerate == 0 ) samplerate = aubio_source_get_samplerate(s);
 
-  if (!s) return -1;
+  if (!s) { err = 1; goto beach; }
 
-  while ( read == hop_size ) {
+  do {
     aubio_source_do(s, vec, &read);
-    fprintf(stdout, "%d [%f, %f, ..., %f]\n", read, vec->data[0], vec->data[1], vec->data[read - 1]);
-  }
+    // fvec_print (vec);
+    n_frames += read;
+  } while ( read == hop_size );
 
-  del_aubio_source(s);
+beach:
+  del_aubio_source (s);
+  del_fvec (vec);
 
-  return 0;
+  return err;
 }
-
index 18b9a4bf386a1c6d18fc14d6e9e7357e4c3509a9..796b7960a7987a2b89311f0efd87b4baa41dd1c7 100644 (file)
@@ -1,28 +1,42 @@
-#include <stdio.h>
 #include <aubio.h>
+#include "utils_tests.h"
 
-char_t *path = "/Users/piem/archives/sounds/loops/drum_Chocolate_Milk_-_Ation_Speaks_Louder_Than_Words.wav";
-//char_t *path = "/Volumes/moving/moving/photos/gopro2/100GOPRO/GOPR4515.MP4";
+int main (int argc, char **argv)
+{
+  uint_t err = 0;
+  if (argc < 2) {
+    err = 2;
+    PRINT_ERR("not enough arguments\n");
+    PRINT_MSG("usage: %s <source_path> [samplerate]\n", argv[0]);
+    return err;
+  }
 
-int main(){
-#ifdef __APPLE__
+#if __APPLE__
   uint_t samplerate = 32000;
-  uint_t hop_size = 1024;
-  uint_t read = hop_size;
+  uint_t hop_size = 256;
+  uint_t n_frames = 0, read = 0;
+  if ( argc == 3 ) samplerate = atoi(argv[2]);
+
+  char_t *source_path = argv[1];
+
   fvec_t *vec = new_fvec(hop_size);
-  aubio_source_apple_audio_t * s = new_aubio_source_apple_audio(path, samplerate, hop_size);
+  aubio_source_apple_audio_t * s = new_aubio_source_apple_audio(source_path, samplerate, hop_size);
+  if (samplerate == 0 ) samplerate = aubio_source_apple_audio_get_samplerate(s);
 
-  if (!s) return -1;
+  if (!s) { err = 1; goto beach; }
 
-  while ( read == hop_size ) {
+  do {
     aubio_source_apple_audio_do(s, vec, &read);
-    fprintf(stdout, "%d [%f, %f, ..., %f]\n", read, vec->data[0], vec->data[1], vec->data[read - 1]);
-  }
+    // fvec_print (vec);
+    n_frames += read;
+  } while ( read == hop_size );
 
-  del_aubio_source_apple_audio(s);
+beach:
+  del_aubio_source_apple_audio (s);
+  del_fvec (vec);
 #else
-  fprintf(stderr, "ERR: aubio was not compiled with aubio_source_apple_audio\n");
+  err = 3;
+  PRINT_ERR("aubio was not compiled with aubio_source_apple_audio\n");
 #endif /* __APPLE__ */
   return 0;
 }
-
index 74da2c9ff079ecbfd24e98efd736899dbffac44b..3362da23321a263ea3e92505eaf138f3d8f7c808 100644 (file)
@@ -1,33 +1,42 @@
-#include <stdio.h>
 #include <aubio.h>
-#include "config.h"
+#include "utils_tests.h"
 
-char_t *path = "/home/piem/archives/samples/loops/drum_Chocolate_Milk_-_Ation_Speaks_Louder_Than_Words.wav";
+int main (int argc, char **argv)
+{
+  uint_t err = 0;
+  if (argc < 2) {
+    err = 2;
+    PRINT_ERR("not enough arguments\n");
+    PRINT_MSG("usage: %s <source_path> [samplerate]\n", argv[0]);
+    return err;
+  }
 
-int main(){
-  int err = 0;
 #ifdef HAVE_SNDFILE
-  uint_t samplerate = 8000;
-  uint_t hop_size = 512;
-  uint_t read = hop_size;
+  uint_t samplerate = 32000;
+  uint_t hop_size = 256;
+  uint_t n_frames = 0, read = 0;
+  if ( argc == 3 ) samplerate = atoi(argv[2]);
+
+  char_t *source_path = argv[1];
+
   fvec_t *vec = new_fvec(hop_size);
-  aubio_source_sndfile_t * s = new_aubio_source_sndfile(path, samplerate, hop_size);
+  aubio_source_sndfile_t * s = new_aubio_source_sndfile(source_path, samplerate, hop_size);
+  if (samplerate == 0 ) samplerate = aubio_source_sndfile_get_samplerate(s);
 
   if (!s) { err = 1; goto beach; }
 
-  while ( read == hop_size ) {
+  do {
     aubio_source_sndfile_do(s, vec, &read);
-    if (read == 0) break;
-    fprintf(stdout, "%d [%f, %f, ..., %f]\n", read, vec->data[0], vec->data[1], vec->data[read - 1]);
-  }
+    // fvec_print (vec);
+    n_frames += read;
+  } while ( read == hop_size );
 
 beach:
-  del_aubio_source_sndfile(s);
-  del_fvec(vec);
+  del_aubio_source_sndfile (s);
+  del_fvec (vec);
 #else
-  fprintf(stderr, "ERR: aubio was not compiled with aubio_source_sndfile\n");
+  PRINT_ERR("aubio was not compiled with aubio_source_sndfile\n");
   err = 2;
 #endif /* HAVE_SNDFILE */
   return err;
 }
-
diff --git a/tests/utils_tests.h b/tests/utils_tests.h
new file mode 100644 (file)
index 0000000..4961f15
--- /dev/null
@@ -0,0 +1,7 @@
+#include <stdlib.h>
+#include <stdio.h>
+
+#define PRINT_ERR(format, args...)   fprintf(stderr, "AUBIO ERROR: " format , ##args)
+#define PRINT_MSG(format, args...)   fprintf(stdout, format , ##args)
+#define PRINT_DBG(format, args...)   fprintf(stderr, format , ##args)
+#define PRINT_WRN(...)               fprintf(stderr, "AUBIO WARNING: " format, ##args)