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,