def analysis(compositions, size=2):
    duration_ambitus = cluster_duration_ambitus.get_duration_ambitus(compositions, True, False)
    contour_list = utils.get_music_data_attrib(compositions, 'contour', 'append')

    a = numpy.array(duration_ambitus[1:])
    b = cluster_contour.get_contour_frequency(contour_list, size, True)
    c = cluster_intervals_frequency.get_interval_frequency(compositions)
    d = cluster_durations_frequency.get_duration_frequency(compositions)

    array = numpy.column_stack((a, b, c, d))

    min_pts = 10
    if array.shape[0] < 10:
        min_pts = 0

    reachability_plot = utils.make_reachability_plot(array, min_pts)
    cluster_table = utils.make_clusters(compositions, array, min_pts)

    if array.any():
        args = {
            'reachability_plot': reachability_plot,
            'cluster_table': cluster_table,
            'size': size,
        }
    else:
        args = {}

    return args
def analysis(compositions):
    duration_ambitus_label = get_duration_ambitus(compositions, True, True)
    duration_ambitus = get_duration_ambitus(compositions, True, False)

    array = numpy.array(duration_ambitus[1:])

    min_pts = 10
    if len(duration_ambitus) < 10:
        min_pts = 0

    cluster = duration_ambitus_cluster(array, min_pts)
    reachability_plot = utils.make_reachability_plot(array, min_pts)
    cluster_table = utils.make_clusters(compositions, array, min_pts)

    if duration_ambitus:
        args = {
            'duration_ambitus_label': duration_ambitus_label,
            'duration_ambitus': duration_ambitus,
            'cluster': cluster,
            'reachability_plot': reachability_plot,
            'cluster_table': cluster_table,
        }
    else:
        args = {}

    return args
def analysis(composition):
    midi_notes = composition.music_data.notes
    durations_seq = composition.music_data.durations

    notes_scatter = list(map(list, enumerate(midi_notes)))
    notes_scatter.insert(0, ['Time point', 'Midi note'])
    notes_scatter_array = numpy.array(notes_scatter[1:])

    min_pts = 10
    if notes_scatter_array.shape[0] < 10:
        min_pts = 0

    notes_reachability_plot = utils.make_reachability_plot(notes_scatter_array, min_pts)

    durations_scatter = list(map(list, enumerate(durations_seq)))
    durations_scatter.insert(0, ['Time point', 'Duration note'])
    durations_scatter_array = numpy.array(durations_scatter[1:])

    min_pts = 10
    if notes_scatter_array.shape[0] < 10:
        min_pts = 0

    durations_reachability_plot = utils.make_reachability_plot(durations_scatter_array, min_pts)

    notes_cluster = utils.make_optics_plot_data(notes_scatter_array, min_pts)
    durations_cluster = utils.make_optics_plot_data(durations_scatter_array, min_pts)

    if midi_notes and durations_seq:
        args = {
            'composition': composition,
            'notes_scatter': notes_scatter,
            'durations_scatter': durations_scatter,
            'notes_reachability_plot': notes_reachability_plot,
            'durations_reachability_plot': durations_reachability_plot,
            'notes_cluster': notes_cluster,
            'durations_cluster': durations_cluster,
        }
    else:
        args = {}

    return args
def analysis(compositions):
    array = get_interval_frequency(compositions)

    min_pts = 10
    if array.shape[0] < 10:
        min_pts = 0

    reachability_plot = utils.make_reachability_plot(array, min_pts)
    cluster_table = utils.make_clusters(compositions, array, min_pts)

    if array.any():
        args = {
            'reachability_plot': reachability_plot,
            'cluster_table': cluster_table,
        }
    else:
        args = {}

    return args
def analysis(compositions, size=2):
    contour_list = utils.get_music_data_attrib(compositions, 'contour', 'append')
    array = get_contour_frequency(contour_list, size, True)

    min_pts = 10
    if array.shape[0] < 10:
        min_pts = 0

    reachability_plot = utils.make_reachability_plot(array, min_pts)
    cluster_table = utils.make_clusters(compositions, array, min_pts)

    if array.any():
        args = {
            'reachability_plot': reachability_plot,
            'cluster_table': cluster_table,
            'size': size,
        }
    else:
        args = {}

    return args