As time-independent notation in linear mode with midi-notes:
 
[ [
[ 58 ], [ 57 ], [ 58 ], [ 50 ], [ 51 ], [ 43 ], [ 41 ], [ 41 ], [ 57 ], [ 57 ], [ 50 ], [ 50 ] , [ 55 ], [ 54 ], [ 55 ], [ 47 ], [ 48 ], [ 39 ], [ 38 ], [ 45 ], [ 50 ], [ 55 ], [ 54 ], [ 57 ], [ 58 ], [ 57 ], [ 58 ], [ 50 ], [ 51 ], [ 43 ], [ 41 ], [ 41 ], [ 57 ], [ 57 ], [ 50 ], [ 50 ], [ 55 ], [ 54 ], [ 55 ], [ 47 ], [ 48 ], [ 39 ], [ 38 ], [ 55 ], [ 54 ], [ 54 ], [ 54 ], [ 54 ], [ 50 ], [ 54 ], [ 57 ], [ 60 ], [ 63 ], [ 62 ], [ 60 ], [ 58 ], [ 57 ], [ 58 ], [ 55 ], [ 55 ], [ 48 ], [ 52 ], [ 55 ], [ 58 ], [ 62 ], [ 60 ], [ 58 ], [ 57 ], [ 55 ], [ 57 ], [ 53 ], [ 51 ], [ 50 ], [ 53 ], [ 58 ], [ 57 ], [ 58 ], [ 50 ], [ 51 ], [ 55 ], [ 58 ], [ 57 ], [ 58 ], [ 62 ], [ 60 ], [ 63 ], [ 62 ], [ 58 ], [ 53 ], [ 57 ], [ 58 ], [ 53 ], [ 50 ], [ 53 ], [ 46 ], [ 46 ], [ 47 ], [ 50 ], [ 53 ], [ 56 ], [ 55 ], [ 53 ], [ 51 ], [ 55 ], [ 60 ], [ 62 ], [ 63 ], [ 63 ], [ 45 ], [ 48 ], [ 51 ], [ 55 ], [ 53 ], [ 52 ], [ 50 ], [ 53 ], [ 58 ], [ 60 ], [ 62 ], [ 62 ], [ 42 ], [ 45 ], [ 48 ], [ 51 ], [ 50 ], [ 48 ], [ 46 ], [ 50 ], [ 55 ], [ 57 ], [ 58 ], [ 55 ], [ 48 ], [ 58 ], [ 57 ], [ 55 ], [ 50 ], [ 54 ], [ 43 ], [ 43 ], [ 43 ], [ 43 ], [ 43 ], [ 43 ] ],
[
[ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ]
]

Fig. 15. Opening of Wagner's Tristan and Isolde, piano reduction in three notations

Fig. 16. Minuet II from Bach's Suite No. 1 in G Major, BWV 1007 in three notations, analysis note-by-note

As a score:

Analysis & Re-synthesis

 

In the process of analysing a musical piece with Periodic Musical Elements, a musical work is first written in a time-independent music notation, and then, analysed by the algorithm implemented in computer software. Below, I present a piano reduction of the opening phrase of Richard Wagner's opera Tristan and Isolde as a score, as time-independent notation, and as Periodic Musical Elements.

Proof of analysis


A proof that any music written in samples of the time-independent notation can be analysed with Periodic Musical Elements is that for any given rootnote, height, equal-temperament, and context, a skip can be found that generates only one note, and this skip has the number of transpositions equal to the number of notes in the used equal temperament. These notes can be further positioned at any of the samples with the use of rotations. It is the skip = equal temperament, in the context = sampling rate * equal temperament. It means, that any piece can be analysed with PMEs using at most one element per note. For example, in fig.16 there is Bach's Minuet 2 from Cello Suite no 1 analysed note-by-note with 144 Periodic Musical Elements. All elements are in context 3744, and belong to skip 26.

As a score:

As time-independent notation in linear mode with midi-notes:
 
[ [ [ 57 ], [ 65 ], [ 65 ], [ 65 ], [ 65 ], [ 65 ], [ 64 ], [ 53, 59, 63, 68 ], [ 53, 59, 63, 68 ], [ 53, 59, 63, 68 ], [ 53, 59, 63, 68 ], [ 53, 59, 63, 68 ], [ 53, 59, 63, 69 ], [ 52, 56, 62, 70 ], [ 52, 56, 62, 71 ], [ 52, 56, 62, 71 ], [ 52, 56, 62, 71 ], [ undefined ], [ undefined ] ],
[
[ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1 ], [ 1, 1, 1, 1 ], [ 1, 1, 1, 1 ], [ 1, 1, 1, 1 ], [ 1, 1, 1, 1 ], [ 1, 1, 1, 1 ], [ 1, 1, 1, 1 ], [ 1, 1, 1, 1 ], [ 1, 1, 1, 1 ], [ 1, 1, 1, 1 ], [ 1, 1, 1, 1 ], [ undefined ], [ undefined ] ] ]

Brute-force search


At the time of writing this text, a computationally-fast algorithm for music analysis with Periodic Musical Elements is still in development. However, I developed a brute-force algorithm based on previously explained limits of the Fractal of Periodic Musical Elements, which makes it fast enough to analyse short music scores. In computer science, a brute-force algorithm is "a method of problem-solving in which every possibility is examined and the best one (or a best one) is chosen."21. The computation time of this algorithm is very long. In comparison to the presented note-by-note analysis based on only one element, which took the computer less than 1 second to perform, the computation time of the brute force algorithm can be counted in hours. The main benefit of checking all needed skips in the fractal is that, in this way, the smallest amount of needed skips to represent a musical piece can be found. To speed up this process as much as possible for the time being, I implemented the following algorithm.


1. First, a program should find all unique frequencies in the analysed music and group them in increasing order.

2. Then, it should find the smallest equal temperament that contains all previously listed unique frequencies. Frequencies of this equal temperament are then mapped onto the sampling rate similar to the initial data for analysis. This is the Periodic Musical Element, which will be further modified to find other elements.

3. The algorithm should generate all elements of the fractal starting with context 1, and continuing until the context is equal to the sampling rate of the analysed data. All these elements are unique and should be checked individually. If the element is found in the data, corresponding frequencies and amplitudes should be removed from the data and this element should be added to the array of matching elements.

4. Further, the algorithm should analyse contexts from context = sampling rate until context = equal temperament * sampling rate (this is the context, where the element capable of note-by-note analysis is located). In this section, not all elements are unique, and not all have to be checked. Skips are unique only for contexts <= this skip * sampling rate. If the element is found in the data, corresponding frequencies and amplitudes should be removed from the data, and this element should be added to the array of matching elements.

As Periodic Musical Elements:

[

  {

    rootfrequency: 52,

    height: 20,

    equaltemperament: 20,

    samplingrate: 19

  },

  [

    periodicelement {

      skip: 40,

      transposition: 1,

      rotation: 2,

      context: 67

    },

    periodicelement {

      skip: 49,

      transposition: 1,

      rotation: 59,

      context: 73

    },

    periodicelement {

      skip: 49,

      transposition: 1,

      rotation: 2,

      context: 74

    },

    periodicelement {

      skip: 41,

      transposition: 1,

      rotation: 14,

      context: 88

    },

    periodicelement {

      skip: 19,

      transposition: 1,

      rotation: 80,

      context: 92

    },

    periodicelement {

      skip: 9,

      transposition: 1,

      rotation: 45,

      context: 94

    },

    periodicelement {

      skip: 12,

      transposition: 1,

      rotation: 3,

      context: 97

    },

    periodicelement {

      skip: 44,

      transposition: 1,

      rotation: 11,

      context: 97

    },

    periodicelement {

      skip: 94,

      transposition: 1,

      rotation: 38,

      context: 103

    },

    periodicelement {

      skip: 10,

      transposition: 1,

      rotation: 24,

      context: 103

    },

    periodicelement {

      skip: 88,

      transposition: 1,

      rotation: 2,

      context: 103

    },

    periodicelement {

      skip: 78,

      transposition: 1,

      rotation: 59,

      context: 103

    },

    periodicelement {

      skip: 25,

      transposition: 1,

      rotation: 7,

      context: 106

    },

    periodicelement {

      skip: 49,

      transposition: 1,

      rotation: 88,

      context: 108

    },

    periodicelement {

      skip: 10,

      transposition: 1,

      rotation: 3,

      context: 109

    },

    periodicelement {

      skip: 22,

      transposition: 1,

      rotation: 3,

      context: 111

    },

    periodicelement {

      skip: 10,

      transposition: 1,

      rotation: 3,

      context: 123

    },

    periodicelement {

      skip: 22,

      transposition: 1,

      rotation: 82,

      context: 129

    },

    periodicelement {

      skip: 53,

      transposition: 1,

      rotation: 82,

      context: 129

    },

    periodicelement {

      skip: 113,

      transposition: 1,

      rotation: 70,

      context: 136

    },

    periodicelement {

      skip: 21,

      transposition: 1,

      rotation: 82,

      context: 139

    },

    periodicelement {

      skip: 21,

      transposition: 1,

      rotation: 137,

      context: 157

    }

  ]

]

 

Note-by-note analysis as Periodic Musical Elements :

[
{
"rootfrequency":38,
"height":26,
"equaltemperament":26,
"samplingrate":144
},
[
{
"skip":26,
"transposition":1,
"rotation":103,
"context":3744
},
{
"skip":26,
"transposition":1,
"rotation":127,
"context":3744
},
{
"skip":26,
"transposition":2,
"rotation":104,
"context":3744
},
{
"skip":26,
"transposition":2,
"rotation":128,
"context":3744
},
{
"skip":26,
"transposition":4,
"rotation":114,
"context":3744
},
{
"skip":26,
"transposition":4,
"rotation":115,
"context":3744
},
{
"skip":26,
"transposition":4,
"rotation":138,
"context":3744
},
{
"skip":26,
"transposition":4,
"rotation":139,
"context":3744
},
{
"skip":26,
"transposition":5,
"rotation":25,
"context":3744
},
{
"skip":26,
"transposition":6,
"rotation":2,
"context":3744
},
{
"skip":26,
"transposition":6,
"rotation":3,
"context":3744
},
{
"skip":26,
"transposition":6,
"rotation":4,
"context":3744
},
{
"skip":26,
"transposition":6,
"rotation":5,
"context":3744
},
{
"skip":26,
"transposition":6,
"rotation":6,
"context":3744
},
{
"skip": 26,
"transposition":6,
"rotation":7,
"context":3744
},
{
"skip":26,
"transposition":6,
"rotation":116,
"context":3744
},{
"skip":26,
"transposition":6,
"rotation":140,
"context":3744
},
{
"skip":26,
"transposition":8,
"rotation":24,
"context":3744
},
{
"skip":26,
"transposition":8,
"rotation":37,
"context":3744
},
{
"skip":26,
"transposition":8,
"rotation":126,
"context":3744
},
{
"skip":26,
"transposition":9,
"rotation":19,
"context":3744
},
{
"skip":26,
"transposition":9,
"rotation":50,
"context":3744
},
{
"skip":26,
"transposition":9,
"rotation":51,
"context":3744
},
{
"skip":26,
"transposition":10,
"rotation":49,
"context":3744
},
{
"skip":26,
"transposition":10,
"rotation":106,
"context":3744
},
{
"skip":26,
"transposition":10,
"rotation":130,
"context":3744
},
{
"skip":26,
"transposition":11,
"rotation":13,
"context":3744
},
{
"skip":26,
"transposition":11,
"rotation":20,
"context":3744
},
{
"skip":26,
"transposition":11,
"rotation":23,
"context":3744
},
{
"skip":26,
"transposition":11,
"rotation":36,
"context":3744
},
{
"skip":26,
"transposition":11,
"rotation":85,
"context":3744
},
{
"skip":26,
"transposition":11,
"rotation":105,
"context":3744
},
{"skip":26,
"transposition":11,
"rotation":129,
"context":3744
},
{
"skip":26,
"transposition":13,
"rotation":9,
"context":3744
},
{
"skip":26,
"transposition":13,
"rotation":18,
"context":3744
},
{
"skip":26,
"transposition":13,
"rotation":21,
"context":3744
},
{
"skip":26,
"transposition":13,
"rotation":31,
"context":3744
},
{
"skip":26,
"transposition":13,
"rotation":48,
"context":3744
},
{
"skip":26,
"transposition":13,
"rotation":53,
"context":3744
},
{
"skip":26,
"transposition":13,
"rotation":68,
"context":3744
},
{
"skip":26,
"transposition":13,
"rotation":73,
"context":3744
},
{
"skip":26,
"transposition":13,
"rotation":97,
"context":3744
},
{
"skip":26,
"transposition":13,
"rotation":110,
"context":3744
},
{
"skip":26,
"transposition":13,
"rotation":111,
"context":3744
},
{
"skip":26,
"transposition":13,
"rotation":118,
"context":3744
},
{
"skip":26,
"transposition":13,
"rotation":125,
"context":3744
},
{
"skip":26,
"transposition":13,
"rotation":134,
"context":3744
},
{
"skip":26,
"transposition":13,
"rotation":135,
"context":3744
},
{
"skip":26,
"transposition":13,
"rotation":142,
"context":3744
},
{
"skip":26,
"transposition":14,
"rotation":22,
"context":3744
},
{
"skip":26,
"transposition":14,
"rotation":35,
"context":3744
},
{
"skip":26,
"transposition":14,
"rotation":43,
"context":3744
},
{
"skip":26,
"transposition":14,
"rotation":67,
"context":3744
},
{
"skip":26,
"transposition":14,
"rotation":74,
"context":3744
},
{
"skip":26,
"transposition":14,
"rotation":117,
"context":3744
},
{
"skip":26,
"transposition":14,
"rotation":141,
"context":3744
},
{
"skip":26,
"transposition":15,
"rotation":32,
"context":3744
},
{
"skip":26,
"transposition":15,
"rotation":84,
"context":3744
},
{
"skip":26,
"transposition":16,
"rotation":30,
"context":3744
},
{
"skip":26,
"transposition":16,
"rotation":33,
"context":3744
},
{
"skip":26,
"transposition":16,
"rotation":44,
"context":3744
},
{
"skip":26,
"transposition":16,
"rotation":47,
"context":3744
},
{
"skip":26,
"transposition":16,
"rotation":52,
"context":3744
},
{
"skip":26,
"transposition":16,
"rotation":54,
"context":3744
},
{
"skip":26,
"transposition":16,
"rotation":57,
"context":3744
},
{
"skip":26,
"transposition":16,
"rotation":72,
"context":3744
},
{
"skip":26,
"transposition":16,
"rotation":75,
"context":3744
},
{
"skip":26,
"transposition":17,
"rotation":8,
"context":3744
},
{
"skip":26,
"transposition":17,
"rotation":96,
"context":3744
},
{
"skip":26,
"transposition":17,
"rotation":98,
"context":3744
},
{
"skip":26,
"transposition":17,
"rotation":99,
"context":3744
},
{
"skip":26,
"transposition":17,
"rotation":100,
"context":3744
},
{
"skip":26,
"transposition":17,
"rotation":101,
"context":3744
},
{
"skip":26,
"transposition":17,
"rotation":108,
"context":3744
},
{
"skip":26,
"transposition":17,
"rotation":123,
"context":3744
},
{
"skip":26,
"transposition":17,
"rotation":132,
"context":3744
},
{
"skip":26,
"transposition":18,
"rotation":10,
"context":3744
},
{
"skip":26,
"transposition":18,
"rotation":14,
"context":3744
},
{
"skip":26,
"transposition":18,
"rotation":17,
"context":3744
},
{
"skip":26,
"transposition":18,
"rotation":34,
"context":3744
},
{
"skip":26,
"transposition":18,
"rotation":42,
"context":3744
},
{
"skip":26,
"transposition":18,
"rotation":45,
"context":3744
},
{
"skip":26,
"transposition":18,
"rotation":66,
"context":3744
},
{
"skip":26,
"transposition":18,
"rotation":77,
"context":3744
},
{
"skip":26,
"transposition":18,
"rotation":83,
"context":3744
},
{
"skip":26,
"transposition":18,
"rotation":86,
"context":3744
},
{
"skip":26,
"transposition":18,
"rotation":87,
"context":3744
},
{
"skip":26,
"transposition":18,
"rotation":102,
"context":3744
},
{
"skip":26,
"transposition":18,
"rotation":107,
"context":3744
},
{
"skip":26,
"transposition":18,
"rotation":109,
"context":3744
},
{
"skip":26,
"transposition":18,
"rotation":124,
"context":3744
},
{
"skip":26,
"transposition":18,
"rotation":131,
"context":3744
},
{
"skip":26,
"transposition":18,
"rotation":133,
"context":3744
},
{
"skip":26,
"transposition":19,
"rotation":46,
"context":3744
},
{
"skip":26,
"transposition":20,
"rotation":11,
"context":3744
},
{
"skip":26,
"transposition":20,
"rotation":16,
"context":3744
},
{
"skip":26,
"transposition":20,
"rotation":56,
"context":3744
},
{
"skip":26,
"transposition":20,
"rotation":64,
"context":3744
},
{
"skip":26,
"transposition":20,
"rotation":70,
"context":3744
},
{
"skip":26,
"transposition":20,
"rotation":76,
"context":3744
},
{
"skip":26,
"transposition":20,
"rotation":78,
"context":3744
},
{
"skip":26,
"transposition":20,
"rotation":89,
"context":3744
},
{
"skip":26,
"transposition":20,
"rotation":95,
"context":3744
},
{
"skip":26,
"transposition":20,
"rotation":112,
"context":3744
},
{
"skip":26,
"transposition":20,
"rotation":113,
"context":3744
},
{
"skip":26,
"transposition":20,
"rotation":120,
"context":3744
},
{
"skip":26,
"transposition":20,
"rotation":122,
"context":3744
},
{
"skip":26,
"transposition":20,
"rotation":136,
"context":3744
},
{
"skip":26,
"transposition":20,
"rotation":137,
"context":3744
},
{
"skip":26,
"transposition":20,
"rotation":144,
"context":3744
},
{
"skip":26,
"transposition":21,
"rotation":1,
"context":3744
},
{
"skip":26,
"transposition":21,
"rotation":12,
"context":3744
},
{
"skip":26,
"transposition":21,
"rotation":15,
"context":3744
},
{
"skip":26,
"transposition":21,
"rotation":29,
"context":3744
},
{
"skip":26,
"transposition":21,
"rotation":55,
"context":3744
},
{
"skip":26,
"transposition":21,
"rotation":58,
"context":3744
},
{
"skip":26,
"transposition":21,
"rotation":63,
"context":3744
},
{
"skip":26,
"transposition":21,
"rotation":65,
"context":3744
},
{
"skip":26,
"transposition":21,
"rotation":69,
"context":3744
},
{
"skip":26,
"transposition":21,
"rotation":71,
"context":3744
},
{
"skip":26,
"transposition":21,
"rotation":79,
"context":3744
},
{
"skip":26,
"transposition":21,
"rotation":82,
"context":3744
},
{
"skip":26,
"transposition":21,
"rotation":88,
"context":3744
},
{
"skip":26,
"transposition":21,
"rotation":90,
"context":3744
},
{
"skip":26,
"transposition":21,
"rotation":119,
"context":3744
},
{
"skip":26,
"transposition":21,
"rotation":121,
"context":3744
},
{
"skip":26,
"transposition":21,
"rotation":143,
"context":3744
},
{
"skip":26,
"transposition":23,
"rotation":28,
"context":3744
},
{
"skip":26,
"transposition":23,
"rotation":41,
"context":3744
},
{"skip":26,
"transposition":23,
"rotation":61,
"context":3744
},
{
"skip":26,
"transposition":23,
"rotation":80,
"context":3744
},
{
"skip":26,
"transposition":23,
"rotation":91,
"context":3744
},
{
"skip":26,
"transposition":23,
"rotation":94,
"context":3744
},
{
"skip":26,
"transposition":25,
"rotation":26,
"context":3744
},
{
"skip":26,
"transposition":25,
"rotation":27,
"context":3744
},
{
"skip":26,
"transposition":25,
"rotation":40,
"context":3744
},
{
"skip":26,
"transposition":25,
"rotation":59,
"context":3744
},
{
"skip":26,
"transposition":25,
"rotation":62,
"context":3744
},
{
"skip":26,
"transposition":25,
"rotation":81,
"context":3744
},
{
"skip":26,
"transposition":25,
"rotation":92,
"context":3744
},
{
"skip":26,
"transposition":26,
"rotation":38,
"context":3744
},
{
"skip":26,
"transposition":26,
"rotation":39,
"context":3744
},
{
"skip":26,
"transposition":26,
"rotation":60,
"context":3744
},
{
"skip":26,
"transposition":26,
"rotation":93,
"context":3744
}
]
]