Mercurial > hg > multitrack-audio-matcher
view src/AudioEventMatcher.h @ 18:4ded82fe318d
added pitch info at top of page
author | Andrew N Robertson <andrew.robertson@eecs.qmul.ac.uk> |
---|---|
date | Tue, 07 Feb 2012 02:37:04 +0000 |
parents | 680ba08e9925 |
children | 1a62561bd72d |
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" #include "AccompanimentSynchroniser.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 loadAudioFiles(); 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(); void stopPlaying(); bool startedPlaying; 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(); AccompanimentSynchroniser synchroniser; //params double onsetLikelihoodWidth; double onsetLikelihoodToNoise; double pitchLikelihoodToNoise;//more noise double pitchOfNearestMatch;//for viz purposes double distanceOfNearestMatch; }; #endif