source: examples/utils.h @ d072c13

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

merged commmon code between aubionotes.c and aubioonset.c into utils.c

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