def __init__(self, input_filename_a, input_filename_b, output_filename): "Synchronizes slavebundle on masterbundle, writes to outbundle" self.master = video.loadav(input_filename_a) # convert slave so it matches master's settings converted = video.convertmov(input_filename_b, settings=self.master.video.settings) self.slave = video.loadav(converted) self.out = output_filename self.input_a = self.master.audio self.input_b = self.slave.audio self.segs_a = self.input_a.analysis.segments self.segs_b = self.input_b.analysis.segments self.output_filename = output_filename
def main(input_filename, output_filename): if input_filename.startswith("http://"): av = video.loadavfromyoutube(input_filename) else: av = video.loadav(input_filename) collect = audio.AudioQuantumList() for bar in av.audio.analysis.bars: collect.append(bar.children()[0]) out = video.getpieces(av, collect) out.save(output_filename)
def main(input_filename, output_filename): if input_filename.startswith("http://") or input_filename.startswith("https://"): av = video.loadavfromyoutube(input_filename) else: av = video.loadav(input_filename) collect = audio.AudioQuantumList() for bar in av.audio.analysis.bars: collect.append(bar.children()[0]) out = video.getpieces(av, collect) out.save(output_filename)
def main(toReverse, inputFilename, outputFilename): if inputFilename.startswith("http://"): av = video.loadavfromyoutube(inputFilename) else: av = video.loadav(inputFilename) if toReverse == 'tatums': chunks = av.audio.analysis.tatums elif toReverse == 'beats': chunks = av.audio.analysis.beats chunks.reverse() out = video.getpieces(av, chunks) out.save(outputFilename)
def main(infile, outfile, choices=4): if infile.startswith("http://"): av = video.loadavfromyoutube(infile) else: av = video.loadav(infile) meter = av.audio.analysis.time_signature['value'] sections = av.audio.analysis.sections output = audio.AudioQuantumList() for section in sections: beats = [] bars = section.children() for bar in bars: beats.extend(bar.children()) if not bars or not beats: continue beat_array = [] for m in range(meter): metered_beats = [] for b in beats: if beats.index(b) % meter == m: metered_beats.append(b) beat_array.append(metered_beats) # Always start with the first beat output.append(beat_array[0][0]); for x in range(1, len(bars) * meter): meter_index = x % meter next_candidates = beat_array[meter_index] def sorting_function(chunk, target_chunk=output[-1]): timbre = chunk.mean_timbre() target_timbre = target_chunk.mean_timbre() timbre_distance = numpy.linalg.norm(numpy.array(timbre) - numpy.array(target_timbre)) return timbre_distance next_candidates = sorted(next_candidates, key=sorting_function) next_index = random.randint(0, min(choices, len(next_candidates) - 1)) output.append(next_candidates[next_index]) out = video.getpieces(av, output) out.save(outfile)
def main(infile, directory, outfile): afile = audio.LocalAudioFile(infile) av = [] ff = os.listdir(directory) for f in ff: # collect the files if f.rsplit('.', 1)[1].lower() in ['mp3', 'aif', 'aiff', 'aifc', 'wav', 'mpg', 'flv', 'mov', 'mp4']: av.append(video.loadav(os.path.join(directory,f))) num_files = len(av) # not sure the best way to handle these settings newv = video.EditableFrames(settings=av[0].video.settings) print >> sys.stderr, "Assembling beats.", for i, beat in enumerate(afile.analysis.beats): print >> sys.stderr, '.', vid = av[i%num_files] if beat.end > vid.audio.duration: # do something smart continue newv += vid.video[beat] outav = video.SynchronizedAV(audio=afile, video=newv) outav.save(outfile)
def main(infile, directory, outfile): afile = audio.LocalAudioFile(infile) av = [] ff = os.listdir(directory) for f in ff: # collect the files if f.rsplit('.', 1)[1].lower() in [ 'mp3', 'aif', 'aiff', 'aifc', 'wav', 'mpg', 'flv', 'mov', 'mp4' ]: av.append(video.loadav(os.path.join(directory, f))) num_files = len(av) # not sure the best way to handle these settings newv = video.EditableFrames(settings=av[0].video.settings) print >> sys.stderr, "Assembling beats.", for i, beat in enumerate(afile.analysis.beats): print >> sys.stderr, '.', vid = av[i % num_files] if beat.end > vid.audio.duration: # do something smart continue newv += vid.video[beat] outav = video.SynchronizedAV(audio=afile, video=newv) outav.save(outfile)
def __init__(self, input_filename, output_filename): self.av = video.loadav(input_filename) self.segs = self.av.audio.analysis.segments self.output_filename = output_filename