Mercurial > hg > midi-score-follower
changeset 46:43edc8abe2a7
Fixed bug in complex update due to mismatch between ms and vector units
author | Andrew N Robertson <andrew.robertson@eecs.qmul.ac.uk> |
---|---|
date | Sun, 05 Feb 2012 19:40:21 +0000 |
parents | 90ad1817ca56 |
children | 1726189a6317 |
files | jnmr/BayesianArrayStructure.cpp jnmr/BayesianArrayStructure.h jnmr/DynamicVector.cpp jnmr/DynamicVector.h jnmr/midiEventHolder.cpp jnmr/midiEventHolder.h jnmr/testApp.cpp maxPatchToPlayFiles/playMidiTranscription7.maxpat |
diffstat | 8 files changed, 945 insertions(+), 797 deletions(-) [+] |
line wrap: on
line diff
--- a/jnmr/BayesianArrayStructure.cpp Sun Feb 05 10:00:34 2012 +0000 +++ b/jnmr/BayesianArrayStructure.cpp Sun Feb 05 19:40:21 2012 +0000 @@ -13,7 +13,7 @@ #include "BayesianArrayStructure.h" BayesianArrayStructure::BayesianArrayStructure(){ - printf("Bayesian structure: DeFault constructor called"); + printf("Bayesian structure: DeFault constructor called\n"); usingIntegratedTempoEstimate = true;// use max index relativeSpeedLikelihoodStdDev = 5.0; @@ -28,14 +28,14 @@ lastEventTime = 0;//ofGetElapsedTimeMillis(); - tmpBestEstimate = 0; + //tmpBestEstimate = 0; crossUpdateTimeThreshold = 60; priorWidth = 50; } BayesianArrayStructure::BayesianArrayStructure(int length){ - printf("BAYESIAN STURTUCRE CREATED LENGTH: %i\n", length); + printf("BAYESIAN STURTUCRE CREATED LENGTH (EVER CALLED?????): %i\n", length); //this constructor isnt called it seems prior.createVector(length); likelihood.createVector(length); @@ -67,18 +67,20 @@ relativeSpeedLikelihood.zero(); - relativeSpeedPosterior.addGaussianShape(100, 20, 0.8); + relativeSpeedPosterior.addGaussianShapeFromRealTime(1.0, 0.2, 0.8); relativeSpeedPosterior.renormalise(); relativeSpeedPosterior.getMaximum(); setSpeedPrior(speedPriorValue); speedEstimate = speedPriorValue; + + prior.zero(); posterior.zero(); - posterior.addToIndex(0, 1); - posterior.renormalise(); +// posterior.addToIndex(0, 1); +// posterior.renormalise(); //acceleration.addGaussianShape(2000, 20, 0.8); @@ -118,6 +120,7 @@ void BayesianArrayStructure::setPositionDistributionScalar(double f){ if (f > 0){ + printf("Setting the scalar for time scale to be %f ms\n", f); prior.scalar = f; posterior.scalar = f; likelihood.scalar = f; @@ -159,20 +162,21 @@ updateCounter = 0; posterior.offset = -1000; - setNewDistributionOffsets(0); + setNewDistributionOffsets(posterior.offset); int zeroIndex = posterior.getRealTermsAsIndex(0); - - posterior.addGaussianShape(zeroIndex, 500, 1); + posterior.addGaussianShapeFromRealTime(0, 500, 1); // posterior.addToIndex(0, 1); likelihood.addConstant(1); updateCounter = 0; + posterior.getMaximum(); + bestEstimate = posterior.getRealTermsAsIndex(0); - - printf("bayes reset arrays - best estimate %f\n", lastBestEstimateUpdateTime); + printf("bayes reset arrays - best estimate time %f\n", lastBestEstimateUpdateTime); setSpeedPrior(speedPriorValue); + //posterior.printArray(); } @@ -187,7 +191,7 @@ } - +/* void BayesianArrayStructure::updateTmpBestEstimate(const double& timeDifference){ //input is the time since the start of playing // double timeDiff = ofGetElapsedTimeMillis() - lastEventTime;//lastBestEstimateUpdateTime; @@ -196,11 +200,12 @@ timeDiff = ofGetElapsedTimeMillis() - lastBestEstimateUpdateTime; double tmp = relativeSpeedPosterior.getIntegratedEstimate(); - tmpBestEstimate = posterior.getIndexInRealTerms(posterior.MAPestimate) + timeDiff*relativeSpeedPosterior.getIndexInRealTerms(relativeSpeedPosterior.integratedEstimate); + tmpBestEstimate = posterior.getIndexInRealTerms(posterior.MAPestimate) + timeDiff*relativeSpeedPosterior.getIndexInRealTerms(getSpeedEstimateIndex()); // //printf("tmp best %f and best %f time diff %f posterior MAP %f at speed %f\n", 0Estimate, bestEstimate, timeDifference, posterior.getIndexInRealTerms(posterior.MAPestimate), relativeSpeedPosterior.getIndexInRealTerms(relativeSpeedPosterior.integratedEstimate)); //lastBestEstimateUpdateTime = ofGetElapsedTimeMillis(); } + */ void BayesianArrayStructure::updateBestEstimate(const double& timeDifference){ // double timeDiff = ofGetElapsedTimeMillis() - lastEventTime;// @@ -214,11 +219,13 @@ //lastbest is time we started playing + speedEstimateIndex = getSpeedEstimateIndex(); + /* if (usingIntegratedTempoEstimate) speedEstimateIndex = relativeSpeedPosterior.getIntegratedEstimate(); else speedEstimateIndex = relativeSpeedPosterior.MAPestimate; - + */ speedEstimate = relativeSpeedPosterior.getIndexInRealTerms(speedEstimateIndex); bestEstimate = posterior.getIndexInRealTerms(posterior.MAPestimate) + timeDiff*speedEstimate; @@ -252,16 +259,15 @@ void BayesianArrayStructure::crossUpdateArrays(DynamicVector& position, DynamicVector& speed, double timeDifference){ //set the cutoff for offset of position first! XXX - -// printf("time difference %f, ", timeDifference); + double timeDifferenceInPositionVectorUnits = timeDifference / prior.scalar; - + printf("CCUPDATE time difference %f in units %f\n", timeDifference, timeDifferenceInPositionVectorUnits); prior.zero();//kill prior - calculateNewPriorOffset(timeDifference);//set new prior offset here + //calculateNewPriorOffset(timeDifference);//doesnt do anything - if (timeDifferenceInPositionVectorUnits > crossUpdateTimeThreshold) + if (timeDifferenceInPositionVectorUnits > (crossUpdateTimeThreshold/prior.scalar)) complexCrossUpdate(timeDifferenceInPositionVectorUnits); else translateByMaximumSpeed(timeDifferenceInPositionVectorUnits); @@ -273,7 +279,10 @@ } void BayesianArrayStructure::complexCrossUpdate(const double& timeDifferenceInPositionVectorUnits){ + //distance moved is in vector units - but offsets are in millis. need to find first index + int distanceMoved, newPriorIndex; +// printf("post off %f prior off %f\n", posterior.offset, prior.offset); double speedValue = relativeSpeedPosterior.offset; @@ -286,9 +295,13 @@ if (relativeSpeedPosterior.array[i] != 0){ double speedContribution = relativeSpeedPosterior.array[i]; - // printf("speed [%i] gives %f moved %i in %f units \n", i, speedValue, distanceMoved, timeDifferenceInPositionVectorUnits); - newPriorIndex = posterior.offset - prior.offset + distanceMoved; + newPriorIndex = (int)(posterior.millisToVectorUnits(posterior.offset - prior.offset)) + distanceMoved; + + // printf("speed [%i] gives %f moved %i in %f units :: %f contributed new ptior %i\n", + // i, speedValue, distanceMoved, timeDifferenceInPositionVectorUnits, speedContribution, newPriorIndex); + + for (int postIndex = 0;postIndex < posterior.arraySize;postIndex++){ //old posterior contributing to new prior @@ -310,22 +323,28 @@ }//end speed } +double BayesianArrayStructure::getSpeedEstimateIndex(){ + if (usingIntegratedTempoEstimate) + return relativeSpeedPosterior.getIntegratedEstimate(); + else + return relativeSpeedPosterior.getMAPestimate(); +} void BayesianArrayStructure::translateByMaximumSpeed(const double& timeDifferenceInPositionVectorUnits){ int distanceMoved, newPriorIndex; - double speedValue = relativeSpeedPosterior.getIndexInRealTerms(relativeSpeedPosterior.integratedEstimate); + double speedValue = relativeSpeedPosterior.getIndexInRealTerms(getSpeedEstimateIndex()); //so for scalar 0.01, 50 -> speed value of 0.5 - double speedContribution = relativeSpeedPosterior.array[relativeSpeedPosterior.integratedEstimate]; + double speedContribution = relativeSpeedPosterior.array[(int)getSpeedEstimateIndex()];//relativeSpeedPosterior.integratedEstimate //so we have moved distanceMoved = round(timeDifferenceInPositionVectorUnits * speedValue);//round the value // printf("speed [%i] gives %f moved %i in %f units \n", i, speedValue, distanceMoved, timeDifferenceInPositionVectorUnits); for (int postIndex = 0;postIndex < posterior.arraySize;postIndex++){ //old posterior contributing to new prior - newPriorIndex = postIndex + posterior.offset - prior.offset + distanceMoved; + newPriorIndex = (int)(posterior.millisToVectorUnits(posterior.offset - prior.offset)) + postIndex + distanceMoved; if (newPriorIndex >= 0 && newPriorIndex < prior.arraySize){ prior.addToIndex(newPriorIndex, posterior.array[postIndex]*speedContribution); } @@ -359,7 +378,7 @@ relativeSpeedPosterior.copyFromDynamicVector(tmpPosteriorForStorage); } - +/* void BayesianArrayStructure::calculateNewPriorOffset(const double& timeDifference){ double maxSpeed = relativeSpeedPosterior.getIndexInRealTerms(relativeSpeedPosterior.integratedEstimate); @@ -371,7 +390,7 @@ // printf("MAP: %i, tim df %f, distance %f, new location %f\n", posterior.MAPestimate, timeDifference, distanceTravelled, newMaxLocation); } - +*/ void BayesianArrayStructure::decaySpeedDistribution(double timeDifference){ @@ -542,7 +561,7 @@ likelihood.drawConstrainedVector(startArrayIndex, endArrayIndex, startScreenPosition, endScreenPosition); // ofSetColor(0,0,200); - ofSetColor(170,170,170);//00,200); + ofSetColor(230,0,170);//00,200); prior.drawConstrainedVector(startArrayIndex, endArrayIndex, startScreenPosition, endScreenPosition); ofSetColor(0,0,150);
--- a/jnmr/BayesianArrayStructure.h Sun Feb 05 10:00:34 2012 +0000 +++ b/jnmr/BayesianArrayStructure.h Sun Feb 05 19:40:21 2012 +0000 @@ -54,7 +54,7 @@ DynamicVector acceleration; double tmpBestEstimate; - void updateTmpBestEstimate(const double& timeDifference); +// void updateTmpBestEstimate(const double& timeDifference); DELETE int updateCounter; @@ -68,6 +68,7 @@ void updateBestEstimate(const double& timeDifference); double lastBestEstimateUpdateTime; double speedEstimate, speedEstimateIndex; + double getSpeedEstimateIndex(); double speedDecayWidth, speedDecayAmount; void decaySpeedDistribution(double timeDifference); @@ -75,7 +76,7 @@ void resetSpeedSize(int length); void setRelativeSpeedScalar(double f); void setSpeedPrior(double f); - void calculateNewPriorOffset(const double& timeDifference); + //void calculateNewPriorOffset(const double& timeDifference); void setNewDistributionOffsets(const double& newOffset); void setLikelihoodToConstant();
--- a/jnmr/DynamicVector.cpp Sun Feb 05 10:00:34 2012 +0000 +++ b/jnmr/DynamicVector.cpp Sun Feb 05 19:40:21 2012 +0000 @@ -47,6 +47,8 @@ length = len; arraySize = array.size(); integratedEstimate = length/2; + MAPestimate = length/2; + printf("array size is %i\n", arraySize); } @@ -63,6 +65,19 @@ return max; } +int DynamicVector::getMAPestimate(){ + int i; + double max = 0; + for (i=0;i < length;i++){ + if (array[i] > max){ + max = array[i]; + MAPestimate = i; + } + } + maximumValue = max; + return MAPestimate; +} + double DynamicVector::getIntegratedEstimate(){ //returns the index of the integrated average - where the probability distribution is centred integratedEstimate = 0; @@ -139,6 +154,7 @@ for (int i = 0;i < arraySize;i++){ printf("[%i] = %f\n", i, array[i]); } + printf("Offset %f map estimate %i == %f ms\n", offset, MAPestimate, getIndexInRealTerms(MAPestimate)); } void DynamicVector::translateDistribution(int translationIndex){ @@ -159,7 +175,7 @@ } void DynamicVector::addGaussianShape(const double& mean, const double& StdDev, double factor){ - + //USES THE INDICES OF THE MATRIX AS MEAN AND STD DEV int i; double std_dev_factor = (2*StdDev*StdDev); factor *= (1/(StdDev*sqrt(2*PI))); @@ -175,14 +191,16 @@ void DynamicVector::addGaussianShapeFromRealTime(const double& actualTime, const double& StdDev, double factor){ + //USES THE ACTUAL VALUES IN MS AS MEAN (TIME) AND STD DEV + double StdDevAsIndex = StdDev/scalar; double mean = getRealTermsAsIndex(actualTime); - printf("Gaussian realtime %f at index %f\n", actualTime, mean); +// printf("Gaussian realtime %f at index %f std dev %f in index %f \n", actualTime, mean, StdDev, StdDevAsIndex); int i; - double std_dev_factor = (2*StdDev*StdDev); - factor *= (1/(StdDev*sqrt(2*PI))); - int maxVal = min((int) array.size(), (int)(mean + 4.8*StdDev)); - int minVal = max(0, (int)(mean - 4.8*StdDev)); + double std_dev_factor = (2*StdDevAsIndex*StdDevAsIndex); + factor *= (1/(StdDevAsIndex*sqrt(2*PI))); + int maxVal = min((int) array.size(), (int)(mean + 4.8*StdDevAsIndex)); + int minVal = max(0, (int)(mean - 4.8*StdDevAsIndex)); for (i=minVal;i < maxVal;i++){ array[i] += factor*exp(-1*(i-mean)*(i-mean)/(std_dev_factor)); @@ -254,6 +272,10 @@ } +double DynamicVector::millisToVectorUnits(const double& millis){ + return millis/scalar; +} + double DynamicVector::getValueAtMillis(const double& millis){ int index = round(getRealTermsAsIndex(millis));
--- a/jnmr/DynamicVector.h Sun Feb 05 10:00:34 2012 +0000 +++ b/jnmr/DynamicVector.h Sun Feb 05 19:40:21 2012 +0000 @@ -26,6 +26,8 @@ typedef std::vector<double> DoubleVector; DoubleVector array; double getMaximum(); + int getMAPestimate(); + double getIntegratedEstimate(); double getLookupIndex(const int& i, const double& mean, const double& StdDev); void addGaussianShapeByLookupTable(double& mean, double& StdDev, double factor); @@ -50,6 +52,7 @@ double getIndexInRealTerms(const int& index); double getRealTermsAsIndex(double value); double getValueAtMillis(const double& millis); + double millisToVectorUnits(const double& millis); void printArray(); void zero();
--- a/jnmr/midiEventHolder.cpp Sun Feb 05 10:00:34 2012 +0000 +++ b/jnmr/midiEventHolder.cpp Sun Feb 05 19:40:21 2012 +0000 @@ -10,6 +10,12 @@ //Main file to look at here is newNoteEvent() - this calls everything else to update the Bayesian array +//Relative speed is RECORDED / PLAYED +//so for timedifference t +//this is t/scalar in terms of position units of played time +//and by relative speed r, r*t/scalar + + #include "midiEventHolder.h" #include <iostream> @@ -19,6 +25,7 @@ midiEventHolder::midiEventHolder(){ + double scalarForPositionVectors = 20; // recordedNoteOnIndex = 0; alignmentPosition = 0; @@ -68,9 +75,10 @@ speedPriorValue = 1.0; - - bayesStruct.resetSize(matchWindowWidth); - bayesStruct.setPositionDistributionScalar(1); + int tmpArraySize = (int)(matchWindowWidth/scalarForPositionVectors); + bayesStruct.resetSize(tmpArraySize); + bayesStruct.setPositionDistributionScalar(scalarForPositionVectors); + printf("ARRAY SIZE IS %i\n", tmpArraySize); bayesStruct.resetSpeedSize(200); bayesStruct.setRelativeSpeedScalar(0.01); @@ -129,14 +137,14 @@ // lastSmoothUpdateTime = getTimeNow(0); printf("reset speed prior is %f\n", speedPriorValue); - bayesStruct.resetSpeedToOne(); +// bayesStruct.resetSpeedToOne(); bayesStruct.setSpeedPrior(speedPriorValue); setMatchedNotesBackToFalse(); - periodCounter = 0; - for (int i = 0;i < periodValues.size();i++){ +// periodCounter = 0; +// for (int i = 0;i < periodValues.size();i++){ // printf("period at %f is %f\n", periodValues[i][2], periodValues[i][1]); - } +// } /* if (periodValues.size() > 0){ updatePeriodValue(0);// periodValues[0][2]; printf("Resetting period to %f , size is %i\n", period, (int)periodValues.size()); @@ -189,7 +197,7 @@ void midiEventHolder::newNoteOnEvent(int pitch, int velocity, double timePlayed){ // tempoSpeedString = ""; - + //MOVE INTO BAYESSTRUCT?? XXX //bayesStruct.copyPriorToPosterior(); //why was this here?? @@ -252,8 +260,8 @@ //then we recalculate the window start based on MAP being central //then we do the matches on these and the likelihood on these. - bayesStruct.setNewDistributionOffsets(max(0., bayesStruct.bestEstimate - (bayesStruct.prior.scalar*bayesStruct.prior.arraySize/2))); -// bayesStruct.prior.offset = max(0.,newMAPestimateTime - (bayesStruct.prior.scalar*bayesStruct.prior.arraySize/2)); + bayesStruct.setNewDistributionOffsets(max(bayesStruct.posterior.offset, bayesStruct.bestEstimate - (bayesStruct.prior.scalar*bayesStruct.prior.arraySize/2))); + //bayesStruct.setNewDistributionOffsets(max(0.,newMAPestimateTime - (bayesStruct.prior.scalar*bayesStruct.prior.arraySize/2)); timeString += " \n : new offset " + ofToString(bayesStruct.prior.offset , 0); timeString += " \n best estimate "+ofToString(bayesStruct.bestEstimate, 1); @@ -271,7 +279,8 @@ timeString += " notearrayindex "+ofToString(noteArrayIndex, 0); //when this is off teh screen there is a problem somehow XXX - bayesStruct.posterior.offset = max(0., bayesStruct.bestEstimate - (bayesStruct.prior.scalar*bayesStruct.prior.arraySize/2));// bayesStruct.prior.offset = max(0., bayesStruct.bestEstimate - (bayesStruct.prior.scalar*bayesStruct.prior.arraySize/2)); + bayesStruct.posterior.offset = bayesStruct.prior.offset; + //max(0., bayesStruct.bestEstimate - (bayesStruct.prior.scalar*bayesStruct.prior.arraySize/2));// bayesStruct.prior.offset = max(0., bayesStruct.bestEstimate - (bayesStruct.prior.scalar*bayesStruct.prior.arraySize/2)); //trying to switch to prior @@ -289,6 +298,7 @@ //calcuateNewInterNoteIntervals(); } + //storedSmoothPlayPosition = smoothPlayPosition; } @@ -342,7 +352,7 @@ for (int i = 0;i < numberOfMatches && matchesFound[i] >= 0 && matchesFound[i] < recordedEventTimes.size();i++){ // printf("match times %i of %i::%f adding likelihood to %f\n", i, numberOfMatches, recordedEventTimes[matchesFound[i]], recordedEventTimes[matchesFound[i]] - bayesStruct.likelihood.offset); //this is the vent time since start of file - if (recordedEventTimes[matchesFound[i]] - bayesStruct.likelihood.offset < bayesStruct.likelihood.arraySize){ + if (recordedEventTimes[matchesFound[i]] - bayesStruct.likelihood.offset < bayesStruct.likelihood.arraySize*bayesStruct.likelihood.scalar){ // double confidenceMeasure = 0; // if (totalConfidence > 0) // confidenceMeasure = bayesStruct.posterior.getValueAtMillis(recordedEventTimes[matchesFound[i]])/totalConfidence; @@ -678,12 +688,12 @@ if (recordedTimeDifference > minimumTimeIntervalForTempoUpdate && speedRatio < maximumMatchSpeed && speedRatio > minimumMatchSpeed){ - /* printf("(%i)", previousIndex); + /* printf("(%i)", previousIndex); printf("[%i] :: ", recordedPreviousIndex); // printf(" conf %f & %f ", currentMatchConfidence, previousMatchConfidence); printf(" rec{%f} vs play(%f) ", recordedTimeDifference, playedTimeDifference); printf("update on speed ratio %f\n", speedRatio); - */ + */ // matchString += " speed: "+ofToString(speedRatio, 3); // commented for debug @@ -720,6 +730,7 @@ if (needToUpdate) bayesStruct.updateTempoDistribution(); + //printf("current speed is %f\n", bayesStruct.relativeSpeedPosterior.getIndexInRealTerms(bayesStruct.relativeSpeedPosterior.MAPestimate)); } @@ -878,24 +889,25 @@ } - +/* void midiEventHolder::updatePeriodValue(const double& millis){ double tmp = period; -/* - while (periodCounter >= 0 && periodCounter < periodValues.size()-1 && periodValues[periodCounter][2] < millis){ - periodCounter++; - } - while (periodCounter > 0 && periodValues[periodCounter][2] > millis){ - periodCounter--; - } - */ + +// while (periodCounter >= 0 && periodCounter < periodValues.size()-1 && periodValues[periodCounter][2] < millis){ +// periodCounter++; +// } +// while (periodCounter > 0 && periodValues[periodCounter][2] > millis){ +// periodCounter--; +// } + // //period = periodValues[periodCounter][1]; if (period != tmp){ printf("new period at %f of %f\n", millis, period); } } +*/ void midiEventHolder::updateNoteCounter(){ while (totalNoteCounterIndex < bestMatchIndex){ @@ -907,6 +919,7 @@ void midiEventHolder::drawMidiFile(){ + //ofBackground(80,80,80); //draws midi file on scrolling screen int size = recordedNoteOnMatrix.size(); @@ -1003,8 +1016,8 @@ } //ofDrawBitmapString(ofToString(timeOffsetForScreen, 1), 20,20); - - //ofDrawBitmapString(timeString, 20, 60); + ofSetColor(255,255,255); + ofDrawBitmapString(timeString, 20, 60); //last played piutch ofSetColor(0,200,0,50); @@ -1141,24 +1154,24 @@ } -int midiEventHolder::getLocationFromTicks(double tickPosition){ - return 0; +//int midiEventHolder::getLocationFromTicks(double tickPosition){ +// return 0; // return (int)((float)(tickPosition - numberOfScreensIn*ticksPerScreen)*(*screenWidth)/(float)ticksPerScreen); //not used -} +//} int midiEventHolder::getLocationFromMillis(double millisPosition){ //(getEventTimeTicks(windowStartTime+matchWindowWidth) - numberOfScreensIn*ticksPerScreen)*(*screenWidth) / (double)ticksPerScreen return (millisPosition - timeOffsetForScreen)*(*screenWidth)/getEventTimeMillis(ticksPerScreen); } - +/* void midiEventHolder::exampleCrossUpdate(){ bayesStruct.crossUpdateArrays(bayesStruct.posterior, bayesStruct.relativeSpeedPosterior, 200); } - +*/ void midiEventHolder::setStartPlayingTimes(){ startPlayingTime = getTimeNow(0);//ofGetElapsedTimeMillis();
--- a/jnmr/midiEventHolder.h Sun Feb 05 10:00:34 2012 +0000 +++ b/jnmr/midiEventHolder.h Sun Feb 05 19:40:21 2012 +0000 @@ -64,7 +64,7 @@ double getEventTimeMillis(double ticks); double getEventTimeTicks(double millis); - int getLocationFromTicks(double tickPosition); +// int getLocationFromTicks(double tickPosition); int getLocationFromMillis(double millisPosition); double getTimeNow(double eventTime); @@ -133,7 +133,8 @@ double recentNoteOnTime; - void exampleCrossUpdate(); +// void exampleCrossUpdate(); + BayesianArrayStructure bayesStruct; double speedPriorValue; @@ -165,8 +166,8 @@ void printInterNoteIntervals(); int interNoteRange; DoubleMatrix periodValues; - int periodCounter; - void updatePeriodValue(const double& miupdatesllis); +// int periodCounter; +// void updatePeriodValue(const double& miupdatesllis); double smoothPlayPosition; // double storedSmoothPlayPosition;
--- a/jnmr/testApp.cpp Sun Feb 05 10:00:34 2012 +0000 +++ b/jnmr/testApp.cpp Sun Feb 05 19:40:21 2012 +0000 @@ -420,7 +420,7 @@ if (key == 'c'){ double timenow = ofGetElapsedTimeMillis(); - midiEvents.exampleCrossUpdate(); + //midiEvents.exampleCrossUpdate(); timenow *= -1; timenow += ofGetElapsedTimeMillis(); printf("CROSS UPDATE TOOK %f", timenow); @@ -473,7 +473,8 @@ } if (key == 'p'){ - midiEvents.printNotes(); + //midiEvents.printNotes(); + midiEvents.bayesStruct.posterior.printArray(); } if (key == 'l')
--- a/maxPatchToPlayFiles/playMidiTranscription7.maxpat Sun Feb 05 10:00:34 2012 +0000 +++ b/maxPatchToPlayFiles/playMidiTranscription7.maxpat Sun Feb 05 19:40:21 2012 +0000 @@ -1,9 +1,9 @@ { "patcher" : { "fileversion" : 1, - "rect" : [ 577.0, 44.0, 1089.0, 872.0 ], + "rect" : [ 591.0, 44.0, 1089.0, 872.0 ], "bglocked" : 0, - "defrect" : [ 577.0, 44.0, 1089.0, 872.0 ], + "defrect" : [ 591.0, 44.0, 1089.0, 872.0 ], "openrect" : [ 0.0, 0.0, 0.0, 0.0 ], "openinpresentation" : 1, "default_fontsize" : 10.0, @@ -20,32 +20,84 @@ "devicewidth" : 0.0, "boxes" : [ { "box" : { + "maxclass" : "newobj", + "text" : "loadmess 1", + "numinlets" : 1, + "fontsize" : 10.0, + "numoutlets" : 1, + "outlettype" : [ "" ], + "id" : "obj-30", + "patching_rect" : [ 698.0, 772.0, 68.0, 19.0 ], + "fontname" : "Verdana" + } + + } +, { + "box" : { + "maxclass" : "toggle", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "int" ], + "id" : "obj-78", + "patching_rect" : [ -90.0, 449.0, 20.0, 20.0 ] + } + + } +, { + "box" : { + "maxclass" : "newobj", + "text" : "gate", + "numinlets" : 2, + "fontsize" : 10.0, + "numoutlets" : 1, + "outlettype" : [ "" ], + "id" : "obj-62", + "patching_rect" : [ -67.0, 473.0, 33.0, 19.0 ], + "fontname" : "Verdana" + } + + } +, { + "box" : { + "maxclass" : "newobj", + "text" : "print", + "numinlets" : 1, + "fontsize" : 10.0, + "numoutlets" : 0, + "id" : "obj-57", + "patching_rect" : [ -53.0, 505.0, 34.0, 19.0 ], + "fontname" : "Verdana" + } + + } +, { + "box" : { "maxclass" : "comment", "text" : "change this to load your own location of the RWC warped files", "linecount" : 3, - "fontname" : "Verdana", "numinlets" : 1, - "presentation_rect" : [ 578.0, 28.0, 330.0, 19.0 ], "fontsize" : 10.0, "numoutlets" : 0, + "presentation_rect" : [ 578.0, 28.0, 330.0, 19.0 ], + "id" : "obj-52", "patching_rect" : [ 670.0, 38.0, 150.0, 43.0 ], - "presentation" : 1, - "id" : "obj-52" + "fontname" : "Verdana", + "presentation" : 1 } } , { "box" : { "maxclass" : "number", - "fontname" : "Verdana", "numinlets" : 1, - "presentation_rect" : [ 438.0, 20.0, 50.0, 19.0 ], "fontsize" : 10.0, "numoutlets" : 2, + "presentation_rect" : [ 438.0, 20.0, 50.0, 19.0 ], + "outlettype" : [ "int", "bang" ], + "id" : "obj-56", "patching_rect" : [ 210.0, 89.0, 50.0, 19.0 ], - "outlettype" : [ "int", "bang" ], - "presentation" : 1, - "id" : "obj-56" + "fontname" : "Verdana", + "presentation" : 1 } } @@ -53,27 +105,27 @@ "box" : { "maxclass" : "message", "text" : "/RWCfile $1", - "fontname" : "Verdana", "numinlets" : 2, "fontsize" : 10.0, "numoutlets" : 1, + "outlettype" : [ "" ], + "id" : "obj-48", "patching_rect" : [ 869.0, 480.0, 70.0, 17.0 ], - "outlettype" : [ "" ], - "id" : "obj-48" + "fontname" : "Verdana" } } , { "box" : { "maxclass" : "message", - "text" : "import \"Macintosh HD:/Users/andrew/Documents/work/MuseScore/RWC/Muller_warp/RM-C007_warped.mid\"", - "fontname" : "Verdana", + "text" : "import \"Macintosh HD:/Users/andrew/Documents/work/MuseScore/RWC/Muller_warp/RM-C011_warped.mid\"", "numinlets" : 2, "fontsize" : 10.0, "numoutlets" : 1, + "outlettype" : [ "" ], + "id" : "obj-42", "patching_rect" : [ 403.0, 89.0, 568.0, 17.0 ], - "outlettype" : [ "" ], - "id" : "obj-42" + "fontname" : "Verdana" } } @@ -81,14 +133,14 @@ "box" : { "maxclass" : "comment", "text" : "set prior on start", - "fontname" : "Verdana", "numinlets" : 1, - "presentation_rect" : [ 327.0, 93.0, 150.0, 19.0 ], "fontsize" : 10.0, "numoutlets" : 0, + "presentation_rect" : [ 327.0, 93.0, 150.0, 19.0 ], + "id" : "obj-47", "patching_rect" : [ 739.0, 374.0, 150.0, 19.0 ], - "presentation" : 1, - "id" : "obj-47" + "fontname" : "Verdana", + "presentation" : 1 } } @@ -96,12 +148,12 @@ "box" : { "maxclass" : "toggle", "numinlets" : 1, + "numoutlets" : 1, "presentation_rect" : [ 300.0, 92.0, 20.0, 20.0 ], - "numoutlets" : 1, + "outlettype" : [ "int" ], + "id" : "obj-39", "patching_rect" : [ 712.0, 373.0, 20.0, 20.0 ], - "outlettype" : [ "int" ], - "presentation" : 1, - "id" : "obj-39" + "presentation" : 1 } } @@ -109,13 +161,13 @@ "box" : { "maxclass" : "newobj", "text" : "gate", - "fontname" : "Verdana", "numinlets" : 2, "fontsize" : 10.0, "numoutlets" : 1, + "outlettype" : [ "" ], + "id" : "obj-21", "patching_rect" : [ 710.0, 401.0, 33.0, 19.0 ], - "outlettype" : [ "" ], - "id" : "obj-21" + "fontname" : "Verdana" } } @@ -123,15 +175,15 @@ "box" : { "maxclass" : "message", "text" : "prefix /Users/andrew/Documents/work/MuseScore/RWC/Muller_warp", - "fontname" : "Verdana", "numinlets" : 2, - "presentation_rect" : [ 571.0, 7.0, 363.0, 17.0 ], "fontsize" : 10.0, "numoutlets" : 1, + "presentation_rect" : [ 571.0, 7.0, 363.0, 17.0 ], + "outlettype" : [ "" ], + "id" : "obj-106", "patching_rect" : [ 478.0, 12.0, 363.0, 17.0 ], - "outlettype" : [ "" ], - "presentation" : 1, - "id" : "obj-106" + "fontname" : "Verdana", + "presentation" : 1 } } @@ -139,32 +191,32 @@ "box" : { "maxclass" : "newobj", "text" : "prepend import", - "fontname" : "Arial", "numinlets" : 1, "fontsize" : 11.595187, "numoutlets" : 1, + "outlettype" : [ "" ], + "id" : "obj-101", "patching_rect" : [ 267.0, 45.0, 86.0, 20.0 ], - "outlettype" : [ "" ], - "id" : "obj-101" + "fontname" : "Arial" } } , { "box" : { "maxclass" : "umenu", + "prefix" : "Macintosh HD:/Users/andrew/Documents/work/MuseScore/RWC/Muller_warp/", + "numinlets" : 1, + "fontsize" : 10.0, + "autopopulate" : 1, + "numoutlets" : 3, + "items" : [ "RM-C001_warped.mid", ",", "RM-C002_warped.mid", ",", "RM-C003_warped.mid", ",", "RM-C004_warped.mid", ",", "RM-C005_warped.mid", ",", "RM-C006_warped.mid", ",", "RM-C007_warped.mid", ",", "RM-C008_warped.mid", ",", "RM-C009_warped.mid", ",", "RM-C010_warped.mid", ",", "RM-C011_warped.mid", ",", "RM-C012_warped.mid", ",", "RM-C013_warped.mid", ",", "RM-C014_warped.mid", ",", "RM-C015_warped.mid", ",", "RM-C016_warped.mid", ",", "RM-C017_warped.mid", ",", "RM-C018_warped.mid", ",", "RM-C019_warped.mid", ",", "RM-C020_warped.mid", ",", "RM-C021_warped.mid", ",", "RM-C022_warped.mid", ",", "RM-C023A_warped.mid", ",", "RM-C023B_warped.mid", ",", "RM-C023C_warped.mid", ",", "RM-C023D_warped.mid", ",", "RM-C023E_warped.mid", ",", "RM-C024A_warped.mid", ",", "RM-C024B_warped.mid", ",", "RM-C024C_warped.mid", ",", "RM-C025A_warped.mid", ",", "RM-C025B_warped.mid", ",", "RM-C025C_warped.mid", ",", "RM-C025D_warped.mid", ",", "RM-C026_warped.mid", ",", "RM-C027_warped.mid", ",", "RM-C028_warped.mid", ",", "RM-C029_warped.mid", ",", "RM-C030_warped.mid", ",", "RM-C031_warped.mid", ",", "RM-C032_warped.mid", ",", "RM-C033_warped.mid", ",", "RM-C034_warped.mid", ",", "RM-C035A_warped.mid", ",", "RM-C035B_warped.mid", ",", "RM-C035C_warped.mid", ",", "RM-C036_warped.mid", ",", "RM-C037_warped.mid", ",", "RM-C038_warped.mid", ",", "RM-C039_warped.mid", ",", "RM-C040_warped.mid", ",", "RM-C041_warped.mid", ",", "RM-C042_warped.mid", ",", "RM-C043_warped.mid", ",", "RM-C044_warped.mid", ",", "RM-C045_warped.mid", ",", "RM-C046_warped.mid", ",", "RM-C047_warped.mid", ",", "RM-C048_warped.mid", ",", "RM-C049_warped.mid", ",", "RM-C050_warped.mid" ], + "presentation_rect" : [ 267.0, 18.0, 164.0, 18.0 ], + "outlettype" : [ "int", "", "" ], + "types" : [ ], + "id" : "obj-102", + "patching_rect" : [ 267.0, 18.0, 164.0, 18.0 ], "fontname" : "Arial", - "numinlets" : 1, - "presentation_rect" : [ 267.0, 18.0, 164.0, 18.0 ], - "fontsize" : 10.0, - "items" : [ "RM-C001_warped.mid", ",", "RM-C002_warped.mid", ",", "RM-C003_warped.mid", ",", "RM-C004_warped.mid", ",", "RM-C005_warped.mid", ",", "RM-C006_warped.mid", ",", "RM-C007_warped.mid", ",", "RM-C008_warped.mid", ",", "RM-C009_warped.mid", ",", "RM-C010_warped.mid", ",", "RM-C011_warped.mid", ",", "RM-C012_warped.mid", ",", "RM-C013_warped.mid", ",", "RM-C014_warped.mid", ",", "RM-C015_warped.mid", ",", "RM-C016_warped.mid", ",", "RM-C017_warped.mid", ",", "RM-C018_warped.mid", ",", "RM-C019_warped.mid", ",", "RM-C020_warped.mid", ",", "RM-C021_warped.mid", ",", "RM-C022_warped.mid", ",", "RM-C023A_warped.mid", ",", "RM-C023B_warped.mid", ",", "RM-C023C_warped.mid", ",", "RM-C023D_warped.mid", ",", "RM-C023E_warped.mid", ",", "RM-C024A_warped.mid", ",", "RM-C024B_warped.mid", ",", "RM-C024C_warped.mid", ",", "RM-C025A_warped.mid", ",", "RM-C025B_warped.mid", ",", "RM-C025C_warped.mid", ",", "RM-C025D_warped.mid", ",", "RM-C026_warped.mid", ",", "RM-C027_warped.mid", ",", "RM-C028_warped.mid", ",", "RM-C029_warped.mid", ",", "RM-C030_warped.mid", ",", "RM-C031_warped.mid", ",", "RM-C032_warped.mid", ",", "RM-C033_warped.mid", ",", "RM-C034_warped.mid", ",", "RM-C035A_warped.mid", ",", "RM-C035B_warped.mid", ",", "RM-C035C_warped.mid", ",", "RM-C036_warped.mid", ",", "RM-C037_warped.mid", ",", "RM-C038_warped.mid", ",", "RM-C039_warped.mid", ",", "RM-C040_warped.mid", ",", "RM-C041_warped.mid", ",", "RM-C042_warped.mid", ",", "RM-C043_warped.mid", ",", "RM-C044_warped.mid", ",", "RM-C045_warped.mid", ",", "RM-C046_warped.mid", ",", "RM-C047_warped.mid", ",", "RM-C048_warped.mid", ",", "RM-C049_warped.mid", ",", "RM-C050_warped.mid" ], - "prefix" : "Macintosh HD:/Users/andrew/Documents/work/MuseScore/RWC/Muller_warp/", - "numoutlets" : 3, - "types" : [ ], - "patching_rect" : [ 267.0, 18.0, 164.0, 18.0 ], - "outlettype" : [ "int", "", "" ], - "presentation" : 1, - "id" : "obj-102", - "autopopulate" : 1 + "presentation" : 1 } } @@ -172,28 +224,28 @@ "box" : { "maxclass" : "newobj", "text" : "loadmess prefix /Users/andrew/Documents/work/MuseScore/RWC/Muller_warp", - "fontname" : "Arial", "numinlets" : 1, "fontsize" : 11.595187, "numoutlets" : 1, + "outlettype" : [ "" ], + "id" : "obj-103", "patching_rect" : [ 267.0, -14.0, 426.0, 20.0 ], - "outlettype" : [ "" ], - "id" : "obj-103" + "fontname" : "Arial" } } , { "box" : { "maxclass" : "umenu", - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 10.0, + "numoutlets" : 3, "items" : "<empty>", - "numoutlets" : 3, + "outlettype" : [ "int", "", "" ], "types" : [ ], + "id" : "obj-100", "patching_rect" : [ 607.0, 32.0, 100.0, 19.0 ], - "outlettype" : [ "int", "", "" ], - "id" : "obj-100" + "fontname" : "Verdana" } } @@ -201,13 +253,13 @@ "box" : { "maxclass" : "newobj", "text" : "p routingNoteons", - "fontname" : "Verdana", "numinlets" : 4, "fontsize" : 10.0, "numoutlets" : 2, - "patching_rect" : [ 143.0, 530.0, 97.0, 19.0 ], "outlettype" : [ "", "" ], "id" : "obj-98", + "patching_rect" : [ 143.0, 530.0, 97.0, 19.0 ], + "fontname" : "Verdana", "patcher" : { "fileversion" : 1, "rect" : [ 0.0, 0.0, 640.0, 480.0 ], @@ -230,28 +282,28 @@ "boxes" : [ { "box" : { "maxclass" : "message", - "text" : "181 11 32", - "fontname" : "Verdana", + "text" : "181 100 127", "numinlets" : 2, "fontsize" : 10.0, "numoutlets" : 1, + "outlettype" : [ "" ], + "id" : "obj-93", "patching_rect" : [ 310.0, 160.0, 102.0, 17.0 ], - "outlettype" : [ "" ], - "id" : "obj-93" + "fontname" : "Verdana" } } , { "box" : { "maxclass" : "message", - "text" : "59 85", - "fontname" : "Verdana", + "text" : "53 118", "numinlets" : 2, "fontsize" : 10.0, "numoutlets" : 1, + "outlettype" : [ "" ], + "id" : "obj-91", "patching_rect" : [ 120.0, 185.0, 50.0, 17.0 ], - "outlettype" : [ "" ], - "id" : "obj-91" + "fontname" : "Verdana" } } @@ -259,13 +311,13 @@ "box" : { "maxclass" : "newobj", "text" : "t l", - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 1, + "outlettype" : [ "" ], + "id" : "obj-89", "patching_rect" : [ 73.0, 158.0, 21.0, 19.0 ], - "outlettype" : [ "" ], - "id" : "obj-89" + "fontname" : "Verdana" } } @@ -273,13 +325,13 @@ "box" : { "maxclass" : "newobj", "text" : "route 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159", - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 17, + "outlettype" : [ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ], + "id" : "obj-88", "patching_rect" : [ 50.0, 100.0, 398.0, 19.0 ], - "outlettype" : [ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ], - "id" : "obj-88" + "fontname" : "Verdana" } } @@ -287,13 +339,13 @@ "box" : { "maxclass" : "newobj", "text" : "p weirdStarter", - "fontname" : "Verdana", "numinlets" : 2, "fontsize" : 10.0, "numoutlets" : 1, - "patching_rect" : [ 144.0, 237.0, 83.0, 19.0 ], "outlettype" : [ "bang" ], "id" : "obj-48", + "patching_rect" : [ 144.0, 237.0, 83.0, 19.0 ], + "fontname" : "Verdana", "patcher" : { "fileversion" : 1, "rect" : [ 25.0, 69.0, 640.0, 480.0 ], @@ -318,9 +370,9 @@ "maxclass" : "toggle", "numinlets" : 1, "numoutlets" : 1, - "patching_rect" : [ 94.0, 159.0, 20.0, 20.0 ], "outlettype" : [ "int" ], - "id" : "obj-132" + "id" : "obj-132", + "patching_rect" : [ 94.0, 159.0, 20.0, 20.0 ] } } @@ -329,9 +381,9 @@ "maxclass" : "button", "numinlets" : 1, "numoutlets" : 1, - "patching_rect" : [ 95.0, 217.0, 20.0, 20.0 ], "outlettype" : [ "bang" ], - "id" : "obj-130" + "id" : "obj-130", + "patching_rect" : [ 95.0, 217.0, 20.0, 20.0 ] } } @@ -339,13 +391,13 @@ "box" : { "maxclass" : "message", "text" : "0", - "fontname" : "Verdana", "numinlets" : 2, "fontsize" : 10.0, "numoutlets" : 1, + "outlettype" : [ "" ], + "id" : "obj-128", "patching_rect" : [ 92.0, 239.0, 32.5, 17.0 ], - "outlettype" : [ "" ], - "id" : "obj-128" + "fontname" : "Verdana" } } @@ -353,13 +405,13 @@ "box" : { "maxclass" : "newobj", "text" : "gate", - "fontname" : "Verdana", "numinlets" : 2, "fontsize" : 10.0, "numoutlets" : 1, + "outlettype" : [ "" ], + "id" : "obj-126", "patching_rect" : [ 92.0, 192.0, 33.0, 19.0 ], - "outlettype" : [ "" ], - "id" : "obj-126" + "fontname" : "Verdana" } } @@ -367,13 +419,13 @@ "box" : { "maxclass" : "message", "text" : "1", - "fontname" : "Verdana", "numinlets" : 2, "fontsize" : 10.0, "numoutlets" : 1, + "outlettype" : [ "" ], + "id" : "obj-125", "patching_rect" : [ 65.0, 136.0, 32.5, 17.0 ], - "outlettype" : [ "" ], - "id" : "obj-125" + "fontname" : "Verdana" } } @@ -381,13 +433,13 @@ "box" : { "maxclass" : "newobj", "text" : "loadbang", - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 1, + "outlettype" : [ "bang" ], + "id" : "obj-123", "patching_rect" : [ 50.0, 100.0, 56.0, 19.0 ], - "outlettype" : [ "bang" ], - "id" : "obj-123" + "fontname" : "Verdana" } } @@ -396,9 +448,9 @@ "maxclass" : "inlet", "numinlets" : 0, "numoutlets" : 1, - "patching_rect" : [ 65.0, 40.0, 25.0, 25.0 ], "outlettype" : [ "bang" ], "id" : "obj-40", + "patching_rect" : [ 65.0, 40.0, 25.0, 25.0 ], "comment" : "" } @@ -408,9 +460,9 @@ "maxclass" : "inlet", "numinlets" : 0, "numoutlets" : 1, - "patching_rect" : [ 106.0, 40.0, 25.0, 25.0 ], "outlettype" : [ "" ], "id" : "obj-41", + "patching_rect" : [ 106.0, 40.0, 25.0, 25.0 ], "comment" : "" } @@ -420,8 +472,8 @@ "maxclass" : "outlet", "numinlets" : 1, "numoutlets" : 0, + "id" : "obj-47", "patching_rect" : [ 95.0, 331.5, 25.0, 25.0 ], - "id" : "obj-47", "comment" : "" } @@ -512,13 +564,13 @@ } , "saved_object_attributes" : { - "fontname" : "Arial", - "default_fontsize" : 12.0, "globalpatchername" : "", "fontface" : 0, "fontsize" : 12.0, "default_fontface" : 0, - "default_fontname" : "Arial" + "default_fontname" : "Arial", + "fontname" : "Arial", + "default_fontsize" : 12.0 } } @@ -528,13 +580,13 @@ "box" : { "maxclass" : "newobj", "text" : "gate", - "fontname" : "Verdana", "numinlets" : 2, "fontsize" : 10.0, "numoutlets" : 1, + "outlettype" : [ "" ], + "id" : "obj-30", "patching_rect" : [ 52.0, 456.0, 33.0, 19.0 ], - "outlettype" : [ "" ], - "id" : "obj-30" + "fontname" : "Verdana" } } @@ -543,9 +595,9 @@ "maxclass" : "button", "numinlets" : 1, "numoutlets" : 1, - "patching_rect" : [ 169.0, 298.0, 20.0, 20.0 ], "outlettype" : [ "bang" ], - "id" : "obj-134" + "id" : "obj-134", + "patching_rect" : [ 169.0, 298.0, 20.0, 20.0 ] } } @@ -553,13 +605,13 @@ "box" : { "maxclass" : "newobj", "text" : "zl join", - "fontname" : "Verdana", "numinlets" : 2, "fontsize" : 10.0, "numoutlets" : 2, + "outlettype" : [ "", "" ], + "id" : "obj-83", "patching_rect" : [ 88.0, 388.0, 41.0, 19.0 ], - "outlettype" : [ "", "" ], - "id" : "obj-83" + "fontname" : "Verdana" } } @@ -567,13 +619,13 @@ "box" : { "maxclass" : "newobj", "text" : "- 0.", - "fontname" : "Verdana", "numinlets" : 2, "fontsize" : 10.0, "numoutlets" : 1, + "outlettype" : [ "float" ], + "id" : "obj-80", "patching_rect" : [ 102.0, 357.0, 32.5, 19.0 ], - "outlettype" : [ "float" ], - "id" : "obj-80" + "fontname" : "Verdana" } } @@ -581,13 +633,13 @@ "box" : { "maxclass" : "newobj", "text" : "t l b", - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 2, + "outlettype" : [ "", "bang" ], + "id" : "obj-79", "patching_rect" : [ 88.0, 299.0, 32.5, 19.0 ], - "outlettype" : [ "", "bang" ], - "id" : "obj-79" + "fontname" : "Verdana" } } @@ -595,13 +647,13 @@ "box" : { "maxclass" : "newobj", "text" : "cpuclock", - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 1, + "outlettype" : [ "float" ], + "id" : "obj-78", "patching_rect" : [ 169.0, 328.0, 53.0, 19.0 ], - "outlettype" : [ "float" ], - "id" : "obj-78" + "fontname" : "Verdana" } } @@ -609,13 +661,13 @@ "box" : { "maxclass" : "newobj", "text" : "cpuclock", - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 1, + "outlettype" : [ "float" ], + "id" : "obj-76", "patching_rect" : [ 102.0, 327.0, 53.0, 19.0 ], - "outlettype" : [ "float" ], - "id" : "obj-76" + "fontname" : "Verdana" } } @@ -624,9 +676,9 @@ "maxclass" : "inlet", "numinlets" : 0, "numoutlets" : 1, - "patching_rect" : [ 50.0, 40.0, 25.0, 25.0 ], "outlettype" : [ "" ], "id" : "obj-21", + "patching_rect" : [ 50.0, 40.0, 25.0, 25.0 ], "comment" : "" } @@ -636,9 +688,9 @@ "maxclass" : "inlet", "numinlets" : 0, "numoutlets" : 1, - "patching_rect" : [ 52.0, 40.0, 25.0, 25.0 ], "outlettype" : [ "int" ], "id" : "obj-39", + "patching_rect" : [ 52.0, 40.0, 25.0, 25.0 ], "comment" : "" } @@ -648,9 +700,9 @@ "maxclass" : "inlet", "numinlets" : 0, "numoutlets" : 1, - "patching_rect" : [ 144.0, 40.0, 25.0, 25.0 ], "outlettype" : [ "bang" ], "id" : "obj-42", + "patching_rect" : [ 144.0, 40.0, 25.0, 25.0 ], "comment" : "" } @@ -660,9 +712,9 @@ "maxclass" : "inlet", "numinlets" : 0, "numoutlets" : 1, - "patching_rect" : [ 169.0, 40.0, 25.0, 25.0 ], "outlettype" : [ "" ], "id" : "obj-47", + "patching_rect" : [ 169.0, 40.0, 25.0, 25.0 ], "comment" : "" } @@ -672,8 +724,8 @@ "maxclass" : "outlet", "numinlets" : 1, "numoutlets" : 0, + "id" : "obj-86", "patching_rect" : [ 52.0, 535.0, 25.0, 25.0 ], - "id" : "obj-86", "comment" : "" } @@ -683,8 +735,8 @@ "maxclass" : "outlet", "numinlets" : 1, "numoutlets" : 0, + "id" : "obj-96", "patching_rect" : [ 73.0, 535.0, 25.0, 25.0 ], - "id" : "obj-96", "comment" : "" } @@ -982,13 +1034,13 @@ } , "saved_object_attributes" : { - "fontname" : "Arial", - "default_fontsize" : 12.0, "globalpatchername" : "", "fontface" : 0, "fontsize" : 12.0, "default_fontface" : 0, - "default_fontname" : "Arial" + "default_fontname" : "Arial", + "fontname" : "Arial", + "default_fontsize" : 12.0 } } @@ -998,13 +1050,13 @@ "box" : { "maxclass" : "newobj", "text" : "prepend /duration", - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 1, + "outlettype" : [ "" ], + "id" : "obj-97", "patching_rect" : [ 769.0, 340.0, 101.0, 19.0 ], - "outlettype" : [ "" ], - "id" : "obj-97" + "fontname" : "Verdana" } } @@ -1012,12 +1064,12 @@ "box" : { "maxclass" : "newobj", "text" : "print", - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 0, + "id" : "obj-92", "patching_rect" : [ 33.0, 893.0, 34.0, 19.0 ], - "id" : "obj-92" + "fontname" : "Verdana" } } @@ -1026,9 +1078,9 @@ "maxclass" : "toggle", "numinlets" : 1, "numoutlets" : 1, - "patching_rect" : [ 33.0, 827.0, 20.0, 20.0 ], "outlettype" : [ "int" ], - "id" : "obj-90" + "id" : "obj-90", + "patching_rect" : [ 33.0, 827.0, 20.0, 20.0 ] } } @@ -1036,13 +1088,13 @@ "box" : { "maxclass" : "newobj", "text" : "gate", - "fontname" : "Verdana", "numinlets" : 2, "fontsize" : 10.0, "numoutlets" : 1, + "outlettype" : [ "" ], + "id" : "obj-7", "patching_rect" : [ 33.0, 862.0, 33.0, 19.0 ], - "outlettype" : [ "" ], - "id" : "obj-7" + "fontname" : "Verdana" } } @@ -1050,13 +1102,13 @@ "box" : { "maxclass" : "newobj", "text" : "loadmess 0.08", - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 1, + "outlettype" : [ "" ], + "id" : "obj-61", "patching_rect" : [ 633.0, 513.0, 84.0, 19.0 ], - "outlettype" : [ "" ], - "id" : "obj-61" + "fontname" : "Verdana" } } @@ -1064,32 +1116,32 @@ "box" : { "maxclass" : "newobj", "text" : "prepend /likelihoodToNoiseRatio", - "fontname" : "Verdana", "numinlets" : 1, - "presentation_rect" : [ 135.0, 522.0, 171.0, 19.0 ], "fontsize" : 10.0, "numoutlets" : 1, + "presentation_rect" : [ 135.0, 522.0, 171.0, 19.0 ], + "outlettype" : [ "" ], + "id" : "obj-58", "patching_rect" : [ 612.0, 579.0, 171.0, 19.0 ], - "outlettype" : [ "" ], - "presentation" : 1, - "id" : "obj-58" + "fontname" : "Verdana", + "presentation" : 1 } } , { "box" : { "maxclass" : "flonum", + "numinlets" : 1, + "fontsize" : 10.0, + "numoutlets" : 2, + "presentation_rect" : [ 138.0, 500.0, 50.0, 19.0 ], + "outlettype" : [ "float", "bang" ], + "maximum" : 0.6, + "id" : "obj-59", + "patching_rect" : [ 612.0, 552.0, 50.0, 19.0 ], "fontname" : "Verdana", - "numinlets" : 1, - "presentation_rect" : [ 138.0, 500.0, 50.0, 19.0 ], - "fontsize" : 10.0, - "maximum" : 0.6, - "numoutlets" : 2, - "minimum" : 0.001, - "patching_rect" : [ 612.0, 552.0, 50.0, 19.0 ], - "outlettype" : [ "float", "bang" ], "presentation" : 1, - "id" : "obj-59" + "minimum" : 0.001 } } @@ -1097,32 +1149,32 @@ "box" : { "maxclass" : "newobj", "text" : "prepend /maximumSpeedRatio", - "fontname" : "Verdana", "numinlets" : 1, - "presentation_rect" : [ 311.0, 464.0, 167.0, 19.0 ], "fontsize" : 10.0, "numoutlets" : 1, + "presentation_rect" : [ 311.0, 464.0, 167.0, 19.0 ], + "outlettype" : [ "" ], + "id" : "obj-45", "patching_rect" : [ 702.0, 728.0, 167.0, 19.0 ], - "outlettype" : [ "" ], - "presentation" : 1, - "id" : "obj-45" + "fontname" : "Verdana", + "presentation" : 1 } } , { "box" : { "maxclass" : "flonum", + "numinlets" : 1, + "fontsize" : 10.0, + "numoutlets" : 2, + "presentation_rect" : [ 311.0, 436.0, 50.0, 19.0 ], + "outlettype" : [ "float", "bang" ], + "maximum" : 2.0, + "id" : "obj-51", + "patching_rect" : [ 702.0, 701.0, 50.0, 19.0 ], "fontname" : "Verdana", - "numinlets" : 1, - "presentation_rect" : [ 311.0, 436.0, 50.0, 19.0 ], - "fontsize" : 10.0, - "maximum" : 2.0, - "numoutlets" : 2, - "minimum" : 0.0, - "patching_rect" : [ 702.0, 701.0, 50.0, 19.0 ], - "outlettype" : [ "float", "bang" ], "presentation" : 1, - "id" : "obj-51" + "minimum" : 0.0 } } @@ -1130,50 +1182,50 @@ "box" : { "maxclass" : "button", "numinlets" : 1, + "numoutlets" : 1, "presentation_rect" : [ 523.0, 109.0, 20.0, 20.0 ], - "numoutlets" : 1, + "outlettype" : [ "bang" ], + "id" : "obj-87", "patching_rect" : [ 713.0, 162.0, 20.0, 20.0 ], - "outlettype" : [ "bang" ], - "presentation" : 1, - "id" : "obj-87" + "presentation" : 1 } } , { "box" : { "maxclass" : "number", - "fontname" : "Verdana", + "htextcolor" : [ 0.870588, 0.870588, 0.870588, 1.0 ], "numinlets" : 1, - "presentation_rect" : [ 522.0, 136.0, 63.0, 19.0 ], "fontsize" : 10.0, "numoutlets" : 2, + "presentation_rect" : [ 522.0, 136.0, 63.0, 19.0 ], + "triscale" : 0.9, + "outlettype" : [ "int", "bang" ], + "bgcolor" : [ 0.866667, 0.866667, 0.866667, 1.0 ], + "id" : "obj-66", "patching_rect" : [ 777.0, 284.0, 63.0, 19.0 ], - "outlettype" : [ "int", "bang" ], - "presentation" : 1, - "id" : "obj-66", - "htextcolor" : [ 0.870588, 0.870588, 0.870588, 1.0 ], - "bgcolor" : [ 0.866667, 0.866667, 0.866667, 1.0 ], - "triscale" : 0.9 + "fontname" : "Verdana", + "presentation" : 1 } } , { "box" : { "maxclass" : "flonum", - "fontname" : "Verdana", + "htextcolor" : [ 0.870588, 0.870588, 0.870588, 1.0 ], + "numinlets" : 1, "triangle" : 0, - "numinlets" : 1, - "presentation_rect" : [ 522.0, 159.0, 64.0, 19.0 ], "fontsize" : 10.0, "numoutlets" : 2, + "presentation_rect" : [ 522.0, 159.0, 64.0, 19.0 ], + "triscale" : 0.9, + "outlettype" : [ "float", "bang" ], + "cantchange" : 1, + "bgcolor" : [ 0.866667, 0.866667, 0.866667, 1.0 ], + "id" : "obj-75", "patching_rect" : [ 777.0, 307.0, 64.0, 19.0 ], - "cantchange" : 1, - "outlettype" : [ "float", "bang" ], - "presentation" : 1, - "id" : "obj-75", - "htextcolor" : [ 0.870588, 0.870588, 0.870588, 1.0 ], - "bgcolor" : [ 0.866667, 0.866667, 0.866667, 1.0 ], - "triscale" : 0.9 + "fontname" : "Verdana", + "presentation" : 1 } } @@ -1181,58 +1233,58 @@ "box" : { "maxclass" : "comment", "text" : "number of events", - "fontname" : "Verdana", "numinlets" : 1, - "presentation_rect" : [ 587.0, 136.0, 97.0, 19.0 ], "fontsize" : 10.0, "numoutlets" : 0, + "presentation_rect" : [ 587.0, 136.0, 97.0, 19.0 ], + "id" : "obj-77", "patching_rect" : [ 840.0, 286.0, 97.0, 19.0 ], - "presentation" : 1, - "id" : "obj-77" + "fontname" : "Verdana", + "presentation" : 1 } } , { "box" : { "maxclass" : "ftm.mess", + "ftm_scope" : 1, + "numinlets" : 2, + "fontsize" : 10.0, + "numoutlets" : 1, + "#untuple" : 0, + "text" : [ "_($1 size)" ], + "presentation_rect" : [ 718.0, 285.0, 51.93457, 17.0 ], + "outlettype" : [ "" ], + "#loadbang" : 0, + "#triggerall" : 0, + "id" : "obj-81", + "patching_rect" : [ 718.0, 285.0, 51.93457, 17.0 ], "fontname" : "Verdana", - "ftm_scope" : 1, - "#loadbang" : 0, - "text" : [ "_($1 size)" ], - "numinlets" : 2, - "#triggerall" : 0, - "presentation_rect" : [ 718.0, 285.0, 51.93457, 17.0 ], - "fontsize" : 10.0, - "ftm_objref_conv" : 0, - "numoutlets" : 1, + "presentation" : 1, "#init" : "", - "patching_rect" : [ 718.0, 285.0, 51.93457, 17.0 ], - "outlettype" : [ "" ], - "#untuple" : 0, - "presentation" : 1, - "id" : "obj-81" + "ftm_objref_conv" : 0 } } , { "box" : { "maxclass" : "ftm.mess", + "ftm_scope" : 0, + "numinlets" : 2, + "fontsize" : 10.0, + "numoutlets" : 1, + "#untuple" : 0, + "text" : [ "_($1 duration)" ], + "presentation_rect" : [ 699.0, 308.0, 74.566406, 17.0 ], + "outlettype" : [ "" ], + "#loadbang" : 0, + "#triggerall" : 0, + "id" : "obj-84", + "patching_rect" : [ 699.0, 308.0, 74.566406, 17.0 ], "fontname" : "Verdana", - "ftm_scope" : 0, - "#loadbang" : 0, - "text" : [ "_($1 duration)" ], - "numinlets" : 2, - "#triggerall" : 0, - "presentation_rect" : [ 699.0, 308.0, 74.566406, 17.0 ], - "fontsize" : 10.0, - "ftm_objref_conv" : 0, - "numoutlets" : 1, + "presentation" : 1, "#init" : "", - "patching_rect" : [ 699.0, 308.0, 74.566406, 17.0 ], - "outlettype" : [ "" ], - "#untuple" : 0, - "presentation" : 1, - "id" : "obj-84" + "ftm_objref_conv" : 0 } } @@ -1240,14 +1292,14 @@ "box" : { "maxclass" : "comment", "text" : "duration in msec", - "fontname" : "Verdana", "numinlets" : 1, - "presentation_rect" : [ 587.0, 159.0, 93.0, 19.0 ], "fontsize" : 10.0, "numoutlets" : 0, + "presentation_rect" : [ 587.0, 159.0, 93.0, 19.0 ], + "id" : "obj-85", "patching_rect" : [ 840.0, 309.0, 93.0, 19.0 ], - "presentation" : 1, - "id" : "obj-85" + "fontname" : "Verdana", + "presentation" : 1 } } @@ -1255,13 +1307,13 @@ "box" : { "maxclass" : "message", "text" : "import /Users/andrew/hg/midi-score-follower/MIDIfiles/test.mid", - "fontname" : "Verdana", "numinlets" : 2, "fontsize" : 10.0, "numoutlets" : 1, + "outlettype" : [ "" ], + "id" : "obj-53", "patching_rect" : [ 663.0, 129.0, 335.0, 17.0 ], - "outlettype" : [ "" ], - "id" : "obj-53" + "fontname" : "Verdana" } } @@ -1269,29 +1321,73 @@ "box" : { "maxclass" : "newobj", "text" : "loadmess 1", - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 1, + "outlettype" : [ "" ], + "id" : "obj-28", "patching_rect" : [ -28.0, 309.0, 68.0, 19.0 ], - "outlettype" : [ "" ], - "id" : "obj-28" + "fontname" : "Verdana" } } , { "box" : { "maxclass" : "message", - "text" : "148 59 85", - "fontname" : "Verdana", + "text" : "145 53 118", "numinlets" : 2, - "presentation_rect" : [ 10.0, 226.0, 95.0, 17.0 ], "fontsize" : 10.0, "numoutlets" : 1, + "presentation_rect" : [ 10.0, 226.0, 95.0, 17.0 ], + "outlettype" : [ "" ], + "id" : "obj-50", "patching_rect" : [ -131.0, 428.0, 95.0, 17.0 ], + "fontname" : "Verdana", + "presentation" : 1 + } + + } +, { + "box" : { + "maxclass" : "message", + "text" : "/MAPestimate", + "numinlets" : 2, + "fontsize" : 10.0, + "numoutlets" : 1, + "presentation_rect" : [ 364.0, 375.0, 108.0, 17.0 ], "outlettype" : [ "" ], - "presentation" : 1, - "id" : "obj-50" + "id" : "obj-43", + "patching_rect" : [ 793.0, 807.0, 108.0, 17.0 ], + "fontname" : "Verdana", + "presentation" : 1 + } + + } +, { + "box" : { + "maxclass" : "message", + "text" : "/MAPestimate", + "numinlets" : 2, + "fontsize" : 10.0, + "numoutlets" : 1, + "outlettype" : [ "" ], + "id" : "obj-40", + "patching_rect" : [ 768.0, 865.0, 80.0, 17.0 ], + "fontname" : "Verdana" + } + + } +, { + "box" : { + "maxclass" : "newobj", + "text" : "sel 0 1", + "numinlets" : 1, + "fontsize" : 10.0, + "numoutlets" : 3, + "outlettype" : [ "bang", "bang", "" ], + "id" : "obj-38", + "patching_rect" : [ 698.0, 826.0, 46.0, 19.0 ], + "fontname" : "Verdana" } } @@ -1299,57 +1395,13 @@ "box" : { "maxclass" : "message", "text" : "/integratedEstimate", - "fontname" : "Verdana", - "numinlets" : 2, - "presentation_rect" : [ 364.0, 375.0, 108.0, 17.0 ], - "fontsize" : 10.0, - "numoutlets" : 1, - "patching_rect" : [ 793.0, 807.0, 108.0, 17.0 ], - "outlettype" : [ "" ], - "presentation" : 1, - "id" : "obj-43" - } - - } -, { - "box" : { - "maxclass" : "message", - "text" : "/MAPestimate", - "fontname" : "Verdana", "numinlets" : 2, "fontsize" : 10.0, "numoutlets" : 1, - "patching_rect" : [ 768.0, 865.0, 80.0, 17.0 ], "outlettype" : [ "" ], - "id" : "obj-40" - } - - } -, { - "box" : { - "maxclass" : "newobj", - "text" : "sel 0 1", - "fontname" : "Verdana", - "numinlets" : 1, - "fontsize" : 10.0, - "numoutlets" : 3, - "patching_rect" : [ 698.0, 826.0, 46.0, 19.0 ], - "outlettype" : [ "bang", "bang", "" ], - "id" : "obj-38" - } - - } -, { - "box" : { - "maxclass" : "message", - "text" : "/integratedEstimate", - "fontname" : "Verdana", - "numinlets" : 2, - "fontsize" : 10.0, - "numoutlets" : 1, + "id" : "obj-35", "patching_rect" : [ 646.0, 865.0, 110.0, 17.0 ], - "outlettype" : [ "" ], - "id" : "obj-35" + "fontname" : "Verdana" } } @@ -1357,12 +1409,12 @@ "box" : { "maxclass" : "toggle", "numinlets" : 1, + "numoutlets" : 1, "presentation_rect" : [ 364.0, 350.0, 20.0, 20.0 ], - "numoutlets" : 1, + "outlettype" : [ "int" ], + "id" : "obj-22", "patching_rect" : [ 698.0, 796.0, 20.0, 20.0 ], - "outlettype" : [ "int" ], - "presentation" : 1, - "id" : "obj-22" + "presentation" : 1 } } @@ -1370,32 +1422,32 @@ "box" : { "maxclass" : "newobj", "text" : "prepend /minimumSpeedRatio", - "fontname" : "Verdana", "numinlets" : 1, - "presentation_rect" : [ 134.0, 463.0, 164.0, 19.0 ], "fontsize" : 10.0, "numoutlets" : 1, + "presentation_rect" : [ 134.0, 463.0, 164.0, 19.0 ], + "outlettype" : [ "" ], + "id" : "obj-13", "patching_rect" : [ 685.0, 657.0, 164.0, 19.0 ], - "outlettype" : [ "" ], - "presentation" : 1, - "id" : "obj-13" + "fontname" : "Verdana", + "presentation" : 1 } } , { "box" : { "maxclass" : "flonum", + "numinlets" : 1, + "fontsize" : 10.0, + "numoutlets" : 2, + "presentation_rect" : [ 134.0, 436.0, 50.0, 19.0 ], + "outlettype" : [ "float", "bang" ], + "maximum" : 2.0, + "id" : "obj-12", + "patching_rect" : [ 685.0, 630.0, 50.0, 19.0 ], "fontname" : "Verdana", - "numinlets" : 1, - "presentation_rect" : [ 134.0, 436.0, 50.0, 19.0 ], - "fontsize" : 10.0, - "maximum" : 2.0, - "numoutlets" : 2, - "minimum" : 0.0, - "patching_rect" : [ 685.0, 630.0, 50.0, 19.0 ], - "outlettype" : [ "float", "bang" ], "presentation" : 1, - "id" : "obj-12" + "minimum" : 0.0 } } @@ -1403,13 +1455,13 @@ "box" : { "maxclass" : "message", "text" : "0", - "fontname" : "Verdana", "numinlets" : 2, "fontsize" : 10.0, "numoutlets" : 1, + "outlettype" : [ "" ], + "id" : "obj-41", "patching_rect" : [ 86.0, 135.0, 32.5, 17.0 ], - "outlettype" : [ "" ], - "id" : "obj-41" + "fontname" : "Verdana" } } @@ -1417,28 +1469,28 @@ "box" : { "maxclass" : "newobj", "text" : "loadmess 250", - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 1, + "outlettype" : [ "" ], + "id" : "obj-37", "patching_rect" : [ 141.0, 150.0, 80.0, 19.0 ], - "outlettype" : [ "" ], - "id" : "obj-37" + "fontname" : "Verdana" } } , { "box" : { "maxclass" : "number", - "fontname" : "Verdana", "numinlets" : 1, - "presentation_rect" : [ 583.0, 228.0, 50.0, 19.0 ], "fontsize" : 10.0, "numoutlets" : 2, + "presentation_rect" : [ 583.0, 228.0, 50.0, 19.0 ], + "outlettype" : [ "int", "bang" ], + "id" : "obj-36", "patching_rect" : [ 141.0, 173.0, 50.0, 19.0 ], - "outlettype" : [ "int", "bang" ], - "presentation" : 1, - "id" : "obj-36" + "fontname" : "Verdana", + "presentation" : 1 } } @@ -1448,14 +1500,14 @@ "text" : "iterate through notes when used offline", "linecount" : 2, "presentation_linecount" : 2, - "fontname" : "Verdana", "numinlets" : 1, - "presentation_rect" : [ 550.0, 197.0, 150.0, 31.0 ], "fontsize" : 10.0, "numoutlets" : 0, + "presentation_rect" : [ 550.0, 197.0, 150.0, 31.0 ], + "id" : "obj-34", "patching_rect" : [ 1247.0, 855.0, 150.0, 31.0 ], - "presentation" : 1, - "id" : "obj-34" + "fontname" : "Verdana", + "presentation" : 1 } } @@ -1463,12 +1515,12 @@ "box" : { "maxclass" : "toggle", "numinlets" : 1, + "numoutlets" : 1, "presentation_rect" : [ 523.0, 204.0, 20.0, 20.0 ], - "numoutlets" : 1, + "outlettype" : [ "int" ], + "id" : "obj-11", "patching_rect" : [ 89.0, 165.0, 20.0, 20.0 ], - "outlettype" : [ "int" ], - "presentation" : 1, - "id" : "obj-11" + "presentation" : 1 } } @@ -1476,30 +1528,30 @@ "box" : { "maxclass" : "newobj", "text" : "metro 250", - "fontname" : "Verdana", "numinlets" : 2, - "presentation_rect" : [ 517.0, 230.0, 63.0, 19.0 ], "fontsize" : 10.0, "numoutlets" : 1, + "presentation_rect" : [ 517.0, 230.0, 63.0, 19.0 ], + "outlettype" : [ "bang" ], + "id" : "obj-2", "patching_rect" : [ 90.0, 201.0, 63.0, 19.0 ], - "outlettype" : [ "bang" ], - "presentation" : 1, - "id" : "obj-2" + "fontname" : "Verdana", + "presentation" : 1 } } , { "box" : { "maxclass" : "flonum", - "fontname" : "Verdana", "numinlets" : 1, - "presentation_rect" : [ 282.0, 62.0, 57.0, 21.0 ], "fontsize" : 12.0, "numoutlets" : 2, + "presentation_rect" : [ 282.0, 62.0, 57.0, 21.0 ], + "outlettype" : [ "float", "bang" ], + "id" : "obj-99", "patching_rect" : [ 511.0, 249.0, 57.0, 21.0 ], - "outlettype" : [ "float", "bang" ], - "presentation" : 1, - "id" : "obj-99" + "fontname" : "Verdana", + "presentation" : 1 } } @@ -1507,13 +1559,13 @@ "box" : { "maxclass" : "message", "text" : "/offline", - "fontname" : "Verdana", "numinlets" : 2, "fontsize" : 10.0, "numoutlets" : 1, + "outlettype" : [ "" ], + "id" : "obj-74", "patching_rect" : [ 169.0, 893.0, 46.0, 17.0 ], - "outlettype" : [ "" ], - "id" : "obj-74" + "fontname" : "Verdana" } } @@ -1521,13 +1573,13 @@ "box" : { "maxclass" : "message", "text" : "/realtime", - "fontname" : "Verdana", "numinlets" : 2, "fontsize" : 10.0, "numoutlets" : 1, + "outlettype" : [ "" ], + "id" : "obj-73", "patching_rect" : [ 100.0, 890.0, 56.0, 17.0 ], - "outlettype" : [ "" ], - "id" : "obj-73" + "fontname" : "Verdana" } } @@ -1535,13 +1587,13 @@ "box" : { "maxclass" : "newobj", "text" : "sel 1 2", - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 3, + "outlettype" : [ "bang", "bang", "" ], + "id" : "obj-64", "patching_rect" : [ 85.0, 860.0, 46.0, 19.0 ], - "outlettype" : [ "bang", "bang", "" ], - "id" : "obj-64" + "fontname" : "Verdana" } } @@ -1549,13 +1601,13 @@ "box" : { "maxclass" : "newobj", "text" : "p ftmPlayer", - "fontname" : "Verdana", "numinlets" : 2, "fontsize" : 10.0, "numoutlets" : 2, - "patching_rect" : [ 45.0, 316.0, 476.0, 19.0 ], "outlettype" : [ "", "" ], "id" : "obj-60", + "patching_rect" : [ 45.0, 316.0, 476.0, 19.0 ], + "fontname" : "Verdana", "patcher" : { "fileversion" : 1, "rect" : [ 25.0, 69.0, 640.0, 480.0 ], @@ -1580,9 +1632,9 @@ "maxclass" : "inlet", "numinlets" : 0, "numoutlets" : 1, - "patching_rect" : [ 336.0, 56.0, 25.0, 25.0 ], "outlettype" : [ "float" ], "id" : "obj-1", + "patching_rect" : [ 336.0, 56.0, 25.0, 25.0 ], "comment" : "" } @@ -1591,14 +1643,14 @@ "box" : { "maxclass" : "comment", "text" : "midi", - "fontname" : "Verdana", "numinlets" : 1, - "presentation_rect" : [ 52.0, 420.0, 150.0, 19.0 ], "fontsize" : 10.0, "numoutlets" : 0, + "presentation_rect" : [ 52.0, 420.0, 150.0, 19.0 ], + "id" : "obj-11", "patching_rect" : [ 131.0, 214.0, 150.0, 19.0 ], - "presentation" : 1, - "id" : "obj-11" + "fontname" : "Verdana", + "presentation" : 1 } } @@ -1606,13 +1658,13 @@ "box" : { "maxclass" : "newobj", "text" : "p otherFtmControls", - "fontname" : "Verdana", "numinlets" : 0, "fontsize" : 10.0, "numoutlets" : 1, - "patching_rect" : [ 50.0, 109.0, 108.0, 19.0 ], "outlettype" : [ "" ], "id" : "obj-115", + "patching_rect" : [ 50.0, 109.0, 108.0, 19.0 ], + "fontname" : "Verdana", "patcher" : { "fileversion" : 1, "rect" : [ 25.0, 69.0, 640.0, 480.0 ], @@ -1638,14 +1690,14 @@ "text" : "ordinary file following (x) or else one shot test", "linecount" : 2, "presentation_linecount" : 2, - "fontname" : "Verdana", "numinlets" : 1, - "presentation_rect" : [ 52.0, 186.0, 156.0, 31.0 ], "fontsize" : 10.0, "numoutlets" : 0, + "presentation_rect" : [ 52.0, 186.0, 156.0, 31.0 ], + "id" : "obj-111", "patching_rect" : [ 98.0, 56.0, 153.0, 31.0 ], - "presentation" : 1, - "id" : "obj-111" + "fontname" : "Verdana", + "presentation" : 1 } } @@ -1653,33 +1705,33 @@ "box" : { "maxclass" : "comment", "text" : "set speed", - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 0, + "id" : "obj-3", "patching_rect" : [ 362.0, 263.0, 57.0, 19.0 ], - "id" : "obj-3" + "fontname" : "Verdana" } } , { "box" : { "maxclass" : "ftm.mess", + "ftm_scope" : 0, + "numinlets" : 2, + "fontsize" : 10.0, + "numoutlets" : 1, + "#untuple" : 0, + "text" : [ "_loop 500 1500 1." ], + "presentation_rect" : [ 216.0, 166.0, 92.157234, 17.0 ], + "outlettype" : [ "" ], + "#loadbang" : 0, + "#triggerall" : 0, + "id" : "obj-4", + "patching_rect" : [ 216.0, 166.0, 92.157234, 17.0 ], "fontname" : "Verdana", - "ftm_scope" : 0, - "#loadbang" : 0, - "text" : [ "_loop 500 1500 1." ], - "numinlets" : 2, - "#triggerall" : 0, - "presentation_rect" : [ 216.0, 166.0, 92.157234, 17.0 ], - "fontsize" : 10.0, - "ftm_objref_conv" : 0, - "numoutlets" : 1, "#init" : "", - "patching_rect" : [ 216.0, 166.0, 92.157234, 17.0 ], - "outlettype" : [ "" ], - "#untuple" : 0, - "id" : "obj-4" + "ftm_objref_conv" : 0 } } @@ -1687,33 +1739,33 @@ "box" : { "maxclass" : "comment", "text" : "set segment (begin, end and speed) and loop", - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 0, + "id" : "obj-5", "patching_rect" : [ 306.0, 167.0, 240.0, 19.0 ], - "id" : "obj-5" + "fontname" : "Verdana" } } , { "box" : { "maxclass" : "ftm.mess", + "ftm_scope" : 0, + "numinlets" : 2, + "fontsize" : 10.0, + "numoutlets" : 1, + "#untuple" : 0, + "text" : [ "_play $play.seq 500 1500 1." ], + "presentation_rect" : [ 216.0, 146.0, 142.66507, 17.0 ], + "outlettype" : [ "" ], + "#loadbang" : 0, + "#triggerall" : 0, + "id" : "obj-6", + "patching_rect" : [ 216.0, 146.0, 142.66507, 17.0 ], "fontname" : "Verdana", - "ftm_scope" : 0, - "#loadbang" : 0, - "text" : [ "_play $play.seq 500 1500 1." ], - "numinlets" : 2, - "#triggerall" : 0, - "presentation_rect" : [ 216.0, 146.0, 142.66507, 17.0 ], - "fontsize" : 10.0, - "ftm_objref_conv" : 0, - "numoutlets" : 1, "#init" : "", - "patching_rect" : [ 216.0, 146.0, 142.66507, 17.0 ], - "outlettype" : [ "" ], - "#untuple" : 0, - "id" : "obj-6" + "ftm_objref_conv" : 0 } } @@ -1721,12 +1773,12 @@ "box" : { "maxclass" : "comment", "text" : "set segment (track, begin, end and speed) and play", - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 0, + "id" : "obj-7", "patching_rect" : [ 370.0, 147.0, 272.0, 19.0 ], - "id" : "obj-7" + "fontname" : "Verdana" } } @@ -1734,12 +1786,12 @@ "box" : { "maxclass" : "comment", "text" : "advance to next time", - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 0, + "id" : "obj-8", "patching_rect" : [ 88.0, 258.0, 115.0, 19.0 ], - "id" : "obj-8" + "fontname" : "Verdana" } } @@ -1748,11 +1800,11 @@ "maxclass" : "slider", "orientation" : 1, "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], "size" : 1001.0, - "numoutlets" : 1, + "id" : "obj-9", "patching_rect" : [ 162.0, 238.0, 169.0, 15.0 ], - "outlettype" : [ "" ], - "id" : "obj-9", "mult" : 10.0 } @@ -1761,12 +1813,12 @@ "box" : { "maxclass" : "comment", "text" : "locate or jump at given time", - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 0, + "id" : "obj-10", "patching_rect" : [ 114.0, 121.0, 151.0, 19.0 ], - "id" : "obj-10" + "fontname" : "Verdana" } } @@ -1774,13 +1826,13 @@ "box" : { "maxclass" : "message", "text" : "next", - "fontname" : "Verdana", "numinlets" : 2, "fontsize" : 10.0, "numoutlets" : 1, + "outlettype" : [ "" ], + "id" : "obj-11", "patching_rect" : [ 50.0, 257.0, 33.0, 17.0 ], - "outlettype" : [ "" ], - "id" : "obj-11" + "fontname" : "Verdana" } } @@ -1788,13 +1840,13 @@ "box" : { "maxclass" : "message", "text" : "jump 300.", - "fontname" : "Verdana", "numinlets" : 2, "fontsize" : 10.0, "numoutlets" : 1, + "outlettype" : [ "" ], + "id" : "obj-12", "patching_rect" : [ 50.0, 119.0, 62.0, 17.0 ], - "outlettype" : [ "" ], - "id" : "obj-12" + "fontname" : "Verdana" } } @@ -1802,12 +1854,12 @@ "box" : { "maxclass" : "comment", "text" : "set speed by giving a duration for the current segment", - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 0, + "id" : "obj-23", "patching_rect" : [ 336.0, 281.0, 285.0, 19.0 ], - "id" : "obj-23" + "fontname" : "Verdana" } } @@ -1815,12 +1867,12 @@ "box" : { "maxclass" : "comment", "text" : "set segment (only begin and end) and play straight", - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 0, + "id" : "obj-24", "patching_rect" : [ 354.0, 120.0, 270.0, 19.0 ], - "id" : "obj-24" + "fontname" : "Verdana" } } @@ -1828,12 +1880,12 @@ "box" : { "maxclass" : "comment", "text" : "play current segment", - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 0, + "id" : "obj-25", "patching_rect" : [ 86.0, 147.0, 116.0, 19.0 ], - "id" : "obj-25" + "fontname" : "Verdana" } } @@ -1841,50 +1893,50 @@ "box" : { "maxclass" : "message", "text" : "speed 0.5", - "fontname" : "Verdana", "numinlets" : 2, "fontsize" : 10.0, "numoutlets" : 1, + "outlettype" : [ "" ], + "id" : "obj-26", "patching_rect" : [ 299.0, 262.0, 58.0, 17.0 ], - "outlettype" : [ "" ], - "id" : "obj-26" + "fontname" : "Verdana" } } , { "box" : { "maxclass" : "ftm.mess", + "ftm_scope" : 0, + "numinlets" : 2, + "fontsize" : 10.0, + "numoutlets" : 1, + "#untuple" : 0, + "text" : [ "_set 0 9999999" ], + "presentation_rect" : [ 274.0, 119.0, 78.998055, 17.0 ], + "outlettype" : [ "" ], + "#loadbang" : 0, + "#triggerall" : 0, + "id" : "obj-27", + "patching_rect" : [ 274.0, 119.0, 78.998055, 17.0 ], "fontname" : "Verdana", - "ftm_scope" : 0, - "#loadbang" : 0, - "text" : [ "_set 0 9999999" ], - "numinlets" : 2, - "#triggerall" : 0, - "presentation_rect" : [ 274.0, 119.0, 78.998055, 17.0 ], - "fontsize" : 10.0, - "ftm_objref_conv" : 0, - "numoutlets" : 1, "#init" : "", - "patching_rect" : [ 274.0, 119.0, 78.998055, 17.0 ], - "outlettype" : [ "" ], - "#untuple" : 0, - "id" : "obj-27" + "ftm_objref_conv" : 0 } } , { "box" : { "maxclass" : "flonum", - "fontname" : "Verdana", + "htextcolor" : [ 0.870588, 0.870588, 0.870588, 1.0 ], "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 2, + "triscale" : 0.9, + "outlettype" : [ "float", "bang" ], + "bgcolor" : [ 0.866667, 0.866667, 0.866667, 1.0 ], + "id" : "obj-28", "patching_rect" : [ 104.0, 238.0, 56.0, 19.0 ], - "outlettype" : [ "float", "bang" ], - "id" : "obj-28", - "htextcolor" : [ 0.870588, 0.870588, 0.870588, 1.0 ], - "bgcolor" : [ 0.866667, 0.866667, 0.866667, 1.0 ], - "triscale" : 0.9 + "fontname" : "Verdana" } } @@ -1892,13 +1944,13 @@ "box" : { "maxclass" : "message", "text" : "duration 1000", - "fontname" : "Verdana", "numinlets" : 2, "fontsize" : 10.0, "numoutlets" : 1, + "outlettype" : [ "" ], + "id" : "obj-29", "patching_rect" : [ 252.0, 281.0, 79.0, 17.0 ], - "outlettype" : [ "" ], - "id" : "obj-29" + "fontname" : "Verdana" } } @@ -1906,13 +1958,13 @@ "box" : { "maxclass" : "message", "text" : "speed 2.", - "fontname" : "Verdana", "numinlets" : 2, "fontsize" : 10.0, "numoutlets" : 1, + "outlettype" : [ "" ], + "id" : "obj-30", "patching_rect" : [ 252.0, 262.0, 52.0, 17.0 ], - "outlettype" : [ "" ], - "id" : "obj-30" + "fontname" : "Verdana" } } @@ -1920,13 +1972,13 @@ "box" : { "maxclass" : "message", "text" : "pause", - "fontname" : "Verdana", "numinlets" : 2, "fontsize" : 10.0, "numoutlets" : 1, + "outlettype" : [ "" ], + "id" : "obj-31", "patching_rect" : [ 50.0, 192.0, 40.0, 17.0 ], - "outlettype" : [ "" ], - "id" : "obj-31" + "fontname" : "Verdana" } } @@ -1934,13 +1986,13 @@ "box" : { "maxclass" : "message", "text" : "locate 300.", - "fontname" : "Verdana", "numinlets" : 2, "fontsize" : 10.0, "numoutlets" : 1, + "outlettype" : [ "" ], + "id" : "obj-32", "patching_rect" : [ 50.0, 100.0, 67.0, 17.0 ], - "outlettype" : [ "" ], - "id" : "obj-32" + "fontname" : "Verdana" } } @@ -1948,34 +2000,34 @@ "box" : { "maxclass" : "message", "text" : "sync $1", - "fontname" : "Verdana", "numinlets" : 2, "fontsize" : 10.0, "numoutlets" : 1, + "outlettype" : [ "" ], + "id" : "obj-33", "patching_rect" : [ 50.0, 238.0, 49.0, 17.0 ], - "outlettype" : [ "" ], - "id" : "obj-33" + "fontname" : "Verdana" } } , { "box" : { "maxclass" : "ftm.mess", + "ftm_scope" : 0, + "numinlets" : 2, + "fontsize" : 10.0, + "numoutlets" : 1, + "#untuple" : 0, + "text" : [ "_set $play.seq 500 1500 1." ], + "presentation_rect" : [ 274.0, 100.0, 136.952179, 17.0 ], + "outlettype" : [ "" ], + "#loadbang" : 0, + "#triggerall" : 0, + "id" : "obj-40", + "patching_rect" : [ 274.0, 100.0, 136.952179, 17.0 ], "fontname" : "Verdana", - "ftm_scope" : 0, - "#loadbang" : 0, - "text" : [ "_set $play.seq 500 1500 1." ], - "numinlets" : 2, - "#triggerall" : 0, - "presentation_rect" : [ 274.0, 100.0, 136.952179, 17.0 ], - "fontsize" : 10.0, - "ftm_objref_conv" : 0, - "numoutlets" : 1, "#init" : "", - "patching_rect" : [ 274.0, 100.0, 136.952179, 17.0 ], - "outlettype" : [ "" ], - "#untuple" : 0, - "id" : "obj-40" + "ftm_objref_conv" : 0 } } @@ -1983,13 +2035,13 @@ "box" : { "maxclass" : "message", "text" : "loop", - "fontname" : "Verdana", "numinlets" : 2, "fontsize" : 10.0, "numoutlets" : 1, + "outlettype" : [ "" ], + "id" : "obj-41", "patching_rect" : [ 50.0, 165.0, 32.5, 17.0 ], - "outlettype" : [ "" ], - "id" : "obj-41" + "fontname" : "Verdana" } } @@ -1998,9 +2050,9 @@ "maxclass" : "button", "numinlets" : 1, "numoutlets" : 1, - "patching_rect" : [ 50.0, 292.0, 15.0, 15.0 ], "outlettype" : [ "bang" ], - "id" : "obj-50" + "id" : "obj-50", + "patching_rect" : [ 50.0, 292.0, 15.0, 15.0 ] } } @@ -2008,12 +2060,12 @@ "box" : { "maxclass" : "comment", "text" : "advance to gven time (output all events on the way)", - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 0, + "id" : "obj-54", "patching_rect" : [ 326.0, 238.0, 274.0, 19.0 ], - "id" : "obj-54" + "fontname" : "Verdana" } } @@ -2021,12 +2073,12 @@ "box" : { "maxclass" : "comment", "text" : "locate halted at given time", - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 0, + "id" : "obj-55", "patching_rect" : [ 119.0, 101.0, 143.0, 19.0 ], - "id" : "obj-55" + "fontname" : "Verdana" } } @@ -2034,12 +2086,12 @@ "box" : { "maxclass" : "comment", "text" : "loop current segment", - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 0, + "id" : "obj-57", "patching_rect" : [ 85.0, 166.0, 116.0, 19.0 ], - "id" : "obj-57" + "fontname" : "Verdana" } } @@ -2047,12 +2099,12 @@ "box" : { "maxclass" : "comment", "text" : "stop playing and reset", - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 0, + "id" : "obj-58", "patching_rect" : [ 86.0, 212.0, 121.0, 19.0 ], - "id" : "obj-58" + "fontname" : "Verdana" } } @@ -2060,12 +2112,12 @@ "box" : { "maxclass" : "comment", "text" : "halt playing", - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 0, + "id" : "obj-59", "patching_rect" : [ 93.0, 193.0, 67.0, 19.0 ], - "id" : "obj-59" + "fontname" : "Verdana" } } @@ -2073,12 +2125,12 @@ "box" : { "maxclass" : "comment", "text" : "play current segment straight", - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 0, + "id" : "obj-60", "patching_rect" : [ 67.0, 292.0, 158.0, 19.0 ], - "id" : "obj-60" + "fontname" : "Verdana" } } @@ -2087,12 +2139,12 @@ "maxclass" : "comment", "text" : "note that setting a new track stops and resets the player (play and loop start from beginning)", "linecount" : 2, - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 0, + "id" : "obj-62", "patching_rect" : [ 277.0, 196.0, 266.0, 31.0 ], - "id" : "obj-62" + "fontname" : "Verdana" } } @@ -2101,8 +2153,8 @@ "maxclass" : "outlet", "numinlets" : 1, "numoutlets" : 0, + "id" : "obj-114", "patching_rect" : [ 147.357147, 371.0, 25.0, 25.0 ], - "id" : "obj-114", "comment" : "" } @@ -2256,13 +2308,13 @@ } , "saved_object_attributes" : { - "fontname" : "Arial", - "default_fontsize" : 12.0, "globalpatchername" : "", "fontface" : 0, "fontsize" : 12.0, "default_fontface" : 0, - "default_fontname" : "Arial" + "default_fontname" : "Arial", + "fontname" : "Arial", + "default_fontsize" : 12.0 } } @@ -2272,12 +2324,12 @@ "box" : { "maxclass" : "comment", "text" : "syntax:", - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 0, + "id" : "obj-2", "patching_rect" : [ 358.0, 168.0, 46.0, 19.0 ], - "id" : "obj-2" + "fontname" : "Verdana" } } @@ -2286,12 +2338,12 @@ "maxclass" : "comment", "text" : "kill hanging notes when looping", "hidden" : 1, - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 0, + "id" : "obj-13", "patching_rect" : [ 291.0, 203.0, 168.0, 19.0 ], - "id" : "obj-13" + "fontname" : "Verdana" } } @@ -2299,12 +2351,12 @@ "box" : { "maxclass" : "comment", "text" : "set segment end", - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 0, + "id" : "obj-21", "patching_rect" : [ 433.0, 120.0, 93.0, 19.0 ], - "id" : "obj-21" + "fontname" : "Verdana" } } @@ -2313,13 +2365,13 @@ "maxclass" : "newobj", "text" : "change 0 -", "hidden" : 1, - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 3, + "outlettype" : [ "", "int", "int" ], + "id" : "obj-34", "patching_rect" : [ 128.0, 202.0, 62.0, 19.0 ], - "outlettype" : [ "", "int", "int" ], - "id" : "obj-34" + "fontname" : "Verdana" } } @@ -2328,11 +2380,11 @@ "maxclass" : "slider", "orientation" : 1, "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], "size" : 1001.0, - "numoutlets" : 1, + "id" : "obj-35", "patching_rect" : [ 262.0, 120.0, 169.0, 15.0 ], - "outlettype" : [ "" ], - "id" : "obj-35", "mult" : 10.0 } @@ -2342,11 +2394,11 @@ "maxclass" : "slider", "orientation" : 1, "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], "size" : 1001.0, - "numoutlets" : 1, + "id" : "obj-36", "patching_rect" : [ 187.0, 100.0, 169.0, 15.0 ], - "outlettype" : [ "" ], - "id" : "obj-36", "mult" : 10.0 } @@ -2355,15 +2407,15 @@ "box" : { "maxclass" : "message", "text" : "GM", - "fontname" : "Verdana", "numinlets" : 2, - "presentation_rect" : [ 127.0, 442.0, 32.5, 17.0 ], "fontsize" : 10.0, "numoutlets" : 1, + "presentation_rect" : [ 127.0, 442.0, 32.5, 17.0 ], + "outlettype" : [ "" ], + "id" : "obj-37", "patching_rect" : [ 203.0, 228.0, 32.5, 17.0 ], - "outlettype" : [ "" ], - "presentation" : 1, - "id" : "obj-37" + "fontname" : "Verdana", + "presentation" : 1 } } @@ -2371,15 +2423,15 @@ "box" : { "maxclass" : "message", "text" : "panic", - "fontname" : "Verdana", "numinlets" : 2, - "presentation_rect" : [ 85.0, 442.0, 37.0, 17.0 ], "fontsize" : 10.0, "numoutlets" : 1, + "presentation_rect" : [ 85.0, 442.0, 37.0, 17.0 ], + "outlettype" : [ "" ], + "id" : "obj-38", "patching_rect" : [ 161.0, 228.0, 37.0, 17.0 ], - "outlettype" : [ "" ], - "presentation" : 1, - "id" : "obj-38" + "fontname" : "Verdana", + "presentation" : 1 } } @@ -2387,47 +2439,47 @@ "box" : { "maxclass" : "message", "text" : "off", - "fontname" : "Verdana", "numinlets" : 2, - "presentation_rect" : [ 48.0, 442.0, 32.5, 17.0 ], "fontsize" : 10.0, "numoutlets" : 1, + "presentation_rect" : [ 48.0, 442.0, 32.5, 17.0 ], + "outlettype" : [ "" ], + "id" : "obj-39", "patching_rect" : [ 124.0, 228.0, 32.5, 17.0 ], - "outlettype" : [ "" ], - "presentation" : 1, - "id" : "obj-39" + "fontname" : "Verdana", + "presentation" : 1 } } , { "box" : { "maxclass" : "flonum", - "fontname" : "Verdana", + "htextcolor" : [ 0.870588, 0.870588, 0.870588, 1.0 ], "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 2, + "triscale" : 0.9, + "outlettype" : [ "float", "bang" ], + "bgcolor" : [ 0.866667, 0.866667, 0.866667, 1.0 ], + "id" : "obj-42", "patching_rect" : [ 262.0, 143.0, 55.0, 19.0 ], - "outlettype" : [ "float", "bang" ], - "id" : "obj-42", - "htextcolor" : [ 0.870588, 0.870588, 0.870588, 1.0 ], - "bgcolor" : [ 0.866667, 0.866667, 0.866667, 1.0 ], - "triscale" : 0.9 + "fontname" : "Verdana" } } , { "box" : { "maxclass" : "flonum", - "fontname" : "Verdana", + "htextcolor" : [ 0.870588, 0.870588, 0.870588, 1.0 ], "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 2, + "triscale" : 0.9, + "outlettype" : [ "float", "bang" ], + "bgcolor" : [ 0.866667, 0.866667, 0.866667, 1.0 ], + "id" : "obj-43", "patching_rect" : [ 187.0, 143.0, 55.0, 19.0 ], - "outlettype" : [ "float", "bang" ], - "id" : "obj-43", - "htextcolor" : [ 0.870588, 0.870588, 0.870588, 1.0 ], - "bgcolor" : [ 0.866667, 0.866667, 0.866667, 1.0 ], - "triscale" : 0.9 + "fontname" : "Verdana" } } @@ -2435,13 +2487,13 @@ "box" : { "maxclass" : "newobj", "text" : "ftm.midiunparse", - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 1, - "patching_rect" : [ 112.0, 249.0, 93.0, 19.0 ], "outlettype" : [ "" ], "id" : "obj-45", + "patching_rect" : [ 112.0, 249.0, 93.0, 19.0 ], + "fontname" : "Verdana", "saved_object_attributes" : { "ftm_scope" : 0, "ftm_objref_conv" : 0 @@ -2455,25 +2507,25 @@ "maxclass" : "button", "numinlets" : 1, "numoutlets" : 1, - "patching_rect" : [ 337.0, 228.0, 15.0, 15.0 ], "outlettype" : [ "bang" ], - "id" : "obj-51" + "id" : "obj-51", + "patching_rect" : [ 337.0, 228.0, 15.0, 15.0 ] } } , { "box" : { "maxclass" : "flonum", - "fontname" : "Verdana", + "htextcolor" : [ 0.870588, 0.870588, 0.870588, 1.0 ], "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 2, + "triscale" : 0.9, + "outlettype" : [ "float", "bang" ], + "bgcolor" : [ 0.866667, 0.866667, 0.866667, 1.0 ], + "id" : "obj-52", "patching_rect" : [ 215.0, 201.0, 55.0, 19.0 ], - "outlettype" : [ "float", "bang" ], - "id" : "obj-52", - "htextcolor" : [ 0.870588, 0.870588, 0.870588, 1.0 ], - "bgcolor" : [ 0.866667, 0.866667, 0.866667, 1.0 ], - "triscale" : 0.9 + "fontname" : "Verdana" } } @@ -2481,13 +2533,13 @@ "box" : { "maxclass" : "newobj", "text" : "ftm.play $play.seq", - "fontname" : "Verdana", "numinlets" : 4, "fontsize" : 18.0, "numoutlets" : 3, - "patching_rect" : [ 112.0, 166.0, 244.0, 28.0 ], "outlettype" : [ "", "", "" ], "id" : "obj-53", + "patching_rect" : [ 112.0, 166.0, 244.0, 28.0 ], + "fontname" : "Verdana", "saved_object_attributes" : { "ftm_scope" : 0, "ftm_objref_conv" : 0 @@ -2500,12 +2552,12 @@ "box" : { "maxclass" : "comment", "text" : "set segment beginning", - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 0, + "id" : "obj-61", "patching_rect" : [ 358.0, 100.0, 123.0, 19.0 ], - "id" : "obj-61" + "fontname" : "Verdana" } } @@ -2514,9 +2566,9 @@ "maxclass" : "inlet", "numinlets" : 0, "numoutlets" : 1, - "patching_rect" : [ 112.0, 40.0, 25.0, 25.0 ], "outlettype" : [ "" ], "id" : "obj-57", + "patching_rect" : [ 112.0, 40.0, 25.0, 25.0 ], "comment" : "" } @@ -2526,8 +2578,8 @@ "maxclass" : "outlet", "numinlets" : 1, "numoutlets" : 0, + "id" : "obj-58", "patching_rect" : [ 112.0, 328.0, 25.0, 25.0 ], - "id" : "obj-58", "comment" : "" } @@ -2537,8 +2589,8 @@ "maxclass" : "outlet", "numinlets" : 1, "numoutlets" : 0, + "id" : "obj-59", "patching_rect" : [ 224.0, 328.0, 25.0, 25.0 ], - "id" : "obj-59", "comment" : "" } @@ -2701,13 +2753,13 @@ } , "saved_object_attributes" : { - "fontname" : "Arial", - "default_fontsize" : 12.0, "globalpatchername" : "", "fontface" : 0, "fontsize" : 12.0, "default_fontface" : 0, - "default_fontname" : "Arial" + "default_fontname" : "Arial", + "fontname" : "Arial", + "default_fontsize" : 12.0 } } @@ -2717,15 +2769,15 @@ "box" : { "maxclass" : "message", "text" : "pause", - "fontname" : "Verdana", "numinlets" : 2, - "presentation_rect" : [ 62.0, 86.0, 51.0, 17.0 ], "fontsize" : 10.0, "numoutlets" : 1, + "presentation_rect" : [ 62.0, 86.0, 51.0, 17.0 ], + "outlettype" : [ "" ], + "id" : "obj-55", "patching_rect" : [ 226.0, 269.0, 40.0, 17.0 ], - "outlettype" : [ "" ], - "presentation" : 1, - "id" : "obj-55" + "fontname" : "Verdana", + "presentation" : 1 } } @@ -2733,12 +2785,12 @@ "box" : { "maxclass" : "comment", "text" : "hear MIDI playing", - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 0, + "id" : "obj-54", "patching_rect" : [ -32.0, 255.0, 150.0, 19.0 ], - "id" : "obj-54" + "fontname" : "Verdana" } } @@ -2746,30 +2798,30 @@ "box" : { "maxclass" : "newobj", "text" : "loadmess 1", - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 1, + "outlettype" : [ "" ], + "id" : "obj-33", "patching_rect" : [ 110.0, 692.0, 68.0, 19.0 ], - "outlettype" : [ "" ], - "id" : "obj-33" + "fontname" : "Verdana" } } , { "box" : { "maxclass" : "umenu", + "numinlets" : 1, + "fontsize" : 10.0, + "numoutlets" : 3, + "items" : [ "off", ",", "realtime", ",", "offline" ], + "presentation_rect" : [ 232.0, 138.0, 100.0, 19.0 ], + "outlettype" : [ "int", "", "" ], + "types" : [ ], + "id" : "obj-32", + "patching_rect" : [ 113.0, 722.0, 100.0, 19.0 ], "fontname" : "Verdana", - "numinlets" : 1, - "presentation_rect" : [ 232.0, 138.0, 100.0, 19.0 ], - "fontsize" : 10.0, - "items" : [ "off", ",", "realtime", ",", "offline" ], - "numoutlets" : 3, - "types" : [ ], - "patching_rect" : [ 113.0, 722.0, 100.0, 19.0 ], - "outlettype" : [ "int", "", "" ], - "presentation" : 1, - "id" : "obj-32" + "presentation" : 1 } } @@ -2777,29 +2829,29 @@ "box" : { "maxclass" : "newobj", "text" : "switch", - "fontname" : "Verdana", "numinlets" : 3, "fontsize" : 10.0, "numoutlets" : 1, + "outlettype" : [ "" ], + "id" : "obj-31", "patching_rect" : [ 121.0, 786.0, 46.0, 19.0 ], - "outlettype" : [ "" ], - "id" : "obj-31" + "fontname" : "Verdana" } } , { "box" : { "maxclass" : "message", - "text" : "59 85 87167.992188", - "fontname" : "Verdana", + "text" : "53 118 3981.73877", "numinlets" : 2, - "presentation_rect" : [ 32.0, 199.0, 201.0, 17.0 ], "fontsize" : 10.0, "numoutlets" : 1, + "presentation_rect" : [ 32.0, 199.0, 201.0, 17.0 ], + "outlettype" : [ "" ], + "id" : "obj-29", "patching_rect" : [ 173.0, 787.0, 201.0, 17.0 ], - "outlettype" : [ "" ], - "presentation" : 1, - "id" : "obj-29" + "fontname" : "Verdana", + "presentation" : 1 } } @@ -2807,13 +2859,13 @@ "box" : { "maxclass" : "newobj", "text" : "prepend set", - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 1, + "outlettype" : [ "" ], + "id" : "obj-27", "patching_rect" : [ 190.0, 627.0, 70.0, 19.0 ], - "outlettype" : [ "" ], - "id" : "obj-27" + "fontname" : "Verdana" } } @@ -2821,13 +2873,13 @@ "box" : { "maxclass" : "newobj", "text" : "append", - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 1, + "outlettype" : [ "" ], + "id" : "obj-26", "patching_rect" : [ 190.0, 655.0, 47.0, 19.0 ], - "outlettype" : [ "" ], - "id" : "obj-26" + "fontname" : "Verdana" } } @@ -2835,15 +2887,15 @@ "box" : { "maxclass" : "message", "text" : "next", - "fontname" : "Verdana", "numinlets" : 2, - "presentation_rect" : [ 22.0, 86.0, 33.0, 17.0 ], "fontsize" : 10.0, "numoutlets" : 1, + "presentation_rect" : [ 22.0, 86.0, 33.0, 17.0 ], + "outlettype" : [ "" ], + "id" : "obj-25", "patching_rect" : [ 182.0, 268.0, 33.0, 17.0 ], - "outlettype" : [ "" ], - "presentation" : 1, - "id" : "obj-25" + "fontname" : "Verdana", + "presentation" : 1 } } @@ -2851,14 +2903,14 @@ "box" : { "maxclass" : "comment", "text" : "speed", - "fontname" : "Verdana", "numinlets" : 1, - "presentation_rect" : [ 245.0, 62.0, 150.0, 19.0 ], "fontsize" : 10.0, "numoutlets" : 0, + "presentation_rect" : [ 245.0, 62.0, 150.0, 19.0 ], + "id" : "obj-9", "patching_rect" : [ 571.0, 365.0, 150.0, 19.0 ], - "presentation" : 1, - "id" : "obj-9" + "fontname" : "Verdana", + "presentation" : 1 } } @@ -2866,14 +2918,14 @@ "box" : { "maxclass" : "comment", "text" : "MIDI representation", - "fontname" : "Verdana", "numinlets" : 1, - "presentation_rect" : [ 16.0, -3.0, 150.0, 19.0 ], "fontsize" : 10.0, "numoutlets" : 0, + "presentation_rect" : [ 16.0, -3.0, 150.0, 19.0 ], + "id" : "obj-24", "patching_rect" : [ 1141.0, 862.0, 150.0, 19.0 ], - "presentation" : 1, - "id" : "obj-24" + "fontname" : "Verdana", + "presentation" : 1 } } @@ -2881,14 +2933,14 @@ "box" : { "maxclass" : "comment", "text" : "audio", - "fontname" : "Verdana", "numinlets" : 1, - "presentation_rect" : [ 14.0, 119.0, 150.0, 19.0 ], "fontsize" : 10.0, "numoutlets" : 0, + "presentation_rect" : [ 14.0, 119.0, 150.0, 19.0 ], + "id" : "obj-23", "patching_rect" : [ 1126.0, 847.0, 150.0, 19.0 ], - "presentation" : 1, - "id" : "obj-23" + "fontname" : "Verdana", + "presentation" : 1 } } @@ -2896,14 +2948,14 @@ "box" : { "maxclass" : "comment", "text" : "send notes", - "fontname" : "Verdana", "numinlets" : 1, - "presentation_rect" : [ 149.0, 169.0, 67.0, 19.0 ], "fontsize" : 10.0, "numoutlets" : 0, + "presentation_rect" : [ 149.0, 169.0, 67.0, 19.0 ], + "id" : "obj-10", "patching_rect" : [ 1243.0, 894.0, 150.0, 19.0 ], - "presentation" : 1, - "id" : "obj-10" + "fontname" : "Verdana", + "presentation" : 1 } } @@ -2911,13 +2963,13 @@ "box" : { "maxclass" : "newobj", "text" : "loadmess 1", - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 1, + "outlettype" : [ "" ], + "id" : "obj-3", "patching_rect" : [ 170.0, 442.0, 68.0, 19.0 ], - "outlettype" : [ "" ], - "id" : "obj-3" + "fontname" : "Verdana" } } @@ -2926,14 +2978,14 @@ "maxclass" : "comment", "text" : "midi playing on/off", "presentation_linecount" : 2, - "fontname" : "Verdana", "numinlets" : 1, - "presentation_rect" : [ 215.0, 84.0, 73.0, 31.0 ], "fontsize" : 10.0, "numoutlets" : 0, + "presentation_rect" : [ 215.0, 84.0, 73.0, 31.0 ], + "id" : "obj-8", "patching_rect" : [ 712.0, 190.0, 150.0, 19.0 ], - "presentation" : 1, - "id" : "obj-8" + "fontname" : "Verdana", + "presentation" : 1 } } @@ -2943,14 +2995,14 @@ "text" : "plays midi and accompanying audio too", "linecount" : 2, "presentation_linecount" : 2, - "fontname" : "Verdana", "numinlets" : 1, - "presentation_rect" : [ 294.0, 517.0, 150.0, 31.0 ], "fontsize" : 10.0, "numoutlets" : 0, + "presentation_rect" : [ 294.0, 517.0, 150.0, 31.0 ], + "id" : "obj-6", "patching_rect" : [ 906.0, 904.0, 150.0, 31.0 ], - "presentation" : 1, - "id" : "obj-6" + "fontname" : "Verdana", + "presentation" : 1 } } @@ -2958,12 +3010,12 @@ "box" : { "maxclass" : "toggle", "numinlets" : 1, + "numoutlets" : 1, "presentation_rect" : [ 188.0, 84.0, 20.0, 20.0 ], - "numoutlets" : 1, + "outlettype" : [ "int" ], + "id" : "obj-4", "patching_rect" : [ -24.0, 341.0, 20.0, 20.0 ], - "outlettype" : [ "int" ], - "presentation" : 1, - "id" : "obj-4" + "presentation" : 1 } } @@ -2971,13 +3023,13 @@ "box" : { "maxclass" : "newobj", "text" : "gate", - "fontname" : "Verdana", "numinlets" : 2, "fontsize" : 10.0, "numoutlets" : 1, + "outlettype" : [ "" ], + "id" : "obj-1", "patching_rect" : [ -15.0, 373.0, 33.0, 19.0 ], - "outlettype" : [ "" ], - "id" : "obj-1" + "fontname" : "Verdana" } } @@ -2985,13 +3037,13 @@ "box" : { "maxclass" : "newobj", "text" : "loadmess 1", - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 1, + "outlettype" : [ "" ], + "id" : "obj-138", "patching_rect" : [ -28.0, 861.0, 68.0, 19.0 ], - "outlettype" : [ "" ], - "id" : "obj-138" + "fontname" : "Verdana" } } @@ -2999,31 +3051,31 @@ "box" : { "maxclass" : "newobj", "text" : "prepend /setSpeedPrior", - "fontname" : "Verdana", "numinlets" : 1, - "presentation_rect" : [ 128.0, 383.0, 129.0, 19.0 ], "fontsize" : 10.0, "numoutlets" : 1, + "presentation_rect" : [ 128.0, 383.0, 129.0, 19.0 ], + "outlettype" : [ "" ], + "id" : "obj-137", "patching_rect" : [ -29.0, 923.0, 129.0, 19.0 ], - "outlettype" : [ "" ], - "presentation" : 1, - "id" : "obj-137" + "fontname" : "Verdana", + "presentation" : 1 } } , { "box" : { "maxclass" : "flonum", - "fontname" : "Verdana", "numinlets" : 1, - "presentation_rect" : [ 133.0, 351.0, 50.0, 19.0 ], "fontsize" : 10.0, "numoutlets" : 2, - "minimum" : 0.0, + "presentation_rect" : [ 133.0, 351.0, 50.0, 19.0 ], + "outlettype" : [ "float", "bang" ], + "id" : "obj-136", "patching_rect" : [ -29.0, 884.0, 50.0, 19.0 ], - "outlettype" : [ "float", "bang" ], + "fontname" : "Verdana", "presentation" : 1, - "id" : "obj-136" + "minimum" : 0.0 } } @@ -3031,15 +3083,15 @@ "box" : { "maxclass" : "message", "text" : "open", - "fontname" : "Verdana", "numinlets" : 2, - "presentation_rect" : [ 58.0, 170.0, 35.0, 17.0 ], "fontsize" : 10.0, "numoutlets" : 1, + "presentation_rect" : [ 58.0, 170.0, 35.0, 17.0 ], + "outlettype" : [ "" ], + "id" : "obj-113", "patching_rect" : [ 622.0, 320.0, 35.0, 17.0 ], - "outlettype" : [ "" ], - "presentation" : 1, - "id" : "obj-113" + "fontname" : "Verdana", + "presentation" : 1 } } @@ -3047,13 +3099,13 @@ "box" : { "maxclass" : "message", "text" : "0", - "fontname" : "Verdana", "numinlets" : 2, "fontsize" : 10.0, "numoutlets" : 1, + "outlettype" : [ "" ], + "id" : "obj-110", "patching_rect" : [ 583.0, 320.0, 32.5, 17.0 ], - "outlettype" : [ "" ], - "id" : "obj-110" + "fontname" : "Verdana" } } @@ -3061,15 +3113,15 @@ "box" : { "maxclass" : "message", "text" : "1", - "fontname" : "Verdana", "numinlets" : 2, - "presentation_rect" : [ 19.0, 172.0, 32.5, 17.0 ], "fontsize" : 10.0, "numoutlets" : 1, + "presentation_rect" : [ 19.0, 172.0, 32.5, 17.0 ], + "outlettype" : [ "" ], + "id" : "obj-105", "patching_rect" : [ 542.0, 320.0, 32.5, 17.0 ], - "outlettype" : [ "" ], - "presentation" : 1, - "id" : "obj-105" + "fontname" : "Verdana", + "presentation" : 1 } } @@ -3077,13 +3129,13 @@ "box" : { "maxclass" : "newobj", "text" : "sfplay~ 2", - "fontname" : "Verdana", "numinlets" : 2, "fontsize" : 10.0, "numoutlets" : 3, - "patching_rect" : [ 532.0, 343.0, 58.0, 19.0 ], "outlettype" : [ "signal", "signal", "bang" ], "id" : "obj-65", + "patching_rect" : [ 532.0, 343.0, 58.0, 19.0 ], + "fontname" : "Verdana", "save" : [ "#N", "sfplay~", "", 2, 120960, 0, "", ";" ] } @@ -3092,12 +3144,12 @@ "box" : { "maxclass" : "toggle", "numinlets" : 1, + "numoutlets" : 1, "presentation_rect" : [ 126.0, 169.0, 20.0, 20.0 ], - "numoutlets" : 1, + "outlettype" : [ "int" ], + "id" : "obj-109", "patching_rect" : [ 170.0, 471.0, 20.0, 20.0 ], - "outlettype" : [ "int" ], - "presentation" : 1, - "id" : "obj-109" + "presentation" : 1 } } @@ -3105,13 +3157,13 @@ "box" : { "maxclass" : "newobj", "text" : "zl slice 1", - "fontname" : "Verdana", "numinlets" : 2, "fontsize" : 10.0, "numoutlets" : 2, + "outlettype" : [ "", "" ], + "id" : "obj-82", "patching_rect" : [ -54.0, 200.0, 54.0, 19.0 ], - "outlettype" : [ "", "" ], - "id" : "obj-82" + "fontname" : "Verdana" } } @@ -3120,12 +3172,12 @@ "maxclass" : "ezdac~", "varname" : "autohelp_dac", "numinlets" : 2, + "numoutlets" : 0, "presentation_rect" : [ 186.0, 14.0, 45.0, 45.0 ], - "numoutlets" : 0, + "id" : "obj-94", "patching_rect" : [ 531.0, 388.0, 45.0, 45.0 ], - "presentation" : 1, - "id" : "obj-94", - "local" : 1 + "local" : 1, + "presentation" : 1 } } @@ -3133,15 +3185,15 @@ "box" : { "maxclass" : "panel", "varname" : "startwinwdow_panel", + "numinlets" : 1, + "border" : 2, + "numoutlets" : 0, + "presentation_rect" : [ 12.0, 136.0, 205.0, 57.0 ], "bordercolor" : [ 0.392157, 0.792157, 0.117647, 1.0 ], - "border" : 2, - "numinlets" : 1, - "presentation_rect" : [ 12.0, 136.0, 205.0, 57.0 ], - "numoutlets" : 0, + "bgcolor" : [ 1.0, 1.0, 1.0, 1.0 ], + "id" : "obj-95", "patching_rect" : [ 1093.0, 826.0, 100.0, 55.0 ], - "presentation" : 1, - "id" : "obj-95", - "bgcolor" : [ 1.0, 1.0, 1.0, 1.0 ] + "presentation" : 1 } } @@ -3150,9 +3202,9 @@ "maxclass" : "button", "numinlets" : 1, "numoutlets" : 1, - "patching_rect" : [ 306.0, 171.0, 20.0, 20.0 ], "outlettype" : [ "bang" ], - "id" : "obj-71" + "id" : "obj-71", + "patching_rect" : [ 306.0, 171.0, 20.0, 20.0 ] } } @@ -3160,13 +3212,13 @@ "box" : { "maxclass" : "message", "text" : "/stopplaying", - "fontname" : "Verdana", "numinlets" : 2, "fontsize" : 10.0, "numoutlets" : 1, + "outlettype" : [ "" ], + "id" : "obj-72", "patching_rect" : [ 336.0, 492.0, 73.0, 17.0 ], - "outlettype" : [ "" ], - "id" : "obj-72" + "fontname" : "Verdana" } } @@ -3175,9 +3227,9 @@ "maxclass" : "button", "numinlets" : 1, "numoutlets" : 1, - "patching_rect" : [ 422.0, 174.0, 20.0, 20.0 ], "outlettype" : [ "bang" ], - "id" : "obj-70" + "id" : "obj-70", + "patching_rect" : [ 422.0, 174.0, 20.0, 20.0 ] } } @@ -3185,13 +3237,13 @@ "box" : { "maxclass" : "message", "text" : "/startplaying", - "fontname" : "Verdana", "numinlets" : 2, "fontsize" : 10.0, "numoutlets" : 1, + "outlettype" : [ "" ], + "id" : "obj-63", "patching_rect" : [ 244.0, 490.0, 75.0, 17.0 ], - "outlettype" : [ "" ], - "id" : "obj-63" + "fontname" : "Verdana" } } @@ -3199,13 +3251,13 @@ "box" : { "maxclass" : "newobj", "text" : "prepend /midinoteon", - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 1, + "outlettype" : [ "" ], + "id" : "obj-69", "patching_rect" : [ 122.0, 833.0, 116.0, 19.0 ], - "outlettype" : [ "" ], - "id" : "obj-69" + "fontname" : "Verdana" } } @@ -3213,28 +3265,28 @@ "box" : { "maxclass" : "newobj", "text" : "udpsend 127.0.0.1 12121", - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 0, + "id" : "obj-68", "patching_rect" : [ 229.0, 962.0, 141.0, 19.0 ], - "id" : "obj-68" + "fontname" : "Verdana" } } , { "box" : { "maxclass" : "message", - "text" : "59 85", - "fontname" : "Verdana", + "text" : "53 118", "numinlets" : 2, - "presentation_rect" : [ 30.0, 255.0, 50.0, 17.0 ], "fontsize" : 10.0, "numoutlets" : 1, + "presentation_rect" : [ 30.0, 255.0, 50.0, 17.0 ], + "outlettype" : [ "" ], + "id" : "obj-67", "patching_rect" : [ -47.0, 229.0, 50.0, 17.0 ], - "outlettype" : [ "" ], - "presentation" : 1, - "id" : "obj-67" + "fontname" : "Verdana", + "presentation" : 1 } } @@ -3242,21 +3294,21 @@ "box" : { "maxclass" : "ftm.object", "text" : "sequence midi", + "description" : "sequence midi", + "ftm_scope" : 2, + "numinlets" : 1, "editor_interface" : "matrix", + "fontsize" : 12.0, + "numoutlets" : 2, + "scope" : 0, + "presentation_rect" : [ 712.0, 250.0, 165.820312, 20.0 ], + "outlettype" : [ "", "" ], + "persistence" : 0, + "id" : "obj-14", + "patching_rect" : [ 712.0, 250.0, 165.820312, 20.0 ], "fontname" : "Verdana", - "ftm_scope" : 2, - "description" : "sequence midi", - "scope" : 0, - "numinlets" : 1, - "presentation_rect" : [ 712.0, 250.0, 165.820312, 20.0 ], - "fontsize" : 12.0, - "ftm_objref_conv" : 0, - "numoutlets" : 2, - "patching_rect" : [ 712.0, 250.0, 165.820312, 20.0 ], - "persistence" : 0, - "outlettype" : [ "", "" ], - "id" : "obj-14", - "name" : "play.seq" + "name" : "play.seq", + "ftm_objref_conv" : 0 } } @@ -3264,15 +3316,15 @@ "box" : { "maxclass" : "message", "text" : "import", - "fontname" : "Verdana", "numinlets" : 2, - "presentation_rect" : [ 19.0, 57.0, 43.0, 17.0 ], "fontsize" : 10.0, "numoutlets" : 1, + "presentation_rect" : [ 19.0, 57.0, 43.0, 17.0 ], + "outlettype" : [ "" ], + "id" : "obj-15", "patching_rect" : [ 712.0, 222.0, 43.0, 17.0 ], - "outlettype" : [ "" ], - "presentation" : 1, - "id" : "obj-15" + "fontname" : "Verdana", + "presentation" : 1 } } @@ -3280,14 +3332,14 @@ "box" : { "maxclass" : "comment", "text" : "import MIDI file", - "fontname" : "Verdana", "numinlets" : 1, - "presentation_rect" : [ 60.0, 56.0, 90.0, 19.0 ], "fontsize" : 10.0, "numoutlets" : 0, + "presentation_rect" : [ 60.0, 56.0, 90.0, 19.0 ], + "id" : "obj-16", "patching_rect" : [ 757.0, 221.0, 90.0, 19.0 ], - "presentation" : 1, - "id" : "obj-16" + "fontname" : "Verdana", + "presentation" : 1 } } @@ -3295,12 +3347,12 @@ "box" : { "maxclass" : "comment", "text" : "play an FTM track", - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 0, + "id" : "obj-17", "patching_rect" : [ 60.0, 23.0, 98.0, 19.0 ], - "id" : "obj-17" + "fontname" : "Verdana" } } @@ -3308,12 +3360,12 @@ "box" : { "maxclass" : "comment", "text" : "ftm.play", - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 24.0, "numoutlets" : 0, + "id" : "obj-18", "patching_rect" : [ 54.0, -10.0, 108.0, 36.0 ], - "id" : "obj-18" + "fontname" : "Verdana" } } @@ -3321,12 +3373,12 @@ "box" : { "maxclass" : "comment", "text" : "FTM basic objects", - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 0, + "id" : "obj-19", "patching_rect" : [ 48.0, -22.0, 97.0, 19.0 ], - "id" : "obj-19" + "fontname" : "Verdana" } } @@ -3335,9 +3387,9 @@ "maxclass" : "fpic", "numinlets" : 1, "numoutlets" : 0, + "id" : "obj-20", "patching_rect" : [ 8.0, -25.0, 54.0, 74.0 ], - "pic" : "ftm.help.jpg", - "id" : "obj-20" + "pic" : "ftm.help.jpg" } } @@ -3345,12 +3397,12 @@ "box" : { "maxclass" : "newobj", "text" : "midiout", - "fontname" : "Verdana", "numinlets" : 1, "fontsize" : 10.0, "numoutlets" : 0, + "id" : "obj-44", "patching_rect" : [ -9.0, 401.0, 48.0, 19.0 ], - "id" : "obj-44" + "fontname" : "Verdana" } } @@ -3358,15 +3410,15 @@ "box" : { "maxclass" : "message", "text" : "play", - "fontname" : "Verdana", "numinlets" : 2, - "presentation_rect" : [ 18.0, 22.0, 52.0, 26.0 ], "fontsize" : 18.0, "numoutlets" : 1, + "presentation_rect" : [ 18.0, 22.0, 52.0, 26.0 ], + "outlettype" : [ "" ], + "id" : "obj-46", "patching_rect" : [ 409.0, 130.0, 52.0, 26.0 ], - "outlettype" : [ "" ], - "presentation" : 1, - "id" : "obj-46" + "fontname" : "Verdana", + "presentation" : 1 } } @@ -3374,15 +3426,15 @@ "box" : { "maxclass" : "message", "text" : "stop", - "fontname" : "Verdana", "numinlets" : 2, - "presentation_rect" : [ 86.0, 22.0, 51.0, 26.0 ], "fontsize" : 18.0, "numoutlets" : 1, + "presentation_rect" : [ 86.0, 22.0, 51.0, 26.0 ], + "outlettype" : [ "" ], + "id" : "obj-49", "patching_rect" : [ 306.0, 129.0, 51.0, 26.0 ], - "outlettype" : [ "" ], - "presentation" : 1, - "id" : "obj-49" + "fontname" : "Verdana", + "presentation" : 1 } } @@ -3390,21 +3442,30 @@ "box" : { "maxclass" : "panel", "varname" : "startwinwdow_panel[1]", + "numinlets" : 1, + "border" : 2, + "numoutlets" : 0, + "presentation_rect" : [ 12.0, 17.0, 167.0, 98.0 ], "bordercolor" : [ 0.392157, 0.792157, 0.117647, 1.0 ], - "border" : 2, - "numinlets" : 1, - "presentation_rect" : [ 12.0, 17.0, 167.0, 98.0 ], - "numoutlets" : 0, + "bgcolor" : [ 1.0, 1.0, 1.0, 1.0 ], + "id" : "obj-5", "patching_rect" : [ 1093.0, 886.0, 100.0, 55.0 ], - "presentation" : 1, - "id" : "obj-5", - "bgcolor" : [ 1.0, 1.0, 1.0, 1.0 ] + "presentation" : 1 } } ], "lines" : [ { "patchline" : { + "source" : [ "obj-30", 0 ], + "destination" : [ "obj-22", 0 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { "source" : [ "obj-102", 0 ], "destination" : [ "obj-56", 0 ], "hidden" : 0, @@ -4222,6 +4283,33 @@ } } +, { + "patchline" : { + "source" : [ "obj-78", 0 ], + "destination" : [ "obj-62", 0 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-62", 0 ], + "destination" : [ "obj-57", 0 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } +, { + "patchline" : { + "source" : [ "obj-82", 1 ], + "destination" : [ "obj-62", 1 ], + "hidden" : 0, + "midpoints" : [ ] + } + + } ] }