最近、JavaScriptで動くMMLシーケンサーを作っています。 pico http://pico-project.appspot.com/mml/ SiONのMMLをパク参考にしているので、MMLTalks(http://mmltalks.appspot.com/)あたりのMMLをコピペすると、それなりに鳴ってくれる場合があります。思い通りになっていない部分がかなり多いですが、、 このあたりのMMLは結構聴ける(適宜コピペしてお試しください) http://mmltalks.appspot.com/m/RaKRP http://mmltalks.appspot.com/m/DIZpo http://mmltalks.appspot.com/m/jVIoz (FM音源が惜しい) で、 で、表題の件ですがJavaScriptでリアルタイムに音を鳴らすには以下の3つの方法があります。 Aud
Try the examples, and hack them right in your browser. hack When you think of an "app," do you think of something that you can open, hack, and change how it works? Meemoo wants to give you this freedom. If you can't open it, you don't own it. Meemoo is a framework that connects open-source modules, powered by any web technology. The way that the data flows from module to module is defined and visu
Drop your .dsp file here or write your Faust code below // Enter Faust code here process = +;
WebMidiLink対応シンセのリストをJSONP形式にして置きました。 どういうものかはファイルの中身を見てもらえばわかりますが、これはWebMidiLink対応ホストを作る時のシンセのリストを表示するために使います。下の図の部分ですね。 いつか勝手に登録できるようにするかも知れませんが、今のところは単に静的なファイルを置いてあるというだけです。新しいシンセを作ったとかURLが変わったとかがあれば連絡をいただければ更新します。 http://www.g200kg.com/webmidilink/synthlist.js で、これの使い方なんですが、まず、これをJavascriptファイルとしてHTMLページに読み込みます。 <script type="text/javascript" src="http://www.g200kg.com/webmidilink/synthlist.js
最近、Device関連のHTML5 APIが盛り上がっています。 今回から何回かにわけてWeb Audio APIについて書いていこうかと思います。 頑張ると、このくらいスゴいコトもできてしまうWeb Audio API。 最終的にHTML5 Advent Calendar向けにまとめますので、まとめて読みたい方は12/7までお待ちください。 とりあえずデモ とりあえず、一番簡単な「音楽を取得して出力する」デモです。 下部のPlayボタンを押したあとに、startボタンを押すとSVG女子のテーマソングが流れます。(webkitのみ) これはなに? Web Audio APIで音楽を出力しています。基本的な流れは以下のようになります。 URLにアクセスして音源(たとえばoggファイル)を取得する 取得した音源をAudioContextを用いてデコードし、AudioBufferNodeを生成す
Getting started with Web Audio API Stay organized with collections Save and categorize content based on your preferences. Before the HTML5 <audio> element, Flash or another plugin was required to break the silence of the web. While audio on the web no longer requires a plugin, the audio tag brings significant limitations for implementing sophisticated games and interactive applications. The Web Au
だるくてコードを書く気がしないので、コピペですまそうとg200kgさんのファミコン音源(2A03)のコードを見てみたら凄く簡潔で(GUIの制御部分込みで約600行)わかりやすかったので、コメントをつけたらJavaScriptでの信号処理の教科書的なものになるのではないかと思ってコメントをつけてみた。 けっこう頑張ってコメントをつけたので、1時間もあれば十分に理解できると思います。 https://gist.github.com/3094681 ファミコン音源(2A03)の仕様をすべて再現しているわけではないけど、非常にシンプルに作られている優れものです。2A03の仕様はここが詳しい。 オススメの読む順番 897行目 Init / 最初に呼ばれるやつ 230行目 AudioIf / オーディオインターフェイス 423行目 Osc / オシレーター 681行目 App / アプリケーション 6
なんとなくですが、WebMidiLinkを使ってブラウザ上で動作するピアノロール型のシーケンサーのようなものを作るとして、足りない部分というのを思いつくままに ■発音タイミングの補正機構 メッセージに本来処理されるべき時刻を示すタイムスタンプを付けるのが良いかと思っているのだけど、全メッセージに影響するため、下手にやると禍根を残しそう。今の実力とかをちゃんと検証してからにするべきかな... ■NoteOn/NoteOff/AllSoundOff以外のメッセージ MIDIに乗せられるものは基本的にそれを使えばいいかなと思ってます。コントロールチェンジでもプログラムチェンジでもホストとプラグインがちゃんと解釈できれば問題ないよね。 ■プラグインのパッチの保存 ホスト側のソングデータと共に保存したりするために、パッチデータを送受信する必要があるねえ。vst の getChunk / setChu
3日前にg200kgさんが提案したWebMidiLinkという規格がすごすぎていまだに興奮がさめやらない感じ。DTMとWebの世界はいったいこれからどうなってしまうんだろうという気持ちです。 WebMidiLinkは、ひとことで言うと「MIDI over window.postMessage」というようなもので、とてもシンプルなアイデアながら、これまで多くの人が夢想してしかし誰もできなかったWeb楽器のアプリ間接続を実現してしまいました。 けっして複雑な手法ではなく、マスター側約20行、スレーブ側約20行の合計40行程度で誰でも実現できてしまいます。ブレイクスルーはすぐ目の前にあったのです。みんなが模索している中、とてもクレバーでクールな解決方法を提示しました。 Web楽器はまだ新しい技術です。これまでFlashベースやJava Appletベースの楽器アプリがそれなりの数ありましたが、去
僕と同じようにブラウザで動くシンセを開発しているg200kgさんがすごい技術を考案しました。 お客様の中にWebシンセプログラマはいらっしゃいませんか | g200kg Music & Software どういうことかというと、HTML5のpostMessageで簡易的なMIDIメッセージをクロスドメインで送ってWebシンセ同士で同期させるというものです。シンセ側は以下のようなわずか数十行のJavaScriptを追加するだけでスレーブとして制御してもらえちゃいます。 http://aikelab.net/websynth/websynth_message.js 動画をとったのでまずは見てみてください。g200kgさんのサイトから、僕のWebAudioSynthとg200kgさんのWebModularを制御して同期演奏しています。 すごい時代になった……。 Google API Expert
: サイト内検索 トップ 製品 KnobMan 偏ったDTM用語辞典 過去記事一覧 ソフトウェア/VST WebMusic その他 g200kg > WebMidiLink > 1.Introduction WebMidiLink 2012/06/261.Introduction « Prev 1.Introduction 2.Specification 3.SynthList (JSONP) Next » Tweet English | Japanese What is the WebMidiLink WebMidiLink is a technology for the sync of multiple web-based synthesizers. Though the HTML5 audio functions allows you to build a web-based syn
The Web Audio API is one of two new audio APIs – the other being the Audio Data API – designed to make creating, processing and controlling audio within web applications much simpler. The two APIs aren’t exactly competing as the Audio Data API allows more low-level access to audio data although there is some overlap. At the moment, the Web Audio API is a WebKit-only technology while the Audio Data
FizzBuzzというプログラムがあります。1 - 2 ときて Fizz、つぎに 4 ときて Buzz、そして 12 - 13 - 14ときて FizzBuzz ですね。タイマーを使ってJavaScriptで書いたらこんな感じ。 Fizz Buzz var count = 0; function fizzbuzz() { count += 1; if (count % 15 === 0) { console.log("FizzBuzz"); } else if (count % 5 === 0) { console.log("Buzz"); } else if (count % 3 === 0) { console.log("Fizz"); } else { console.log(count); } } setInterval(fizzbuzz, 600); プログラミングの最初の方の課
WebModular の g200kgさんがMIDIメッセージを介してウェブ楽器を連携させるという面白いことを考えてくれたので早起きして便乗しました。 お客様の中にWebシンセプログラマはいらっしゃいませんか http://www.g200kg.com/archives/2012/06/web-1.html 仕組みはとても簡単で window.postMessage で MIDIメッセージ(この音を出して下さいとか止めて下さいという信号)を送る。送られた側は処理して音を出す。これだけです。 これの何が便利なのかというと、インターフェイスと音源が完全に分離できるので、めちゃくちゃ凄いシーケンサーを誰かが書いて音を出すのは別の人の書いたコードを使うとか、あたり一面に様々なシンセサイザーに囲まれて演奏するみたいなことができる。 僕も timbre.js という音を出すライブラリを作っているので対
そろそろWebベースのシンセサイザーもなんとか作れる環境が整いつつあるのですが、今のところはまだ、音源部とシーケンサー部をまとめてクローズドなアプリにするしかありません。今後を考えるとここをどうするかが課題です。 やはり複数の楽器を同期運転したいですよね!! Web楽器のurlを指定してプラグインのように使う、というのができればなあ・・・ という事でまじめに考えて見た。 HTML5のpostMessageでクロスドメインの連携ができますので、ここにMIDIメッセージをのせてホストからWebシンセに送ります。パフォーマンスの問題もあるので今のところはやりとりするのはMIDIのみとして、音の出口はとりあえずそれぞれのWebシンセが WebAudioAPIなりを叩いて勝手に出します。 postMessageで送れるのは文字列のみなのでこんな感じのフォーマットにします。 "midi,90,3c,6
: サイト内検索 トップ 製品 KnobMan 偏ったDTM用語辞典 過去記事一覧 ソフトウェア/VST WebMusic その他 g200kg > WebModular 2017/01/02WebModular « Prev WebModular Next » Tweet Japanese | English HTML5+Javascriptで書いたモジュラーシンセサイザーです。 Javascriptのソフトシンセでリアルタイムに音を合成しています。 FirefoxまたはChromeでアクセスする事をおすすめします。 InternetExplorer/Opera/Safari などのWebAudioAPI/AudioDataAPIをサポートしていないブラウザでは JavascriptとFlashを組み合わせて音を出すテストをしています。これらのブラウザで音を出すには 「Flashプラグイ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く