Mercurial > hg > audio-file-loader
comparison libs/aubioFullOSXUni/include/aubio/onsetdetection.h @ 0:bcb0d40158f4
started audio file loader project - using oF_061
author | Andrew N Robertson <andrew.robertson@eecs.qmul.ac.uk> |
---|---|
date | Tue, 30 Aug 2011 20:18:34 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:bcb0d40158f4 |
---|---|
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 /** \file | |
21 | |
22 Onset detection functions | |
23 | |
24 All of the following onset detection function take as arguments the FFT of a | |
25 windowed signal (as created with aubio_pvoc). They output one smpl_t per | |
26 buffer and per channel (stored in a vector of size [channels]x[1]). | |
27 | |
28 These functions were first adapted from Juan Pablo Bello's code, and now | |
29 include further improvements and modifications made within aubio. | |
30 | |
31 */ | |
32 | |
33 | |
34 #ifndef ONSETDETECTION_H | |
35 #define ONSETDETECTION_H | |
36 | |
37 #ifdef __cplusplus | |
38 extern "C" { | |
39 #endif | |
40 | |
41 /** onsetdetection types */ | |
42 typedef enum { | |
43 aubio_onset_energy, /**< energy based */ | |
44 aubio_onset_specdiff, /**< spectral diff */ | |
45 aubio_onset_hfc, /**< high frequency content */ | |
46 aubio_onset_complex, /**< complex domain */ | |
47 aubio_onset_phase, /**< phase fast */ | |
48 aubio_onset_kl, /**< Kullback Liebler */ | |
49 aubio_onset_mkl /**< modified Kullback Liebler */ | |
50 } aubio_onsetdetection_type; | |
51 | |
52 /** onsetdetection structure */ | |
53 typedef struct _aubio_onsetdetection_t aubio_onsetdetection_t; | |
54 /** Energy based onset detection function | |
55 | |
56 This function calculates the local energy of the input spectral frame. | |
57 | |
58 \param o onset detection object as returned by new_aubio_onsetdetection() | |
59 \param fftgrain input spectral frame | |
60 \param onset output onset detection function | |
61 | |
62 */ | |
63 void aubio_onsetdetection_energy(aubio_onsetdetection_t *o, cvec_t * fftgrain, fvec_t * onset); | |
64 /** High Frequency Content onset detection function | |
65 | |
66 This method computes the High Frequency Content (HFC) of the input spectral | |
67 frame. The resulting function is efficient at detecting percussive onsets. | |
68 | |
69 Paul Masri. Computer modeling of Sound for Transformation and Synthesis of | |
70 Musical Signal. PhD dissertation, University of Bristol, UK, 1996. | |
71 | |
72 \param o onset detection object as returned by new_aubio_onsetdetection() | |
73 \param fftgrain input spectral frame | |
74 \param onset output onset detection function | |
75 | |
76 */ | |
77 void aubio_onsetdetection_hfc(aubio_onsetdetection_t *o, cvec_t * fftgrain, fvec_t * onset); | |
78 /** Complex Domain Method onset detection function | |
79 | |
80 Christopher Duxbury, Mike E. Davies, and Mark B. Sandler. Complex domain | |
81 onset detection for musical signals. In Proceedings of the Digital Audio | |
82 Effects Conference, DAFx-03, pages 90-93, London, UK, 2003. | |
83 | |
84 \param o onset detection object as returned by new_aubio_onsetdetection() | |
85 \param fftgrain input spectral frame | |
86 \param onset output onset detection function | |
87 | |
88 */ | |
89 void aubio_onsetdetection_complex(aubio_onsetdetection_t *o, cvec_t * fftgrain, fvec_t * onset); | |
90 /** Phase Based Method onset detection function | |
91 | |
92 Juan-Pablo Bello, Mike P. Davies, and Mark B. Sandler. Phase-based note onset | |
93 detection for music signals. In Proceedings of the IEEE International | |
94 Conference on Acoustics Speech and Signal Processing, pages 441444, | |
95 Hong-Kong, 2003. | |
96 | |
97 \param o onset detection object as returned by new_aubio_onsetdetection() | |
98 \param fftgrain input spectral frame | |
99 \param onset output onset detection function | |
100 | |
101 */ | |
102 void aubio_onsetdetection_phase(aubio_onsetdetection_t *o, cvec_t * fftgrain, fvec_t * onset); | |
103 /** Spectral difference method onset detection function | |
104 | |
105 Jonhatan Foote and Shingo Uchihashi. The beat spectrum: a new approach to | |
106 rhythm analysis. In IEEE International Conference on Multimedia and Expo | |
107 (ICME 2001), pages 881884, Tokyo, Japan, August 2001. | |
108 | |
109 \param o onset detection object as returned by new_aubio_onsetdetection() | |
110 \param fftgrain input spectral frame | |
111 \param onset output onset detection function | |
112 | |
113 */ | |
114 void aubio_onsetdetection_specdiff(aubio_onsetdetection_t *o, cvec_t * fftgrain, fvec_t * onset); | |
115 /** Kullback-Liebler onset detection function | |
116 | |
117 Stephen Hainsworth and Malcom Macleod. Onset detection in music audio | |
118 signals. In Proceedings of the International Computer Music Conference | |
119 (ICMC), Singapore, 2003. | |
120 | |
121 \param o onset detection object as returned by new_aubio_onsetdetection() | |
122 \param fftgrain input spectral frame | |
123 \param onset output onset detection function | |
124 | |
125 */ | |
126 void aubio_onsetdetection_kl(aubio_onsetdetection_t *o, cvec_t * fftgrain, fvec_t * onset); | |
127 /** Modified Kullback-Liebler onset detection function | |
128 | |
129 Paul Brossier, ``Automatic annotation of musical audio for interactive | |
130 systems'', Chapter 2, Temporal segmentation, PhD thesis, Centre for Digital | |
131 music, Queen Mary University of London, London, UK, 2006. | |
132 | |
133 \param o onset detection object as returned by new_aubio_onsetdetection() | |
134 \param fftgrain input spectral frame | |
135 \param onset output onset detection function | |
136 | |
137 */ | |
138 void aubio_onsetdetection_mkl(aubio_onsetdetection_t *o, cvec_t * fftgrain, fvec_t * onset); | |
139 /** execute onset detection function on a spectral frame | |
140 | |
141 Generic function to compute onset detection. | |
142 | |
143 \param o onset detection object as returned by new_aubio_onsetdetection() | |
144 \param fftgrain input signal spectrum as computed by aubio_pvoc_do | |
145 \param onset output vector (one sample long, to send to the peak picking) | |
146 | |
147 */ | |
148 void aubio_onsetdetection(aubio_onsetdetection_t *o, cvec_t * fftgrain, fvec_t * onset); | |
149 /** creation of an onset detection object | |
150 | |
151 \param type onset detection mode | |
152 \param size length of the input spectrum frame | |
153 \param channels number of input channels | |
154 | |
155 */ | |
156 aubio_onsetdetection_t * new_aubio_onsetdetection(aubio_onsetdetection_type type, ba_uint_t size, ba_uint_t channels); | |
157 /** deletion of an onset detection object | |
158 | |
159 \param o onset detection object as returned by new_aubio_onsetdetection() | |
160 | |
161 */ | |
162 void del_aubio_onsetdetection(aubio_onsetdetection_t *o); | |
163 /** deletion of an onset detection object (obsolete) | |
164 | |
165 \param o onset detection object as returned by new_aubio_onsetdetection() | |
166 | |
167 */ | |
168 void aubio_onsetdetection_free(aubio_onsetdetection_t *o); | |
169 | |
170 | |
171 #ifdef __cplusplus | |
172 } | |
173 #endif | |
174 | |
175 #endif /* ONSETDETECTION_H */ |