merge from master, print beats once in demo_beat.py
authorPaul Brossier <piem@piem.org>
Sat, 9 Jan 2010 14:35:53 +0000 (15:35 +0100)
committerPaul Brossier <piem@piem.org>
Sat, 9 Jan 2010 14:35:53 +0000 (15:35 +0100)
1  2 
examples/utils.c
interfaces/python/demo_beat.py
src/spectral/specdesc.c
tests/src/test-pitch.c

index 93b4cab135a4c81bc602bb50e290e2e2a4ea16d1,6b6e00b60af71aae3707281fbc78c0bbbfd07a7a..dd6f91e8cbd486a0ce193fc81b92103534070243
@@@ -253,9 -239,24 +237,24 @@@ examples_common_init (int argc, char **
    }
  #endif /* HAVE_LASH */
  
-   uint_t i;
 -  woodblock = new_fvec (overlap_size, channels);
++  woodblock = new_fvec (overlap_size);
+   if (output_filename || usejack) {
+     /* dummy assignement to keep egcs happy */
+     found_wood = (onsetfile = new_aubio_sndfile_ro (onset_filename)) ||
+         (onsetfile = new_aubio_sndfile_ro ("sounds/woodblock.aiff")) ||
+         (onsetfile = new_aubio_sndfile_ro ("../sounds/woodblock.aiff"));
+     if (onsetfile == NULL) {
+       outmsg ("Could not find woodblock.aiff\n");
+       exit (1);
+     }
+   }
+   if (onsetfile) {
+     /* read the output sound once */
 -    aubio_sndfile_read (onsetfile, overlap_size, woodblock);
++    aubio_sndfile_read_mono (onsetfile, overlap_size, woodblock);
+   }
 -  ibuf = new_fvec (overlap_size, channels);
 -  obuf = new_fvec (overlap_size, channels);
 +  ibuf = new_fvec (overlap_size);
 +  obuf = new_fvec (overlap_size);
  
  }
  
index f3c669c7237b1415b70a9e6f5d9425ac523321f1,0000000000000000000000000000000000000000..0737492012f004cc48d3b7bb754422b8513e42f1
mode 100644,000000..100644
--- /dev/null
@@@ -1,28 -1,0 +1,27 @@@
-     print beats 
 +#! /usr/bin/python
 +
 +import sys
 +from os.path import splitext, basename
 +from aubio import tempo 
 +from aubioinput import aubioinput
 +
 +win_s = 512                 # fft size
 +hop_s = win_s / 2           # hop size
 +beat = tempo("default", win_s, hop_s)
 +
 +beats = []
 +
 +def process(samples, pos):
 +    isbeat = beat(samples)
 +    if isbeat:
 +        thisbeat = (float(isbeat[0]) + pos * hop_s) / 44100.
 +        print thisbeat
 +        beats.append (thisbeat)
 +
 +if len(sys.argv) < 2:
 +    print "Usage: %s <filename>" % sys.argv[0]
 +else:
 +    filename = sys.argv[1]
 +    a = aubioinput(filename, process = process, hopsize = hop_s,
 +            caps = 'audio/x-raw-float, rate=44100, channels=1')
 +    a.run()
Simple merge
index 0000000000000000000000000000000000000000,c6d7dd35b4b3cd855b29fdabf062e41a16336c9c..e4e209e8d6a8c1fe89518e261d71ce38e71db4a6
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,23 +1,22 @@@
 -        uint_t win_s      = 1024;                       /* window size */
 -        uint_t channels   = 1;                          /* number of channel */
 -        fvec_t * in       = new_fvec (win_s, channels); /* input buffer */
 -        fvec_t * out      = new_fvec (1, channels); /* input buffer */
 -        aubio_pitch_t *p = new_aubio_pitch ("default", win_s, win_s / 2, channels, 44100);
+ #include <aubio.h>
+ int main(){
+         /* allocate some memory */
++        uint_t win_s      = 1024; /* window size */
++        fvec_t * in       = new_fvec (win_s); /* input buffer */
++        fvec_t * out      = new_fvec (1); /* input buffer */
++        aubio_pitch_t *p = new_aubio_pitch ("default", win_s, win_s / 2, 44100);
+         uint_t i = 0;
+         while (i < 10) {
+           aubio_pitch_do (p, in, out);
+           i++;
+         };
+         del_fvec(in);
+         del_fvec(out);
+         aubio_cleanup();
+         return 0;
+ }