def choose_accidental(fv, note): accidental = '' scores = { globals.NATURAL:cosine_similarity(natural,fv), globals.SHARP:cosine_similarity(sharp,fv), globals.FLAT:cosine_similarity(flat,fv) } sorted_scores = sorted(scores.iteritems(), key=lambda (k,v):(v,k), reverse=True) if(len(sorted_scores) > 1): tops = selection.select_top_same_scores(sorted_scores) if(globals.NATURAL in tops): accidental = globals.NATURAL else: accidental = random.choice(tops) else: accidental = sorted_scores[0] if((accidental == globals.FLAT) and (note == 'c' or note == 'f')): accidental = globals.NATURAL if((accidental == globals.SHARP) and (note == 'b' or note == 'e')): accidental = globals.NATURAL return accidental
def _score_notes_no_octave(fv): scores = { 'a':cosine_similarity(globals.a,fv), 'b':cosine_similarity(globals.b,fv), 'c':cosine_similarity(globals.c,fv), 'd':cosine_similarity(globals.d,fv), 'e':cosine_similarity(globals.e,fv), 'f':cosine_similarity(globals.f,fv), 'g':cosine_similarity(globals.g,fv), } return sorted(scores.iteritems(), key=lambda (k,v):(v,k), reverse=True)
def _score_notes(fv): scores = { 'a3':cosine_similarity(globals.a0,fv), 'b3':cosine_similarity(globals.b0,fv), 'c4':cosine_similarity(globals.c0,fv), 'd4':cosine_similarity(globals.d0,fv), 'e4':cosine_similarity(globals.e0,fv), 'f4':cosine_similarity(globals.f0,fv), 'g4':cosine_similarity(globals.g0,fv), 'a4':cosine_similarity(globals.a1,fv), 'b4':cosine_similarity(globals.b1,fv), 'c5':cosine_similarity(globals.c1,fv), 'd5':cosine_similarity(globals.d1,fv), 'e5':cosine_similarity(globals.e1,fv), 'f5':cosine_similarity(globals.f1,fv), 'g5':cosine_similarity(globals.g1,fv), 'a2':cosine_similarity(globals.a2,fv), 'b2':cosine_similarity(globals.b2,fv), 'c3':cosine_similarity(globals.c2,fv), 'd3':cosine_similarity(globals.d2,fv), 'e3':cosine_similarity(globals.e2,fv), 'f3':cosine_similarity(globals.f2,fv), 'g3':cosine_similarity(globals.g2,fv), 'c2':cosine_similarity(globals.c3,fv), 'd2':cosine_similarity(globals.d3,fv), 'e2':cosine_similarity(globals.e3,fv), 'f2':cosine_similarity(globals.f3,fv), 'g2':cosine_similarity(globals.g3,fv) } return sorted(scores.iteritems(), key=lambda (k,v):(v,k), reverse=True)