Пример #1
0
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
Пример #2
0
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