shingoushori's dialy

音信号処理を専ら研究していた元博士後期課程の学生によるメモ

JavaScript

Canvasで、任意長の配列で折れ線を描いてみるテスト

<概要>Canvasの練習です.任意長の配列で折れ線を描く.これを関数したら楽にならないかな、と思っている次第であるためです. やってみた事は単純です. 1.座標点の配列を定義 2.配列の各点を、canvasの折れ線の終点として次々に設定 : context.lineTo 3.ついで…

Web Audio API で、the sliding Goertzel DFT filter のパラメータを弄ってみる、... + 残差信号(簡易)

今回は、前回の記事↓に残差信号を追加してみました。ただし、簡易。 Web Audio API で、the sliding Goertzel DFT filter のパラメータを弄ってみる、とりあえず最大16バンド - shingoushori's dialy See the Pen &amp;lt;a href="http://codepen.io/shingou…

Web Audio API で、the sliding Goertzel DFT filter のパラメータを弄ってみる、とりあえず最大16バンド

今回は、以下の記事の流れをマージしてみたというわけです。 Web Audio API で、the sliding Goertzel DFT filter のパラメータを弄ってみる、とりあえずNaN - shingoushori's dialy Web Audio API で、WAVファイルに書き出してみる、再生終了後にダウンロー…

Web Speech API の Speech synthesis を試してみた

Web Speech API というものがあるんですね。とりあえず google chrome, firefox, safari で動き、Internet Explorerでは動かない、edgeでは対応検討中...だそうです。 Speech synthesis , Speech recognition があるらしい。とりあえず 今回はsynthesisして…

htmlの入力フォームの数をjavascriptで可変にしてみた

マルチバンドでなにやらしたいわけです。 ならば、バンド数に応じた数の、各バンドのパラメータやらを操作する入力フォームが欲しい。 バンド数を変えた時に、合わせて変わってしまえばいい。 まず、そんな入力フォームが作れるのかやってみました。 とりあ…

Web Audio API で、Multi-tap Delay (3 tap feedforward and 3 tap feedback)

Web Audio APIで、ディレイを組んでみました。ただ、1本だけディレイのラインを出すだけならば、Web Audio APIにあったはず。マルチタップで混沌とするには、1本だけのを組み合わせるのはメモリが勿体無い。ちょっとだけ頭を捻って、1本だけのを組み合わせる…

Canvasで、はてなブログに回路図を直接描いてみるテスト(Diode Clipping)

はてなブログにできるだけ写真を投稿したくない!容量が気になるから. でも、図やグラフを貼り付けたい!わかりやすいし、格好いいから. この相反する気持ちの矛先として、Canvasに目をつけたわけです. とりあえず最近のマイブーム、Diode clipperを描いてみ…

Web Audio API で、内蔵マイクで録音、ただしFirefox

前回、Web Audio API で、WAVファイルに書き出ししました. 今度はマイクの入力に手を出してみました. ただし、録音はwavファイルの再生中のみで、 出力はwavファイルとの加算結果です. さらに、どうにもFirefoxだけでしか動かない. Google Chromeで動かない…

Web Audio API で、WAVファイルに書き出してみる、再生終了後にダウンロード

これまでちまちまとWeb Audio APIで実装を試みてきました.このあたりでWAVファイルへの書き出しに手を出してみました. 今回は、2つのファイルを同時再生し、 2つとも再生終了後に同時再生の結果をWAVファイルに書き出します. 書き出し可能になった時点で、"…

Web Audio API で、the sliding Goertzel DFT filter のパラメータを弄ってみる、とりあえずNaN

前回、Web Audio API でthe sliding Goertzel DFT filterを実装し、パラメータをいじりました.しかし、入力された文字列によっては発散する恐れがありました. 今回は、入力された文字列に関門を設け、想定外の数値となる場合は反映しないようにしました. そ…

Web Audio API で、the sliding Goertzel DFT filter のパラメータを弄ってみる、とりあえず

↓前回、the sliding Goertzel DFT filterを組みました. ↓Web Audio API で、the sliding Goertzel DFT filter を試作 (1帯域) - shingoushori's dialy 今回は、パラメータを弄ってみました. とりあえず、です.とりあえずポイント1: inputフォームを使うとり…

Web Audio API で、the sliding Goertzel DFT filter を試作 (1帯域)

Web Audio APIでのSTFTによる帯域分割がうまくいかないので,the sliding Goertzel DFT filterに抜け道を求めました. ↓the sliding Goertzel DFT filterの素敵な文献↓The Sliding DFTSLIDING IS SMOOTHER THAN JUMPING DFTの1帯域分に着目すれば,IIRフィルタ…

Web Audio API の、BiquadFilterNodeのbandpassの周波数特性の概形

標準の BiquadFilterNode のbandpassの周波数特性の概形を探ってみました.98帯域のMultiband Sidechain Compressor を作れることがわかったので, フィルタバンクの周波数特性を詰めていこうとしているわけです. 今回, WebAudioAPI の BiquadFilterNode の周…

Web Audio API で、Multiband Sidechain Compressor を試作 (98帯域)

これまでに, マルチバンドサイドチェインコンプレッサーを, 3帯域, 10帯域で作ってきました. ソースコード上では, 1帯域分の記述を単純にコピペしていました. 今回は, それをArrayで束ねてFor文でぶん回しました. ぶん回せました, うれしい. 帯域数を簡単に…

Web Audio API で、Multiband Sidechain Compressor を試作 (10帯域)

前回は3帯域のマルチバンドサイドチェインコンプレッサーをつくりました.Web Audio API で、Multiband Sidechain Compressor を試作 - shingoushori's dialyそれを10帯域にしてみました.重くなって動かないかと思いきや, 全然動きました.どこまで帯域を細か…

Web Audio API で、Multiband Sidechain Compressor を試作

前回制作したサイドチェインコンプレッサーWeb Audio API で、Sidechain Compressor を試作 - shingoushori's dialyを, マルチバンド化してみました. 帯域分割は, Web Audio API 標準のBiquadFilterNodeを用いてみました.https://developer.mozilla.org/ja/d…

Web Audio API で、Sidechain Compressor を試作

Web Audio API で, Sidechain Compressor を試してみました. 作ってみたのが↓こちら. File1についてcompressorの係数を算出し, File2の音量を操作します. playで同時再生です. ポイントであろう事柄が↓こちら.・DynamicsCompressorから, 抑制係数のdB表現を.…

Web Audio API で、左右チャネルを入れ替えて再生

Web Audio API で, チャネルの抜き挿しを試してみました.抜き挿しそれぞれ, 抜き : ChannelSplitter挿し : ChannelMergerを.createXXXXすると, .connect時の引数で抜き差しするチャネルを選択できるようだ. 作ってみたのが↓こちら. File1はそのまま, File2は…

JavaScript および Web Audio API のはてなブログへの埋め込み

前回、コードを地の文に貼っていたわけでして、 埋め込む方法を探してきました。 埋め込んだのが、こちら。 ローカルで動かした時より、再生にもたつきを感じます。 いたしかたなし也。 <参考> みかづきブログ その3 はじめてのWebAudioAPI jsdo.itなる、コ…

ローカルの音データをWebAudio APIで開く

ローカルの音データをWebAudio APIで開いてみました.二つの音データを一つのplayボタンで, 同時に再生開始します.ブラウザは, Google Chromeで製作しています. <input id="audio_file1" accept="audio/*" type="file" /> <audio id="audio_player1"></audio> <input id="audio_file2" accept="audio/*" type="file" /> <audio id="audio_player2"></audio> <button id="play">play</button>