Repository files navigation postmate-midi-experimental
postmate-midiとは:
シンプルで軽量なライブラリを目指しています
MIDI送受信とオーディオ送受信をします
ブラウザだけで完結します
複数のwebpageを、postMessageで接続します
まだ実験段階であり、破壊的な仕様変更が日々あります
今後experimental30くらいまでいったら、あとexperimentalいくつで本番リリースできるかがわかるかもしれません
進め方は:
今後仕様が固まった後は、別リポジトリの postmate-midi を新たに用意してそちらを進めてここをアーカイブする想定で進める。
experimentalは、できるだけ鳴ることを維持することを優先する。言い換えると、何年も音が鳴らないまま放置、をできるだけ防止する。ベストエフォート。
本番と、このexperimentalの位置付けは:
今後の本番postmate-midiリリース時は、多数のexampleを用意するつもりである。それぞれが、できるだけ鳴ることを維持するつもりである。ベストエフォート。
そのリリース後は、もし仕様変更すると作業負荷が大きそうである。なぜならexample多数それぞれに影響がある場合にすべてを修正テストするつもりのためである。
そのため、そのリリース前に、当experimentalにおいて、できるだけ想定できる用途を網羅し、仕様を網羅していくことを狙う。
Demo
Web MIDI API未実装の環境によっては、postmate実行がされない等の不具合が発生します。それの確認用など。
Demo
Postmate + Tone.js という組み合わせで鳴ることの確認用。
シンプルにとどめます。もしこれ以上機能追加する場合は別dirに切り分けて実施します。以降のExperimentalも同様です。
Demo
Postmate + Tone.js + 疑似midimessage で鳴ることの確認用。
Demo
Postmate + Tone.js + 疑似midimessage + 簡易Seq で鳴ることの確認用。
Experimental5の土台用。seq部分のみの実装。
Demo
Postmate + Tone.js + 疑似midimessage + 簡易Seq で鳴ることの確認用。
Experimental4を土台に、実際に擬似midimessage送受信を実装。
Demo
Postmate + Tone.js + 疑似midimessage + 簡易Seq で鳴ることの確認用。
和音を鳴らせるようにしました。
Demo
Postmate + Tone.js + 疑似midimessage + 簡易Seq で鳴ることの確認用。
簡易的な曲データをJSONで入力できるようにしました。
Demo
Postmate + Tone.js + 疑似midimessage + 簡易Seq で鳴ることの確認用。
Experimental7の課題であった発音タイミングのヨレやズレを、シンプル優先の範囲内でできるだけ改善しました。
Demo
Postmate + Tone.js + 疑似midimessage + 簡易仮想MIDIキーボード で鳴ることの確認用。
iPadだけはplayボタン必須。それ以外はplayボタンなしで、mouseやtouchで音が鳴ります。
Demo
Postmate + Tone.js + 疑似midimessage + 簡易Seq + 簡易仮想Cutoffツマミ で鳴ることの確認用。
knobをmouseやtouchでカットオフ周波数が変化します。
Demo
Postmate + Tone.js + 疑似midimessage + 簡易Seq で鳴ることの確認用。
16chのマルチティンバーシンセです。ch1,2,3が別の音色です。テンプレートで同時発音数12まで確認できます、それ以上もその場でtextareaに書けば確認できるかもしれません。
Demo
Postmate + Tone.js + 疑似MIDImessage + 簡易Seq + 簡易MIDIfilter で鳴ることの確認用。
簡易MIDIfilterをseqとsynthの間に挟み込んで、単音を3和音に変換します。また、parent1つに対してchild2つを接続しています。
Demo
Postmate + Tone.js + 疑似MIDImessage + 簡易Seq で鳴ることの確認用。
seq + synth。URL引数次第で、以下の4つそれぞれの動作をするサンプルです。「postMessageを使わないスタンドアロンpage」「parentが、自分と同一pageをchild synthとして呼び出すpage」「URL引数によってparent seqになるpage」「URL引数によってchild synthになるpage」
Demo
Postmate + Tone.js + 疑似MIDImessage + 簡易Seq で鳴ることの確認用。
seq + synth。seqがchildで、synthもchildの場合のサンプルです。
Demo
Postmate + Tone.js + 疑似MIDImessage + 簡易Seq で鳴ることの確認用。
seq1 + seq2 + synth。複数のseqを同時に鳴らすサンプルです。
Demo
Postmate + Tone.js + 疑似MIDImessage + 簡易Seq で鳴ることの確認用。
seq1 + seq2 + sampler。URL指定でsamplerを鳴らすのと、audioをゼロからFloat32Arrayにレンダリングしてsamplerで鳴らすサンプルです。
Demo
Postmate + Tone.js + 疑似MIDImessage + 簡易Seq で鳴ることの確認用。
seq + tone generator + sampler。audioをゼロからFloat32Arrayにレンダリングしたものを、別pageのsamplerに通信で転送して鳴らすサンプルです。
Demo
Postmate + Tone.js + 疑似MIDImessage + 簡易Seq で鳴ることの確認用。
seq + tone generator + sampler。audioをゼロからFloat32Arrayにレンダリングしたものを、別pageのsamplerに通信で転送して鳴らすサンプルです。
Tone.jsの演奏そのものをOfflineContextでプリレンダリングするサンプルです。
Tone.jsのdefault contextをそのままにして、すべてのsynth等のコンストラクタに明示的にcontextを指定する場合のサンプルです。(default contextを変更するサンプルは、切り分けて別途やります)
Demo
Postmate + Tone.js + 疑似MIDImessage + 簡易Seq で鳴ることの確認用。
seq + tone generator + sampler。audioをゼロからFloat32Arrayにレンダリングしたものを、別pageのsamplerに通信で転送して鳴らすサンプルです。
Tone.jsの演奏そのものをOfflineContextでプリレンダリングするサンプルです。
Tone.jsのdefault contextを書き換える場合のサンプルです。
Demo
Postmate + Tone.js + 疑似MIDImessage + 簡易Seq で鳴ることの確認用。
seq + prerenderer + sampler。2つのフレーズをプリレンダリングして2つのwavを生成し、それをsamplerで同時に鳴らすサンプルです。
19との違いは、プリレンダリングするフレーズや音色も、samplerで演奏するフレーズも、ハードコード側からデータ側に移動を進めたことです。
Demo
README 21
Postmate + Tone.js + 疑似MIDImessage + 簡易Seq で鳴ることの確認用。
seq + prerenderer + sampler。2つのフレーズをプリレンダリングして2つのwavを生成し、それをsamplerで同時に鳴らすサンプルです。
20との違いは、プリレンダリング結果をwav保存できること(ファイル保存ダイアログが自動で2回開きます)、samplerに任意のwavをimportできることです。
About
An experimental project for MIDI connections and audio transmission between multiple webpages using only the browser and postMessage.
Topics
Resources
License
Stars
Watchers
Forks
You can’t perform that action at this time.