テキスト音楽サクラでパッヘルベルのカノンを作った
あと引数付きのマクロが実装されているので 「タッカタン」というリズムが繰り返される曲はMMLでは「e.d16c」も「e^^dc^^^」も面倒だけども、引数付きマクロでまとめてしまうことも可能。 ただどうも#takkatan({e}, {d}, {c})みたいに文字列リテラルを囲ってカンマで区切らないといけないみたい。 Pythonならこうなんだけどなぁ
>>> def takkatan(a, b, c): return a + "." + b + "8" + c + "4" >>> [takkatan(*x) for x in ["edc", "cde", "egc"]] ['e.d8c4', 'c.d8e4', 'e.g8c4']
そういう抽象化の手法をほとんど使わずに書いたサクラのコードは下記
調#(ドファ)
テンポ120
#MELODY = {
音符2
ファミレ ド↓シラシ↑ド
レド↓シラ ソファソミ
音符4
レファラソ ファレファミ
レ"シレラソシラソ
ファレミ↑ド レファラ↓ラ
シソラファ レ↑レレ.ド8
音符8
レドレ↓レドラミファ レ↑レド"シドファラシ
ソファミソファミレド ↓シラソファミソファミ
レミファソラミラソ ファシラソラソファミ
レ"シシ↑ドレド↓シラソファミシラシラソ
音符4
ファ↑ファミーンレファー
シーラーシー↑ドー
レ↓レドー ン"シレー
レーーレ レソミラ
音符16
ラーファソ ラーファソ
ラ↓ラシ↑ド レミファソ
ファーレミ ファー↓ファソ
ラシラソ ラファソラ
ソーシラ ソーファミ
ファミレミ ファソラシ
ソーシラ シー↑ドレ
↓ラシ↑ドレミファソラ
ファーレミ ファーミレ
ミドレミ ファミレド
レー"シド レー↓レミ
ファソファミ ファ↑レドレ
↓シー↑レド ↓シーラソ
ラソファソ ラシ↑ドレ↓
シー↑レド レード↓シ
↑ドレミレドレ"シド
音符4
レンドン↓シン↑レン
↓レンレンレンミン
ンランランファンラ
ンソンファンソ↑ンミ
音符16
ファ↓ファソファミ↑ミファミ
レ↓ファレシラ↓ラソラ
シ↑シ`ドシラ↓ラソラ
シ↑シラシ`ドド"シド
レ↑レミレ ド↓ドレド
"シシラシ ↑ド↓ドファミ
レ↑レミソ ファ↓ファラ↑ファ
レソファソ ミ↓ラソラ
ファラララ ララララ ファファファファ ファファララ
ソソソ↑レ レレレレ レレ↓シシ ララ↑ミド
↓ラ↑ファファファ ミミミミ レレレレ ララララ
シシシシ ララララ シシシシ ↑ド↓ラララ
音符32
レー↓レミファーレー
ドー↑ドレミードー↓
シー↓シ↑ドレー↓シー↑
ドーラソファーミー
レーソファミーソー
ファーレミファーラー
ソーシラソーファー
ミーラソファーミー
ファー↑レドレー↓ファー
ラーラシ`ドーラー
ファー↑レミファーレー
ファーファミレードー↓
シーシラシー↑ドー
レーファミレーファー
ソーレド↓シーシー
ラーミーラーラー
音符8
ラーーラレーーラ
ソーラーソレレ.ド16
レ↑レドー↓シーラー
レ.ミ16ファーシーミ.ミ16
音符16
ファーー↑ファファソファミ
レーーレレミレド↓
シーーー↑レーーー レド♭"シド♭ ↓ラーーラ
ラーー↑ララシラソ
ファーーファファソファミ
レド♭"シド♭ ↓ラーーラ ソーレー↑ドーード
音符8
レレードー↓シーラーソーファファ.ミ16ミー
ラ↑ファーミレ↑レード♭↓ シー↑レ↓ラシーラー
ラーl16↓ラーーソファーーー↑ファーーミl8レーーレレードー
ラ↓レド↑ド ↓シ↓シラ↑ラ ソ↑ソファ↓ファミシミ↑ミ
ファ↓ファミ↑ミレ↓レド↑ド↓ シ↑シラ↓ラソ.↑ミ18↓ラララーンンン
}
トラック1
#MELODY
トラック2
音符1 ンンンン
#MELODY
トラック3
音符1 ンンンンンンンン
#MELODY


