Serial Composition Rules

These are the rules

numbertonote[x_List]  := 
      (Mod[#, 12]& /@ x) /. 
         {0 -> "c", 1 -> "c#", 2 -> "d", 3 -> "d#", 
          4 -> "e", 5 -> "f", 6 -> "f#", 7 -> "g",  
          8 -> "g#", 9 -> "a", 10 -> "a#", 11 -> "b"}

notetonumber[x_List]  :=   
      x /. {"c" -> 0, "c#" -> 1, "d" -> 2, "d#" -> 3, 
          "e" -> 4, "f" -> 5, "f#" -> 6, "g" -> 7,  
          "g#" -> 8, "a" -> 9, "a#" -> 10, "b" -> 11}

Retrograde[x : {__String}] := Reverse[x]

Inversion[x : {__String}] := 
      numbertonote[ 
        FoldList[Plus, 
          notetonumber[x][[1]], 
          (Drop[RotateRight[notetonumber[x], 1] - notetonumber[x], 1])]]

RetrogradeInversion[x : {__String}] := Reverse[Inversion[x]]

NoteTranspose[x : {__String}, n_Integer] := 
      numbertonote[notetonumber[x] + n]

Here are examples

rachaelsprime  =  numbertonote[({8, 0, 5, 2, 7, 9, 1, 5})]

Retrograde[rachaelsprime]

Inversion[rachaelsprime]

RetrogradeInversion[rachaelsprime]

Inversion[Retrograde[rachaelsprime]]

NoteTranspose[rachaelsprime, -3]

Table[NoteTranspose[RetrogradeInversion[rachaelsprime], i], {i, 0, 11}]
         // TableForm