「HTML5 + Web Audio API によるオーディオデータプロセッシング」 出版決定(発売日:2015年11月24日)
HTML5 + Web Audio API によるオーディオデータプロセッシング
「音」の理論から生成、分析、オリジナル電子楽器の開発まで
著者 定非営利活動法人 natural science 遠藤 理平/竹中 恭介/藤原 脩
出版社 株式会社カットシステム
判型 B5変型判、392頁
本体価格 3,800円(税込 4,104円)
ISBN 978-4-87783-375-6
はじめに
本書は、最新ウェブテクノロジーの一つであるHTML5を用いたキーボード型電子楽器アプリケーションの作成を通して、単にHTML5によるウェブアプリケーションの開発方法だけでなく、「そもそも音とは何か?」という疑問から始まり、楽器の音色の起源や音階・調性・和音といった音楽の基礎まで、物理学と音楽の両面からアプローチし、「音」を深く理解することを目的としています。そして、両アプローチで得られた知見を元に、最終章では、電子楽器アプリケーションの開発を通じて、任意の波形の音を生成できるHTML5のWeb Audio APIの利用方法について詳しく解説します。
Web Audio APIとは、ウェブブラウザを介してデバイスの機能を利用する各種API(Application Programming Interface)の一つです。これを用いることでDAW(デジタル・オーディオ・ワークステーション)などのソフトウェアで実現可能なミキシング、編集、フィルタリング等の機能を、なんとウェブブラウザだけで実現することができます。同APIは、ネイティブアプリケーション並の機能をもつウェブアプリケーションを開発する上で重要な役割を果すことから、非営利団体World Wide Web Consortium(W3C)による作業草案(ワーキングドラフト、WC)段階でありながら、主要ウェブブラウザでの実装がすでに進んでいます。本書は同APIの基本的な利用方法を示すことも目的の一つとし、第4章にまとめました。
本書は、物理学、音楽、情報科学をそれぞれ学んできた立場の異なる3名で執筆されました。「音」といえば、それは波動現象という物理現象であり、それらは振幅、周波数、波長、位相というパラメータで特徴づけられ、重ねあわせの原理で全て説明できる(1.2節、2章、付録B)と考える物理屋にとって、和音や音色の美しさの裏に存在する物理法則の実感は大変新鮮でした。また、音楽を学んできた者にとっては、これまで抽象的な言葉でしか表現できなかった楽器の音色(第3章)に、物理的な裏付けが得られたことで、音楽の楽しみ方や演奏に大きな刺激がありました。また、情報科学を勉強している者にとって、物理学、音楽といった異分野を、情報科学によって橋渡しできたという喜びがありました(第4章、第5章)。本書を通じて、日常生活に非常に身近な存在である「音」に対する認識と理解が著者ら同様、深まるきっかけとなれば大変嬉しいです。
本書の執筆は国立研究開発法人科学技術振興機構による「平成25年度科学技術コミュニケーション推進事業ネットワーク形成地域型」という事業に採択された「『科学・技術の地産地消モデル』構築による、持続可能な学都『仙台・宮城』サイエンスコミュニティの形成~知的好奇心がもたらす心豊かな社会の創造にむけて~」(提案機関:宮城県、実施機関:特定非営利活動法人natural science)という事業の一部で実施した科学講座「音ってそもそもなんだろう?」(講師:竹中恭介、藤原脩)がきっかけとなりました。本事業の関係各位に深く感謝申し上げます。
最後に、本書の執筆の機会を頂きました株式会社カットシステムの石塚勝敏さん、いつも丁寧な編集を行なって頂いている武井智裕さん、また、日常的に議論に付き合って頂いている特定非営利活動法人natural scienceの皆さんに、深く感謝申し上げます。
2015年12月
遠藤理平、竹中恭介、藤原脩
目次
- 第1章 音楽と私!?
- 1.1 音楽コトハジメ
- 1.1.1 音楽のあゆみ
- 1.1.2 楽器の分類
- 1.1.3 楽器の構造
- 1.1.4 楽器と編成
- 1.1.5 電子楽器の歴史
- 1.2 音と波
- 1.2.1 音の正体
- 1.2.2 波とは?
- 1.2.3 音波の数式による表し方
- 1.2.4 重ね合わせの原理
- 1.2.5 周波数に対する聞こえ方の違い
- 1.2.6 振幅に対する音の大きさ、音の聞こえ方の関係
- 1.2.7 波の性質を踏まえた演奏
- 1.3 音の高さ・大きさ
- 1.3.1 ピタゴラス音律の誕生
- 1.3.2 平均律の誕生
- 1.3.3 国際式音名と周波数
- 1.3.4 音の大きさの表し方
- 1.4 調性
- 1.4.1 調とは
- 1.4.2 調性と音階
- 1.4.3 移調楽器
- 1.5 倍音と音色
- 1.5.1 2つの音の違い
- 1.5.2 音色の由来
- 1.6 和音
- 1.6.1 和音の種類
- 1.6.2 純正律
- 1.6.3 純正律の周波数の計算方法
- 1.7 拍とリズム
- 1.7.1 拍と速さ
- 1.7.2 拍子
- 1.8 音をつくる
- 1.8.1 音形
- 1.8.2 シンセサイザーの音作り
- 1.8.3 音形モデルADSR
- 1.9 音楽のしくみ
- 1.9.1 音楽のつくり
- 1.9.2 音楽のジャンル
- 1.10 私と音楽
- 1.10.1 子守唄はOpen Arms
- 1.10.2 打楽器をクビになる
- 1.10.3 クラシックは嫌いです
- 1.10.4 「音楽が好き」ってなんだ
- 1.1 音楽コトハジメ
- 第2章 音の波を操ろう!
- 2.1 音生成アプリ「Sound Generator」を開発しよう!
- 2.1.1 WebAudioAPIの概要
- 2.1.2 オーディオデータの形式(PCM形式)
- 2.1.3 WebAudioAPIを使ってみよう!
- 2.1.4 音生成アプリの概要
- 2.1.5 音の生成と再生を実行:play関数
- 2.1.6 時間グラフを描画する関数:plotFunction関数
- 2.1.7 周波数グラフを描画する関数:plotPowerSpectrum関数
- 2.2 様々な音を表現しよう
- 2.2.1 単音
- 2.2.2 うなり
- 2.2.3 矩形波を生成しよう!
- 2.2.4 のこぎり波を生成しよう!
- 2.2.5 三角波を生成しよう!
- 2.3 ドレミファソラシド!
- 2.3.1 音階データの作成と音符データの定義
- 2.3.2 音符データと楽譜データの定義
- 2.3.3 音データの生成と再生:noteon関数
- 2.3.4 楽譜データの再生:playScore関数
- 2.4 じゃじゃじゃじゃーん!
- 2.4.1 「じゃじゃじゃじゃーん!」について
- 2.4.2 音符データの拡張
- 2.4.3 音データの生成と再生:noteon関数の拡張
- 2.5 音形(エンベロープ)を調整しよう
- 2.5.1 音形(エンベロープ)とは?
- 2.5.2 聴き比べてみよう!
- 2.5.3 音符データの拡張
- 2.5.4 playScore関数とnoteon関数の拡張
- 2.6 実際の曲を演奏しよう!
- 2.6.1 かえるの歌
- 2.6.2 オルゴールでねこ踏んじゃったを演奏だ!
- 2.6.3 メヌエット
- 2.1 音生成アプリ「Sound Generator」を開発しよう!
- 第3章 楽器の音を解析してみよう! 1
- 3.1 音解析アプリ「SoundAnalyzer」を開発しよう!
- 3.1.1 音解析アプリの概要
- 3.1.2 Audio要素による読み込みと再生
- 3.1.3 XMLHttpRequestによるオーディオファイルの読み込みと再生
- 3.1.4 Sound Analyzerのメイン処理
- 3.1.5 パワースペクトルのピーク位置計算アルゴリズム
- 3.2 弦楽器の音解析
- 3.2.1 ヴァイオリン
- 3.2.2 ヴィオラ
- 3.2.3 チェロ
- 3.2.4 コントラバス
- 3.3 木管楽器の音解析
- 3.3.1 フルート、ピッコロ
- 3.3.2 クラリネット
- 3.3.3 オーボエ
- 3.3.4 ファゴット
- 3.3.5 サックス
- 3.4 金管楽器の音解析
- 3.4.1 トランペット
- 3.4.2 ホルン
- 3.4.3 トロンボーン
- 3.4.4 ユーフォニウム
- 3.4.5 チューバ
- 3.5 打楽器の音解析
- 3.5.1 スネアドラム
- 3.5.2 バスドラム
- 3.5.3 シンバル
- 3.5.4 ティンパニ
- 3.6 鍵盤楽器の音解析
- 3.6.1 チェンバロ
- 3.6.2 ピアノ
- 3.1 音解析アプリ「SoundAnalyzer」を開発しよう!
- 第4章 Web Audio APIを極めよう!
- 4.1 オーディオグラフ
- 4.1.1 AudioContextクラス
- 4.1.2 AudioNodeクラス
- 4.1.3 AudioParamクラス
- 4.2 音源
- 4.2.1 OscillatorNodeクラス
- 4.2.2 PeriodicWaveクラス
- 4.2.3 AudioBufferクラス
- 4.2.4 AudioBufferSourceNodeクラス
- 4.2.5 MediaElementAudioSourceNodeクラス
- 4.2.6 MediaStreamAudioSourceNodeクラス
- 4.3 フィルタ
- 4.3.1 BiquadFilterNodeクラス
- 4.3.2 ConvolverNodeクラス
- 4.3.3 DelayNodeクラス
- 4.3.4 DynamicsCompressorNodeクラス
- 4.3.5 GainNodeクラス
- 4.3.6 WaveShaperNodeクラス
- 4.4 出力先
- 4.4.1 AudioDestinationNodeクラス
- 4.4.2 MediaStreamAudioDestinationNodeクラス
- 4.5 解析と可視化
- 4.5.1 AnalyserNodeクラス
- 4.6 チャンネルの分割と結合
- 4.6.1 ChannelSplitterNodeクラス
- 4.6.2 ChannelMergerNodeクラス
- 4.7 立体音響
- 4.7.1 AudioListenerクラス
- 4.7.2 PannerNodeクラス
- 4.8 JavaScriptによるオーディオデータ処理
- 4.8.1 ScriptProcessorNodeクラス
- 4.8.2 AudioProcessigEventクラス
- 4.9 オフライン/バックグラウンド処理
- 4.9.1 OfflineAudioContextクラス
- 4.9.2 OfflineAudioCompletionEventクラス
- 4.10 非同期処理(AudioWorker)(※Editor's Draft)
- 4.1 オーディオグラフ
- 第5章 オリジナル電子楽器の開発!!
- 5.1 単純キーボードアプリの開発
- 5.1.1 単純キーボードアプリの概要
- 5.1.2 キーボードイベントの取得
- 5.1.3 鍵盤インターフェースの作成
- 5.1.4 オーディオ再生・停止機能の追加
- 5.2 自作オーディオクラス「MyWebAudioクラス」の開発
- 5.2.1 MyWebAudioクラスの概要
- 5.2.3 MyWebAudioクラスの実装(リビジョン1)
- 5.2.4 MyWebAudioクラスを用いた単純キーボードアプリの改良
- 5.3 単純キーボードアプリの機能拡張
- 5.3.1 機能拡張の概要
- 5.3.2 ホールド、オクターブ、基準音の設定部分のインターフェース
- 5.3.3 マウスイベントの追加
- 5.3.4 ホールド機能の追加
- 5.3.5 オクターブ選択機能の追加
- 5.3.6 基準音設定機能の追加
- 5.4 音律切り替え機能の追加
- 5.4.1 音律切り替え機能付きキーボードアプリの概要
- 5.4.2 音律切り替え機能インターフェース
- 5.4.3 純正律に対応した周波数の倍率を計算する関数:justIntonationRatio関数
- 5.4.4 音律切り替え関数:changeTemperament関数
- 5.5 オリジナル音色指定機能開発のための準備
- 5.5.1 自作オーディオクラス「MyWebAudioクラス」の拡張(リビジョン2)
- 5.5.2 MyWebAudioクラス(リビジョン2)の基本的使い方
- 5.5.3 倍音成分の操作
- 5.5.4 倍音成分操作インターフェースの自動生成
- 5.5.5 既存楽器の倍音成分強度データの準備
- 5.5.6 既存楽器の倍音成分強度データのプリセット
- 5.6 オリジナル音色指定機能付きキーボードアプリ
- 5.6.1 オリジナル音色指定機能付きキーボードアプリの概要
- 5.6.2 メイン処理関数の拡張
- 5.6.3 initVars関数の拡張
- 5.6.4 keydown関数とkeyup関数の拡張
- 5.6.5 volumeControl関数の拡張
- 5.6.6 changeOctave関数の拡張
- 5.6.7 changeRefTone関数
- 5.6.8 changeTemperament関数の拡張
- 5.6.9 changeTone関数の拡張
- 5.6.10 initToneSamples関数の拡張
- 5.7 さらなる拡張へ:音形(エンベロープ)調整
- 5.7.1 時間的な音量変更の実装
- 5.7.2 ADSRモデルによる音量調整の実装
- 5.7.3 ADSRモデルの拡張
- 5.7.4 MyWebAudioクラスの拡張(リビジョン3)
- 5.7.5 muteoffメソッドとmuteonメソッドの拡張
- 5.7.6 ADSR_ADSメソッドとADSR_Rメソッドの定義
- 5.7.7 キーボードアプリHTML文書の拡張
- 5.1 単純キーボードアプリの開発
- 付録A HTML5でグラフ描画:jqPlotの使い方
- A.1 jqPlotとPlot2Dクラスの概要
- A.1.1 jqPlotとは
- A.1.2 2次元グラフ描画HTML文書の解説
- A.1.3 2次元グラフ描画プログラムの解説
- A.2 2次元グラフの描画例
- A.2.1 対数グラフ、両対数グラフ
- A.2.2 2軸スケールグラフ
- A.2.3 アニメーション
- A.3 Plot2DクラスにおけるjqPlotプロパティ
- A.4 Plot2Dクラスのメンバ
- A.1 jqPlotとPlot2Dクラスの概要
- 付録B 世界の全てを波で表現:フーリエ解析
- B.1 フーリエ解析の概略
- B.1.1 フーリエ級数展開について
- B.1.2 フーリエ級数展開の例
- B.2 離散フーリエ級数展開のアルゴリズム
- B.2.1 展開係数の計算アルゴリズム
- B.2.2 展開係数の計算プログラム
- B.2.3 実行方法と計算結果に対する注意点
- B.1 フーリエ解析の概略
付属サンプルプログラム一覧
本書で取り扱ったすべての題材にはサンプルプログラムが用意されています。
章 | ファイル名 | 説明 |
1.2.3 | planeWaveViewer.html | 音波(前進波、後進波) |
1.2.4 | planeWaveViewer2.html | 音波の重ねあわせ |
1.2.4 | synthesisOfWave1.html | 異なる初期位相の波の合成 |
1.2.4 | synthesisOfWave2.html | 逆位相の波の合成 |
1.2.5 | sin(30Hz) .html | 30Hzの単音 |
1.2.5 | sin(300Hz) .html | 300Hzの単音 |
1.2.5 | sin(3000Hz) .html | 3000Hzの単音 |
1.2.5 | sin(30000Hz) .html | 30000Hzの単音 |
1.2.6 | sin(300Hz)_0.1.html | 振幅0.1の単音(300Hz) |
1.2.6 | sin(300Hz)_0.5.html | 振幅0.5の単音(300Hz) |
1.3.1 | Microtone.html | 微分音 |
1.3.1 | DoReMi_PythagoreanTuning.html | ピタゴラス音律の音階 |
1.3.2 | DoReMi_EqualTemperament.html | 平均律の音階 |
1.4.2 | Key_B_major.html | 音階:ロ長調 |
1.4.2 | Key_G_sharp_minor.html | 音階:嬰ト短調 |
1.4.2 | Key_E_major.html | 音階:ホ長調 |
1.4.2 | Key_C_sharp_minor.html | 音階:嬰ハ短調 |
1.4.2 | Key_A_major.html | 音階:イ長調 |
1.4.2 | Key_F_sharp_minor.html | 音階:嬰ヘ短調 |
1.4.2 | Key_D_major.html | 音階:ニ長調 |
1.4.2 | Key_B_minor.html | 音階:ロ短調 |
1.4.2 | Key_G_major.html | 音階:ト長調 |
1.4.2 | Key_E_minor.html | 音階:ホ短調 |
1.4.2 | Key_C_major.html | 音階:ハ長調 |
1.4.2 | Key_A_minor.html | 音階:イ短調 |
1.4.2 | Key_F_major.html | 音階:ヘ長調 |
1.4.2 | Key_D_minor.html | 音階:ニ短調 |
1.4.2 | Key_B_flat_major.html | 音階:変ロ長調 |
1.4.2 | Key_G_minor.html | 音階:ト短調 |
1.4.2 | Key_E_flat_major.html | 音階:変ホ長調 |
1.4.2 | Key_C_minor.html | 音階:ハ短調 |
1.4.2 | Key_A_flat_major.html | 音階:変イ長調 |
1.4.2 | Key_F_minor.html | 音階:ヘ短調 |
1.4.2 | Key_D_flat_major.html | 音階:変ニ長調 |
1.4.2 | Key_B_flat_minor.html | 音階:変ロ短調 |
1.4.2 | Key_G_flat_major.html(Key_F_sharp_major.html) | 音階:変ト長調(嬰ヘ長調) |
1.4.2 | Key_E_flat_minor.html(Key_D_sharp_minor.html) | 音階:変ホ短調(嬰ニ短調) |
1.6.2 | Chord1_JustIntonation.html | 純正律(ハ長調)のドミソ |
1.6.2 | Chord1_EqualTemperament.html | 平均律のドミソ |
1.6.2 | Chord2_JustIntonation.html | 純正律(ハ長調)のレファ#ラ |
1.6.2 | Chord2_EqualTemperament.html | 平均律のレファ#ラ |
1.6.2 | Chord3_JustIntonation.html | 純正律の和音(ドファラ) |
1.6.2 | Chord3_EqualTemperament.html | 平均律の和音(ドファラ) |
1.6.2 | DoReMi_EqualTemperament.html | 平均律の音階 |
1.6.2 | DoReMi_JustIntonation.html | 純正律(ハ長調)の音階 |
1.7.1 | Metronome_44.html | メトロノーム(4/4のリズム) |
1.7.1 | Metronome_22.html | メトロノーム(2/2のリズム) |
1.7.2 | Metronome_34.html | メトロノーム(3/4のリズム) |
1.7.2 | Metronome_24.html | メトロノーム(2/4のリズム) |
1.7.2 | Metronome_68.html | メトロノーム(6/8のリズム) |
2.1.3 | simple.html | WebAudioAPI最小構成 |
2.1.4 | SoundGenerator.html | 音生成アプリ「Sound Generator」 |
2.2.1 | SoundGenerator_sin(440Hz).html | sin関数による440Hzの単音 |
2.2.1 | SoundGenerator_cos(440Hz).html | cos関数による440Hzの単音 |
2.2.1 | SoundGenerator_sin(880Hz).html | sin関数による880Hzの単音 |
2.2.2 | SoundGenerator_beat1.html | うなり時の実時間グラフと周波数グラフ |
2.2.2 | SoundGenerator_beat2.html | |
2.2.2 | SoundGenerator_beat3.html | |
2.2.2 | SoundGenerator_beat4.html | |
2.2.3 | SoundGenerator_square.html | |
2.2.3 | SoundGenerator_square_log.html | D=0.5の矩形波 |
2.2.3 | SoundGenerator_square_log_0.1.html | D=0.1の矩形波 |
2.2.4 | SoundGenerator_sawtooth.html | のこぎり波 |
2.2.4 | SoundGenerator_sawtooth_log.html | |
2.2.5 | SoundGenerator_triangle.html | 三角波 |
2.2.5 | SoundGenerator_triangle_log.html | |
2.3.1 | DoReMi.html | ドレミファソラシドを等間隔で演奏するアプリ |
2.4.1 | Symphony_5.html | じゃじゃじゃじゃーん(単音) |
2.4.1 | Symphony_5_chord1.html | じゃじゃじゃじゃーん(和音) |
2.4.1 | Symphony_5_chord2.html | じゃじゃじゃじゃーん(和音) |
2.5.2 | SoundGenerator_ADSR.html | 音形調整(A:0.1, D:0.1, S:0.8, R:0.3) |
2.5.3 | Symphony_5_ADSR.html | じゃじゃじゃじゃーん(ADSR) |
2.6.1 | KaeruNoUta.html | かえるの歌 |
2.6.1 | KaeruNoUta_troll.html | かえるの歌(輪唱あり) |
2.6.2 | NekoFunjatta.html | ねこふんじゃった |
2.6.3 | Menuett.html | メヌエット |
3.1.2 | audio.html | audio要素によるオーディオデータの再生 |
3.1.3 | loadAndPlay.html | オーディオファイルの読み込みと実行 |
3.2.1 | SoundAnalyser_violin.html | ヴァイオリンの音解析 |
3.2.1 | SoundGenerator_violin.html | ヴァイオリンの音再現 |
3.2.2 | SoundAnalyser_viola.html | ヴィオラの音解析 |
3.2.2 | SoundGenerator_viola.html | ヴィオラの音再現 |
3.2.3 | SoundAnalyser_cello.html | チェロの音解析 |
3.2.3 | SoundGenerator_cello.html | チェロの音再現 |
3.2.4 | SoundAnalyser_contrabass.html | コントラバスの音解析 |
3.2.4 | SoundGenerator_contrabass.html | コントラバスの音再現 |
3.3.1 | SoundAnalyser_flute.html | フルート、ピッコロの音解析 |
3.3.1 | SoundGenerator_flute.html | フルート、ピッコロの音再現 |
3.3.2 | SoundAnalyser_clarinet.html | クラリネットの音解析 |
3.3.2 | SoundGenerator_clarinet.html | クラリネットの音再現 |
3.3.3 | SoundAnalyser_oboe.html | オーボエの音解析 |
3.3.3 | SoundGenerator_oboe.html | オーボエの音再現 |
3.3.4 | SoundAnalyser_fagot.html | ファゴットの音解析 |
3.3.4 | SoundGenerator_fagot.html | ファゴットの音再現 |
3.3.5 | SoundAnalyser_sax.html | サックスの音解析 |
3.3.5 | SoundGenerator_sax.html | サックスの音再現 |
3.4.1 | SoundAnalyser_trumpet.html | トランペットの音解析 |
3.4.1 | SoundGenerator_trumpet.html | トランペットの音再現 |
3.4.2 | SoundAnalyser_horn.html | ホルンの音解析 |
3.4.2 | SoundGenerator_horn.html | ホルンの音再現 |
3.4.3 | SoundAnalyser_trombone.html | トロンボーンの音解析 |
3.4.3 | SoundGenerator_trombone.html | トロンボーンの音再現 |
3.4.4 | SoundAnalyser_euphonium.html | ユーフォニウムの音解析 |
3.4.4 | SoundGenerator_euphonium.html | ユーフォニウムの音再現 |
3.4.5 | SoundAnalyser_tuba.html | チューバの音解析 |
3.4.5 | SoundGenerator_tuba.html | チューバの音再現 |
3.5.1 | SoundAnalyser_snaredrum.html | スネアドラムの音解析 |
3.5.2 | SoundAnalyser_bassdrum.html | バスドラムの音解析 |
3.5.2 | SoundGenerator_bassdrum.html | バスドラムの音再現 |
3.5.3 | SoundAnalyser_cymbal.html | シンバルの音解析 |
3.5.4 | SoundAnalyser_timpani.html | ティンパニの音解析 |
3.5.4 | SoundGenerator_timpani.html | ティンパニの音再現 |
3.6.1 | SoundAnalyser_cembalo.html | チェンバロの音解析 |
3.6.1 | SoundGenerator_cembalo.html | チェンバロの音再現 |
3.6.2 | SoundAnalyser_piano.html | ピアノの音解析 |
3.6.2 | SoundGenerator_piano.html | ピアノの音再現 |
4.2.1 | sample_OscillatorNode.html | OscillatorNodeの利用例 |
4.2.2 | sample_PeriodicWave.html | PeriodicWaveの利用例 |
4.2.3 | sample_AudioBuffer.html | AudioBufferの利用例 |
4.2.4 | sample_AudioBufferSourceNode.html | AudioBufferSourceNodeの利用例 |
4.2.5 | sample_MediaElementAudioSourceNode.html | MediaElementAudioSourceNodeの利用例 |
4.2.6 | sample_MediaStreamAudioSourceNode.html | マイクへのアクセス |
4.3.1 | sample_BiquadFilterNode.html | ノイズの生成 |
4.3.2 | sample_ConvolverNode.html | ConvolverNodeの利用例 |
4.3.3 | sample_DelayNode.html | DelayNodeの利用例 |
4.3.4 | sample_DynamicsCompressorNode.html | オーディオデータ生成 |
4.3.5 | sample_GainNode.html | GainNodeの利用例 |
4.3.6 | sample_WaveShaperNode.html | WaveShaperNodeの利用例 |
4.4.2 | sample_MediaStreamAudioDestinationNode.html | MediaStreamAudioDestinationNodeの利用例 |
4.5.1 | sample_AnalyserNode_freq.html | AnalyserNode生成 |
4.5.1 | sample_AnalyserNode_time.html | AnalyserNodeの利用例 |
4.6.1 | sample_ChannelSplitterNode.html | オーディオデータ生成 |
4.6.2 | sample_ChannelMergerNode.html | オーディオデータ生成 |
4.7.2 | sample_PannerNode.html | PannerNodeの利用例 |
4.8.1 | sample_ScriptProcessorNode.html | ScriptProcessorNode生成 |
4.9.1 | sample_OfflineAudioContext.html | OfflineAudioContextの利用例 |
5.1.4 | KeyboardApp_r1.html | オーディオ再生・停止機能の追加 |
5.2.4 | KeyboardApp_r2.html | MyWebAudioクラスを用いた単純キーボードアプリの改良 |
5.3.3 | KeyboardApp_r3.html | マウスイベントの追加 |
5.3.4 | KeyboardApp_r4.html | ホールド機能の追加 |
5.3.5 | KeyboardApp_r5.html | オクターブ選択機能の追加 |
5.3.6 | KeyboardApp_r6.html | 基準音設定機能の追加 |
5.4.1 | KeyboardApp_r7.html | 音律切り替え機能付きキーボードアプリ |
5.6.1 | KeyboardApp_r8.html | オリジナル音色指定機能付きキーボードアプリ |
5.7.1 | ADSR_test1.html | requestAnimationFrame関数による音量調整 |
5.7.2 | ADSR_test2.html | requestAnimationFrame関数による音量調整 |
5.7.3 | ADSR_test3.html | キーボードイベントに対応したADSRモデル |
5.7.7 | KeyboardApp_r9.html | 音形調性機能付きキーボードアプリ |
A.1.1 | Plot2D.html | jqPlot(Plot2Dクラス)による三角関数の描画 |
A.2.1 | Plot2D_linearlogPlot.html | 対数グラフの描画 |
A.2.1 | Plot2D_loglinearPlot.html | x軸片対数グラフの描画 |
A.2.1 | Plot2D_loglogPlot.html | 両対数グラフの描画 |
A.2.2 | Plot2D_2scale.html | 2軸スケールグラフの描画 |
A.2.3 | Plot2D_animation.html | アニメーションの実装例 |
B.1.1 | integral_test.html | シンプソン法を用いた数値積分の誤差の描画 |
B.1.1 | integral_test2.html | |
B.1.2 | FourierTransformViewer_rectangular.html | 矩形関数のフーリエ級数の展開係数 |
B.2.3 | FT500Hz.html | 単一周波数の三角関数と周波数グラフの描画 |