|
@@ -5,8 +5,9 @@
|
|
|
|
|
|
class BeatSequenceNoteInformation
|
|
|
{
|
|
|
- typedef std::multiset<midi::BeatSequence::BeatIndex> BeatIndexMultiset;
|
|
|
public:
|
|
|
+ typedef std::multiset<midi::BeatSequence::BeatIndex> BeatIndexMultiset;
|
|
|
+
|
|
|
BeatIndexMultiset onBeatIndices, offBeatIndices;
|
|
|
|
|
|
void print(std::ostream& stream, std::size_t indent = 0) const;
|
|
@@ -22,6 +23,7 @@ class BeatSequence : public midi::BeatSequence
|
|
|
typedef midi::NoteMessage::Pitch Pitch;
|
|
|
typedef std::pair<Channel, Pitch> ChannelPitchPair;
|
|
|
typedef std::map<ChannelPitchPair, BeatSequenceNoteInformation> NoteInfoMap;
|
|
|
+ typedef BeatSequenceNoteInformation::BeatIndexMultiset BeatIndexMultiset;
|
|
|
|
|
|
NoteInfoMap noteInfos;
|
|
|
|
|
@@ -29,11 +31,14 @@ public:
|
|
|
const midi::MessageList& at(BeatIndex beatIndex) const;
|
|
|
const midi::MessageList& operator[](BeatIndex beatIndex) const;
|
|
|
void resize(BeatIndex size);
|
|
|
+ void pushFrontMessage(BeatIndex beatIndex, std::shared_ptr<midi::Message>& msg_ptr);
|
|
|
void pushBackMessage(BeatIndex beatIndex, std::shared_ptr<midi::Message>& msg_ptr);
|
|
|
void eraseMessage(BeatIndex beatIndex, midi::MessageList::const_iterator msg_it);
|
|
|
void expand(BeatIndex factor);
|
|
|
void reduceToNeighbour(BeatIndex factor);
|
|
|
void reduceErasingConflicts(BeatIndex factor);
|
|
|
+ const BeatIndexMultiset& getNoteOnBeatIndices(Channel channel, Pitch pitch);
|
|
|
+ const BeatIndexMultiset& getNoteOffBeatIndices(Channel channel, Pitch pitch);
|
|
|
void printRegistry(std::ostream& stream) const;
|
|
|
|
|
|
private:
|