Exemple #1
0
def merge_tracks(tracks):
    merged_events = []
    time_passed = 0

    while True:
        result = get_next_events(tracks)

        for item in result:
            merged_events.append(item)
            if item.type == 'DeltaTime':
                time_passed += item.time

        if len(tracks) == 0:
            break

    midi_track = MidiTrack(0)
    midi_track.events = merged_events
    midi_track.length = time_passed

    for item in midi_track.events:
        item.track = midi_track
        if item.channel is not None:
            item.channel = 1

    return [midi_track]
Exemple #2
0
def merge_tracks(tracks):
    # longest = 0
    # for track in tracks:
    #     if len(track.events)  > longest:
    #         longest = len(track.events)

    merged_events = []
    time_passed = 0

    while True:
        result = get_next_events(tracks)

        for item in result:
            merged_events.append(item)
            if item.type == 'DeltaTime':
                time_passed += item.time

        if len(tracks) == 0:
            break

    midi_track = MidiTrack(0)
    midi_track.events = merged_events
    #TODO check effects of this
    #midi_track.length = time_passed

    for item in midi_track.events:
        item.track = midi_track
        if item.channel is not None:
            item.channel = 1

    return [midi_track]