Esempio n. 1
0
def paginate_sound():
    global sound_pages, sound_page_idx
    print 'start paginate'

    curseg = getseg()
    if curseg:
        print 'curseg', curseg.start, curseg.idx

    sound_pages = []
    sound_page_idx = 0

    if SOUND_ORDERINGS[sound_order_idx] == 'time':
        print 'order by time'
        segs = tape.getSegments()
        segs.sort(cmp=lambda x,y: int(44100*(x.start-y.start)))
        npages = 10
        npp = len(segs) / npages

        for i in range(npages):
            psegs = segs[i*npp:(i+1)*npp]
            sound_pages.append(psegs)
            if curseg and curseg in psegs:
                print 'curseg in timepage', i
                sound_page_idx = i
    elif SOUND_ORDERINGS[sound_order_idx] == 'cluster':
        clusters = tape.getClusters()
        for idx,(k,v) in enumerate(sorted(clusters.items())):
            sound_pages.append(v)
            if curseg and curseg in v:
                print 'curseg in cluster', idx
                sound_page_idx = idx
    elif SOUND_ORDERINGS[sound_order_idx] == 'similarity':
        similarity_tape = Tape(tape.path, nbins=9)
        base = curseg
        nsegs = min(len(similarity_tape.getSegments()), 100)
        page = []
        sound_pages.append(page)

        while len(page) < nsegs:
            cluster,idx = similarity_tape.getClosestUnused(base)
            base = similarity_tape.getClusters()[cluster][idx]
            similarity_tape.use(base)
            page.append(base)

    else:
        # closeness
        base = curseg
        page = []
        ordered = tape.orderBySegment(base)
        sound_pages.append(ordered[:100])

    print 'done paginate'
Esempio n. 2
0
def paginate_sound():
    global sound_pages, sound_page_idx
    print 'start paginate'

    curseg = getseg()
    if curseg:
        print 'curseg', curseg.start, curseg.idx

    sound_pages = []
    sound_page_idx = 0

    if SOUND_ORDERINGS[sound_order_idx] == 'time':
        print 'order by time'
        segs = tape.getSegments()
        segs.sort(cmp=lambda x, y: int(44100 * (x.start - y.start)))
        npages = 10
        npp = len(segs) / npages

        for i in range(npages):
            psegs = segs[i * npp:(i + 1) * npp]
            sound_pages.append(psegs)
            if curseg and curseg in psegs:
                print 'curseg in timepage', i
                sound_page_idx = i
    elif SOUND_ORDERINGS[sound_order_idx] == 'cluster':
        clusters = tape.getClusters()
        for idx, (k, v) in enumerate(sorted(clusters.items())):
            sound_pages.append(v)
            if curseg and curseg in v:
                print 'curseg in cluster', idx
                sound_page_idx = idx
    elif SOUND_ORDERINGS[sound_order_idx] == 'similarity':
        similarity_tape = Tape(tape.path, nbins=9)
        base = curseg
        nsegs = min(len(similarity_tape.getSegments()), 100)
        page = []
        sound_pages.append(page)

        while len(page) < nsegs:
            cluster, idx = similarity_tape.getClosestUnused(base)
            base = similarity_tape.getClusters()[cluster][idx]
            similarity_tape.use(base)
            page.append(base)

    else:
        # closeness
        base = curseg
        page = []
        ordered = tape.orderBySegment(base)
        sound_pages.append(ordered[:100])

    print 'done paginate'