action='store', help='path to output segment file') return vars(parser.parse_args(sys.argv[1:])) if __name__ == '__main__': parameters = process_arguments() # Load the features print('- ', os.path.basename(parameters['input_song'])) X, Y, beats = features(parameters['input_song']) # Load the transformation W = segmenter.load_transform(parameters['transform']) print('\tapplying transformation...') X = W.dot(X) # Find the segment boundaries print('\tpredicting segments...') if parameters['gnostic']: S = segmenter.get_segments(X, kmin=len(Y) - 1, kmax=len(Y)) elif parameters['dynamic']: kmin, kmax = get_num_segs(beats[-1]) S = segmenter.get_segments(X, kmin=kmin, kmax=kmax) else: S = segmenter.get_segments(X) # Output lab file print('\tsaving output to ', parameters['output_file'])
make_metadata(annotation) for tag, bounds in zip(labels, levels): add_level(annotation, tag, make_intervals(bounds, beats)) return J if __name__ == '__main__': parameters = segmenter.process_arguments() # Load the features print '- ', os.path.basename(parameters['input_song']) X, beats = segmenter.features(parameters['input_song']) # Load the boundary transformation W_bound = segmenter.load_transform(parameters['transform_boundary']) print '\tapplying boundary transformation...' X_bound = W_bound.dot(X) # Find the segment boundaries print '\tpredicting segments...' kmin, kmax = segmenter.get_num_segs(beats[-1]) levels, labels = get_all_levels(X_bound, kmin, kmax) J = make_jams(levels, labels, beats) with open(parameters['output_file'], 'w') as f: json.dump(J, f, indent=2)
parser.add_argument( 'output_file', action = 'store', help = 'path to output segment file') return vars(parser.parse_args(sys.argv[1:])) if __name__ == '__main__': parameters = process_arguments() # Load the features print('- ', os.path.basename(parameters['input_song'])) X, Y, beats = features(parameters['input_song']) # Load the transformation W = segmenter.load_transform(parameters['transform']) print('\tapplying transformation...') X = W.dot(X) # Find the segment boundaries print('\tpredicting segments...') if parameters['gnostic']: S = segmenter.get_segments(X, kmin=len(Y)-1, kmax=len(Y)) elif parameters['dynamic']: kmin, kmax = get_num_segs(beats[-1]) S = segmenter.get_segments(X, kmin=kmin, kmax=kmax) else: S = segmenter.get_segments(X) # Output lab file print('\tsaving output to ', parameters['output_file'])