音楽と数学

2017年1月16日 (月)

音楽と数学(引き算)その2

音楽と数学(行列)の途中ですが、今後行列でも和音においての構成音とその1オクターブ上の音では音楽での意味合いが変わりますので、例えば2度と9度の違いについて書きたいとおもいます。前回の引き算(リンク)では、基準音との差を書きました。
前回書き忘れた部分もありましたので追記します。

2度はドレミのドを基準とした場合全音上のレの音、9度は2度の1オクターブ上のレの音になります。

・・・と、その前に、耳で聞いてわかる半音とその1オクターブ上の音を考えてみます。
ドとドの半音上の音を和音の出る楽器で弾いてみてください。
音がうなるのがわかるはずです。

これは、2つの音の周波数の差分がうなりの周波数になるからです。(うなりとは2音で生じる合成音)
つまり前回の「音楽と数学(引き算)」での音のズレはうなりとして認識されます。
弦楽器を扱っている人はいつものことでわかると思います。

計算しにくいので、いつも通りA=440(Hz)を基準にして考えると、半音上のBbは純正律では、16/15周波数が上なので、

Bb = 440×16/15=469.33...(Hz)

になり、うなりの周波数は、

469.33... − 440 = 440 × (16/15 - 1) = 440 × 1/15 =  29.33...(Hz)

29(Hz)あれば音として聞こえます。この差分の周波数の音を、差音と言います。
次に、1オクターブ上の音を弾いてみてください。半音の時ほどの気持ち悪さはないはずです。
これも上記と同様に考えると、1オクターブ上の純正律でのBbの音は、

Bb = 440×32/15=938.66...(Hz)

になり、うなりの周波数は、

938.66... − 440 = 498.66...(Hz)

この音は、440 × 9/8 = 495(Hz)に近いですね。純正律では基音の9/8の周波数は、2度に相当します。この場合には2つの音から生じるもう一つの音で、綺麗な響きにはならないですが、うなりには聞こえません。
では次に当初の2度と9度を考えてみましょう。同じくA=440(Hz)を基準にすると、

B = 440 × 9 / 8 = 495 (Hz)

で差音は、

440 × 1/8 = 55(Hz)

ですが、何か気付いたでしょう?
55(Hz)もAの音ですね。ということはこのうなりは基音と重なるために濁りません。実は純正律やピタゴラス律では、基本的に分母が2のべき乗か分子が2のべき乗になるため、1オクターブ内では差音が、基音かもしくはもう一方の音と重なり、うなりません。
では、同様に9度の音を考えると、

B = 440 × 9 / 8 × 2(2は1オクターブ変換時の定数) = 440 × 9 / 4  = 990 (Hz)

で差音は、

990 - 440 = 440 × 5/4 = 550(Hz)

ここで現れる5/4というのは、実は純正律の基音と長3度の関係ですので、Aに対してC#の音になります。

さて、ここまで読んで気付いたと思いますが、2度と9度での音の重なり方が異なることから、響きが異なることがわかります。

さらに同じように考えると、ポピュラーやジャズでは、あるコードネームに対して、構成音の下からの順番を変えることが普通ですが、コードの響きが似て非なるものになりますので、気をつけましょうdanger

2016年12月24日 (土)

音楽と数学 (行列) その2

音楽と数学(行列) その1から半年になってしまいました。

さてさて、行列を使って音楽を表す話の続きです。
前回の内容を忘れた方は、上のLINKからたどるか「音楽と数学」のタグをさかのぼって復習していただければと思います。

前回の命題、何もないところから3和音と言うのをどう表すか?
この解決方法として常に行列の4番目に何らかの値を置くという手があります。
これは私の幾何演算の師匠でもある山口富士夫先生の図形処理の4次元処理と同様で、3次元で表せないものを4次元で表すことで、3次元を簡単に表せます。
詳しく知りたい方は、師匠の著書「4次元理論による図形・形状工学」などを参考にしてみてください。

ただし、今回の音楽演奏においては、4次元というよりは演奏する指より1本多ければ、次の音を創出できるのでN+1次元演奏モデルとでもしましょうか。

では早速何もない状態から、CEGの3和音を作り出す方法を考えます。
やはり音楽の基準音は大体Aですので、音を出さない特殊なAの音としてαという文字を定義し、αは4列目にしか置かないこととします。それを3和音(1行目〜3行目)+特殊音(4行目)とすると、下のような行列演算になります。
Createceg_3
この式は、以下の(i)〜(iv)までの4つの関数を一つにまとめた行列計算と考えられます。

f1(0) = α × K3 = C   ・・・  (i)
f2(0) = α × K7 = E  ・・・  (ii)
f3(0) = α × K10 = G   ・・・ (iii)
f4(α) = α × K = α   ・・・ (iv)

つまり、4×4行列の4列目だけに、Aを何度分変化させるかを記述し、Kだけの場合は同じ音(一度)を意味し、基準音だけは変化せず、αは音を出さないと定義したので、再び3和音+特殊音を表現できます。

多分納得のいかない方もいるかもしれませんが、これを使うことで、キーボードでの指の動きの連続を表現することができ、そのような演奏モデルをコンピューターで表現するには、わかりやすいのではないかと思います。
・・・で、次回は他の演奏パターンも考えてみます。coldsweats01

2016年10月29日 (土)

音楽と数学(極座標) 

随分と空いてしまいましたが、音楽と数学です。

前回は「行列」をやりました。で、今回も「行列」の続きを書こうと思ったのですが、行列式を図にするのがけっこう大変なので、また後でやることとして、リハビリを兼ねて「極座標」と音楽の関係を書こうと思います。

平面や空間を表すのに、中学や高校でのグラフのほとんどがXYの二次元の直交座標か、XYZの三次元の直交座標系を使いますが、角度θと円や球の中心からの距離rで表す極座標系というのもあります。
これの一例としては、地球の表面上を緯度と経度と地球中心からの距離で位置を表す方法があります。

とりあえず今回は円の中心を使って、角度に相当するものを音名としてA,B,C,...,Aのいわゆる音の円環と同じものを左周りに(半音を30°として)設定します。
また円の中心からの距離をその音名の周波数(Hz)で表した場合、以下のグラフになります(1760Hzの辺りの線が歪んでいるのはご容赦くださいcoldsweats01)。
Rasen_2
さてみればわかるように「螺旋(らせん)」ですねこれ。

実は私がやっている音楽ユニットGyroscaleのGyro-は螺旋や円形を意味しており、Scaleは音楽でいう目盛り。つまり音階。ドレミファソラシドと周波数の融合でもある、この図から名づけました。
つまりGyroscaleと言う名前は、音階を極座標で表したものから2005年に命名したものです。

なんですが、その後に物理用語としてGyroscaleと言う名前が登録されていて、「The scale of  particles in a gyrokinetic plasma」という意味らしいですcoldsweats02
なんだかよくわかりません(笑)
友達に物理学の先生がいるので、今度その辺りは一体どういうことか聞いてみますfuji
しかし驚くことに、この螺旋はカタツムリなどの巻貝の構造とそっくりなんです。
自然界と数学というのはいろんなところで絡んでいて、もちろん音楽も数学と密接に関わっているということですね。
ではまた。

2016年6月26日 (日)

音楽と数学 (行列) その1

タイトルが変わりました。

ただし「行列」という数学は、高校の教育課程から外れるらしいので、ちょっと残念です。
しかも音楽を真面目に勉強した人たちは、だいたい学校では数学ができなかった人たちだったり、数学がものすごくできた人たちは、ソフトウェア作りでブラック企業に入社し、平日深夜や土日も休まず働いているため、音楽演奏や音楽理論を習得する人などは皆無だと思います。
そう考えると私のように、音楽演奏や理論も習得できて、数学も十分に勉強できた人にはあまりお目にかけることはなく、私とこの手の会話ができるお友達はいなくてあまりにも寂しいので、もしいらしたらご連絡いただければと思います(笑)

以上のことから、ますますこの先に私が書くことを理解できる人が減るのは必至ですが、皆さんにはもう諦めてもらいまして、さらに知りたい場合は自分で本を読んでもらうか、私の戯言を子守唄としてお休みいただければ幸いです💤

何しろ、大学時の卒論のテーマは、「4×4行列によるポリゴンエンジン」で、最初に入った会社では、電子CADの幾何学演算で、3×3行列を使って、例えばプリント用の座標データを画面に表示したり、画面で入力した座標をプリント用の座標に変換する部分を作っていました。 この技術は普通にPCや端末と内部データの変換を行う際に使う数学です。 そして、ここのところは行列を使ってデータ推定を行っているし、多分一生、行列からは逃れられそうもありません。多分得意分野だと思いますが、ラーメン屋やバーゲンなどの行列は苦手ですnoodle

行列というものはどういうものに便利かというと、行列は複数の値を変換して複数の結果を出力する。または、ある複数の結果がある時に、元の値を推測するという場合に非常に役立ちます。 その場合に、前回までの「関数」では一対一の変換を扱うのはいいのですが、行列のように複数の値を扱うには、関数を複数用意するしかありません。

前置きはこのぐらいにして、本題に入ります。
前回の和音の変換を行列(今回はまだ1行3列と3行1列)を使って表すと、

f(C) = C × K(-1) = B   ・・・  (i)
f(E) = E × K(-2) = D   ・・・  (ii)
f(G) = G × K0 = G × 1 = G   ・・・ (iii)

という3つの式で表せました。さて、この関係を行列で表すとどうなるか?というと、下のようになります。

Mat1・・・(iv)

多分何のことかわかりにくいでしょうから、軽く説明します。
数学では、数字や記号を複数の行に並べて書くことで、式の「×」という記号を省略表記します。
この場合3×3の行列で、左上から右にK(-1)、0、0となっていて、これらがそれぞれ、C、E、Gと掛け算をして、それぞれの要素を足し算した結果がBになるということを表しています。
0をかけるということは、値が消えるので、前述の(i)の式と同じになることがわかりますね。
つまり、
C × K(-1) + E × 0 + G × 0 = C × K(-1)
ということを表しています。
同じように2列目を考えると、左から0、K(-2)、0に対して、C、E、Gと掛け要素を足した結果がDで(ii)の式。
3列目も、左から0、0、K(-0)に対して、C、E、Gと掛け要素を足した結果がGで(iii)の式になります。
つまり、(i)(ii)(iii)の式をまとめたものが(iv)の行列ということです。

ちなみに行列では縦方向が「行」で、横方向が「列」なのは、MicrosoftのExcelと同じです。

以上のように行列を使うと和音の指の動きが表せるようになりました。
つまりあらゆる音程と指の動きを対応させて、曲全体のコード進行が表せるということになります。

というわけですが、何かご質問はございますか?

例えば、だいたい曲は最初は音がないし、指3本だけ使っていたのに、次には4和音になったり、またそれが逆の場合はどうするんだ!?と思った人。
鋭い!!

・・・が、今回はこの程度で。行列を使うといろいろ面白いことがわかってきますよ。
でも、もはや誰もついてこれまいbud

2016年6月18日 (土)

音楽と数学 (関数) その3

前回は、一音に対しての変化を関数で表しました。
では、三音ではどうなるかを、CとGのコード進行で考えてみます。このコード進行はご存知の通り「メリーさんの羊」を始めいろんな曲で使われています。

キーボードで見てみるとCのコードの構成音は、C・E・Gですので、下のキーボードの丸の位置を押さえます。

Chord_c0次にGのコードですが、構成音はG・B・Dですので、下の丸の位置を押さえます。

Chord_g0_3

さてこの時に指の動きはどうなるでしょう?
たいていの人はそのまま横に移動すると思います。そして大体は親指がCの位置からGの位置、中指がEの位置からBの位置、小指がGの位置からDの位置、というような動きになると思います。

親指に着目して、前回 21/12 を定数 K で表した場合、親指の関数は、

f(C) = C × K7 = G

という変換で表せます。

では他の指はどうなるか?というと、実は並行移動でなので、

f(E) = E × K7 = B

f(G) = G × K7 = D

という風に K7を使うことで全て表せますhappy01

まとめると、

f(C,E,G) = (C,E,G) × K7 = (G,B,D)

というように、順番もこの通りに変換されます。
しかし、早い曲などでは上記のようにいちいちコードを並行移動して演奏するのは至難の技です。
ですので、最初のCのコードからあまり指を動かさないで、下のようなGのコードを弾くことが普通です。これを展開形と言って、GのコードですがコードネームとしてはG/Bとも書きます。

Chord_g2この場合、親指はCの位置からBの位置、中指はEの位置からDの位置、小指の位置はそのままになります。
さてそうなると先ほどの関数はどうなるかというと、C・E・Gの音はそれぞれ、

f(C) = C × K(-1) = B

f(E) = E × K(-2) = D

f(G) = G × K0 = G × 1 = G

というふうになります。
さてこれは上の場合のように、まとめて書けそうになさそうですね。
どうしましょう?

実はいい方法があるんです!
数学が得意な人はもう気づいたかもしれませんが、また次回smile

2016年6月 9日 (木)

音楽と数学 (関数) その2

久しぶりに音楽と数学です。
音楽と数学で「関数」について書いたのは、ほぼ2年前(リンク)でした。
とりあえずそれを「その1」として、一応つながりはあるので、今回は「その2」ということで、これから音の変化について周波数を基本にして書いていこうと思います。

みなさんご存知のように、ピアノの真ん中あたりの「ラ」の音は440Hzぐらいの周波数として知られています。

そしてその1オクターブ下が、220Hz。1オクターブ上が880Hzになります。2オクターブ上が1760Hzということで、一般に用いられる12音平均律での周波数というのは、440×2n/12 (nは整数)で表すことができるのは、このブログで何回か書きました。

ここでそのピアノの真ん中の「ラ」の音の周波数を A という定数で表してみると、

A = 440 = 440×20= 440×20/12(Hz)

2の0乗は1ですからこのようになります。そして1半音下の「ラのフラット」の音は、

Ab = 440×2(-1/12)(Hz)

半音上の「ラのシャープ」の音は、

A# = 440×21/12(Hz)

という周波数になります。これは440Hzを中心に、1オクターブを均等に12分割した場合、2の12分の1乗単位で、増減することで、12音階の各周波数を表せるということです。

さらに面白いのは、上記の音の関係は次のようになるということです。

Ab = A×2(-1/12) = A#×2(-2/12)

A# = A×21/12 = Ab×22/12

この関係をもっと広げて、上の半音ずつ上の音B,C、下の半音ずつ下の音G,Gbまで書いてみると、

Ab = A×2(-1/12) = A#×2(-2/12) = B×2(-3/12)= C×2(-4/12)

A# = A×21/12 = Ab×22/12 = G×23/12 = Gb×24/12

という関係になります。2の指数が12分の1単位で変化することがわかると思います。

これを関数として書くと、ある音 T を半音下げる関数は、

f(T) = T × (21/12(-1) = T × 2(-1/12)

ある音 T を半音上げる関数は、

f(T) = T × 21/12

ある音 T を完全5度(半音7つ分)上げる関数は、

f(T) = T × (21/127 = T × 27/12

ある音 T を完全8度(半音12個分)下げる(つまり1オクターブ)関数は、

f(T) = T × (21/12(-12) = T × 2(-12/12) = T × 2(-1) = T / 2

ここで、 21/12 を定数 K で表した場合、以上の関数は順に、

f(T) = T × K(-1)、 f(T) = T × K、 f(T) = T × K7、 f(T) = T × K(-12)

となり、定数 K の整数乗で表現できることがわかります。また指数のべき乗は乗算、底が同じ指数の乗算は、指数部分の足し算になることは、高校のテストにも出ると思うので、覚えておいて損はありません。
ところで f って何?という方もいらっしゃると思いますが、数学では一般的に関数のことを f (function)で表して、 カッコの中にその関数に与えるパラメータを書きます。
ソフトウェアの場合は、f に機能を区別する名前をつけて、カッコの中に複数のパラメータを設定することで機能が実現できます。

次回以降は、1音ではなく複数音の場合にはどうなるか?実際の曲の進行やコード進行に割り当ててみるとどうなるか?
ではまたhappy01

2016年5月21日 (土)

一弦さん Ver2

私のライフワークとして、音楽と数学について研究をしているというのは、このblogをご覧になっているみなさんはすでにご存知でしょう。
そのついでと言ってはなんですが、研究の副産物としてアプリケーションも開発しています。
円形のリズム表示に関しては、リリース済みのKepler Round Beat Boxというアプリケーションで実現しています。その中に「Golden Section Setting」という設定が付いていて、これは16ビートに黄金分割でゆらぎをつけられるようにしています。
また、リズムの中心をずらすことでリズム全体にゆらぎをつけられます。
円形の音程表示に関しても、GelileoTunerで実現しています。

さて今回ですが、すでにリリース済みの「一弦さん」にさらに音階設定と音色を変えることができる倍音編集機能を追加しました。
これは基音となる正弦波(Sine波)に2倍、3倍、・・・8倍音まで合成することできます。
例えば奇数倍音だけを追加すると音色がクラリネットのような音になるというのがわかります。
この辺についてはいずれ倍音と音色に関しての説明をやりたいと思いますが、音楽おいて倍音の存在と曲の作りは非常に密接に関係していて、サウンドの厚みや気持ちよさに影響を与えているということです。
今回のアプリのサンプル動画を以下に添付しましたので、興味のある方は是非購入してみてください。iPhone/iPad/iPod touchのiOS7.0以上に対応しています。

2016年2月11日 (木)

音楽と数学(集合) その3

さて間が空きましたが、音楽と数学です。
リズムと集合に関して書こうと思っていたところ、リズムは「集合」というよりは組み合わせの方だという結論に達しましたので、また別の機会にして、今回は前回までの音階の方の集合についてまとめたいと思います。

数学ではベン図(Venn Diagram)(詳細はリンク参照)というのがあり、集合を表すのに用いられます。

ベン図を用いて前回までのCとFとGのペンタトニックスケールの構成音を描くと下のようになります。

Ben

図からわかるように、CのペンタトニックはFとGの中に含まれてしまっています。
Fのスケールの時にはBの音は外れ、Gのスケールの時にはFの音が外れ、Cのスケールではどちらも外れます。
つまり、これらの音は使ったらペンタトニックスケールではなくなるので、使ってはいけません。ただし、CがMaj7だったりすれば、Cの時にBは使えたりするので、あくまでもペンタトニックスケールとしてです。

例えば、実際にCのブルースを演奏する際には、まず真ん中のCDGAEに注目し、Fになった時は、左の円に注目、Gになった時は右の円に注目すれば、演奏すべき音というのが見やすいのではないでしょうか?

実は、スケールが複雑になってもこのような考え方は重要で、そのコードの雰囲気を表す音として、Fの時のF、Gの時のBが存在します。
なので、逆に言うとそのコードの時にこの音を目立つように使えば、伴奏楽器がなくてもコード進行が聞こえてきます。

同様に複雑なコード進行でもこの理屈は使えますので、ソニーロリンズのトリオのような、ベースとドラムとサックスだけの変則的な場合には非常に効果的でカッコよく聞こえます。

さてスケールと集合はこの辺にして、次回は新作アプリと関連するリズムに関して書こうかな?

2015年11月 7日 (土)

音楽と数学(集合) その2

さて前回は、単純なCのキーの曲の場合いわゆるスリーコードでのペンタトニックスケールの構成が以下であり、その共通な構成音がDsus4コードの構成音になることがわかりました。

Cペンタトニックの構成音:{C,D,E, G,A}
Gペンタトニックの構成音:{  D,E,   G,A,B}
Fペンタトニックの構成音:{C,D,  F,G,A}
{D,G,A}=Dsus4コードの構成音

ということですが、何も曲の中で共通の音だけ吹いてもつまらないだろうということですので、今回はもう少し進んでどうやって即興演奏に近づけるかを考えます。
まぁ結論を言うと、ペンタトニックの即興演奏をやる場合、Cの時はCのペンタトニック、Gの時はGのペンタトニック、Fの時はFのペンタトニックを弾けばいいだけです。

以上。

と言って、弾ける人はいないでしょうねcoldsweats01 そして単にスケールを演奏したって、人は感動しないでしょう。
歌が付いているのであれば、メロディーはなくても大丈夫なことは多いですが、楽器だけでやる場合に一番難しいのが、メロディックにリリカルに弾くということ。

メロディックであるためには、

  • 同じ音を続けない。
  • 音の跳躍を使う。
などがあると思います。またリリカルであるためには、
  • 言葉で話す時のようなリズム。
  • 抑揚のある音程を使う。
がありますね。

さてそうなると、音の高低に関しては、ペンタトニックで頑張るとして、リズムはどうすべきか? ということで次回sun

2015年10月 3日 (土)

音楽と数学(集合) その1

今回はアドリブに関連のある「集合」という分野について書きます。

なんで「集合」とアドリブが関係があるんだ?暇な人が集合するとアドリブができるのか?・・・とそういうことではありません。

数学で集合というと、{1,2,3,...}と言うような集まりです。
数字だけではなくて、{A,B,C,...}でも集合です。
もうなんとなくわかった人もいるかもしれませんが、音楽だとAといえば基準音440Hz辺りの2の乗数が周波数になりますが、今回は周波数の話は除いて、単なる音としてのAやBを考えてみます。

一般に曲はトニック、ドミナント、サブドミナントというコードで構成されますが、例えばKeyがCの場合には、トニックコードの集合は{C,Em,Am}、ドミナントコードの集合は{G,Bm-5}、サブドミナントコードの集合は{Dm,F}になります。
マイナーコードが入ると面倒臭いので、今回は単純にその中からC,G,Fのメジャーコードで曲ができる場合を考えます。
つまりCとGとFのメジャーコードは、それぞれⅠのコード、Ⅴのコード、Ⅳのコードと呼ばれ、単純なブルースではこの3つでとりあえず曲になりますし、実は複雑な曲でも一つのキーの中では、強引に置き換えると、この3つにすることができます。

さてここでCのメジャーコードで使えるアベイラブル(利用可能な)スケールは何かと言うと・・・
話が長くなるので、メジャーのペンタトニック(5音スケール)だけで今回は考えることにします。
しかし、ペンタトニックを侮るなかれ。これを本気でマスターすればちゃんとアドリブをすることが可能です。

まずCのメジャーコードでのペンタトニックは、{C,D,E,G,A}の音の要素の集合です。
同様にGは{G,A,B,D,E}、Fは{F,G,A,C,D}になります。
つまり各コードの時にこの音を弾けば間違いないということです。

この3つの音の集合を並べてみます(一部順番を替えます)。
Cペンタトニックの構成音:{C,D,E, G,A}
Gペンタトニックの構成音:{  D,E,   G,A,B}
Fペンタトニックの構成音:{C,D,  F,G,A}
ここで何か気付きませんか?
そうです。3つに共通する音が{D,G,A}=Dsus4コードの構成音で、ずっとこの3音を鳴らし続ければ、Cのブルースで音が外れることがないということです。

これを数学的に扱うと、
{Cペンタトニック}∩{Gペンタトニック}∩{Fペンタトニック}={Dsus4の構成音}
ということです。∩は積集合を表していて、ソフトウェアのプログラムや論理計算でいうANDを意味します。
ちなみにANDがでてきたので、和集合であるORを前述のペンタトニックで考えると、
{Cペンタトニック}∪{Gペンタトニック}∪{Fペンタトニック}={C,D,E,F,G,A,B}={Cメジャーのダイアトニックスケール}
になります。

さてそうは言うものの、3音ばかり弾くのも飽きるし、カッコよくないなぁとみなさん思うでしょう。
まぁそりゃそうですね。次回以降からじゃぁどうすべきかを考えていきましょう。
フォト

最近のトラックバック

無料ブログはココログ