音楽数学

数学は得意だけど芸術科目が苦手な人向け

どこか間違えているかもしれないので注意


理論関連

♯の個数を+、♭の個数を-とする。

\(a mod b\) ...\(a\)を\(b\)で割ったあまり。

ピッチ変更と調号の数

ピッチを\(n\)個上げたときの調号の個数の変化量は、

\(\left\{(7n+6) mod 12\right\}-6\)

調

調号が\(n\)個のときは、調の名称は基準から半音

\(\left\{(7n+6) mod 12\right\}-6\)

(同じ式)

※上2つの式は、メジャースケールとマイナースケールの時だけ有効

コードの間隔

根音(一番下の音)から半音いくつずれたものを組み合わせるか表した表。

-...何もない

×...他のコードと組み合わさるときに押さない

- 2番目 3番目 4番目 5番目
(なし) 4 7 - -
m 3 7 - -
dim 3 6 - -
aug 4 8 - -
sus4 5 7 - -
6 3 7 9 -
7 3 7 10 -
M7 3 7 11 -
m7-5 3 6 10 -
dim7 3 6 9 -
5 × - - -
add9 - - - 14

wav関連

再生時間

データ部が\(N\)バイトのwavファイルの再生時間は

\(\frac{8N}{sample・bit}\)秒

音階(平均律)

A4のラ(\(440Hz\)とする)の半音\(x\)個上の音階の周波数は

\(440・2^{\frac{x}{12}}\)Hz

バイナリファイル計算

\(l\)から\(m\)バイト目のリトルエンディアンでの値は

\(\displaystyle\sum_{k=l}^{m}{\left\{\array{d[k]・256^{k-l}(d[k]>=0)\\(d[k]+65536)・256^{k-l}(d[k]<0)}\right.}\)

(例)wavファイルで\(l=24,m=27\)として計算するとサンプリング周波数が求まる(\(44100Hz,48000Hz\)など)

midi関連

可変長形式

分解能とデルタタイム

BPMが60の4分音符(1秒)を分解能\(N\)の値だけ分割するので、デルタタイム1つ分の時間\(T\)は

\(T=\frac{1}{N}\)

一般的には\(N=960\) ?

デルタタイム

BPMが\(bpm\)、\(n\)分音符のデルタタイムは

\(\frac{240N}{bpm・n}\)

付点は\(n\)を1.5倍

物理関連

C++のコードはここ(高2のときに作成。汚い)

\(F[f]\)...配列\(f[n]\)のフーリエ変換

ボイスキャンセラー(ステレオ)

ボーカルが中央にいる時、両チャンネルを

\(\frac{f_L[n]-f_R[n]}{2}\)または\(\frac{f_R[n]-f_L[n]}{2}\)にする

左右別の式を適用するか、\(n\)の値を左右でずらすと、ステレオ感が出る。

コンプレッサー

波形の振幅を\(x\)乗にするには

\(f[n]・|f[n]|^{x-1}\)にする

配列の範囲に注意

サンプリング周波数変更

サンプリング周波数を\(x\)倍した後、再生速度と周波数を\(\frac{1}{x}\)倍する

フランジャー

\(g[n]\)を周期関数として

\(\frac{f[n]+f[n+g[n]]}{2}\)

ケプストラム

\(F^{-1}[\log_{}|F[f]|]\)

フォルマント

\(F[\log_{}|F^{-1}[\log_{}|F[f]|]|]\)

音ゲー関連

ノーツ間隔

BPMが\(bpm\)、\(n\)分音符の間隔は

\(\frac{240}{bpm・n}\)秒

付点は\(n\)を1.5倍

HOME(いろんなクイズやコードなどがあるよ!)