Transition Between Two Formations of The Same Time/pitch Space


A self-made algorithm is used in this demo to perform a simple transition between two formations of the same time and pitch spaces, by dividing them differently: A pitch space of 12 semitones from MIDI key number 48 up to 60 (C3 to C4) is divided once into 6 notes with an interval of 2 semitones each (a whole tone space: [48, 50, 52, 54, 56, 58]), and then into 48 notes separated by an eighth-tone interval (25 cents):

    
        [48, 48.25, 48.5, 48.75, 49, 49.25, 49.5, 49.75, 50, 50.25, 50.5, 50.75,
        51, 51.25, 51.5, 51.75, 52, 52.25, 52.5, 52.75, 53, 53.25, 53.5, 53.75,
        54, 54.25, 54.5, 54.75, 55, 55.25, 55.5, 55.75, 56, 56.25, 56.5, 56.75,
        57, 57.25, 57.5, 57.75, 58, 58.25, 58.5, 58.75, 59, 59.25, 59.5, 59.75]
    

I name the first sequence the 'initial sequence' and the second one the 'terminal sequence' (these names are borrowed from the code-base of my system). Both sequences have the same total duration of 3 seconds; the 6 notes of the initial sequence each last 0.5 seconds, and the notes of the terminal sequence last 62.5 milliseconds each. The pitches and durations of the initial sequence are organized and sound as follows:

    
        0 {'Pitch': 48, 'Duration': 0.5}
        1 {'Pitch': 50, 'Duration': 0.5}
        2 {'Pitch': 52, 'Duration': 0.5}
        3 {'Pitch': 54, 'Duration': 0.5}
        4 {'Pitch': 56, 'Duration': 0.5}
        5 {'Pitch': 58, 'Duration': 0.5}
    

And those of the terminal sequence:

    
        0  {'Pitch': 48.00, 'Duration': 0.0625}
        1  {'Pitch': 48.25, 'Duration': 0.0625}
        2  {'Pitch': 48.50, 'Duration': 0.0625}
        3  {'Pitch': 48.75, 'Duration': 0.0625}
        4  {'Pitch': 49.00, 'Duration': 0.0625}
        5  {'Pitch': 49.25, 'Duration': 0.0625}
        6  {'Pitch': 49.50, 'Duration': 0.0625}
        7  {'Pitch': 49.75, 'Duration': 0.0625}
        8  {'Pitch': 50.00, 'Duration': 0.0625}
        9  {'Pitch': 50.25, 'Duration': 0.0625}
        10 {'Pitch': 50.50, 'Duration': 0.0625}
        11 {'Pitch': 50.75, 'Duration': 0.0625}
        12 {'Pitch': 51.00, 'Duration': 0.0625}
        13 {'Pitch': 51.25, 'Duration': 0.0625}
        14 {'Pitch': 51.50, 'Duration': 0.0625}
        15 {'Pitch': 51.75, 'Duration': 0.0625}
        16 {'Pitch': 52.00, 'Duration': 0.0625}
        17 {'Pitch': 52.25, 'Duration': 0.0625}
        18 {'Pitch': 52.50, 'Duration': 0.0625}
        19 {'Pitch': 52.75, 'Duration': 0.0625}
        20 {'Pitch': 53.00, 'Duration': 0.0625}
        21 {'Pitch': 53.25, 'Duration': 0.0625}
        22 {'Pitch': 53.50, 'Duration': 0.0625}
        23 {'Pitch': 53.75, 'Duration': 0.0625}
        24 {'Pitch': 54.00, 'Duration': 0.0625}
        25 {'Pitch': 54.25, 'Duration': 0.0625}
        26 {'Pitch': 54.50, 'Duration': 0.0625}
        27 {'Pitch': 54.75, 'Duration': 0.0625}
        28 {'Pitch': 55.00, 'Duration': 0.0625}
        29 {'Pitch': 55.25, 'Duration': 0.0625}
        30 {'Pitch': 55.50, 'Duration': 0.0625}
        31 {'Pitch': 55.75, 'Duration': 0.0625}
        32 {'Pitch': 56.00, 'Duration': 0.0625}
        33 {'Pitch': 56.25, 'Duration': 0.0625}
        34 {'Pitch': 56.50, 'Duration': 0.0625}
        35 {'Pitch': 56.75, 'Duration': 0.0625}
        36 {'Pitch': 57.00, 'Duration': 0.0625}
        37 {'Pitch': 57.25, 'Duration': 0.0625}
        38 {'Pitch': 57.50, 'Duration': 0.0625}
        39 {'Pitch': 57.75, 'Duration': 0.0625}
        40 {'Pitch': 58.00, 'Duration': 0.0625}
        41 {'Pitch': 58.25, 'Duration': 0.0625}
        42 {'Pitch': 58.50, 'Duration': 0.0625}
        43 {'Pitch': 58.75, 'Duration': 0.0625}
        44 {'Pitch': 59.00, 'Duration': 0.0625}
        45 {'Pitch': 59.25, 'Duration': 0.0625}
        46 {'Pitch': 59.50, 'Duration': 0.0625}
        47 {'Pitch': 59.75, 'Duration': 0.0625}
    

The transitions from the initial to the terminal sequence are set to occur in 40 steps, resulting in a total duration of 2 minutes (40 x 3 seconds = 120 seconds). The presets for rendering these demonstrations use a Euclidean distance metric to compute and associate similarities between the initial and terminal data points (pitches, durations, and onset times), as well as linear transition spaces (both in terms of time and pitch). I have not applied some of the fine-tunings available to my system in terms of the quantization of both pitch and duration to keep the example straightforward and focus on the 'transition' part of this example:


Transition from Initial to Terminal Sequence

Just for fun, I also switch the positions of the sequences, so that now the transition happens from the terminal sequence back to the initial sequence. In the next rendition, I'll assign this second version to channel 1 (right speaker) while channel 0 (left speaker) retains the transition from initial to terminal sequence:


Transition from Initial to Terminal (L) and from Terminal to Initial Sequence (R)