また、フルート奏者の久米素子さんが面白い記事を書いている。
ところでいきなりだが、話が飛ぶ(笑)。
ところで、MATLABには面白い機能があって、それは何らかの数学的関数を「音声出力可能」ってちとキレた能力があるんだな(笑)。
結果、音響工学的な某、とか、あるいはDSP(デジタル・シグナル・プロセッサ)の開発なんかに多大な貢献をしてるらしい(※1)。
それで、フリーソフトであるMATLABクローンのScilabにもそのテの機能が移植されている。このテの機能は面白く、いわゆるフツーのプログラミング言語には望めない機能だ。
今回は、このScilabを使ってみる。是非ともダウンロードして使ってみて欲しい。
タダだし(笑)。
さて、論を進める前に簡単に高校数学の一部である三角関数(のまたもや一部)を復習しよう。
三角関数のうち、サイン関数は次のように記述される。
ここでAを振幅、と呼ぶ。音の世界では実はこれはダイレクトに音量を表す。
またθは角度を表す。
そしてサイン関数はグラフでは次のようなモノとなる。
このサイン関数を音の世界では正弦波あるいはサイン波と呼ぶ(※2)。
とは言っても、音と言うのは波だ。つまり時間的に振動してないとならない。ここで適当な時間tがあるとして、上のサイン関数を次のように書き換える。
つまり、θ = ωtとして、この時のωを角度の速度、つまり角速度(あるいは角振動数)と呼ぶ(※3)。
しかし、これでもまだ扱いづらいんで、次のようにωを分解して更に書き換える。
ここではω = 2πfとしている。何故に2πなのか、と言うと、2πは360°だ。つまり1回転を表す。
とすると、fは単位時間(1秒間)に何回転するのか、を表す量、となる。言い換えると1秒間に何回振動するのか、を表す量だと言う事だ。
これを周波数と呼ぶんだ。
そして、1秒間に何回振動するか、の単位をヘルツ(Hz)と呼ぶ。
さて、音楽では、歴史的経緯は良く分からんが、一応基準となる周波数が決められている。それは440Hz、つまり一秒間に440回振動する音を基準とし、その音名をA(あるいはA3またはA4)と呼ぶ(※4)。
いわゆる階名のドレミファソラシがCDEFGABと音名が振られていて、「何故にドがAじゃないんだ」とか謎だろうが、実は基準がラだからAがそこに振られてるわけだ(※5)。
ここでは基準となるAをA3とすれば、結果、A3は
と言う事が分かる。
また、「1オクターブ上」と言うのは「周波数が2倍になる」と言う事と同義だ。
従ってA3の1オクターブ上のA4は
となり、A3の1オクターブ下のA2は
になる、って事だ。
ここまでは良いだろうか。
問題は、A3からA4の間には11の音があり、A2からA3までにも11の音がある、って話だ。
要は「この区間をどういう風に分割するんだ?」と言うのがこの話のテーマ、となる。
さて、まずは平均律の話から始めよう。我々が馴染み深いオクターブ間の分割法だ。
良く言われるのは、元々、ヨーロッパ音楽では純正律で音楽を奏でるのが一般的だった、と言う話がある。いや、ホントかどうかは知らんけどな(笑)。ここでは、あくまで「一般的に流布されてる話」を元にして書く。間違ってても責任は取らん(笑)。
ヨーロッパでルネサンスが起きたのは14世紀〜16世紀辺りと言われている。ここで一種の「科学信奉主義」的なモノが出てきたわけよ。
ヨーロッパで起きたルネサンスの例(違
そしてルネサンスが色々と影響を遺した後、17世紀に活躍した数学者がかの有名なデカルトだ。この人が座標と言う概念を提唱した。僕らが中学生時代に遭遇する、x-yグラフ、なんつーモノは彼が考え出したモノだ。
しかも、これは「固定」じゃないんだ。座標系、等と呼ぶが、これは任意のトコへズラせる。原点(0, 0)は便宜的なモノであって、でも「系」をズラしても性質は変わらない。そういう「相対的観点」ってのをデカルトは持ち込んできたんだよな。
そしてそれは近代数学の礎となる。
んで、当時の「科学信奉主義」で、「あれ、じゃあ音階にこの考え方を持ち込めないか?」とか言う人たちが出てきたわけだ。いわば音楽的美しさより数学的合理性を優先しよう、ってムーヴメントがあったらしい。
んで、恐らくそういう影響下にあった一人がバッハだったんだよな、多分。
ちなみに、バッハはクリスチャンなんだけど、カソリックの人じゃないんだ。彼はルーテル教会の信者で、いわゆるプロテスタントなんだ。ヨーロッパの暗黒時代とか鑑みると、明らかに革新的な新しい世代の人、なんだよ。肖像画見てるとそう思わんかもしれんが(笑)。
確かに単なるオッサンにしか見えない(苦笑
だから「バッハのミサ曲」とか聞くと、「あ〜、カソリックの?」とか思うかもしんないけど、彼が書いたのはプロテスタント用の宗教曲であって、カソリックの為に書いたわけじゃないんだ。あまりクリスチャンに縁のない日本人だとピンと来ないかもしんないけど、基本的にカソリック教会でバッハの曲が演奏される事はありません。
まぁ、いずれにせよ、バッハは割に「科学信奉的な」「革新側」の方の人だったんじゃないか、って思う。
さてさて、そういう「デカルト座標」とか「数学的合理性」をバックグラウンドとした「平均律」。こいつをまずはScilabでプログラミングしていこう。
Scilab
Scilabの上にあるプルダウンメニューの【アプリケーション】からSciNotesを選ぶ。
これがScilabプログラミング用のテキストエディタ、となる。
SciNotes
そこに次のようなスクリプトを記述する。
Fs = 44100; // サンプリング周波数
duration = 1; // 音の長さ
t = 0:1/Fs:duration;
frequency = 440; // 周波数
A = 0.1 // 振幅
function [x]=equaltemperament(n)
x = A * sin(2 * %pi * frequency * 2 ^ (n / 12) * t);
endfunction
A3 = equaltemperament(0);
A#3 = equaltemperament(1);
B3 = equaltemperament(2);
C4 = equaltemperament(3);
C#4 = equaltemperament(4);
D4 = equaltemperament(5);
D#4 = equaltemperament(6);
E4 = equaltemperament(7);
F4 = equaltemperament(8);
F#4 = equaltemperament(9);
G4 = equaltemperament(10);
G#4 = equaltemperament(11);
A4 = equaltemperament(12);
最初のFsでサンプリング周波数を定義している。言っちゃえば周波数の最高域だ。
CDクオリティだと、44,100Hz、あるいは44.1kHzと言う事になる。このサンプリング周波数以下での周波数が存在出来る。
durationと言うのは単に秒数だ。音の長さを表す。
Scilabではサンプリング周波数で秒数を割った数列を「時間」として要するので、tはそれを計算している。
基底周波数はヤマハ方式でのA3である440Hzを指定する。これが基準となる。
振幅Aは音量を表し、今回ではこれを0.1としておく。1でもいいけど、意外と音がデカいのでビックリするだろう。それもあって0.1にしている。
次に関数equaltemperamentを書いてる。これは平均律を計算する関数だ。引数にnを取る。
既にA3あるいはA4の音を出す正弦波の数学的バックグラウンドは解説したが、ここで書いてる関数は数学的には次の式を意味している。
2の12分のn乗、ってのが平均律での「音程の増加率」を表す。1オクターブには12の音が含まれるので、乗数側の分母は12になっていて、nは0、1、2...と整数を取る。また、nが12の倍数になると基本周波数440Hzの2倍、4倍、8倍、・・・となっていくのが分かるだろう。
なお、%piがScilabでの円周率を表してる。
あとは、実際の音名に対しての音を計算している。
ちなみに、LispやPythonだったら、辞書型とかハッシュテーブルを定義して、一気にmapで計算する、と言うような華麗な技を駆使出来るが、残念ながらScilabにはそのようなファンシーな機能がない。よって一々地道に計算するように指定してる・・・・・・(その代わり、音名定義は分かりやすくなってるだろうが)。
さて、スクリプトを書き上げればSciNotesの上部に付いてる▷ボタン(実行ボタン)をクリックする。スクリプトファイルの保存を要求されるだろうから、ファイルの名前を適当に決めて保存すれば、Scilab本体にスクリプト(プログラム)がロードされるだろう。
Scilab本体にスクリプトがロードされた状態
さて、Scilabから音を出す機能をplaysndと言う。コンソール(Scilab本体)が表示してるプロンプト(-->)に続いて次の式を入力してリターンキーを叩こう。
playsnd([A3, A#3, B3, C4, C#4, D4, D#4, E4, F4, F#4, G4, G#4, A4]);
そうすれば、今まで入力した正弦波が随時出力されるだろう。
ただまぁ、半音毎に流れてくるんでちと気持ち悪いだろう(笑)。
そこで、いわゆるAメジャースケール、と言うのはこう言う実行式になる。
playsnd([A3, B3, C#4, D4, E4, F#4, G#4, A4]);
この8個の音が、Aメジャースケールでの「ドレミファソラシド」になる。
また、次がいわゆるAスケールでの短調(マイナー)だ(※6)。
playsnd([A3, B3, C4, D4, E4, F4, G4, A4]);
これが平均律、と言うオクターブ表現法となる。
さて、例えば和音だが、Aと言うコードは次のように記述する。
playsnd(A3 + C#4 + E4);
ここで、「足してエエの?」ってビックリする人がいるかもしんない。
そう、足してイイんだ。
実は貴方が思ってる通り、「3音同時に鳴らす」と言う事は既にいわゆる正弦波のカタチは保てない。解像度がサンプリング周波数44,100Hzのままだとグラフ描画(plot2d)が真っ黒けになるんで、敢えて解像度を700まで下げて描画するとAと言うコードは次の波形を生成する。
そう、もはや正弦波ではないんだ。
つまり、正弦波を使って和音を作ると「サイン関数の加算」が起こり、一つの「もはや正弦波ではない」波形が生成される。ゴチャ混ぜな音波になるんだ。
ところが面白い事に、この「一つの波形」を人間は「分解して」音を聴くように出来てるんだな。
オーケストラが演奏しても、伝わる波形は「全楽器の奏でる波形を合成した単一の音波」なんだ。人間側でそれを「分解して」ある程度バラバラの波形として認識する・・・つまり人間の耳ってのはデコーダなんだよ。明らかに圧縮された情報を解凍してる。
と言うような話を「チコちゃんに叱られる!」でやってた(笑)。
なお、Dと言うコードは
playsnd(A3 + D4 + F#4);
Eと言うコードは
playsnd(E4 + G#4 + B3);
で表され、これら(A、D、Eと言うコード)はAメジャースケールで言うとI度、IV度、V度にあたり、Aメジャースケールの曲に於いて中心的に使われる基本コードとなる(※7)。
さて、ここから純正律へと入っていく。これが実はややこしい。
一つは数学的に記述するのが難しい音の配置なんだ。ルールはあるように見えるが、これをプログラミングするのは平均律に比べると若干手間がかかる。
一番簡単な実現手段は「オクターブ中8個の音しか使わない」と言う手だ。
上の表は「基準音に対して比率がどうなるか」を表している。例えばCに対して全音一つ上のDに対しては周波数比が9/8になる、と言う事を言っている。
最低限これで成立するのが何故か、と言うのは、純正律は基本的に、半音を使えば「汚くなる」と言う事に由来する。そして、そのチューニング(調律)はメジャースケールとマイナースケールによって「変わる」んだ。要は、長調の曲を弾くように調律された楽器では短調の曲は弾けない。
また、細かいトコを言うと、「曲が採用するメロディ」によって4度、5度、7度の調律が変わったりして、何だこれなんだよ(笑)。ホンマ、大昔のヨーロッパの人間はこんなクッソめんどい事をやってたのか(笑)。ぶっちゃけ、フレット無しの弦楽器とか、トロンボーン的な「ハッキリした音階を指し示さない」楽器でしか適用出来ないんじゃないか。
もう一つ言っとくと、そもそも、上の表の説明で「基準音に対して」とか書いたけど、その基準音が分からん(苦笑)。
まず前提として、AのメジャースケールとCのメジャースケールだと調律が変わるんだ。つまり、Aのメジャースケールの基準音はAとなり、Cのメジャースケールの基準音はCとなる。ここまではオッケー?
ところが、AもCもハッキリした音が定義されていない。
「あれ?上の方にA3が440Hzって定義されてなかった?」
と思うかもしんないけど、実はこれは「対平均律」で出てきた定義なんだよ。
そもそも、何故にA3 = 440Hzが「基準」になったか、っつーとぶっちゃけ音叉の発明のせいだ。今だと電子チューナーなんつー便利なモンがあるが、そういうモノが無かった時代に「客観的な音の基準」を提示してくれる音叉、ってのは音楽史上、かなり画期的な発明だったわけね。
ところが、音叉の発明、ってのは18世紀なんだわ。バッハと同時代に発明されている。要は「科学信奉主義」で「基準」をハッキリさせよう、とした「平均律の普及」と共に出てきた器具なんだよな。
しかも。実の事言うと「音叉の作り方」次第で、発生する音の高低は変わる。で、ぶっちゃけると、A3 = 440Hzと言う基準が決まったのは19世紀から20世紀初頭にかけて、なんだ。割に最近だ。
はてさて、じゃあ、「音叉もねぇ、基準もねぇ、オラの村には電気もねぇ」とか言う時代の「純正律」ってどんなもんだったと思う(笑)?「その日その日でチューニングが変わる」ような状態だったのは想像に難くねぇだろ(笑)。あっちこっちで「Cに対してこうやって純正律を決めてくんですよ〜」とか書いてっけど、その「C」と言う基準は現代の、平均律から持ってきたモノで、いわば言ってる事にインチキがあるんだわ(笑)。そもそもその「基準」が何なんだ、決まらんだろ、って話になる。
なお、音叉が出てくる前には調律にはピッチパイプ、と呼ばれる笛が使われてたらしいが、「息を吹き込む前提」な以上、当然毎回同じ音が出るわけじゃないだろう。
結果、「純正律時代」は今より遥かに不安定な「音階」と言うモノを使ってただろう、と言わざるを得ないんだ。
とまぁ、そういう事を言っておいて、ここではしょーがないんで、現代的なA3 = 440Hzを使用して、それを基準音としたAメジャースケールのプログラムを書くとしよう。先程作った平均律のスクリプトファイルに次のプログラムを追加する。
function [x]=justintonation(n)
x = A * sin(2 * %pi * frequency * n * t)
endfunction
a3 = justintonation(1);
b3 = justintonation(9/8);
c#4 = justintonation(5/4);
d4 = justintonation(4/3);
e4 = justintonation(3/2);
f#4 = justintonation(5/3);
g#4 = justintonation(15/8);
a4 = justintonation(2);
純正律算出の数式自体は簡単だ。単に「基本周波数」に対して何倍にするか、としか定義していない。
しかしながら、引数nの「記述ルール」と言うのがイマイチハッキリせん(苦笑)。結果、表を見ながら音を作成するしかないだろう。
また、これはあくまで純正律を基とした「Aメジャースケール」なんで、「Aマイナースケール」には使えない。AマイナースケールはAマイナースケールで別に作らんとアカン。そしてCや他の基準音等の各スケールに対しても別に作らなアカンので、汎用性のある方法論ではないんだ。
さて、純正律のAメジャースケールの音を出してみよう。コンソールに次のように入力してリターンキーを叩く。
playsnd([a3, b3, c#4, d4, e4, f#4, g#4, a4]);
そうすると純正律のAメジャースケールに於いての「ドレミファソラシド」が鳴る筈だ。
平均律Aメジャースケールに於いての「ドレミファソラシド」との違いが分かる?
分からんでも心配ない。俺も分からんかった(笑)。
いや、ホント「小さい違い」なんで殆どの人は分からんと思うわ。むしろ、純正律の真骨頂ってのは「和音」なんだ。純正律Aメジャースケールに於いてのAコードを打ってみよう。
playsnd(a3 + c#4 + e4);
これで違いが分かると思う。違いは「音程に対しての違い」と言うよか、平均律でのAだと共振現象(レゾナンス)が起きたようなサウンドになるが、一方、純正律AメジャースケールでのAコードはそれが起きない、のが違いなんだ。
同じように、純正律Aメジャースケールに於いてのIV度、V度の音も出して、平均律のそれらと聴き比べてみよう。
playsnd(a3 + d4 + f#4); // 純正律AメジャースケールのIV度playsnd(e4 + g#4 + b3); // 純正律AメジャースケールのV度
ピッチの違いは分からなくてもレゾナンスの存在があるか無いかは分かる筈だ。
繰り返すが、基本和音(I度IV度V度のトライアド)に於いて、共振が無い、ってのが純正律の特徴なんだ。
純正律のAメジャースケールに於けるAコードの波形。平均律のそれと比べるとギザギザが無く、波形が落ち着いたカタチになってるのが視覚的にも確認出来る。なお、解像度を700に落としている。
と言うわけで、Scilabでの実験を終える。
ところで、「ハーモニーが美しい」と言われる純正律ではあるんだけど、僕個人としてどっちが好みか、と訊かれれば圧倒的に平均律だ、と答えよう。
「プログラムで面倒くさかったから?」
と問われればYesではあるんだけど(笑)、そういった理由じゃない。
まず1つ目として、共振現象が必ずしも悪い現象だとは思わないから、なんだよね。言い換えると共振現象は音に厚みをもたらす。
確かに正弦波に於ける実験だと、和音に共振現象が起きないトコを見て「オオッ」とは思うんだけど、例えばオーケストラとかさ。合奏とかで、例えばヴァイオリンとか十数人でユニゾンで弾くわけやん。で細かい事を言うとどんなプロでも全員同じピッチで弾けてはいないんだ。でもその「細かいズレ」が音に厚みを持たせるんだよな。要はそこで共振現象が起きている。
同じ和音でも、純正律の和音には厚みがない、って言えると思うんだよ。平均律だとビミョーな音楽的なピッチの狂いがあるが故に音に厚みが増す。個人的にはそっちの方が好きだな、と言う話。
もう一つの理由は、純正律だと作曲技法が限られるんだよな。今まで見てきた通り、純正律の調律だとスケール毎に縛られる。結果転調が不可能だ。
クラフトワークのロボットなんて純正律じゃ演奏出来ないやん(笑)。クラフトワークファンとしてはこれは戴けない話、となる。
転調「だけ」で構成された曲とか、どないせなエエねん、っつー話。
加えると、上では基礎和音に絞ったんだけど、純正律だとI度〜VII度の全ての和音が美しく響きます、って保証がねぇわけ。しかもモダンな和音構成と相性が悪いでしょ。どう考えても。
ぶっちゃけ、簡単な3つのトライアドで成立する曲、なんつーのは古典的なロックンロール、童謡か演歌くれぇしかねぇよ(笑)。
まぁ、純正律の演歌、とか面白いかもしれんけどな(笑)。
さて、実は元々この記事、最近ではとんと聞かなくなった、「純正律に対応出来る往年のシンセサイザーの話」だけを書こうと思ってたんだ。純正律で思い出す、ってばそれだったんでね。
でも、純正律ってなかなか聴く機会がないんで、プログラムを触りながら「どういったモンなのか」手元で実験してもらった方がいいかも、ってぇんで急遽Scilabでそういう簡単なプログラムを紹介する事と至った。
それは終わったんで、最後に往年の「キー毎に音程設定が可能」、つまり、純正律を再現出来るシンセサイザーをいくつか紹介して、この記事を終わろうと思う。
KORG PS-3200(1978年)。コルグの完全ポリフォニックシンセサイザー。各キー毎にチューニングを施せ、「純正律も出来るよ!」ってのがウリだった。この機械以外に純正律を再現できるシンセサイザーって暫く無かったように思う。
Fairlight C.M.I. III(1985年)。C.M.I.はComputer Musical Instrumentの略。そのまんまだ(笑)。オーストラリア製で、お値段1,600万円、と、当時のキーボードキッズ垂涎の的だった。これも本体のコンピュータがキーの個別の調律を司っていて、結果「純正律」も自在にプログラミング出来るようになっていた。なお、この機械を使った一番有名なサントラが、坂本龍一が関わったアニメ、「オネアミスの翼」だ。
YAMAHA DX-7II(1986年)。80年代前半に大ヒットし、世界中の音楽業界を席巻したデジタル・FMシンセサイザー、DX-7の後継機。ただし、時代の変わり目のせいかDX-7よりはヒットしなかった。なお、このDX-7IIにもキー毎のチューニング機能があり、純正律にチューニング可能だった。
※1: DSPはオーディオ機器のエフェクト処理用プロセッサ、ゲーム機の音声生成及びコントロール、デジタルシンセサイザーの心臓部、そしてパソコンの音声処理に使われるような半導体の事。1990年代以降発展を遂げる。
※2: この正弦波は自然界には存在しないが、リコーダーやフルートの波形が辛うじて「近い」と言うのはよく知られた事だ。
また、数学的には、あらゆる音の波形は正弦波の加算により合成出来る事が知られていて、これを行うのをフーリエ解析と言う。
加えて、シンセサイザーの音色作成に於いて倍音加算方式と言うモノがあって、それは周波数、位相、音量が異なる正弦波を足し合わせて音を作る、と言う方式だ。1980年代の河合楽器製作のシンセサイザーがその倍音加算方式で有名だった。
カワイブランド初のシンセサイザー(製作自体は河合楽器の子会社だったテスコに拠るらしい)、KAWAI K3。色んな正弦波を最大128個重ね合わせて波形を作る。
なお、日本ではセールスは奮わなかったが、海外ではそこそこ評価が高かった(テクノの神様、「クラフトワーク」も一時期この後継機を使ってライブを行っていた)。
※3: 実は角度は無次元数なので物理量的には単位がない。角度の定義は長さと長さの比を持って定義されるので(θ = arctan(y/x))、長さを長さで割ればそこには物理量が存在しないんだ。
結果、時間がtだとすると、角速度は単に時間の逆数になる。
※4: 最近の傾向だと、A3あるいはA4って呼んだ方がいいかもしんない。
いわゆるMIDIが出る前後から広まった呼び方だが、ヤマハ式では、88鍵あるピアノで、最低音から数えて40番目の鍵盤の出す音をC3として、そこからオクターブ上がればC4、逆にオクターブ下がればC2となり、結果、オクターブ毎に下から(場合によっては-1、) 0、1、2、・・・となっていく。
ちなみに、MIDI規格はいまだ8ビットで、音の高低から言うと128段階以上奏でられるようになっていて、ピアノよりかなりデカい。ベーゼンドルファーもビックリだ(笑)。
つまり仕様上、MIDIを使ったコンピュータ演奏では10オクターブを超える範囲が演奏可能領域だ、と言う事だ・・・可聴範囲かどうか、ってのはさておき、として。
ただし、いわゆる「中央のド」(これはシンセサイザーなんかで標準で用いられる61鍵構成キーボードの丁度真ん中にあたる)をC3とするかC4にするか、と言う流派の違いがあって、厳密じゃない(厳密には「ノートナンバー」と言う数値が振られていて、「中央のド」は60となっている)。
詳しい話はここから。
ここでは、440Hzをヤマハ式にA3だと言う事にしておく。
※5: これは実はちと説明がいい加減。
いわゆるドレミファソラシと言うのは、スケール、例えばCスケールとかAスケールとかに相対的に振られる名前であって、例えば固定された鍵盤のオクターブ内のポジションに対する名前ではない。つまり「ドレミの位置はスケールによって変わる」んだ。これを階名と言う。
一方、例えば鍵盤楽器の、あるオクターブ内のポジションに対する名前がCDEFGABであって、こっちを音名と呼ぶんだ。こっちは固定されている。
なお、クラシックでは、CDEFGABではなく、ドイツ式にCDEFGAHと呼ぶのが通例だ。
また、日本語での音名はハニホヘトイロ、となっている。
※6: なお、ポピュラー・ミュージックの世界ではメジャー、マイナーと呼ぶが、クラシックの世界ではdur、mollとドイツ語を使って表現する。
※7: ポップスの世界ではそれぞれ、トニック(I度)、サブドミナント(IV度)、ドミナント(V度)と称し、用語は違えど、クラシックでもポップスでもこの3つのコードがあるスケールで作曲した曲で重要な位置を占める事になる、と言う現象は変わらない。
なお、和声理論では、トライアド(音を3つ重ねた和音)ではなく、4音で形成する和音を基礎とする、と言うのが恐らくクラシックでは根強いだろう。
一方、ポップスの世界では、例えばハードロック等では、3度の音を抜いた2音で構成する和音を基本とする場合がある(パワーコード等と称する)。これはエレキギターの音を歪ませた際、3度の音が「共振を起こしすぎて」汚くなる事に由来し、ある意味今回のテーマである「平均律の弱み」とちょっと被っている。