コード例 #1
0
ファイル: vafromb.py プロジェクト: wilttang/remix-examples
 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
コード例 #2
0
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)
コード例 #3
0
ファイル: vone.py プロジェクト: DreamNetwork/remix
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)
コード例 #4
0
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)
コード例 #5
0
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)
コード例 #6
0
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)
コード例 #7
0
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)
コード例 #8
0
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)
コード例 #9
0
 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
コード例 #10
0
 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