選ばれたセクションを並べて、曲の設計図にする。
テンプレート名が指定された場合はテンプレートの plan をそのまま使う。 kinds 配列が指定された場合は SECTION_ORDER に従って並べる (従来の互換モード。各種別は1回ずつ)。 どちらも空のときは DEFAULT_SECTIONS を使う。
同じ種別が2回以上現れた場合、2回目以降は restatement: true が付く。 compose側はこのフラグを見て、1回目のメロディ・リズムを再現する。
restatement: true
rnd を渡すと、セクション長を SectionSpec.barChoices から引く (渡さなければ SectionSpec.bars の代表値。UI の長さ表示など、 引くたびに答えが変わっては困る場所のため)。
rnd
長さは種別ごとに1回だけ引く。 1番のAメロが8小節で2番が16小節、という 曲は書けなくはないが、restatement は1番の対応小節をそのまま歌い直す仕組み なので、長さが違うと後半だけ別のフレーズになる。同じ名前のセクションは同じ 長さで揃えるほうが「同じフレーズが返ってきた」という手応えを壊さない。
restatement
Optional
選ばれたセクションを並べて、曲の設計図にする。
テンプレート名が指定された場合はテンプレートの plan をそのまま使う。 kinds 配列が指定された場合は SECTION_ORDER に従って並べる (従来の互換モード。各種別は1回ずつ)。 どちらも空のときは DEFAULT_SECTIONS を使う。
同じ種別が2回以上現れた場合、2回目以降は
restatement: trueが付く。 compose側はこのフラグを見て、1回目のメロディ・リズムを再現する。rndを渡すと、セクション長を SectionSpec.barChoices から引く (渡さなければ SectionSpec.bars の代表値。UI の長さ表示など、 引くたびに答えが変わっては困る場所のため)。長さは種別ごとに1回だけ引く。 1番のAメロが8小節で2番が16小節、という 曲は書けなくはないが、
restatementは1番の対応小節をそのまま歌い直す仕組み なので、長さが違うと後半だけ別のフレーズになる。同じ名前のセクションは同じ 長さで揃えるほうが「同じフレーズが返ってきた」という手応えを壊さない。