Mercurial > hg > multitrack-audio-matcher
view src/AudioEventMatcher.h @ 11:9a2b008c4706
Priors for each channel and scrolling projection for new prior is added
author | Andrew N Robertson <andrew.robertson@eecs.qmul.ac.uk> |
---|---|
date | Sun, 05 Feb 2012 00:00:58 +0000 |
parents | cbadb9d05d29 |
children | 66783ace7506 |
line wrap: on
line source
/* * AudioEventMatcher.h * MultipleAudioMathcher * * Created by Andrew on 31/01/2012. * Copyright 2012 QMUL. All rights reserved. * */ #ifndef AUDIO_EVENT_MATCHER_H #define AUDIO_EVENT_MATCHER_H #include "ofMain.h" #include "ChromaOnset.h" #include "LiveAudioInput.h" #include "ofxWindowRegion.h" #include "BayesianArrayStructure.h" #include "RecordedMultitrackAudio.h" #include "DynamicVector.h" class AudioEventMatcher{ public: AudioEventMatcher(); void setArraySizes(); void updatePosition(); void updateBestAlignmentPosition(); void draw(); void drawBayesianDistributions();; void setWindowDimensions(); void newPitchEvent(const int& channel, const double& pitchIn, const double& timeIn); void newKickEvent(const double& timeIn); void newKickEvent(const int& channel, const double& timeIn); void newSnareEvent(const double& timeIn); void newSnareEvent(const int& channel, const double& timeIn); void matchNewPitchEvent(const int& channel, const double& pitchIn, const double& timeIn); void matchNewOnsetEvent(const int& channel, const double& timeIn); BayesianArrayStructure bayesianStruct;//hold the probability distriubtions LiveAudioInput liveInput;//hold the new events that come in RecordedMultitrackAudio recordedTracks; void windowResized(const int& w, const int& h); ofxWindowRegion bayesTempoWindow; ofxWindowRegion bayesPositionWindow; ofxWindowRegion bayesLikelihoodWindow; bool checkMatch(const double& recordedPitch, const double& livePitch); double getPitchDistance(const double& pitchOne, const double& pitchTwo, const double& scale); void startPlaying(); bool usingRealTime; double recentPitch, recentTime; DynamicVector likelihoodVisualisation[3]; DynamicVector recentPriors[3]; DynamicVector recentPrior; DynamicVector projectedPrior; double currentAlignmentPosition; double lastAlignmentTime; double recentEventTime[3]; int startTime; int currentAlignmentTime; double screenStartTimeMillis, screenEndTimeMillis, screenWidthMillis; bool followingLiveInput; void setScreenDisplayTimes(); }; #endif