source: examples/utils.h @ 43938de

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

added non c99 alternatives in examples/utils.h (thanks Mo)

  • Property mode set to 100644
File size: 3.5 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 unsigned int median;
45extern const char * output_filename;
46extern const char * input_filename;
47/* defined in utils.c */
48void usage (FILE * stream, int exit_code);
49int parse_args (int argc, char **argv);
50void examples_common_init(int argc, char **argv);
51void examples_common_del(void);
52typedef void (aubio_print_func_t)(void);
53#ifndef JACK_SUPPORT
54typedef int (*aubio_process_func_t)
55        (smpl_t **input, smpl_t **output, int nframes);
56#endif
57void examples_common_process(aubio_process_func_t process_func, aubio_print_func_t print);
58
59
60void send_noteon(int pitch, int velo);
61/** append new note candidate to the note_buffer and return filtered value. we
62 * need to copy the input array as vec_median destroy its input data.*/
63void note_append(fvec_t * note_buffer, smpl_t curnote); 
64uint_t get_note(fvec_t *note_buffer, fvec_t *note_buffer2);
65
66extern const char * output_filename;
67extern const char * input_filename;
68extern const char * onset_filename;
69extern int verbose;
70extern int usejack;
71extern int usedoubled;
72
73
74/* energy,specdiff,hfc,complexdomain,phase */
75extern aubio_onsetdetection_type type_onset;
76extern aubio_onsetdetection_type type_onset2;
77extern smpl_t threshold;
78extern smpl_t threshold2;
79extern uint_t buffer_size;
80extern uint_t overlap_size;
81extern uint_t channels;
82extern uint_t samplerate;
83
84
85extern aubio_sndfile_t * file;
86extern aubio_sndfile_t * fileout;
87
88extern aubio_pvoc_t * pv;
89extern fvec_t * ibuf;
90extern fvec_t * obuf;
91extern cvec_t * fftgrain;
92extern fvec_t * woodblock;
93extern aubio_onsetdetection_t *o;
94extern aubio_onsetdetection_t *o2;
95extern fvec_t *onset;
96extern fvec_t *onset2;
97extern int isonset;
98extern aubio_pickpeak_t * parms;
99
100
101/* pitch objects */
102extern smpl_t pitch;
103extern aubio_pitchdetection_t * pitchdet;
104extern aubio_pitchdetection_type mode;
105extern uint_t median;
106
107extern fvec_t * note_buffer;
108extern fvec_t * note_buffer2;
109extern smpl_t curlevel;
110extern smpl_t maxonset;
111
112/* midi objects */
113extern aubio_midi_player_t * mplay; 
114extern aubio_midi_driver_t * mdriver; 
115extern aubio_midi_event_t  * event;
116
117extern smpl_t curnote;
118extern smpl_t newnote;
119extern uint_t isready;
120
121/* per example param */
122extern uint_t usepitch;
123
Note: See TracBrowser for help on using the repository browser.