タグ

ブックマーク / aike.hatenablog.com (6)

  • Web Audio APIでファミコンノイズを鳴らしてみる - aike’s blog

    おっさんには懐かしいファミコンのノイズ音をWeb Audio APIを使ってウェブブラウザで再現してみます。今聴くとかなり表現力に乏しい感じのノイズですが、当時はこれで宇宙船の推進音や敵機の爆発音、レーザー光線やスネアドラムなど無限にイメージが膨らんだものです。 このファミコンの音源プロセッサRP2A03のノイズは、単純な乱数によるホワイトノイズなどでは再現できません。ノイズ生成のロジックをそのまま実装する必要があります。 RP2A03の詳細やノイズ生成ロジックはニコニコ大百科のFC音源の項に異常に詳しく書いてあります。内容も読み応えがありずっと読んでいられます。僕は何か嫌なことがあったりして気持ちを落ち着けたいときにはこのページをよく読むようにしています。嘘です。 これによるとノイズ生成は以下のC言語プログラムでできるとのこと。ノイズには音程感のほとんどない長周期ノイズと比較的音程感のあ

    Web Audio APIでファミコンノイズを鳴らしてみる - aike’s blog
  • SuperColliderで竹内関数音楽 - aike’s blog

    先日SuperColliderのワークショップに行ってきました。SuperColliderとは音楽・音響をプログラミングするための言語でアーティストや研究者の人が使っているらしいです。 たとえばこんな感じでプログラミングできます。 {MoogFF.ar( Pulse.ar([55, 110], 0.5, Pulse.kr(8).range(0, 1)), MouseX.kr(100, 5000), MouseY.kr(4, 0) )}.play; これは55Hzと110Hzの矩形波を鳴らした音を8Hzでリズムを刻んでさらにMoog風のフィルターをかけるというプログラムです。マウスを横に動かすとフィルターのカットオフ周波数が変化したり縦に動かすとレゾナンスの深さが変化したりします。 ちょっとクセはありますが、RubyやSmalltalkのようなオブジェクト指向の記述方法で音がプログラムできる

    SuperColliderで竹内関数音楽 - aike’s blog
    t_a_o
    t_a_o 2012/07/27
  • WebMidiLinkがわずか40行でなしとげたとてつもないブレイクスルー - aike’s blog

    3日前にg200kgさんが提案したWebMidiLinkという規格がすごすぎていまだに興奮がさめやらない感じ。DTMとWebの世界はいったいこれからどうなってしまうんだろうという気持ちです。 WebMidiLinkは、ひとことで言うと「MIDI over window.postMessage」というようなもので、とてもシンプルなアイデアながら、これまで多くの人が夢想してしかし誰もできなかったWeb楽器のアプリ間接続を実現してしまいました。 けっして複雑な手法ではなく、マスター側約20行、スレーブ側約20行の合計40行程度で誰でも実現できてしまいます。ブレイクスルーはすぐ目の前にあったのです。みんなが模索している中、とてもクレバーでクールな解決方法を提示しました。 Web楽器はまだ新しい技術です。これまでFlashベースやJava Appletベースの楽器アプリがそれなりの数ありましたが、去

    WebMidiLinkがわずか40行でなしとげたとてつもないブレイクスルー - aike’s blog
    t_a_o
    t_a_o 2012/06/29
  • Webシンセ同士で同期演奏しようぜ! - aike’s blog

    僕と同じようにブラウザで動くシンセを開発しているg200kgさんがすごい技術を考案しました。 お客様の中にWebシンセプログラマはいらっしゃいませんか | g200kg Music & Software どういうことかというと、HTML5のpostMessageで簡易的なMIDIメッセージをクロスドメインで送ってWebシンセ同士で同期させるというものです。シンセ側は以下のようなわずか数十行のJavaScriptを追加するだけでスレーブとして制御してもらえちゃいます。 http://aikelab.net/websynth/websynth_message.js 動画をとったのでまずは見てみてください。g200kgさんのサイトから、僕のWebAudioSynthとg200kgさんのWebModularを制御して同期演奏しています。 すごい時代になった……。 Google API Expert

    Webシンセ同士で同期演奏しようぜ! - aike’s blog
  • Web Audio APIとNode.jsでウェブ楽器作った - aike’s blog

    Beatonicaというウェブ楽器をWeb Audio APIとNode.jsで作りました。個々のツイッターアカウントに音をわりあててフォロー関係の人たちの音によって音楽を作るというアプリです。まあ難しいこと考えなくてもログインしてプレイボタンを押すだけで楽しめるのでGoogle Chromeでアクセスしてみてください。 先日のSapporo.jsでこのBeatonicaについて発表してきたので資料を公開します。 Web Audio APIとNode.jsでウェブ楽器作った - Beatonicaの紹介 View more presentations from aike

    Web Audio APIとNode.jsでウェブ楽器作った - aike’s blog
  • 竹内関数で音楽生成 - aike’s blog

    Lisperの人ならみんな知ってる竹内関数(たらいまわし関数)という関数があります。 定義としてはこんな感じ。 そのシンプルな定義からは想像もつかないほど複雑で膨大な再帰呼び出しがおこなわれるとても興味深い関数です。たとえば引数にTarai(10,5,0)を与えると343,073回も再帰呼び出しされたりします。 この関数呼び出しの引数がどのように変化するか知りたくてプログラムを書いて調べてみたところ、Tarai(10,5,0)の場合は3つの引数がそれぞれ0〜10(xは-1〜10)の間で少しずつ変化するなかで、2つの値を固定してひとつの値が下降していくような挙動があったりして、なんだか音楽の3和音のコード進行を思わせるような動き方です。 そういうことなら、ということで実際に音にして聴いてみました。Tarai関数が呼ばれるたびに引数のx、y、zを、0=ミ、1=ファ、2=ソ、……、のように音に割

    竹内関数で音楽生成 - aike’s blog
  • 1