def get_cluster_index(beat, clusters): closest_cluster = 0 closest_distance = distance_beats(beat, clusters[0].centroid) for i in range(len(clusters)): distance = distance_beats(beat, clusters[i].centroid) if distance < closest_distance: closest_cluster = i closest_distance = distance return closest_cluster
def get_beats_back(index, clusters, prev_beat): c = clusters[index] if prev_beat is None: return c[random.randint(0, len(c)-1)] closest_beat = c[0] curr_dist = distance_beats(closest_beat, prev_beat) for beat in c: this_dist = distance_beats(beat, prev_beat) if this_dist < curr_dist and beat != prev_beat: closest_beat = beat curr_dist = this_dist return closest_beat