andrew@0: {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 andrew@10: {\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fnil\fcharset0 Menlo-Regular;} andrew@10: {\colortbl;\red255\green255\blue255;\red0\green116\blue0;} andrew@1: \paperw11900\paperh16840\margl1440\margr1440\vieww20940\viewh15820\viewkind0 andrew@0: \pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural andrew@0: andrew@14: \f0\fs24 \cf0 \ andrew@14: Note on: send the note playtime. It did calculate this, but is now assumed sent in with the note on message via o/c\ andrew@14: \ andrew@14: lastPeriodUpdate is only used at beginning\ andrew@14: if we use time diff it doesn't work. Beetr try time since start somehow??\ andrew@14: \ andrew@14: \ andrew@14: \ andrew@14: \ andrew@14: \ andrew@14: USE ftmplayMidiFile in MaxMSP to send the MIDI notes in via OSC\ andrew@11: \ andrew@11: _ _ ______ __\ andrew@11: \ andrew@14: \ andrew@14: \ andrew@14: \ andrew@11: BUGS:\ andrew@0: When prior and posterior etc are split off the screen, it doesn't find the right indices for them. Are we writing the correct prior vector? constrained limits?\ andrew@0: \ andrew@0: \ andrew@0: using best estimate continually - good in the new note on function?\ andrew@0: \ andrew@0: + + + + + + + + + \ andrew@0: \ andrew@0: best estimate locked to map so need to free\ andrew@0: \ andrew@0: need to do relative tempo estimates\ andrew@0: \ andrew@1: \ andrew@1: \ andrew@1: works\ andrew@1: bartok.mid counterexample:\ andrew@1: problem is that the tempo needs to estimate the likelihood confidence that the match is valid\ andrew@1: at the moment all are equally weighted.\ andrew@1: but if we know that the match is (n, k) then prob(loc_n) the phase at note n - gives us probability that the note is correctly identified.\ andrew@1: \ andrew@1: \ andrew@1: //new note\ andrew@1: in comes note\ andrew@1: \ andrew@1: decay speed distribution - so we have uncertainty about tempo\ andrew@1: \ andrew@10: cross update - so we have new prior for position\ andrew@10: \ andrew@10: \ andrew@10: //\ andrew@10: working well - 18/8/11\ andrew@10: \ andrew@10: need to look at :\ andrew@10: could weight the speed updates on the basis of how successful the location id was for the two notes. That way when we are on a roll we increase our ability to stay there.\ andrew@10: \ andrew@10: matches stored like this: andrew@10: \f1\fs28 \CocoaLigature0 \ andrew@10: \pard\tx640\pardeftab640\ql\qnatural\pardirnatural andrew@10: \cf0 \cf2 //size, index of match0, index of match1, .... andrew@10: \f0\fs24 \cf0 \CocoaLigature1 \ andrew@14: \ andrew@14: \ andrew@48: DiffFilre - the differences between annotations from Muller (ground truth) and our alignment. Ouput the beat position and the error\ andrew@48: adding in the actual time the note occurs,,\ andrew@48: \ andrew@48: \ andrew@48: //////////\ andrew@48: \ andrew@48: TO DO:"\ andrew@48: \ andrew@48: Why is some notes not coming up in PInk?\ andrew@48: \ andrew@48: Check that the output is smooth - i.e. a causal play position is implemented\'85\ andrew@48: \ andrew@10: }