[音楽をプログラミングしよう] #04 - アルペジオをカッコよくしよう

前回はループについて勉強しました。延々と停止するまで音が鳴り続けたと思います。

今回はアルペジオをさらに効率的にかつかっこよくなるようにする方法を勉強しましょう。


アルペジオ

おさらいです。アルペジオは和音を分解して演奏する奏法のことです。ということは、和音(コード)を何となくでもわかっていれば分解してテクノなりエレクトロなりの雰囲気を作り出すことができるということです。


ここで、和音を鳴らす命令についてお話しします。前回は同時に鳴るので和音に聞こえるという方法をご覧いただきましたが、今回は意図的に和音にします


一度に和音を演奏するには「chord」というそのままな名前の命令を使います。ただ、この命令は和音の構成だけをつくる命令になっています。発音自体は「play」になるので、組み合わせて使うということです。

play chord(:C4)

上記のコードを実行してみてください。Cのコード(ド、ミ、ソ)で発音したと思います。もちろん気に入らなければお好きなシンセに変更してください。

use_synth :dsaw
play chord(:C4)

これはデチューンのかかったノコギリ波のシンセです。なんだかそれっぽい音ですね。あとはこれを分解して演奏させます。分解して発音するにはplay命令ではできません。代わりに「play_pattern」命令を使います。

use_synth :dsaw
play_pattern chord(:C4)

なんともゆっくりですが、「ド、ミ、ソ」と別々に発音されました。これはBPMに依存していて、テンポがゆっくりになっているのでゆっくり発音されたのです。ということは、これは1拍ずつのタイミングで発音されています。ちょっと時間がかかってしまうのでテンポを上げてみましょう。

use_bpm 120
use_synth :dsaw
play_pattern chord(:C4)

これで少し早くなりました。あとはこれをループに入れればずっとアルペジオしてくれます。いやいや、1拍ずつなんてどうなの?と思ったかもしれませんね。では拍数も決めることができる命令に変えてみましょう。


拍数を決めて1音ずつ分解して発音するには、「play_pattern_timed」命令を使います。

use_bpm 120
use_synth :dsaw
play_pattern_timed chord(:C4), [0.5]

これで4分音符から8分音符になりました。さらに短くしようと思えば角括弧の中の数値をさらに半分にすれば16分音符です。では繰り返してみます。

use_bpm 120
loop do
    use_synth :dsaw

    play_pattern_timed chord(:C4), [0.5]

end

いかがでしょうか?シーケンサーっぽくなってきましたね。


オレオレパターンにしたい

コードは味付けすることができます。たとえば、chord命令の丸括弧の中にカンマで区切って次のように書くと…

use_bpm 120
loop do
    use_synth :dsaw

    play_pattern_timed chord(:C4,'9sus4'), [0.5]

end

C9sus4になりました。ちょっとシャレた雰囲気になりましたか?それでも、自分の選んだ音階で打線を組みたい!という方もいらっしゃるでしょう。そういう場合はchord命令の代わりに角括弧で音階を並べます。

use_bpm 120
loop do
    use_synth :dsaw

    play_pattern_timed [:d4, :a4, :b4, :fs4], [0.5]

end

上記のようにカンマで区切って並べると、この音階をパターンとして演奏してくれます。ちなみに「:fs4」というのはF(ファ)のシャープで、ファの音から半音上がっているものです。逆にフラット記号にしたい場合は「:fb4」とします。ファから半音下がるとミですけどね…


これによって和音にない構成もすることができますし、もちろん4つではなく8つでも16個でもならべることができます。さらに、これを2つならべると…

use_bpm 120
loop do
    use_synth :dsaw

    play_pattern_timed [:d4, :a4, :b4, :fs4], [0.5]

    play_pattern_timed [:d4, :fs4, :g4, :d5], [0.5]

end

2種類のパターンを連続して演奏しましたね。こうして単なるアルペジエータを超えてシーケンサとして利用することができます。


さらにロックしたい

でも待ってください。これだと8分音符だけじゃないですか?もっとかっこよくしたい!つまりは1音ごとにタイミングを変えたい!というニーズもあるでしょう。そういう場合のために発音する長さのほうも角括弧なんです!!


さきほどの0.5を入れたあとにカンマで区切ってタイミングを変えていくことができます。それぞれ、1つ目のタイミングが1つ目の音階に合致します。

use_bpm 120
loop do
    use_synth :dsaw

    play_pattern_timed [:d4, :a4, :b4, :fs4], [0.5, 1, 0.5, 1]

    play_pattern_timed [:d4, :fs4, :g4, :d5], [0.5]

end

カッコいいかどうかはちょっと置いておいて…タイミングがこのように変化しました。

もしも数がそろっていない場合はどうなるのでしょうか?それは少ないほうにそろえられます。ですからタイミングのほうが1つ多ければ最後の1つは無視されます。逆に音階のほうが1つ多ければタイミングに指定している最後の長さが利用されます。


きっちり合わせておけば付点8分音符もできますね。タッタッタというリズムパターンも使えますよ!

use_bpm 120
loop do
    use_synth :dsaw

    play_pattern_timed [:d4, :a4, :b4], [0.75, 0.75, 0.5]

    play_pattern_timed [:d4, :fs4, :g4, :d5], [0.5]

end

あとはこれにエフェクターをかけてしまえばとてもいい感じになるはず!

use_bpm 120
with_fx :distortion, mix: 0.8, distort: 0.6 do
    loop do

        use_synth :fm

        play_pattern_timed [:d4, :a4, :b4], [0.75, 0.75, 0.5]

        play_pattern_timed [:d4, :fs4, :g4, :d5], [0.5]

    end

end

シンセをFMシンセに変更して、ディストーションをうっすらかけてみました!


最後に

今回はアルペジオからはじまってパターンシーケンサーにするところまでいきました。次回はリズムパターンも織り交ぜつつ、さらにシーケンサーとしての利用をすすめていきたいと思います。


最終的にはパソコンとセッションできるようにしたいですね!

もんが(なるーらぼ)

個人でプログラミングの学習サイト「なるーらぼ」を運営しています。
https://nalu-labo.amebaownd.com
PowerShell入門の電子書籍2冊も出版しています。
http://www.amazon.co.jp/dp/B017LJOCJ2

なるーらぼ

ごく自然にプログラミングを楽しむことができる世界をつくるお手伝いをしています

0コメント

  • 1000 / 1000