source: examples/utils.h @ c423c3d

feature/autosinkfeature/cnnfeature/cnn_orgfeature/constantqfeature/crepefeature/crepe_orgfeature/pitchshiftfeature/pydocstringsfeature/timestretchfix/ffmpeg5pitchshiftsamplertimestretchyinfft+
Last change on this file since c423c3d was c423c3d, checked in by Paul Brossier <piem@piem.org>, 15 years ago

examples/: use native aubio smpl_t for aubio_process_func_t

  • Property mode set to 100644
File size: 3.6 KB
Line 
1/*
2         Copyright (C) 2003 Paul Brossier
3
4         This program is free software; you can redistribute it and/or modify
5         it under the terms of the GNU General Public License as published by
6         the Free Software Foundation; either version 2 of the License, or
7         (at your option) any later version.
8
9         This program is distributed in the hope that it will be useful,
10         but WITHOUT ANY WARRANTY; without even the implied warranty of
11         MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12         GNU General Public License for more details.
13
14         You should have received a copy of the GNU General Public License
15         along with this program; if not, write to the Free Software
16         Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17         
18*/
19
20#include <stdio.h>
21#include <stdlib.h>
22#include <stdarg.h>
23#include <getopt.h>
24#include <unistd.h>
25#include <math.h>
26#include <aubio.h>
27#include <aubioext.h>
28
29#ifdef HAVE_C99_VARARGS_MACROS
30#define debug(...)              if (verbose) fprintf (stderr, __VA_ARGS__)
31#define errmsg(...)             fprintf (stderr, __VA_ARGS__)
32#define outmsg(...)             fprintf (stdout, __VA_ARGS__)
33#else
34#define debug(format, args...)  if (verbose) fprintf(stderr, format , ##args)
35#define errmsg(format, args...) fprintf(stderr, format , ##args)
36#define outmsg(format, args...) fprintf(stdout, format , ##args)
37#endif
38
39
40extern int frames;
41extern int verbose;
42extern int usejack;
43extern int usedoubled;
44extern int frames_delay;
45extern unsigned int median;
46extern const char * output_filename;
47extern const char * input_filename;
48/* defined in utils.c */
49void usage (FILE * stream, int exit_code);
50int parse_args (int argc, char **argv);
51void examples_common_init(int argc, char **argv);
52void examples_common_del(void);
53typedef void (aubio_print_func_t)(void);
54#ifndef HAVE_JACK
55typedef int (*aubio_process_func_t)
56        (smpl_t **input, smpl_t **output, int nframes);
57#endif
58void examples_common_process(aubio_process_func_t process_func, aubio_print_func_t print);
59void flush_process(aubio_process_func_t process_func, aubio_print_func_t print);
60
61
62void send_noteon(int pitch, int velo);
63/** append new note candidate to the note_buffer and return filtered value. we
64 * need to copy the input array as vec_median destroy its input data.*/
65void note_append(fvec_t * note_buffer, smpl_t curnote); 
66uint_t get_note(fvec_t *note_buffer, fvec_t *note_buffer2);
67
68extern const char * output_filename;
69extern const char * input_filename;
70extern const char * onset_filename;
71extern int verbose;
72extern int usejack;
73extern int usedoubled;
74
75
76/* energy,specdiff,hfc,complexdomain,phase */
77extern aubio_onsetdetection_type type_onset;
78extern aubio_onsetdetection_type type_onset2;
79extern smpl_t threshold;
80extern smpl_t silence;
81extern uint_t buffer_size;
82extern uint_t overlap_size;
83extern uint_t channels;
84extern uint_t samplerate;
85
86
87extern aubio_sndfile_t * file;
88extern aubio_sndfile_t * fileout;
89
90extern aubio_pvoc_t * pv;
91extern fvec_t * ibuf;
92extern fvec_t * obuf;
93extern cvec_t * fftgrain;
94extern fvec_t * woodblock;
95extern aubio_onsetdetection_t *o;
96extern aubio_onsetdetection_t *o2;
97extern fvec_t *onset;
98extern fvec_t *onset2;
99extern int isonset;
100extern aubio_pickpeak_t * parms;
101
102
103/* pitch objects */
104extern smpl_t pitch;
105extern aubio_pitchdetection_t * pitchdet;
106extern aubio_pitchdetection_type mode;
107extern uint_t median;
108
109extern fvec_t * note_buffer;
110extern fvec_t * note_buffer2;
111extern smpl_t curlevel;
112extern smpl_t maxonset;
113
114/* midi objects */
115extern aubio_midi_player_t * mplay; 
116extern aubio_midi_driver_t * mdriver; 
117extern aubio_midi_event_t  * event;
118
119extern smpl_t curnote;
120extern smpl_t newnote;
121extern uint_t isready;
122
123/* per example param */
124extern uint_t usepitch;
125
Note: See TracBrowser for help on using the repository browser.