Mercurial > hg > svapp
comparison audioio/AudioGenerator.h @ 8:24b500216029
* Refactor sparse models. Previously the 1D and time-value models duplicated
a lot of code; now there is a base class (SparseModel) templated on the
stored point type, and the subclasses define point types with the necessary
characteristics.
* Add NoteModel, a new SparseModel subclass.
* Reorganise local feature description display. Instead of asking the layer
to draw its own, just query it for a textual description and draw that in
Pane. Greatly simplifies this part of the layer code.
* Add local feature descriptions to colour 3D plot and waveform layers.
* Add pitch in MIDI-pitch-and-cents to spectrogram layer.
* Give AudioGenerator its own mutex to shorten lock times in CallbackPlaySource.
* Minor adjustments to layers menu &c
author | Chris Cannam |
---|---|
date | Thu, 02 Feb 2006 16:10:19 +0000 |
parents | 5865094175ea |
children | b6dc944128da |
comparison
equal
deleted
inserted
replaced
7:3a41ba527b4a | 8:24b500216029 |
---|---|
13 class Model; | 13 class Model; |
14 class ViewManager; | 14 class ViewManager; |
15 class DenseTimeValueModel; | 15 class DenseTimeValueModel; |
16 class SparseOneDimensionalModel; | 16 class SparseOneDimensionalModel; |
17 class RealTimePluginInstance; | 17 class RealTimePluginInstance; |
18 | |
19 #include <QMutex> | |
18 | 20 |
19 #include <set> | 21 #include <set> |
20 #include <map> | 22 #include <map> |
21 | 23 |
22 class AudioGenerator | 24 class AudioGenerator |
86 RealTimePluginInstance *> PluginMap; | 88 RealTimePluginInstance *> PluginMap; |
87 | 89 |
88 typedef std::set<NoteOff, NoteOff::Comparator> NoteOffSet; | 90 typedef std::set<NoteOff, NoteOff::Comparator> NoteOffSet; |
89 typedef std::map<SparseOneDimensionalModel *, NoteOffSet> NoteOffMap; | 91 typedef std::map<SparseOneDimensionalModel *, NoteOffSet> NoteOffMap; |
90 | 92 |
93 QMutex m_mutex; | |
91 PluginMap m_synthMap; | 94 PluginMap m_synthMap; |
92 NoteOffMap m_noteOffs; | 95 NoteOffMap m_noteOffs; |
93 | 96 |
94 virtual size_t mixDenseTimeValueModel | 97 virtual size_t mixDenseTimeValueModel |
95 (DenseTimeValueModel *model, size_t startFrame, size_t frameCount, | 98 (DenseTimeValueModel *model, size_t startFrame, size_t frameCount, |