2 Copyright (C) 2003-2014 Paul Brossier <piem@aubio.org>
4 This file is part of aubio.
6 aubio is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
11 aubio is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with aubio. If not, see <http://www.gnu.org/licenses/>.
21 #ifndef _AUBIO_NOTES_H
22 #define _AUBIO_NOTES_H
28 /** notes detection object */
29 typedef struct _aubio_notes_t aubio_notes_t;
31 /** create notes detection object
33 \param method notes detection type as specified in specdesc.h
34 \param buf_size buffer size for phase vocoder
35 \param hop_size hop size for phase vocoder
36 \param samplerate sampling rate of the input signal
38 \return newly created ::aubio_notes_t
41 aubio_notes_t * new_aubio_notes (const char_t * notes_method,
42 uint_t buf_size, uint_t hop_size, uint_t samplerate);
44 /** delete notes detection object
46 \param o notes detection object to delete
49 void del_aubio_notes(aubio_notes_t * o);
51 /** execute note detection on an input signal frame
53 \param o note detection object as returned by new_aubio_notes()
54 \param in input signal of size [hop_size]
55 \param out output notes of size [3] ? FIXME
58 void aubio_notes_do (aubio_notes_t *o, const fvec_t *input, fvec_t *output);
64 #endif /* _AUBIO_NOTES_H */