Mercurial > hg > multitrack-audio-matcher
view src/RecordedMultitrackAudio.cpp @ 27:922a812ce93d
added plan for evaluating
author | Andrew N Robertson <andrew.robertson@eecs.qmul.ac.uk> |
---|---|
date | Thu, 16 Feb 2012 17:24:18 +0000 |
parents | c47ea39b830d |
children | 15dc0e60eb4c |
line wrap: on
line source
/* * RecordedMultitrackAudio.cpp * MultipleAudioMathcher * * Created by Andrew on 31/01/2012. * Copyright 2012 QMUL. All rights reserved. * */ #include "RecordedMultitrackAudio.h" void RecordedMultitrackAudio::loadTestAudio(){ trackScreenHeight = 0.15; printf("loaded max val is %f\n", loadedAudioFiles[0].fileLoader.onsetDetect.onsetDetector.maximumDetectionValue); setDifferentMultitracks(2);//command to load this set of audio files - see below printf("AFTER LOADING: \n"); printInfo(); numberOfAudioTracks = 3; } void RecordedMultitrackAudio::setDifferentMultitracks(const int& setToLoad){ const char *kickfilename ;//= "../../../data/sound/LiveDues/kick_liveDues.wav"; const char *bassfilename ;//"../../../data/sound/LiveDues/bass_upsideLive.wav"; const char *snarefilename ; switch (setToLoad) { case 0: kickfilename = "../../../data/sound/LiveDues/kick_liveDues.wav"; bassfilename = "../../../data/sound/LiveDues/bass_upsideLive.wav"; snarefilename = "../../../data/sound/LiveDues/snare_liveDues.wav"; break; case 1: kickfilename = "../../../data/sound/DiamondMatch1/kick_bip.wav"; bassfilename = "../../../data/sound/DiamondMatch1/bass_bip.wav"; snarefilename = "../../../data/sound/DiamondMatch1/snare_bip.wav"; break; case 2: kickfilename = "../../../data/sound/LiveIdiot2/02kick_bip.wav"; bassfilename = "../../../data/sound/LiveIdiot2/01bass_bip.wav"; snarefilename = "../../../data/sound/LiveIdiot2/03snare_bip.wav"; break; case 3: kickfilename = "../../../data/sound/UistLive1/02kick_bip.wav"; bassfilename = "../../../data/sound/UistLive1/01bass_bip.wav"; snarefilename = "../../../data/sound/UistLive1/03snare_bip.wav"; break; } loadAudioTrack(kickfilename, 0); loadAudioTrack(bassfilename, 1); loadAudioTrack(snarefilename, 2); } void RecordedMultitrackAudio::loadAudioTrack(std::string name, const int& channel){ //kick - track type 0 //bass - type 1 //snare type 2 if (channel >= 0 && channel <= 4){ loadedAudioPtr = new LoadedAudioHolder; loadedAudioPtr->loadAudioFile(name); loadedAudioFiles[channel] = *loadedAudioPtr; loadedAudioFiles[channel].fileLoader.onsetDetect.window.setToRelativeSize(0, trackScreenHeight*channel, 1, trackScreenHeight); loadedAudioFiles[channel].setTrackType(channel); } } void RecordedMultitrackAudio::drawTracks(){ for (int i = 0;i < numberOfAudioTracks;i++){ loadedAudioFiles[i].draw(); } } void RecordedMultitrackAudio::updatePosition(){ for (int i = 0;i < numberOfAudioTracks;i++) loadedAudioFiles[i].updateToPlayPosition(); } void RecordedMultitrackAudio::updatePositionToMillis(const double& millis){ for (int i = 0;i < numberOfAudioTracks;i++) loadedAudioFiles[i].updateToMillisPosition(millis); } void RecordedMultitrackAudio::switchScreens(){ for (int i = 0;i < numberOfAudioTracks;i++) loadedAudioFiles[i].switchScreens(); } void RecordedMultitrackAudio::togglePlay(){ for (int i = 0;i < numberOfAudioTracks;i++) loadedAudioFiles[i].togglePlay(); } void RecordedMultitrackAudio::stop(){ for (int i = 0;i < numberOfAudioTracks;i++) loadedAudioFiles[i].stop(); } void RecordedMultitrackAudio::printInfo(){ loadedAudioFiles[0].fileLoader.onsetDetect.printChromaInfo(); loadedAudioFiles[0].printEvents(); } void RecordedMultitrackAudio::windowResized(const int& w, const int& h){ for (int i = 0;i < numberOfAudioTracks;i++) loadedAudioFiles[i].windowResized(w, h); } void RecordedMultitrackAudio::zoomIn(){ for (int i = 0;i < numberOfAudioTracks;i++) loadedAudioFiles[i].fileLoader.zoomIn(); } void RecordedMultitrackAudio::zoomOut(){ for (int i = 0;i < numberOfAudioTracks;i++) loadedAudioFiles[i].fileLoader.zoomOut(); }