source: src/phasevoc.h @ b5aa063

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

import 0.1.7.1

  • Property mode set to 100644
File size: 1.7 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/** @file
21 * Phase vocoder object
22 */
23
24#ifndef _PHASEVOC_H
25#define _PHASEVOC_H
26
27#ifdef __cplusplus
28extern "C" {
29#endif
30
31/** phasevocoder object */
32typedef struct _aubio_pvoc_t aubio_pvoc_t;
33
34/** create phase vocoder object */
35aubio_pvoc_t * new_aubio_pvoc (uint_t win_s, uint_t hop_s, uint_t channels);
36/** delete phase vocoder object */
37void del_aubio_pvoc(aubio_pvoc_t *pv);
38
39/**
40 * fill pvoc with inp[c][hop_s]
41 * slide current buffer
42 * calculate norm and phas of current grain
43 */
44void aubio_pvoc_do(aubio_pvoc_t *pv, fvec_t *in, cvec_t * fftgrain);
45/**
46 * do additive resynthesis to
47 * from current norm and phase
48 * to out[c][hop_s]
49 */
50void aubio_pvoc_rdo(aubio_pvoc_t *pv, cvec_t * fftgrain, fvec_t *out);
51
52/** get window size */
53uint_t aubio_pvoc_get_win(aubio_pvoc_t* pv);
54/** get hop size */
55uint_t aubio_pvoc_get_hop(aubio_pvoc_t* pv);
56/** get channel number */
57uint_t aubio_pvoc_get_channels(aubio_pvoc_t* pv);
58
59#ifdef __cplusplus
60}
61#endif
62
63#endif
Note: See TracBrowser for help on using the repository browser.