comparison audioio/AudioGenerator.h @ 11:8dc0ae8fccdd

* Add LED button * Add note model playback (currently assuming that value == MIDI pitch) * Reorganise PlayParameters and move repository from ViewManager to new PlayParameterRepository class
author Chris Cannam
date Wed, 15 Feb 2006 17:58:35 +0000
parents b6dc944128da
children 89bb89894ad6
comparison
equal deleted inserted replaced
10:b6dc944128da 11:8dc0ae8fccdd
10 #ifndef _AUDIO_GENERATOR_H_ 10 #ifndef _AUDIO_GENERATOR_H_
11 #define _AUDIO_GENERATOR_H_ 11 #define _AUDIO_GENERATOR_H_
12 12
13 class Model; 13 class Model;
14 class ViewManager; 14 class ViewManager;
15 class NoteModel;
15 class DenseTimeValueModel; 16 class DenseTimeValueModel;
16 class SparseOneDimensionalModel; 17 class SparseOneDimensionalModel;
17 class RealTimePluginInstance; 18 class RealTimePluginInstance;
18 19
19 #include <QMutex> 20 #include <QMutex>
84 return n1.frame < n2.frame; 85 return n1.frame < n2.frame;
85 } 86 }
86 }; 87 };
87 }; 88 };
88 89
89 typedef std::map<SparseOneDimensionalModel *, 90 typedef std::map<Model *, RealTimePluginInstance *> PluginMap;
90 RealTimePluginInstance *> PluginMap;
91 91
92 typedef std::set<NoteOff, NoteOff::Comparator> NoteOffSet; 92 typedef std::set<NoteOff, NoteOff::Comparator> NoteOffSet;
93 typedef std::map<SparseOneDimensionalModel *, NoteOffSet> NoteOffMap; 93 typedef std::map<Model *, NoteOffSet> NoteOffMap;
94 94
95 QMutex m_mutex; 95 QMutex m_mutex;
96 PluginMap m_synthMap; 96 PluginMap m_synthMap;
97 NoteOffMap m_noteOffs; 97 NoteOffMap m_noteOffs;
98
99 virtual RealTimePluginInstance *loadPlugin(QString id, QString program);
98 100
99 virtual size_t mixDenseTimeValueModel 101 virtual size_t mixDenseTimeValueModel
100 (DenseTimeValueModel *model, size_t startFrame, size_t frameCount, 102 (DenseTimeValueModel *model, size_t startFrame, size_t frameCount,
101 float **buffer, float gain, float pan, size_t fadeIn, size_t fadeOut); 103 float **buffer, float gain, float pan, size_t fadeIn, size_t fadeOut);
102 104
103 virtual size_t mixSparseOneDimensionalModel 105 virtual size_t mixSparseOneDimensionalModel
104 (SparseOneDimensionalModel *model, size_t startFrame, size_t frameCount, 106 (SparseOneDimensionalModel *model, size_t startFrame, size_t frameCount,
105 float **buffer, float gain, float pan, size_t fadeIn, size_t fadeOut); 107 float **buffer, float gain, float pan, size_t fadeIn, size_t fadeOut);
106 108
109 virtual size_t mixNoteModel
110 (NoteModel *model, size_t startFrame, size_t frameCount,
111 float **buffer, float gain, float pan, size_t fadeIn, size_t fadeOut);
112
107 static const size_t m_pluginBlockSize; 113 static const size_t m_pluginBlockSize;
108 }; 114 };
109 115
110 #endif 116 #endif
111 117