annotate src/RecordedMultitrackAudio.cpp @ 29:1f2b9e09be17

new folder added
author Andrew N Robertson <andrew.robertson@eecs.qmul.ac.uk>
date Fri, 09 Mar 2012 21:24:33 +0000
parents 15dc0e60eb4c
children 02f659277346
rev   line source
andrew@1 1 /*
andrew@1 2 * RecordedMultitrackAudio.cpp
andrew@1 3 * MultipleAudioMathcher
andrew@1 4 *
andrew@1 5 * Created by Andrew on 31/01/2012.
andrew@1 6 * Copyright 2012 QMUL. All rights reserved.
andrew@1 7 *
andrew@1 8 */
andrew@1 9
andrew@1 10 #include "RecordedMultitrackAudio.h"
andrew@1 11
andrew@1 12
andrew@1 13 void RecordedMultitrackAudio::loadTestAudio(){
andrew@26 14
andrew@7 15 trackScreenHeight = 0.15;
andrew@26 16
andrew@1 17 printf("loaded max val is %f\n", loadedAudioFiles[0].fileLoader.onsetDetect.onsetDetector.maximumDetectionValue);
andrew@1 18
andrew@26 19
andrew@26 20
andrew@29 21 setDifferentMultitracks(5);//command to load this set of audio files - see below
andrew@26 22
andrew@26 23 printf("AFTER LOADING: \n");
andrew@1 24 printInfo();
andrew@7 25
andrew@1 26
andrew@7 27 numberOfAudioTracks = 3;
andrew@26 28
andrew@1 29
andrew@1 30 }
andrew@1 31
andrew@23 32 void RecordedMultitrackAudio::setDifferentMultitracks(const int& setToLoad){
andrew@23 33 const char *kickfilename ;//= "../../../data/sound/LiveDues/kick_liveDues.wav";
andrew@23 34 const char *bassfilename ;//"../../../data/sound/LiveDues/bass_upsideLive.wav";
andrew@23 35 const char *snarefilename ;
andrew@23 36
andrew@23 37 switch (setToLoad) {
andrew@23 38 case 0:
andrew@23 39 kickfilename = "../../../data/sound/LiveDues/kick_liveDues.wav";
andrew@23 40 bassfilename = "../../../data/sound/LiveDues/bass_upsideLive.wav";
andrew@23 41 snarefilename = "../../../data/sound/LiveDues/snare_liveDues.wav";
andrew@23 42 break;
andrew@23 43 case 1:
andrew@23 44 kickfilename = "../../../data/sound/DiamondMatch1/kick_bip.wav";
andrew@23 45 bassfilename = "../../../data/sound/DiamondMatch1/bass_bip.wav";
andrew@23 46 snarefilename = "../../../data/sound/DiamondMatch1/snare_bip.wav";
andrew@26 47 break;
andrew@23 48 case 2:
andrew@23 49 kickfilename = "../../../data/sound/LiveIdiot2/02kick_bip.wav";
andrew@23 50 bassfilename = "../../../data/sound/LiveIdiot2/01bass_bip.wav";
andrew@23 51 snarefilename = "../../../data/sound/LiveIdiot2/03snare_bip.wav";
andrew@23 52 break;
andrew@23 53 case 3:
andrew@23 54 kickfilename = "../../../data/sound/UistLive1/02kick_bip.wav";
andrew@23 55 bassfilename = "../../../data/sound/UistLive1/01bass_bip.wav";
andrew@23 56 snarefilename = "../../../data/sound/UistLive1/03snare_bip.wav";
andrew@23 57 break;
andrew@28 58
andrew@28 59 case 4:
andrew@28 60 kickfilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsIdiotDance/tractorsSetToRecord2/Bounces/TakeTwo/kick d112_bip.wav";
andrew@28 61 bassfilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsIdiotDance/tractorsSetToRecord2/Bounces/TakeTwo/bass di_bip.wav";
andrew@28 62 snarefilename = "/Volumes/Supersaurus/TractorsAlbum/tractorsIdiotDance/tractorsSetToRecord2/Bounces/TakeTwo/snare_bip.wav";
andrew@28 63 break;
andrew@29 64 case 5:
andrew@29 65 kickfilename = "/Volumes/Supersaurus/Andrew_tractor_firstBack/tractorsDemo/Bounces/Take14/kick_bip.wav";
andrew@29 66 bassfilename = "/Volumes/Supersaurus/Andrew_tractor_firstBack/tractorsDemo/Bounces/Take14/bass_bip.wav";
andrew@29 67 snarefilename = "/Volumes/Supersaurus/Andrew_tractor_firstBack/tractorsDemo/Bounces/Take14/snare_bip.wav";
andrew@29 68 break;
andrew@29 69
andrew@29 70
andrew@23 71 }
andrew@23 72 loadAudioTrack(kickfilename, 0);
andrew@23 73 loadAudioTrack(bassfilename, 1);
andrew@23 74 loadAudioTrack(snarefilename, 2);
andrew@23 75
andrew@23 76 }
andrew@23 77
andrew@23 78 void RecordedMultitrackAudio::loadAudioTrack(std::string name, const int& channel){
andrew@23 79 //kick - track type 0
andrew@23 80 //bass - type 1
andrew@23 81 //snare type 2
andrew@23 82 if (channel >= 0 && channel <= 4){
andrew@23 83 loadedAudioPtr = new LoadedAudioHolder;
andrew@23 84 loadedAudioPtr->loadAudioFile(name);
andrew@23 85 loadedAudioFiles[channel] = *loadedAudioPtr;
andrew@23 86 loadedAudioFiles[channel].fileLoader.onsetDetect.window.setToRelativeSize(0, trackScreenHeight*channel, 1, trackScreenHeight);
andrew@23 87 loadedAudioFiles[channel].setTrackType(channel);
andrew@23 88 }
andrew@23 89 }
andrew@23 90
andrew@1 91
andrew@1 92
andrew@1 93 void RecordedMultitrackAudio::drawTracks(){
andrew@1 94
andrew@1 95 for (int i = 0;i < numberOfAudioTracks;i++){
andrew@1 96 loadedAudioFiles[i].draw();
andrew@1 97 }
andrew@1 98 }
andrew@1 99
andrew@1 100
andrew@1 101 void RecordedMultitrackAudio::updatePosition(){
andrew@1 102 for (int i = 0;i < numberOfAudioTracks;i++)
andrew@1 103 loadedAudioFiles[i].updateToPlayPosition();
andrew@1 104 }
andrew@1 105
andrew@9 106 void RecordedMultitrackAudio::updatePositionToMillis(const double& millis){
andrew@9 107 for (int i = 0;i < numberOfAudioTracks;i++)
andrew@9 108 loadedAudioFiles[i].updateToMillisPosition(millis);
andrew@9 109 }
andrew@2 110
andrew@1 111 void RecordedMultitrackAudio::switchScreens(){
andrew@1 112 for (int i = 0;i < numberOfAudioTracks;i++)
andrew@1 113 loadedAudioFiles[i].switchScreens();
andrew@1 114 }
andrew@1 115
andrew@1 116
andrew@1 117 void RecordedMultitrackAudio::togglePlay(){
andrew@1 118 for (int i = 0;i < numberOfAudioTracks;i++)
andrew@1 119 loadedAudioFiles[i].togglePlay();
andrew@1 120 }
andrew@1 121
andrew@1 122 void RecordedMultitrackAudio::stop(){
andrew@1 123 for (int i = 0;i < numberOfAudioTracks;i++)
andrew@1 124 loadedAudioFiles[i].stop();
andrew@1 125 }
andrew@1 126
andrew@1 127
andrew@1 128 void RecordedMultitrackAudio::printInfo(){
andrew@1 129 loadedAudioFiles[0].fileLoader.onsetDetect.printChromaInfo();
andrew@1 130 loadedAudioFiles[0].printEvents();
andrew@1 131 }
andrew@1 132
andrew@1 133 void RecordedMultitrackAudio::windowResized(const int& w, const int& h){
andrew@1 134 for (int i = 0;i < numberOfAudioTracks;i++)
andrew@1 135 loadedAudioFiles[i].windowResized(w, h);
andrew@1 136 }
andrew@1 137
andrew@1 138 void RecordedMultitrackAudio::zoomIn(){
andrew@1 139 for (int i = 0;i < numberOfAudioTracks;i++)
andrew@1 140 loadedAudioFiles[i].fileLoader.zoomIn();
andrew@1 141 }
andrew@1 142
andrew@1 143 void RecordedMultitrackAudio::zoomOut(){
andrew@1 144 for (int i = 0;i < numberOfAudioTracks;i++)
andrew@1 145 loadedAudioFiles[i].fileLoader.zoomOut();
andrew@1 146 }
andrew@1 147
andrew@1 148