- ボタンを押すと音が出ますから注意して下さい。マウスを波形の上に持ってゆくと波形がスクロールします。
- ソースは[https:./inc/makeSnd1.html]+ピアノ鍵盤表示[https:./inc/uPianoKey.js]
- make_snd 関数で 波形を作って
- viwWaveでcanvasに表示し(内部でマウス処理)
- makeWavMono関数でWavHdrを付けて play=trueならFileReaderでBase64にして Audio .playで再生
という流れです.
:このページ上ではサンプルレートを遅くしているので気づかないかもしれませんが、サンプルレートを上げると反応が遅い。どうやらFileReaderのBase64エンコードが原因のようです。これでだいぶ遅れますから、これをなんとかしないといけない。URL.createObjectURL(blob)は早いし、
sound.src=URL.createObjectURL(blob) sound.play();
で再生出来れば 遅延はあまりなくなるのだけど・・・ Web Audio APIを使うしかないのかな
- もう一つの問題はAudioオブジェクトでは単音しか出ない事。やはりWebAudioを学ぶしかないのか
- ピアノ鍵盤表示をJavaScriptにPas2JavaSc.pasで変換して必要部分を組み込んでみました。
- 鍵盤があるとなおさら1音縛りが厳しく感じますね
3音
- 3音分のAudioオブジェクトを確保して順に使ってみました。
- ソースは[https:./inc/makeSnd3.html]+[https:./inc/uPianoKey.js]
- 同時に音が出るとクリップするので少し音量を下げています。
- 上の1音のものと比べてブツブツ切れる感じが減っていると思います。
これで「計算による音作りを楽しんでもらう」という目標の為にはEVALでJavaScriptを直接入れてもらうと達成なわけですが、そうするとJavaScriptで悪戯も可能なので、何か制限をかけて(簡易言語のような方式で)出来ないか考慮中。
プライバシーポリシー本文は日本語以外に翻訳禁止