notimatics 5_1 実験ラボ(数式入力・使い捨て)

ピアノモード(src/core/natural-voice.js)の打鍵感(ADSRのAD)実験用に、数式を直接書いて その場で音を確認するための実験用ページ。Puntone本体とは無関係・使い捨て。 notimatics-3-1-lab.html(倍音を複数行並べて合算する版)とは別に、 「1本の数式 = 1つの音」をまず単体で試すことに絞っている。
ここで書く式は包絡線ではなく瞬間の信号値 s(t) 自体(搬送波込み)を表す。単一正弦波に包絡線を かけたいときは e^{-k t} \sin(2\pi f t) のように自分で書く(自動で正弦波を掛けたりはしない)。
数式入力・整形・評価には MathLiveCompute Engine(CDN経由)を使うため、初回読み込みに ネット接続が必要。

音のパラメータ

定数(式の中で名前そのまま変数として使える。t と f は常に使える)

数式 s(t)

三角関数と同じ書き方で周期波形も呼べる: \saw(2\pi ft)(鋸波)・\sqr(2\pi ft)(矩形波)・ \tri(2\pi ft)(三角波)。引数は \sin と同じ位相(ラジアン)で、 周期 2π・振幅 ±1・t=0 で 0 から \sin と同じ向きに立ち上がる(矩形波だけ t=0 で +1)。 「大体の式」欄では saw(2*pi*f*t) のように書ける。 帯域制限していないナイーブ波形なので、高い f では折り返し(エイリアス)ノイズが乗る (折り返し成分の振幅 ≒ f÷22050。440Hzで-34dB、1.7kHzで-22dB。\tri は倍音が 1/n²なので同じ f でも桁違いに小さい)。
ノートピッカーの音も同じ形で呼べる: \np(2\pi ft, px, py, ratio, beta, N)(①倍音バランス+②FM。 引数はノートピッカー欄のボタンで定数ごと挿入できる)。

ノートピッカー(ピンで音色を作ってLaTeXに変換)

#使用音量
①の同番号ピンが無い行はキャリア1本(振幅1)のみのFM単体音として扱う。 ②に対応する同番号ピンが無い行はFM無し(通常の倍音和)として扱う。 再生・試聴はこのノートピッカー内で完結する。上の「数式 s(t)」欄に反映するのは 「\np として数式欄に入れる」を押したときだけで、そのとき px1・ratio1 などは 「定数」表に登録される(同名は上書き)。

再生

先頭50ms(アタックの細部確認用)
先頭最大3秒分(全体の減衰・Sustainへの流れ確認用)

履歴

バージョン履歴(このブラウザ内のスナップショット。gitではない)

履歴の保存・並び替え・ラベル編集・削除のたびに、このブラウザのIndexedDBへ自動でスナップショットを 残す(最新50件まで)。「この時点に戻す」を押すと、その時点の履歴全体(すべてのエントリ)を 復元する。復元自体も新しいスナップショットとして残るので、復元を取り消すこともできる。