You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
A lightweight JavaScript library that wraps the Web Audio API, abstracting away the AudioContext, and simplifying node creation and audio routing. It provides some extremely powerful and flexible methods for looping and manipulating samples that allow for both temporal precision and musical expressiveness. Download / Install Download blip.js or blip.min.js Using bower: $ bower install blip Blip he
またか。と言われてしまいそうだけど、またウェブ楽器プログラミング用のライブラリを作った。 以前に timbre.js というライブラリを作ったのだけど、それの刷新版という感じです。 デモ ドキュメント 名前の由来 特徴1: 機能性よりパフォーマンスを重視 以前は多くの動作環境をサポートするためにすべての信号処理を JavaScript で書いていたのですが、それゆえにパフォーマンスに問題があって(Issueでよく指摘された)、neume.js では IE や node.js での動作を諦めて Web Audio API の機能を大活用することでパフォーマンス問題を解決しました。デモでは three.js や gretro と一緒に動作する様子が確認できます。 特徴2: Web Audio API の面倒な部分を抽象化 Web Audio API は多機能なんだけど、部品が細かすぎて使いこな
In Firefox 32, the Web Audio Editor joins the Shader Editor and Canvas Debugger in Firefox Developer Tools for debugging media-rich content on the web. When developing HTML5 games or fun synthesizers using web audio, the Web Audio Editor assists in visualizing and modifying all of the audio nodes within the web audio AudioContext. Visualizing the Audio Context When working with the Web Audio API‘s
<mui-rack id=“fmk1”></mui-rack> <mui-rack id=“delay”></mui-rack> <mui-rack label=“keyboard”> <mui-vkey id=“vkey”></mui-vkey> </mui-rack> HTML var fmk1 = WX.FMK1(); var delay = WX.StereoDelay(); fmk1.to(delay).to(WX.Master); MUI.buildControls(fmk1, ‘fmk1’); MUI.buildControls(delay, ‘delay’); MUI.$(‘vkey’).addTarget(fmk1); JS
What is Flocking? Flocking is a JavaScript audio synthesis framework designed for artists and musicians who are building creative and experimental Web-based sound projects. It runs in Firefox, Chrome, Safari, Edge on Mac OS X, Windows, Linux, iOS, and Android. Flocking is different. Its goal is to promote a uniquely community-minded approach to instrument design and composition. In Flocking, unit
開発中に node.js でもテストできるように Web Audio API のテスト用APIを書いた。 最終的なオーディオ処理の結果については耳で確認するしかないのだけど、音を聞くまでもない段階のときに AudioNode(音を出す部品) がどう接続されているのかを調べたりできる。便利だと思うけど、これがあって嬉しい人は少ないと思う。あるのはインターフェースと型のチェックくらいで、信号処理的なのは一切していません。こういう事ができます。 グラフの確認 JSON化すると接続状態が返ってくるのでテストできる。 var ctx = new AudioContext(); var osc = ctx.createOscillator(); var amp = ctx.createGain(); osc.type = "sawtooth"; osc.frequency.value = 220; o
http://evil.gmork.in/ fand/evil · GitHub 何これ ブラウザでシンセサイザー、サンプラー 作曲、演奏、公開できる Google Chromeのみ対応 追加予定の機能 オートメーション機能 オートメーションあると、できることめっちゃ広がる エフェクト追加 俺が使いたいのでやります 歪みの種類増やす、フィルター、フェイザーとか ログイン機能 ログインして、ユーザが自分の曲の編集とか、プレイリスト作ったりできると便利そう バグや要望は@amagitakayosiまで 待ってる 参考 音素材 Beat Production - Download Free Sound Kits, Drum Samples, Loops, SoundFonts, VST Plugins and more H3000 Reverberation Impulse Response P
CoffeeColliderという音響プログラミング言語を作っていたら、SC名古屋のSuperCollider勉強会からお呼びがかかって、僕は見知らぬ土地でボロ雑巾のようにされるのか.. と、お腹にジャンプを入れて近鉄電車で出向いたら、かなり楽しい時間が過ごせた。ここ5, 6年くらいは友達以外の人に向かって喋る機会ってほとんどなかったのだけど、自分の考えていることを整理して人に伝えるっていうのも結構楽しいもんだと分かった。人最高。まあ、帰りに大阪の駅で人は最悪だと思い直したけど。 勉強会で使った資料 スライド 要約すると 最近は JavaScript で音響プログラミングができる JavaScript は手軽だしWebは共有しやすくて良い でも難しい 簡単にしてやんよ Yes, CoffeeCollider !!!! という内容です。 あと資料、でもページの使い方とかクラスの使い方とかざっ
Firefoxの AudioDataAPIのシミュレータを作ってみました。 これを入れるとIEとかOperaとかのオーディオ系APIが使えないブラウザでそれらしい動作をする、というものです。 ブラウザのオーディオ系アプリ環境は充実しつつあるのですが、とにかくIEで動かない事には誰でも使えると言える状態にはならないですね。残念ながらIE10でもまだオーディオAPIはサポートされていないので、結構先の話になってしまいそうなのがもどかしいです。という事でまだ実験的なものですけどやってみました。 Audio Data API仕様 ■なぜ今更 AudioDataAPI なのか すでにFirefoxもWebAudioAPIへの対応を表明していてAudioDataAPIは消え去る運命ですが、WebAudioAPIはかなり規模が大きいので、ちょっと作ってみるというわけには行きません。AudioDataAP
新しく書き直した。 以前のバージョンと全然互換性がなくて申し訳ないのだけど、可読性とかかなり使い勝手が良くなっていると思います。ライブラリ自体のコードも分かりやすくなっているはず。 http://mohayonao.github.com/timbre.js/ Chrome, Safari, Firefox あと node.js で使えます。 あとついでに SuperCollider みたいな関数を集めたものも用意しました。 http://mohayonao.github.com/subcollider.js/ timbre.js と合わせてアルゴリズム的なものを作るのに使えます。 デモ どういうことができるのかは簡単なデモで確認できます。 http://mohayonao.github.com/timbre.js/beatbox.html http://mohayonao.github.c
Chrome24 と 自作ライブラリのデモページ で確認。 OSごとに以下のバッファサイズを使用するとブチブチにならない。 OS BufferSize OS X 1024 Windows 7 1024 Windows XP 4096 Linux (Ubuntu) 8192 たぶんこんな感じで切り分けする。 var bufferSize = 1024; var ua = navigator.userAgent; if (ua.match(/linux/i) { bufferSize *= 8; } else if (ua.match(/win(dows)?\s*(nt 5\.1|xp)/i)) { bufferSize *= 4; } 簡単にチェックできるページもつくった https://dl.dropbox.com/u/645229/webaudioapi/scriptnode.html
node.js でも信号処理簡単インターフェイス pico.js が使えるようになりました。 もともとMac版のみ対応していたのだけど、便利なモジュールを教えてもらってクロスプラットフォーム対応できた(MacとUbuntuでしか確認していないけど)。npmでインストールできます。 $ npm install node-pico ブラウザで音を出すプログラムを書くときに、コードを書いてブラウザに移動して再読み込みしてボタンを押す、みたいなやり方をしていてだるかったのだけど、かなり楽になった。 node-dev はコードが更新されるたびに再起動してくれるので、エディタでコードを修正して保存するたびに自動で再生が始まる。再生が始まると困るときは、 module.exports をコメントアウトする。song.js はブラウザでも使えるようにしておくと後々も楽で良い。 下のコードには書いていないけ
Web Music Developers JP Advent Calendar 2012 の 12日目です。 前回の記事では信号処理用の簡易インターフェイスを紹介しましたが、今日は内部でどういう処理を行なっているのかという話です。 といっても、音を作るための高度な信号処理の話ではなくて、各APIごとの簡単な使い方とブラウザによって使えるAPIが異なるだけでなく、同じAPIでもOSによって動作が異なったりバグっぽいのがあったりという状態なので、それらをできるだけ回避するためのバッドなノウハウ集といった具合、地獄の様相です。 Web Audio API編 やり方 まず使えるかどうかを判断します。 if (typeof webkitAudioContext != "undefined") { } Web Audio APIでは new webkitAudioContext() で作られる Aud
便利なのでMMLを使うことが多くて、そのたびにMMLシーケンサーを書いている。 おおまかな流れとして MML文字列をトークン配列化する 再生している音が終ったら次のコマンドを参照して実行 終るまで のような感じなんだけど、良い書き方が分からない。たとえば c&d のようなポルタメントの処理 (ドの音からなめらかにレに遷移する) だと、c のコマンドの時点で & と d が続くことを知っていないといけないとかあって、そのあたりを毎回試行錯誤して書き直している。良い方法あるのだろうけど.. それはそうと、MMLのコマンド切り出しに関しては洗練されてきた感があって、以下のようなコードを使っている。優先順に正規表現とオブジェクト化する定義を書くだけで新しいコマンドを追加できるのでかなり楽。 compile = (mml, MMLCommands)-> commands = [] checked =
全国100人くらいのVSTプラグイン作家の方こんばんは。今日は皆さんおなじみのadelayのウェブブラウザバージョンを作ってみたいと思います。最近のウェブブラウザはAudio APIが急速に充実してきて簡単に音声信号処理ができるようになってきました。 adelayといえばVST 2.X SDKのサンプルコードとして大変なじみ深く、こんなシンプルなコードであのディレイが作れてしまうのかというインパクトもあり、プラグイン作家であればアルゴリズムをそらで暗唱できるくらい体に染み付いているかと思います。(←大げさ) 一方、Web Audio APIで用意されているDelayNodeは単に入力信号を遅延させて再生するものでDry/Wetのバランス設定やFeedbackもありません。ディレイプログラムはGainNodeなどと組み合わせて作ることが想定されているものと思いますが入門者が学習するにはちょっ
API Pico.play(audioprocess: function): void Pico.pause(): void Pico.sampleRate: number Pico.bufferSize: number Pico.isPlaying: boolean
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く