# Easiest way to turn permutations into Sibelius notation

Total dummy (non-programmer) question here. There are permutations like these, for example:

(n=9, r=2)  {1,2} {1,3} {1,4} {1,5} {1,6} {1,7} {1,8} {1,9} {2,1} {2,3} {2,4}
{2,5} {2,6} {2,7} {2,8} {2,9} {3,1} {3,2} {3,4} {3,5} {3,6} {3,7} {3,8} {3,9}
{4,1} {4,2} {4,3} {4,5} {4,6} {4,7} {4,8} {4,9} {5,1} {5,2} {5,3} {5,4} {5,6}
{5,7} {5,8} {5,9} {6,1} {6,2} {6,3} {6,4} {6,5} {6,7} {6,8} {6,9} {7,1} {7,2}
{7,3} {7,4} {7,5} {7,6} {7,8} {7,9} {8,1} {8,2} {8,3} {8,4} {8,5} {8,6} {8,7}
{8,9} {9,1} {9,2} {9,3} {9,4} {9,5} {9,6} {9,7} {9,8}

So in this case, there is a 2/2 time signature and every note in the braces is a half-note. The Numbers count as:

1=C
2=D
3=E
4=F
5=G
6=A
7=B
8=C (2nd oct.)
9=D (2nd oct.)


Three Questions in one:

1) is there any software that does this instantly? Also, a batch-plugin would come very in handy while using Sibelius 7.5.

2) Does algorithmic-composition take part in notating permutations ("rocket science" scripts??) ? if current algorithm-composition software has it, i may need detailed instructions.

3) Is it necessary for top notch performance software if i want to go above three or four octave reach with notating permutations?

I am not certain how your {x,y} pairs map to notes; treating them as chords:

echo '{1,2} {1,3} ...' | tr '{},' '<> ' | perl -ple '%p2n=qw/1 c 2 d 3 e 4 f 5 g 6 a 7 b 8 c'\'' 9 d'\''/; s/(\d)/$p2n{$1}'\''/g' | ly-fu --absolute --open --silent -


produces

which appears unsatisfactory, so perhaps instead the {x,y} blocks are subsequent notes over time?

echo '{1,2} {1,3} ...' | tr ',' ' ' | tr -d '{}' | perl -ple '%p2n=qw/1 c 2 d 3 e 4 f 5 g 6 a 7 b 8 c'\'' 9 d'\''/; s/(\d)/$p2n{$1}'\''/g' | ly-fu --absolute --silent --open


However, that's my tool chain, which requires https://github.com/thrig/App-MusicTools and some knowledge of Unix and Perl and Lilypond to be practical. Replicating this for e.g. Sibelius would require learning what scripting capabilities Sibelius has, or what formats it can import, and then (learning how to and then) writing appropriate code to generate suitable data for Sibelius to import. It appears http://www.sibelius.com/download/documentation/pdfs/sibelius710-manuscript-en.pdf is a good starting point for coding within the Sibelius ecosystem.

• If this is what the OP wants, you can easily write a MIDI file from lilypond and import it into Sibelius. For a score as simple as this, there shouldn't be anything "lost in translation" using MIDI. – user19146 Aug 27 '15 at 21:37
• There are commercial and freeware plugins for Sibelius, written in the Sibelius proprietary scripting language (called ManuScript), which are for generating compositional ideas. It is possible for you to contact the authors of these plugins and scripts and ask for help. The official Avid list of Sibelius plugins is here: sibelius.com/download/plugins/index.html – user1044 Nov 26 '15 at 13:56

Well, I don't know the programmatic facilities of Sibelius. Here is an example LilyPond file:

\version "2.18.0"

#(define (perm lst r)
(if (zero? r) '(())
(append-map
(lambda (x)
(append-map
(lambda (old) (if (member x old) '() (list (cons x old))))
(perm lst (1- r))))
lst)))

showperm =
#(define-music-function (parser location r notes) (index? ly:music?)
(make-sequential-music
(map (lambda (x) (music-clone notes 'elements (ly:music-deep-copy x)))
(perm (ly:music-property notes 'elements) r))))

{
\time 2/2
\showperm 2 <c' d' e' f' g' a' b' c'' d''>2
\showperm 4 { c'8 e' g' c'' }
\bar "|."
}


Now the output from that file will look like

• While this seems like it might be what the asker is looking for, it's not clear whether one could change the permutations and have the music automatically change or how this works. Can you add a little bit about the relationship between the permutations given and how this Lilypond file engraves them as notes? – Todd Wilcox Sep 27 '15 at 13:41

In all it sounds that this may be a job for the ManuScript language, which has direct (though often clunky & limited) integration with Sibelius. However I understand you mentioned you don't have much programming knowledge - if you don't want to get into the messiness and fairly poor documentation of Manuscript, it may be best for you to just do things by hand (three hours of copying notes from an excel spreadsheet would be a lot faster than >8 hours of learning ManuScript for a non-programmer). If this is a larger scale or more general-purpose project it would certainly be beneficial to learn ManuScript or other non-Sibelius options (others have mentioned Lilypond, Abjad lets you work with Lilypond algorithmically through Python, OpusModus might also be worth looking into.

2) Does algorithmic-composition take part in notating permutations ("rocket science" scripts??) ? if current algorithm-composition software has it, i may need detailed instructions.

Since you seem to have very specific goals here, it's highly unlikely that any perfectly pre-built solution exists, but once you have a decent knowledge of whatever language you use it shouldn't be very difficult to make your own.

3) Is it necessary for top notch performance software if i want to go above three or four octave reach with notating permutations?

Not quite sure what you mean here, could you specify?