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