Mercurial > hg > svapp
comparison audioio/AudioGenerator.h @ 239:4d1501b27075 integration_library
Merge from branch "sonification"
author | mathieub <mathieu.barthet@eecs.qmul.ac.uk> |
---|---|
date | Mon, 25 Jul 2011 17:57:59 +0100 |
parents | 1fcee2a1c03e |
children |
comparison
equal
deleted
inserted
replaced
237:1ebd8e13262d | 239:4d1501b27075 |
---|---|
26 #include <QObject> | 26 #include <QObject> |
27 #include <QMutex> | 27 #include <QMutex> |
28 | 28 |
29 #include <set> | 29 #include <set> |
30 #include <map> | 30 #include <map> |
31 #include <vector> | |
31 | 32 |
32 class AudioGenerator : public QObject | 33 class AudioGenerator : public QObject |
33 { | 34 { |
34 Q_OBJECT | 35 Q_OBJECT |
35 | 36 |
99 size_t m_targetChannelCount; | 100 size_t m_targetChannelCount; |
100 | 101 |
101 bool m_soloing; | 102 bool m_soloing; |
102 std::set<Model *> m_soloModelSet; | 103 std::set<Model *> m_soloModelSet; |
103 | 104 |
105 struct Note { | |
106 int pitch; | |
107 size_t frame; | |
108 size_t duration; // 0 -> "anything" (short example note) | |
109 int velocity; | |
110 }; | |
111 typedef std::vector<Note> Notes; | |
112 | |
104 struct NoteOff { | 113 struct NoteOff { |
105 | 114 |
106 int pitch; | 115 int pitch; |
107 size_t frame; | 116 size_t frame; |
108 | 117 |
126 virtual RealTimePluginInstance *loadPluginFor(const Model *model); | 135 virtual RealTimePluginInstance *loadPluginFor(const Model *model); |
127 virtual RealTimePluginInstance *loadPlugin(QString id, QString program); | 136 virtual RealTimePluginInstance *loadPlugin(QString id, QString program); |
128 static void initialiseSampleDir(); | 137 static void initialiseSampleDir(); |
129 static void setSampleDir(RealTimePluginInstance *plugin); | 138 static void setSampleDir(RealTimePluginInstance *plugin); |
130 | 139 |
140 virtual Notes getNotesFromModel | |
141 (Model *model, size_t startFrame, size_t frameCount, | |
142 size_t latency); | |
143 | |
131 virtual size_t mixDenseTimeValueModel | 144 virtual size_t mixDenseTimeValueModel |
132 (DenseTimeValueModel *model, size_t startFrame, size_t frameCount, | 145 (DenseTimeValueModel *model, size_t startFrame, size_t frameCount, |
133 float **buffer, float gain, float pan, size_t fadeIn, size_t fadeOut); | 146 float **buffer, float gain, float pan, size_t fadeIn, size_t fadeOut); |
134 | 147 |
135 virtual size_t mixSparseOneDimensionalModel | 148 virtual size_t mixSparseModel |
136 (SparseOneDimensionalModel *model, size_t startFrame, size_t frameCount, | 149 (Model *model, size_t startFrame, size_t frameCount, |
137 float **buffer, float gain, float pan, size_t fadeIn, size_t fadeOut); | |
138 | |
139 virtual size_t mixNoteModel | |
140 (NoteModel *model, size_t startFrame, size_t frameCount, | |
141 float **buffer, float gain, float pan, size_t fadeIn, size_t fadeOut); | 150 float **buffer, float gain, float pan, size_t fadeIn, size_t fadeOut); |
142 | 151 |
143 static const size_t m_pluginBlockSize; | 152 static const size_t m_pluginBlockSize; |
144 }; | 153 }; |
145 | 154 |