投稿日: Mar 08, 2011 8:49:46 AM
システム ! "mylib" 使う.
乱数初期化 (2123).
title = ["回文的音楽 2"]. subtitle = [""].
テンポ = "4 = 60".
パート名 = 配列! ["Piano 1"]["Piano 2"] 作る.
音色名 = 配列! ["acoustic grand"]["acoustic grand"] 作る.
clef = 配列! "treble" "treble" 作る.
part = 配列! 作る. staff = 配列! 作る.
小節数=16. 拍子="4/4". 音符配列=配列! 作る. 長さ配列=配列! 作る.
! (小節数)(拍子)("g")("c'''")("4,8")(音符配列)(長さ配列) compose1.
音符数=(音符配列! 要素数?).
track = "".
n=1.[
track = track + (音符配列! (n) 読む) + (長さ配列! (n) 読む) + " ".
n=n+1.
]! (音符数) 繰り返す.
n=音符数.[
track = track + (音符配列! (n) 読む) + (長さ配列! (n) 読む) +" ".
n=n-1.
]! (音符数) 繰り返す.
part! (1)("r2 " + track + " r2" + "\bar" + ["|."]) 挿入.
part! (2)(track + " r1" + "\bar" + ["|."]) 挿入.
part数=(part! 要素数?).
n=1.[
w_staff="\new Staff {\set Staff.instrumentName = #" + (パート名! (n) 読む) + "\set Staff.midiInstrument = #" + (音色名! (n) 読む) + "\clef " + (clef! (n) 読む) + "\tempo " + (テンポ) + "\new Voice \with {\remove" + ["Note_heads_engraver"] + "\consists " + ["Completion_heads_engraver"]+ "} " + (part! (n) 読む) + "}".
staff! (n)(w_staff) 挿入. n=n+1.
]! (part数) 繰り返す.
score = "<<".
n=1.[score = score + (staff! (n) 読む). n=n+1.]! (part数) 繰り返す.
score = score + ">>".
_version = "\version " + version.
_header = "\header {title=" + title + " subtitle=" + subtitle + " composer=" + composer + " copyright=" + copyright + " tagline=" + tagline + "}".
_score = "\score {" + score + "\layout {} \midi {}}".
Lly_File! (配列! (_version) (_header) (_score) 作る) 全部書く.
システム! (はい) 終了する.