Beispiel #1
0
def count_intervals_in_all_songs(songs):
    intervals_direction = utils.flatten([song.intervals_with_direction for song in songs])
    intervals = utils.flatten([song.intervals for song in songs])
    print "All Songs\n"
    print "  With direction"
    utils.print_dic_perc(Counter(intervals_direction))
    print "  Without direction"
    utils.print_dic_perc(Counter(intervals))
Beispiel #2
0
def count_intervals_by_song(songs):
    for song in songs:
        print "\n"
        print song.title
        print "  With direction"
        utils.print_dic_perc(Counter(song.intervals_with_direction))
        print "  Without direction"
        utils.print_dic_perc(Counter(song.intervals))
Beispiel #3
0
def pickup_and_mode(name, collection):
    print "\n# ", name

    mode_dic1 = defaultdict(int)
    ts_dic1 = defaultdict(int)
    mode_dic2 = defaultdict(int)
    ts_dic2 = defaultdict(int)

    for song in collection:
        if song.has_pickup:
            if song.first_interval > 0:
                mode_dic1[song.mode] += 1
                ts_dic1[song.time_signature] += 1
            else:
                mode_dic2[song.mode] += 1
                ts_dic2[song.time_signature] += 1

    print "-- Has pickup"
    utils.print_dic_perc(mode_dic1)
    utils.print_dic_perc(ts_dic1)
    print "-- Doesn't have pickup"
    utils.print_dic_perc(mode_dic2) 
    utils.print_dic_perc(ts_dic2)
Beispiel #4
0
def count_sincopa(name, collection):
    print "\n# ", name

    dic1 = defaultdict(int)
    dic2 = defaultdict(int)
    dic3 = defaultdict(int)
    dic4 = defaultdict(int)

    for song in collection:
        pattern = list(utils.KnuthMorrisPratt(song.durations, [0.25, 0.5, 0.25]))
        if pattern:
            dic1[song.mode] += 1
            dic2[song.has_pickup] += 1
            dic3[song.time_signature] += 1
            dic4["with sincopa"] += 1
        else:
            dic4["without sincopa"] += 1

    utils.print_dic_perc(dic4)
    utils.print_dic_perc(dic1)
    print "Pickup:"
    utils.print_dic_perc(dic2)
    utils.print_dic_perc(dic3)