ch_music_compose33
差分
このページの2つのバージョン間の差分を表示します。
次のリビジョン | 前のリビジョン | ||
ch_music_compose33 [2020/01/05 19:45] – 作成 klab | ch_music_compose33 [2020/01/05 20:08] (現在) – [リズムと組み合わせた自動作曲] klab | ||
---|---|---|---|
行 1: | 行 1: | ||
+ | # 音楽で楽しもう | ||
+ | |||
+ | |||
+ | ## 琉球音階の自動作曲 | ||
+ | |||
+ | 沖縄の音階(琉球音階)を使って、プログラムで作曲してみよう。 | ||
+ | |||
+ | 琉球音階は、「ドレミファソラシ」 の 「レ」 と 「ラ」 が存在しない音階である。次のプログラムでは、「琉球音階」 という**配列**に、基本となる音階を入れた後で、それぞれの音をメロディオブジェクトに入れて演奏している。 | ||
+ | |||
+ | < | ||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | < | ||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | |||
+ | 配列である琉球音階からは、5種類の音を1から5の数字で取り出せる。乱数で1〜5の数を発生させることで、ランダムな音を演奏することも可能である。 | ||
+ | |||
+ | < | ||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | 次のプログラムでは、乱数でAメロディとBメロディという短い旋律を作り、それらを組み合わせて曲を作っている。Aメロディ6個の音を、Bメロディは8個の音を、それぞれ乱数でつなげて作っている。そして、Aメロディの最後には 「ド〜」 を加えている。曲の構成としては、Aメロディを2回演奏し、Bメロディを演奏した後、最後にAメロディをもういちど演奏して終る。楽器には 「マリンバ」 を設定した。 | ||
+ | |||
+ | < | ||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ## ランダムな音階の自動作曲 | ||
+ | |||
+ | 今度は、一定範囲の音をランダムに作り出してみよう。ここでは、2オクターブの音階の音をランダムに演奏することにする。 | ||
+ | |||
+ | 次のプログラムでは、最初に乱数で作る音の基準となる音程を決めている。ここでは「ド」にした。そして音程を書いていくためのメロディを作り、「楽譜」という名前にしている。続いて、基準の音から2オクターブ分の音をランダムに作り、楽譜に50回追加している。「乱数(24)」は1〜24の値をランダムに返す。「音上げる」は指定された数だけ半音ずつ音程を上げる。最大24個の半音なので、2オクターブ上の音階まで表現できることになる。最後に、作った楽譜を演奏している。 | ||
+ | |||
+ | < | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ## フレーズを利用した自動作曲 | ||
+ | |||
+ | 配列に複数の音を入れて演奏してみよう。このプログラムは、複数パートの曲を作る場合にも応用できる。 | ||
+ | |||
+ | 次のプログラムでは、最初にメロディの元になるフレーズを配列に格納している。これらのフレーズは、演奏したときに同じ長さになるように揃えておく。次に、パートごとにメロディを作り、楽器を割り当てる。ここでは楽器番号で指定した。続いて、パートごとにランダムにフレーズをつなげてメロディーを作る。最後に各パートを集めてバンドを作り、テンポを決めて演奏している。 | ||
+ | |||
+ | < | ||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ## リズムと組み合わせた自動作曲 | ||
+ | |||
+ | 最後に、メロディとリズムを組み合わせた自動作曲をしてみよう。プログラムを分かりやすくするために、ここでは作曲する部分をメロディオブジェクトとドラムオブジェクトにメソッドとして定義している。作成する曲は、笛と太鼓の二重奏である。 | ||
+ | |||
+ | 次のプログラムでは、最初に笛の楽器番号と曲の速さ、音符の数の変数を定義している。このように、調整したい値を変数として定義しておくと、後から変更するときに便利である。続いて、笛と太鼓用の音階の配列を用意している。 | ||
+ | |||
+ | 作曲は、メロディとドラムに定義したメソッドで行う。笛のメロディは、音符として7個の音階をランダムに選び、その長さをランダムに決めたものを繰り返すようにした。「↑」は「^」と同じ意味で、続く音階が1オクターブ上がる。「↑↑」は2オクターブ、「↑↑↑」は3オクターブ上がることを示す。太鼓のリズムは、3個の打楽器をランダムに選び、その長さをランダムに決めている。太鼓ではリズムを細かく刻むために、音符の長さは笛の半分(8分音符)に設定し、音符の数を倍に設定した。最後に笛と太鼓でバンドを作り、指定した曲の速さで演奏している。 | ||
+ | |||
+ | |||
+ | |||
+ | < | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||