===== 記法-初心者向け =====
Re:codeの記法について紹介していきます。
==== 想定レベル ====
まずはRe:codeを初めて触る人向けです。
色を変えてある部分についてはそのままコピペで音を鳴らすことができる記述なので、まずはコピペで鳴らしてみてください。
==== 1.スピード ====
Re:codeは一定の長さを延々とループし続けて、その長さの中でフレーズを再生します。\\
よって、まずはスピードの設定が必要になります。\\
デフォルトは1秒にしてありますが、これを変更します。
rs_speed(0.5)
この記述で、ループの長さを0.5秒と設定しています。
あとは他のループ素材と秒数をあわせたい場合、BPM(ビートパーミニッツ)で表現したい場合があるかと思います。
\\ その場合は自分で計算が可能です。
参考URL:
https://er-music.jp/theory/2526/
a/4拍子で、b小節分、BPMがc、時間を秒数で表現したいとすると、下記の式になります。\\
a*b/c *60\\
これをプログラムに記述する場合、以下のような形で書けます。
rs_speed(4*4/120*60)
これをもうちょっと使いやすい形にすることもできるのですが、別のページで紹介したいと思います。
==== 2.MML譜面を書くときのルール ====
MML譜面を書くときのルールですが、すこし特殊です。(TidalCycles触ってた人であれば問題ないと思いますが)
* ノートは全体を等分に割った長さごとに演奏される
* 大カッコが書かれている部分はさらに大カッコ内で等分分割される
* 数値が記述されている場合、一部の命令はパラメータになるが、それ以外は無視される
* 一部譜面として無視される命令がある(スペース、オクターブ指定、全体のVelocity指定等)
例えば、以下の譜面があったとします。
rc_sample0( sq_mml("o4 cccc") )
これは、"o4"の部分は譜面として扱われなくて、それ以降の"cccc"部分だけが譜面という扱いになります。\\
他にも細かい命令がありますが、機能リファレンスに記載していますので確認してみてください。\\
後半のcが4回置いてある部分は「全体を4分割して譜面を鳴らす」、今回のケースでは「4回Noteを鳴らす」という意味になります。
また、他の音程にすることで、いろんな音を鳴らすことが出来ます。\\
音程で使える音は、「c/d/e/f/g/a/b」となり、更に「#」を加えることで半音上げたり別のノート扱いにすることができます。\\
(鍵盤上黒鍵が存在しない場合は、半音上の音が採用されます)\\
rc_sample0( sq_mml("o4 cdef#ga#b#") )
==== 3.大カッコを使った記述 ====
次に、Re:codeの特徴のひとつでもある「大カッコ」を利用してみます。
rc_sample0( sq_mml("o4 ccc[cc]") )
上記ソースコードは「全体を4分割して、かつ4拍目は更に2分割して鳴らす」という意味になります。
更に大カッコは複数記述が可能なので、以下のような記述も可能です。
rs_speed(4)
rc_sample0( sq_mml("o4 cdc[c[cc]]cd[ddd][dc[c#c#]]") )
このように大カッコの中に三連符のような記述も混ぜることができますし、更に言うと大カッコの中に更に大カッコを混ぜて、フィルインのようなフレーズを鳴らすことが可能です。
上記テクニックをまず初級向けの内容とします。