【コラム】
|
ついに、なでしこの公式ガイドブックの発売が決まりました。ゼロからプログラミングを始めるところから、実際にプログラムを作って趣味や仕事に活用するところまで、一通り網羅しています。
前半では、変数や制御構文などプログラミングの基本を解説し、後半では、実務に役立つバッチ処理のプログラムや、ゲームやチャット・ニュースリーダーといった本格的なプログラムを作ります。
なんと言っても、なでしこの魅力はお手軽プログラミングです。日本語の分かりやすいプログラムで、いろいろな処理をこなすことができます。この本のサンプルプログラムでも、その魅力がいかんなく発揮されています。ぜひ、本を手にとって、プログラミングの楽しさ、便利さを実感してください。
さて、今回は、ギターの伴奏に使うコードの構成音を表示するプログラムを作ります。「Em」や「G7」といった、コードの構成音を計算によって求めて画面に表示します。
夏といえばキャンプ、キャンプといえば、キャンプファイヤー、そして火を囲んですることと言えば、ギターの弾き語りです。また、駅周辺にもギターの弾き語りをする人が多くなります。懐メロから最新の流行曲まで、コードさえ知っていれば、どんな曲の伴奏でも弾いて歌うことができるのがギターとコードの魅力です。書店でも歌詞の上に、「C」とか「Em」とかコードの書かれたコードブックが売られています。
今回はギターなどで使われるコードを指定すると、その構成音を調べるプログラムを作ってみようと思います。コードとには、和音の意味です。例えば、「Am」というコードは、ラドミの和音を、「CM7」なら、ドミソシの和音を表しているのです。それぞれのコード名ごとに、和音の構成が決まっています。このコード名とその構成音は、でたらめに決められているわけではなく、整然と並んでいるので、計算で求めることができます。
蛇足ですが、音楽と数学の関係はとても興味深いものです。古くは、数学で習った「ピタゴラスの定義」で有名なギリシアの哲学者ピタゴラスは、弦の長さを半分にすると1オクターブ高くなるという「ピタゴラス音階」を発案し、音楽の発展にも貢献しました。他にも、数学と音楽を組み合わせた試みとして、円周率の数字に音階を割り振ったり、フラクタル図形の一部分を切り取ってたりして音楽にするなどがあります。これはネット上でも多くの人が挑戦している試みですので興味があれば検索してみてください。
例えば、「Em」というコードは、「E」と「m」の2つの部分に分けることができます。左側の「E」はルート(基本的な音)を表し、右側の「m」が和音の種類を表します。まず「E」というのはドレミの「ミ」のことです。日本で言う「ドレミファソラシ」は、「CDEFGAB」とも表されるのです。そして、種類の「m」とはマイナーコードの意味で、音の響きが暗く寂しげな印象を受ける構成音となります。
|
また、「C」というコードは左側のルート(基本的な音)のCだけなのかと言えば、これは右側のM(メジャーコード)が省略されたもので、これは明るく朗らかな和音となります。
よく、12音階と言いますが、音階には、「ド、ド#、レ、レ#、ミ、ファ、ファ#、ソ、ソ$#、ラ、ラ#、シ」の12個しかありません。ピアノの鍵盤を思い出してみると分かるのですが、これは半音ごとに並んでいます。和音を考えるときも、この半音を単位として考えると分かりやすいのです。
そこで、ドを0番、ド#を1番、レを2番...... と番号を振ってみるとコードの正体が見えてきます。コード「C」の構成音は、ドミソです。これを番号で表すと、0-4-7です。コード「D」の構成音はレファ#ラなのですが、これを番号にすると、2-6-9です。コード「E」はミソ#シで、4-8-11です。構成の間隔を調べてみると、全て等間隔です。「D」は「C」の構成音に全て2を足したもの、「E」は「C」の構成音に4を足したものになってます。
次に、暗い和音のマイナーコードを番号に置き換えてみます。「Cm」(ドミ♭ソ=ドレ#ソ)を置き換えると、0-3-7です。そして「Em」はミソシなので、4-7-11で、「Cm」の構成音の全てに4を足したものとなっています。
つまり、和音構成を表す数値に、ルート音(基本となる音)の番号を足すと、そのコードの構成音を調べることができるのです。但し、12音階なので、足した結果が12を超えた場合は、12を引きます。
12音階に0番から番号を振ったもの :
ド(0)、ド#(1)、レ(2)、レ#(3)、ミ(4)、ファ(5)、ファ#(6)、ソ(7)、ソ#(8)、ラ(9)、ラ#(10)、シ(11)
コードの構成音を計算する方法が分かったところで、プログラムを組み立ててみましょう。それでは、プログラム作成の手順をまとめてみます。
|
|
プログラムを実行したところ、コード名を指定して調査ボタンを押すとコードの構成音を表示します |
以下が、なでしこのプログラムです。(バージョン1.393で動作を確認しています)
プログラムの1行目から3行目では、音名・和名(日本語の読み方)・コード構成音を設定します。次に、4行目から6行目では、ユーザーからの入力を得るために、コンボボックスを2つとボタンを1つ作ります。ここではカンマ区切りのデータを「,」で区切っていますが、これは設定した値を配列変数に代入しているためです。
7行目以降の部分では、調査ボタンをクリックした時の動作を設定しています。
8行目では、コンボボックスで選ばれた値を見て、配列変数「構成」からコードの構成音の番号を取り出します。コードの構成音は、0-4-7のように「-」で区切られているので、これを「-」で区切って各番号について計算を行います。
9行目では、対象となる番号にルート音の番号を足します。足し算の結果を「%12」としているのは、12以上の値が出たときに12以下になるようにするためです。「%」の記号は、割り算の余りを求める演算子です。
そして最後10行目では、コードの構成音が代入されている変数「結果」を画面に表示します。
さて、せっかく音楽のプログラムなのですから、構成音が演奏されればいうことなしです。音楽を演奏させるには、ドレミのテキストをMIDIファイルに変換できる、テキスト音楽「サクラ」を使うのも良いでしょう。これは私が「なでしこ」を開発する以前に作った音楽製作ソフトです。
テキスト音楽「サクラ」
サクラをダウンロードすると、plug-insフォルダがあります。このplug-insフォルダの中に、dSakura.dllというファイルがあります。これが、MIDIファイルへの変換エンジンです。そこで、これをなでしこと同じフォルダにコピーしてから、以下のプログラムを実行してみてください。
DLLファイルはエクスプローラーの設定で見えないようになっていることがあるので、エクスプローラーのメニューにあるフォルダオプションで、[表示]タブにある、ファイルとフォルダの表示で[すべてのファイルとフォルダを表示する]にチェックを入れてください。
また、他の改造のアイデアとしては、ギターのフレットを表示して押さえる場所を表示したりすると、より本格的になりますね。それでは、今回のプログラムを使って、コードの構成音を調べたり、また、作曲のお供に活用してみてください。
| 【レポート】マカフィーの世界の専門家の意識調査「サイバー防衛報告書」とセキュリティソリューション [21:15 5/25] |
| アップル、Aperture 3.2.4を公開 - バグ修正、安定性向上など [20:51 5/25] |
| 【レポート】GTC 2012 - VGXでエンタープライズ環境でのGPU需要開拓を狙うNVIDIA [20:07 5/25] |
| デル、期間限定キャンペーンに特価アイテム追加、アップグレード無料も継続 [19:41 5/25] |
| 上海問屋、iPhoneとほぼ同じ薄さのバッテリ内蔵ヘッドホンアンプ [19:05 5/25] |
|
[9nine]制服姿見納め? セーラー服で登場も川島海荷「4人はコスプレ」 [19:15 5/27] エンタメ |
|
「NO.6」4巻は書き下ろしドラマCD付、木乃のサイン会も [18:49 5/27] ホビー |
|
[今週の新刊]マンガ大賞3回ノミネート「アイアムアヒーロー」 カープ愛「球場ラヴァーズ」も [18:33 5/27] ホビー |
|
「ゆりてつ」サイン会は作者と都電に揺られるツアー仕立て [17:45 5/27] ホビー |
|
【ネタバレもありの徹底解明コラム】『サザエさん』タマの意外な事実 [17:30 5/27] ホビー |