ardour
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
libs
ardour
ardour
audioanalyser.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2008 Paul Davis
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
#ifndef __ardour_audioanalyser_h__
21
#define __ardour_audioanalyser_h__
22
23
#include <vector>
24
#include <string>
25
#include <ostream>
26
#include <fstream>
27
#include <boost/utility.hpp>
28
#include "vamp-sdk/Plugin.h"
29
#include "
ardour/libardour_visibility.h
"
30
#include "
ardour/types.h
"
31
32
namespace
ARDOUR
{
33
34
class
Readable
;
35
class
Session;
36
37
class
LIBARDOUR_API
AudioAnalyser
:
public
boost::noncopyable {
38
39
public
:
40
typedef
Vamp::Plugin
AnalysisPlugin
;
41
typedef
std::string
AnalysisPluginKey
;
42
43
AudioAnalyser
(
float
sample_rate, AnalysisPluginKey key);
44
virtual
~
AudioAnalyser
();
45
46
/* analysis object should provide a run method
47
that accepts a path to write the results to (optionally empty)
48
a Readable* to read data from
49
and a reference to a type-specific container to return the
50
results.
51
*/
52
53
void
reset ();
54
55
protected
:
56
float
sample_rate
;
57
AnalysisPlugin*
plugin
;
58
AnalysisPluginKey
plugin_key
;
59
60
framecnt_t
bufsize
;
61
framecnt_t
stepsize
;
62
63
int
initialize_plugin (AnalysisPluginKey
name
,
float
sample_rate);
64
int
analyse (
const
std::string& path,
Readable
*, uint32_t channel);
65
66
/* instances of an analysis object will have this method called
67
whenever there are results to process. if out is non-null,
68
the data should be written to the stream it points to.
69
*/
70
71
virtual
int
use_features (Vamp::Plugin::FeatureSet&, std::ostream*) = 0;
72
};
73
74
}
/* namespace */
75
76
#endif
/* __ardour_audioanalyser_h__ */
types.h
Readable
Readable
Definition:
selectable.h:35
ARDOUR::Readable
Definition:
readable.h:28
ARDOUR::AudioAnalyser::bufsize
framecnt_t bufsize
Definition:
audioanalyser.h:60
ARDOUR::AudioAnalyser::plugin_key
AnalysisPluginKey plugin_key
Definition:
audioanalyser.h:58
ARDOUR::framecnt_t
int64_t framecnt_t
Definition:
types.h:76
ARDOUR
Definition:
amp.h:29
ARDOUR::AudioAnalyser::plugin
AnalysisPlugin * plugin
Definition:
audioanalyser.h:57
ARDOUR::AudioAnalyser::AnalysisPlugin
Vamp::Plugin AnalysisPlugin
Definition:
audioanalyser.h:40
libardour_visibility.h
ARDOUR::AudioAnalyser::AnalysisPluginKey
std::string AnalysisPluginKey
Definition:
audioanalyser.h:41
LIBARDOUR_API
#define LIBARDOUR_API
Definition:
libardour_visibility.h:40
name
const char * name
Definition:
rc_option_editor.cc:257
ARDOUR::AudioAnalyser
Definition:
audioanalyser.h:37
ARDOUR::AudioAnalyser::sample_rate
float sample_rate
Definition:
audioanalyser.h:56
ARDOUR::AudioAnalyser::stepsize
framecnt_t stepsize
Definition:
audioanalyser.h:61
Generated on Sun May 24 2015 12:15:05 for ardour by
1.8.8