義務教育では、五教科を学習しますが、小学校3年生以降には、五教科になるので、理科と社会と三段階評価になりますが、英語も始まります。理科では、日常の中で存在する物を体験しながら学習するようなカリキュラムになっていますが、これに 【 音楽 】 【 図画・工作 】 【 体育 】 などもありますが、3年生以降になるとカリキュラムが増えるので、学習する物の中に身の回りにある事などを学習する事になります。中学校になると、それがなぜ起きているのか?や数学で学習する数式が現実世界でどう言った使われ方をしているのかとの関連付けをした状態で物理のカリキュラムで物理法則の数式を用います。これは、恒等式なので関数の一種になりますが、小学校6年生の算数で学習する比例と反比例を学びますが、これが、解析学の入り口になります。この時には数式は学びませんが、中学校では、方程式や巻子を学びますが、中学校1年生の数学は小学校の応用なので、
■ 穴埋め問題 → 方程式
■ 正比例 → 一次関数
なので、小学校の基礎を中学区で拡張して、法則性を数式で扱う為の便利な計算方法を学習する事になりますが、この時に数式とグラフを使った 【 状況の変化 】 を学習する事になります。小学校もデータの整理などのカリキュラムがありますから、データも扱いますし、集計も行いますが、その詳細を扱うのが中学校で学習する関数になります。中学校では、
■ 関数
■ 物理法則
を学習しますが、累乗のカリキュラムで指数の学習後には二次関数も出てきますが、これと同時に、指数を持つ関数が物理でも登場します。その為、基礎的な変数の累乗の形態の関数が物理でも登場するのですが、学校でのカリキュラムは、 【 基礎学習と拡張 】 で構成されています。これが、 【 効率的な学習における構造 】 になりますが、これが 【 学校教育において用意されているアルゴリズム 】 と言う事になります。
理解もそう言った仕様になっていますから、小学校で学んだ物を深掘りしたのが中学校のカリキュラムになり、その特性とは別に細かな特性などをさらに深掘りして学習するのが、高校の物理などの分野になります。
音 の特性
小学校3年生の理科のカリキュラムでは、 【 光と音の性質 】 を学習しますが、
■ 光は直進し、反射する
■ 光は反射すると熱が出る
と言う特性を学習します。音については、
■ 音が出ている場合、振動が発生する
と言う事を学びます。こうした特性ですが、中学校ではもう少し拡張した形で学ぶことになりますから、音と光については異なる学び方をしますが、この二つに共通した特性として 【 波 】 であるという点があります。この二者ですが、
■ 音は空気の振動で波が存在する
■ 光は色を持ち、波長によって色が変わる
と言う特性があります。波長については、中学校では出てきませんが、
3DCGのレンダリングでも登場するる光の三つの特性の
■ 直進
■ 反射
■ 屈折
が登場しますし、反射の時にはビリアードと同じで
■ 入射角 = 反射角
と言う特性がある事を学びます。そして、カメラで見かける
■ 焦点
■ 焦点距離
なども出てきます。音については、小学校だと、大きさの変化などで認識していたと思いますが、これが、波である事を学習します。この時に、 ±で揺れる特殊な推移をするものを目にすると思いますが、この波の変化で
■ 音の高さ
■ 音の大きさ
が変わる事を学習します。デジタルの学習になると、オシロスコープを使わずに 【 Audacity 】 を使うだけで、波形を作れるので、こうした変化を体験しやすくなっている訳ですが、波形の変化と音の変化を体験する上では、高価なアナログな機材を使わずに、コンピューターにソフトウェアをインストールして、その変化で体験する事で音の変化を学習する事ができるようになっています。
音 と波形と関数
中学校ではオシロスコープの波形は特殊に見えると思いますが、この理由は、 【 関数を習っている 】 ため±1の範囲で推移する現象自体が解らない為です。これは、学んだ物を基準にして考えると、この推移は成立しないので、中学校3年生のカリキュラムを全て終えたとしても、このグラフの構造は葉割りません。音を構成する波は、
のような物になっていますが、これは、サインカーブなので、三角関数を学んだ後でなければ、この楮鯛の仕組みが解りません。
と言うのも、中学校の三角比の拡張で登場する
■ sin (サイン)
■ cos (コサイン)
■ tan (タンジェント)
では、三角形を基準としているので、内角の総和が180度と言う縛りを受けた中でしかΘを指定できません。つまり、
■ 三角比の制約
Θ以外の二つの角の和が ( 180 - Θ ) となる
ので、三角形の枠を超えない範囲でしか利用できません。ただし、座標平面を見てもらうと数直線が二軸存在するので、線対称や点対象の条件を作れるので、三角比のような相似の三角形ではなく、無機の異なる三角形に適応すると、現テインを中心とした4つの面をすべて使用できるようになるわけです。これを同じように推移させようと思うと、
【 円状に拡張する 】
事になりますから、係数でサイズの変更ができる基準となる円を作成して、その中の360度で三角比で使用した法則性を適応すると、Θの角度の自由度を高める事ができます。これが、三角比の拡張を行った【 三角関数 】 になり、この時に用意された半径1の円の事を単位円と言います。この数式は、指数を使った数式になりますが、
という式にした場合、
のように座標平面上に円を描くことができます。この時に、X軸と単位円の交わる場所に座標を用意して、この座標の推移をsin(x)で計算してみると、±1で推移する数値の変動の間に周期を持つ図形が表示されます。これが、サインカーブになります。このグラフは、
のようになりますが、これが、中学校の物理の 【 音 】 の授業で登場する波の法則性をグラフにした物になります。
関 数とグラフの変化
中学校の物理では、
■ 音の高さ : 周期の変化
■ 音の大きさ : 振幅の変化
と言う特性として学習しますが、前述のように波形は三角関数で示す事が出来るので、中学校で学んだ関数と全く同じ制御が出来ます。
■ 振幅の変化
オシロスコープの波の高さが変わると音の大きさが変わった感じがしますが、実際には音圧が変わっています。この変化ですが、三角関数自体に係数を加えると振幅が変わります。
のように y = sin(x) のグラフを用意して、このグラフに整数の係数を追加すると、
のようになります。比較をすると、
のように周期は同じで波の高さの実が変わっています。これを整数ではなく分数にすると、
のような緩やかな波になり、比較をすると、
のように周期は同じで波の高さのみが小さくなったグラフが出来上がります。この三つのグラフですが、それぞれ
と言う関数になっており、三つを並べると、
のような状態になります。中学校1年生の数学では、一次関数が出てきますが、そこで、 【 y = ax + b 】 と言う式とグラフを学びますが、このグラフは、
の中で触れていますが
■ 項の値とグラフの変化
■ 係数の値とグラフの変化
のような動きをすることを学びますが、三角関数の場合、変数xが三角関数に包含されている状態で、その三角関数を項として考え、それに係数を加えると波の高さを変化させることができます。
その為、三角関数に対して適応する係数のコントロールで音圧の変化を与える事ができるようになっています。
■ 周期の変化
音の高さは周波数の変化で変わりますが、周波数とは、波の周期の数になります。波には周期がありますが、秒間の波の数を示したものは周波数になります。
この周波数には、PCパーツのCPUやGPUやメモリーなどで存在する帯域を示す周波数もありますが、電気も点滅しているので、周期をもってオンとオフを繰り返しています。これは、東日本と西日本で異なるので、
■ 東日本 : 50Hz
■ 西日本 : 60Hz
となっていますから、信号機や街頭や屋内照明の中で撮影する場合だと、
■ 東日本 : 1/50
■ 西日本 : 1/60
を使う事になります。と言っても、DavinciResolveなどにはフリッカー除去をする為の機能があるので、フリッカーも消せるので、1/48や1/96とかで24Fを撮らないとブラーの漢字が変わってしまう場合だと、フリッカー除去で対応すると消せるのですが、個人が動画を撮る場合だと、こう言ったシャッタースピードによる調整をすると問題が出なくなります。
西日本の場合だと、1/60で60fpsと言う選択ができるのですが、東日本で60fpsを想定すると少し難しいので、シネマだと、1/24~1/96までが使えるので電気の周波数よりもフレームレートの数が小さいので電気の周波数を分母にしたシャッタースピードにしてもハイスピードになっているだけなので対応できます。そう言った意味では、西日本の場合、フレームレートで融通の利く条件が多いのですが、1/100とか1/120とかを適応して撮るとフリッカーの影響は少なくなります。
このように周波数は自然界の周期だけでなく、コンピューターでも使用されていますが、デジタルとアナログでは少し異なりますが、秒間の変化の違いで異なる結果になります。
音の場合、波の周期の変化は 【 音の高さ 】 の変化になりますが、
■ 波の間隔が狭い : 高音になる
■ 波の間隔が広い : 低音になる
のような変化が発生します。これも、三角関数のグラフの係数の変化でコントロールできるのですが、この場合、変数xに対して係数を追加すると波の周期が変わります。
を基準として、変数Xの係数に整数を加えると、
のように周期が変わり、
のようにsin(x)のグラフよりも波の間隔が短くなっていますが、これを分数にすると、
のようになり、比較をすると、波の間隔が長くなっています。
関数の式は、
のようになっていますが、三つを並べると、
のような状態になります。
音の構造はサインカーブなので三角関数の式で波を生成できるのですが、係数を追加することで、波の状態をコントロールできます。
音で考えた場合、
■ 音の高さ : 変数xに対して係数を追加する
■ 音の大きさ : sin(x)に対して係数を追加する
と言う方法で対応できるので、
■ 音の増幅
■ ピッチシフト
は係数のコントロールだけで調整できます。
■ 指数を持つ関数
中学校3年生の数学では 【 累乗 】 が登場しますが、指数を使った物として 【 二次関数 】 が登場します。二次関数については、一次関数と同じ条件が適応できるので、
■ 項 : グラフのなす放物線の傾斜の変化
■ 係数 : Y切片の変化
■ 符号 : 上下の反転
が発生しますから、一次関数のような回転に見える挙動ではなく、放物線の開口部の変化になります。一次関数では、Xを基準胃左右が反転した状態になりましたが、二次関数では、X軸を基準にした線対称のグラフが生成されるようになります。二次関数は、
の形で登場しますが、実際には、
のような形になります。この式を、
のような形に変更して二次関数を組み立てると、グラフを縦と横に動かす事が出来るようになります。
中学校一年生の数学の一次関数のカリキュラムで、変数xに対して係数を加算するとy切片が移動するというのは学習済みだと思いますが、二次関数でも同様にy切片の移動が発生します。この条件から、
この式の項として用意している項qを変数化すると、数値の変動でy切片の移動を実装する事ができるようになります。この式の面白い点は、 【 項p 】 の存在で、これを変数化すると、二次関数が横移するようになります。実際に動かすと、
■ 二次関数ノグラフを水平方向に動かす
のようになります。三角関数も 【 変数xの関数 】 ですから、変数xの状態を変更する事が可能なので、二次関数や三次関数を包含する事ができます。
二次関数を実装すると、
のような状態になり、周期が徐々に短くなる波形が出来上がります。
波形の特性としては、Y軸に対して線対称なグラフになるので、
のような状態になります。三次関数の場合、
のようなグラフになりますが、真ん中の部分を見ると、
■ 二次関数
■ 三次関数
のように元のフラフの特性がそのまま反映されます。ちなみに、平方根のグラフは整数方向にしか伸びませんが、三角関数に包含すると、
のような形になります。
式 の構築と関数の合成
ここまでは係数や指数の変化によるものでしたが、波形は
■ 周期
■ 周波数
を用いる物なので、この二つを組み合わせて使用することもできます。例えば、
■ 音圧の低い低周波
■ 音圧の高い高周波
のような構成もできます。この2つは、
と言う式になりますが、通常の波と比較すると、
のようになります。
■ 関数の合成
関数については、中学校だと前述のような
変数y = 変数xの式
という形で使用していますが、この状態は解と変数xの式は一致するという条件式になります。この条件から考えると、
■ A = 式1
■ B = 式2
■ C = 式3
■ D = A + B + C
と言う式の構築も可能になります。と負う事は、
■ A = 関数1
■ B = 関数2
■ C = 関数3
■ D = A + B + C
も成り立つことになります。この式を書き換えると、解Dは、
■ D = 関数1 + 関数2 + 関数3
となりますから、関数同士の四則演算が行えることになります。これは、三角関数も例外ではないので、
のような式を組むと、
のような式ができますが、式の組み方で、グラフの形状が変わります。
波 形編集ソフトと波形の変化
ここまでは巣式でのなっみの変化を見ましたが、波形編集ソフトではこれをGUIを用いて行っています。今回は、
■ Audacity
を用いて波の変化を見る事にします。Audacityを開くと、
のような画面になりますが、ここで
のように
【 トラック 】 → 【 新しく追加 】 → 【 モノラルトラック 】
を選択すると、
のような感じになります。トラックには、
のように 【 ミュート 】 と 【 ソロ 】 の切り替えがあり、左右の位置と音圧の調整の項目が用意されています。今回は波形を追加するので、
の 【 ジェネレーター 】 から 【 トーン 】 を選択します。すると、
のようなダイアログが出ます。ここで、周波数と振幅の指定ができるようになっていますが、
のように波形の選択も可能になっています。今回はサイン波を追加しますが、
のように波が追加されます。トラックは縦方向に拡大もできるので、
のような表示ができますが。波形自体も拡大できるので、
のようにすることもできます。この状態では頂点の集合体になっていますが、ここを加工して音の状態を変更することも可能です。波形自体は、
のようになっていますが、このようにして、ベースとなる波形を追加する事ができます。
■ エフェクトを使う
波形を用意したらエフェクトで加工をすることができるのですが、画面上部にある
のエフェクトの項目を開くと、
のように結構な数のエフェクトが用意されています。エフェクトをかける際には、
のようにトラックを選択してかける事になりますが、ここで、周波数や音圧を変更する事ができます。
■ ピッチシフト
Audacityでは、音の高さを変更する事ができますが、これは、前述のように周波数の変更になります。エフェクトメニューの中から、
のように 【 変更:ピッチの変更(P)... 】 を選択すると、
のようにスライダーで周波数を変更できるようになります。これとは別に、ベースのキーから1度単位で音階を変えることもできますが、周波数を変えて音の高さを変える事ができます。トラックを複製して、適応してみると、
のような状態になります。
■ 音圧を変える
音圧を変える場合には、増幅を使いますが、エフェクトの項目から
のように 【 増幅(A)... 】 を選択すると、
のように増幅幅を指定して音圧の変更が可能になります。実際に行ってみると、
のようになります。
■ トラックの設定
トラックには設定の項目があり、
のようにいろいろな指定ができます。ここで音質の指定ができるようになっていますが、
のように量子化ビット数とサンプリング周波数の指定ができるようになっています。この二つは、
■ X軸 : サンプリング周波数
■ Y軸 : 量子化ビット数
になりますから、音の場合
■ X軸 : 音圧
■ Y軸 : 音の高さ
の調整項目になります。その細かさをここで指定する事になりますが、
二値の変化で滑らかな曲線を描くためにこの変化を行う為のマス目のサイズをこの二つの項目で調整している事になります。
基本的に、ピッチと音圧レベルで音は構成されているので、これを調整する事で単一の音の状態を変更する事になります。
■ 表示
表示についてはスペクトルも出せるので、
のようにできますが、各トラックに適応できます。
■ 音の合成
関数では、
のように異なる式を加算すると、
のような波を作る事が出来ましたが、これと全く同じ内容が、
のような異なる波形を用意したモノラルのミキシングになります。
これは周波数が異なる音になりますが、これを書き出すとモノラルのソースになります。
のようにメニューから
【 書き出し(E) 】 → 【 WAVとして書き出し(W) 】
を選択すると、ダイアログが出てきますが、ここで、
のように名前を付けてファイルの種類をしています。ファイルの種類は、
が使用可能になっています。WAVの場合、コーディングの設定がありますが、ここで、
の中から目的物のを選択します。この状態で 【 OK 】 をクリックすると、
のようなダイアログが出ます。トラックが複数あったとしても、
のようにミキサーのパンポットが中央に固まっている場合、音の左右の定位が行われていませんから、一つの音と言う事になります。つまり。この状態だと、音の奥行き方向の違いしか表現できないので、一次元の数直線上の座標で奥行きだけを指定した物と同じ結果になりますから、書き出しもモノラルになります。逆にパンポットで左右の座標を指定すると、横方向の座標データが増えるので、そうした情報が発生しますから、この場合、奥行きと横の二次元になるので、ステレオのソースとして扱われることになります。書き出すときには、
のようなメタタグノ編集も可能になっていますが、この指定を行うと、エクスプローダーでフォルダーを開いた時に反映されるので、指定した項目で昇順や降順でソートする事ができるようになります。この状態で書き出すと合成ができるので、
のような波形が出来上がります。
■ 逆位相
高校の波動では、 【 位相 】 が登城しますが、同じ波を重ねると山の部分は大きく盛り上がり、谷の部分は深く窪む事を学びます。これは、音の場合だと、倍音効果と同じものになりますが、波形と音圧の変化については、
■ 音圧について
で実際に行っていますが、同じ波形を重ねると、音圧が上がりますが、レベルが振り切れると音が割れます。音圧を振り切らせて、メインのゲインを下げると、
■ のこぎり波を加工する
のようにトラックの音圧を振り切らせてマスターのレベルを下げると、この動画ような音になります。そして、この状態で出力すると、音の状態は維持されるので、この動画のような音で出力できます。その為、ディストーションなどの歪み系フィルターのような音の変化を音圧レベルの変化だけで実装できるのですが、フェーダーで音圧レベルを上げるだけだと音が破綻するのでこう言ったことが起きます。これが波動で出てくる同じ高さの波の合成になりますが、波動では、 【 逆位相 】 も学習します。これは、高低の波の状態が逆の物が干渉した場合の変化になりますが、この場合、小さな波の高さの分だけ打ち消し効果が発生します。
のような波形を複製して2つのトラックを用意して、その片方を逆位相にする場合、歯系の上下を反転させることになります。フィルターから
のように 【 上下を反転(I) 】 を選択すると、
のようになります。波形を見ると、
のようになりますが、真逆の波を配置しているので、こうすると音が打ち消されるので無音になります。NR処理の考え方がこれになります。
波動を学ぶ場合、簡素な値を使った方が考えやすいので、
のような矩形はを使いますが、この場合、±1なので、
のような倍音の場合だと、 【 1 + 1 】 と 【 -1 + -1 】 なので、イメージしやすくなります。逆位相も
ですから、 【 1 - 1 】 と 【 -1 + 1 】 なので打ち消し合うというのもイメージしやすいと思います。これが一次関数のようなのこぎり波やサインカーブになると処理が増えてしまうわけですが、基本部分を理解してその数式に当てはめると変化が算出できるので、その基礎部分を学ぶ時には、こうした矩形波の状態で考える事になります。
■ ミキシング
前述のように生成した波形をミキシングする事で関数の合成と同じように波の状態を変更できるようになっていますが、オーディオの場合、音圧レベルはフェーダーで変更できるので、その波形の音圧の状態を変更する事ができます。この時に、殆どのツールがステレオの三市キングが可能になっていますから、ミキサーを使って処理を行う事になりますが、
のような2トラックの場合、
のようなトラック分だけフェーダーが表示されますが、モノラルの場合だとフェーダーだけの調整になり、ステレオの場合だとパンポットを使う事になります。これが3トラックになっても同じで、
のようになりますが、左右の広がりの有無と音圧レベルによる変化で音の状態を調整する事ができます。また、ウェット成分の追加と負音圧レベルの変化で奥行きをコントロールできるので、空間上の調整が可能になります。(ミキシングの場合、ラウドネスなども使うのでフェーダーとウェット成分だけだと合わせるわけではありません。)
ステレオの場合、左右の音の広がりと奥行きなので、2つの数直線で制御するので、座標平面上に存在する座標のように音の位置を指定できるようになっています。