comparison audioio/AudioGenerator.h @ 299:ae1eedd6951f tonioni

Use NoteExportable, now in svcore, to generate note data
author Chris Cannam
date Mon, 02 Dec 2013 17:12:27 +0000
parents cba1e2a3d14b
children 9716c75499ef
comparison
equal deleted inserted replaced
298:e22642bcb07b 299:ae1eedd6951f
101 size_t m_targetChannelCount; 101 size_t m_targetChannelCount;
102 102
103 bool m_soloing; 103 bool m_soloing;
104 std::set<Model *> m_soloModelSet; 104 std::set<Model *> m_soloModelSet;
105 105
106 struct NoteData {
107
108 NoteData(size_t _start, size_t _dur, int _mp, int _vel) :
109 start(_start), duration(_dur), midiPitch(_mp), frequency(0),
110 isMidiPitchQuantized(true), velocity(_vel) { };
111
112 size_t start; // audio sample frame
113 size_t duration; // in audio sample frames
114 int midiPitch; // 0-127
115 int frequency; // Hz, to be used if isMidiPitchQuantized false
116 bool isMidiPitchQuantized;
117 int velocity; // MIDI-style 0-127
118 };
119
120 typedef std::vector<NoteData> NoteList;
121
122 struct NoteOff { 106 struct NoteOff {
123 107
124 NoteOff(int _p, size_t _f) : pitch(_p), frame(_f) { } 108 NoteOff(int _p, size_t _f) : pitch(_p), frame(_f) { }
125 109
126 int pitch; 110 int pitch;
154 138
155 virtual size_t mixSyntheticNoteModel 139 virtual size_t mixSyntheticNoteModel
156 (Model *model, size_t startFrame, size_t frameCount, 140 (Model *model, size_t startFrame, size_t frameCount,
157 float **buffer, float gain, float pan, size_t fadeIn, size_t fadeOut); 141 float **buffer, float gain, float pan, size_t fadeIn, size_t fadeOut);
158 142
159 NoteList getNotes(Model *model, size_t startFrame, size_t endFrame);
160
161 static const size_t m_pluginBlockSize; 143 static const size_t m_pluginBlockSize;
162 }; 144 };
163 145
164 #endif 146 #endif
165 147