タグ

chuckに関するnbqx69のブックマーク (17)

  • ChucKでsleep sortを実装 - ならば

    sleep sortが面白い。 時間制御といえばstrongly-timedなプログラミング言語ChucK。140字以内を目指した。 sleepする時間の単位が音響信号のサンプリング間隔なので(constant factorの意味で)速い。

    ChucKでsleep sortを実装 - ならば
    nbqx69
    nbqx69 2011/05/23
  • 音の立ち上がり検出 - ならば

    ChucKの音響分析機能を使って何かできないか調べたところ、音の立ち上がり検出が面白そうだったのでやってみることにした。 概要 音の立ち上がり検出([英]onset detection)は、与えられた音響信号の中から、個別の音が鳴り始めた時点を見つける処理である。音楽の場合はそれぞれの音符の始まりを検出する処理で、応用としては音楽信号の情報抽出や検索、自動転写、圧縮にも使われることがあるらしく、"onset detection"で探すと結構な数の論文が見つかる。 後述する短くて良い論文を見つけたので、それを参考にしてほぼリアルタイム(オンライン)に処理するプログラムを書いた。 立ち上がりを検出したら出力用の小さなウィンドウ内部が点滅する。このウィンドウ自体はProcessingで表示していて、ChucKで検出=>OSCでProcessingに通知という仕組み。 結果 ごく単純な入力とそれに

    音の立ち上がり検出 - ならば
    nbqx69
    nbqx69 2011/03/07
    与えられた音響信号の中から、個別の音が鳴り始めた時点を見つける処理。音楽の場合はそれぞれの音符の始まりを検出する処理で、応用としては音楽信号の情報抽出や検索、自動転写、圧縮にも使われることがある
  • automata.cc is for sale at Squadhelp.com!

  • ヨセフスの問題と半音階 - ならば

    ヨセフスの問題の設定で、円形に並ぶn人の人にそれぞれ番号(じゃなくても一意な記号ならなんでもいい)を付けておいて、円から抜けていく順にその番号を並べた列をヨセフスの順列という。順列の末尾は最後まで残る人の番号。 昔同じようなこと書いたが、十二平均律で半音階を構成する音は下の図のようにピッチクラスに基づいて円形に並べることができる(chromatic circle)。 この円に対するヨセフスの順列をヨセフスの音列と呼ぶことにする。勝手に。 nは12で固定なので、スキップする間隔mと最初の音を決めればヨセフスの音列がひとつ決まる。たとえば、mが5で最初の音がCの場合、ヨセフスの音列は(F, A♯, D♯, A, E, C, G♯, G, B, D, F♯, C♯)となる。 ヨセフスの音列を鳴らし続けるChucKのプログラム。 mは定数として設定しておく。最初の音をランダムに選んでヨセフスの音列

    ヨセフスの問題と半音階 - ならば
  • ruck - koyachiの日記

    ruckはChucKの軽量スレッド周りの処理をrubyに移植したもので、RubyKaigi2010でもプレゼンがあった。タイトルだけ見るとゲームの話かと思うけどゲームに関しては少しだけ触れられていてほとんどはruckとChucKの話だった。ChucKは今までにも何度かおもしろそうだなーと思ったことがあったのでruckのコードを読んでみた。ChucKの論文眺めてたのもその為です。 ruckはclock, event_clock, shred, shredulerから構成されている。shredulerに対してshredを登録するとそのshredはshredulerが持つclockに登録される。shreduler実行ループでは以下のような処理が行われている。 clockから現時刻のshred取り出し clock時刻進める 取り出したshred実行 clockがshred管理、スケジューリング、時

    ruck - koyachiの日記
  • ChucKの軽量スレッド - koyachiの日記

    Chuckの論文を斜め読みした。ホームページトップにもあるようにChucKはリアルタイム音声合成/作曲/パフォーマンスを目的としたシステムで、強力に正確な時間(strongly-timed)なこともウリにしている。論文ではその時間管理の部分と軽量スレッドの関係についても触れられていた。 ChucKで音を出すには、D/A Converter(dac)へ何らかのオシレーターを接続し、必要ならオシレーターの設定をした後、音をならしたい時間を指定する。最後の音をならす時間指定の前までがChucKでの軽量スレッドの実行単位(Shredと呼ばれている)となり、鳴らす音の時間指定した時点で音声エンジンによって音声処理され、Shred切り替え処理(Shredulerと呼ばれる)でキューにいるShredが処理される。以下は単一Shred時のフロー(論文だとp.77, fig.3.34) 複数Shredを並列

    ChucKの軽量スレッド - koyachiの日記
    nbqx69
    nbqx69 2010/09/23
  • 同期する拍手のシミュレーション - ならば

    良いコンサートや劇、スピーチの後で拍手が沸き起こるとき、聴衆をまとめる指揮者のような存在はいないので普通は拍手のテンポは人によって全然違う。でも拍手の最中に自然とテンポがほぼ統一されてリズミカルな拍手になることもあって、特に東ヨーロッパでは結構見られる現象らしい。 リズミカルな拍手がどんな感じなのか聴きたければ、意図的に引き起こされた実例をスティーヴン・ストロガッツのTEDトークの1:00あたりから体験できる。意図的なのでこれは「自然と」とは言えないけれど。 拍手だけではなく、ホタルの発光や日ごとの睡眠リズムのように、全体をまとめる存在がないのに自然に起きる同期現象はいろいろな分野で見られる。上でリンクしたTEDトークのテーマがまさに同期現象。 このような同期現象を記述するための数学的なモデルのひとつに蔵モデルというのがある。 蔵モデルを使って同期する拍手をシミュレートしてみた。 Ch

    nbqx69
    nbqx69 2010/07/26
    すごい.おもしろい.
  • LED電球・ライト通販専門店

    It All Starts Here Choose one of the premium plans and enjoy all the greatest features, industry leading performance and top of the class 24/7 live support on the market. Unlimited hardware resources, free domain, SSL & SSH also included! check 1 Website check 300 MB Disk Space check Limited Bandwidth (3 GB) close No Email Account close 24/7/365 Support close Free Domain close Daily Backups close

    LED電球・ライト通販専門店
  • イージングによるグリッサンド - ならば

    イージング([英]easing)とはアニメーションに加速・減速の効果を付けることで、直線的ではない滑らかで自然な動きを実現するために使われる。加速・減速にはいくつか典型的なパターンがある*1。 今回はイージングを音高に適用して、グリッサンド音を作った。 静止画だけの一覧。 プログラムについて。音に関係ある部分のみ。音はいつものようにChucKで鳴らした。イージング処理自体はProcessingの外部ライブラリを使ってProcessing側で実行して、OSCで逐次ChucK側に必要な値(=音高)を渡すようにした。 音高は最後にChucKのStd.mtofで周波数に変換するまでMIDIノート番号で表現しているが、Std.mtofの引数はfloat型で整数に制限されないので*2、特に工夫しなくてもイージングが適用できる。 ChucKのプログラム。イージングの初期設定をProcessing側に送っ

    イージングによるグリッサンド - ならば
    nbqx69
    nbqx69 2010/04/05
  • BAモデルの可聴化 - ならば

    Barabási-Albertモデル(BAモデル)は、複雑ネットワークの主要な性質のひとつである「次数分布のスケールフリー性」を持つグラフを生成するアルゴリズム。 BAモデルの可視化はwonderflでやった。 ChucKを使って可聴化もやったのでここに書く。その前にBAモデルの手順について簡単に。最初に適当なノード数からなる完全グラフを用意して、次のことを所望のノード数になるまで繰り返す。 成長:一個のノードをグラフに追加する 優先的選択:追加するノードからMのエッジを既存のノードに張る。既存のノードは、その次数に比例した確率でM個独立に選択する 可聴化のデザイン。 一回の成長ごとにMのエッジを既存のノードに張るとき、M個の音を同時に鳴らす エッジを張る先のノードの次数が大きいほど音高と音量も大きくする 大きいグラフの生成過程の全体を概観するために一回の成長で鳴らす音の長さは極端に短

    BAモデルの可聴化 - ならば
    nbqx69
    nbqx69 2009/11/16
  • ChucK 1.2.1.3リリース - ならば

    ChucKの最新版1.2.1.3がリリースされた。 最も大きな変更点は、念願のファイル入出力が(実験的に)サポートされたことだ。まだマニュアル化されていないので詳細はよく分からないけど、ファイル入出力用のクラスと、それから言語仕様も追加されている。ChucK演算子(=>)がまたオーバーロードされた。さらに逆向きのChucK演算子(<=)も加わった。UnChucK演算子(=<)もあるし、比較演算の以下(<=)もあるし、なかなかカオスな感じ。 examples/io/以下にファイル入出力のサンプルプログラムが用意されている。例えば、整数がいくつか書き込まれたファイルから読み込んで標準エラー出力に整数を一行ずつ出力するプログラムread-int.ckは次のようになっている。 // default file "int.txt" => string filename; // look at comm

    ChucK 1.2.1.3リリース - ならば
    nbqx69
    nbqx69 2009/10/05
  • 竹内関数 - ならば

    竹内関数を使って音の列を作る試み。単純に引数xを音高の制御に、yとzを時間の制御に使った。 10::ms => dur T; 100 => int F; PercFlut s => JCRev r => dac; .3 => s.gain; .1 => r.mix; fun int tak(int x, int y, int z) { x*F => s.freq; 1 => s.noteOn; y*T => now; 1 => s.noteOff; z*T => now; if (x <= y) return y; return tak(tak(x-1, y, z), tak(y-1, z, x), tak(z-1, x, y)); } tak(10, 9, 5); 録音したもの。 これは可聴化というよりはサウンドアートな方向か。

    nbqx69
    nbqx69 2009/05/10
  • Home

  • 最新版 - ならば

    ChucKのバージョン1.2.1.2がリリースされた。変更点は、動的配列の追加の他、いくつかの修正と機能拡張。詳しくは、リリースノート。 注意点:今回の修正でdacの出力の大きさが今までの倍になる。 - (fixed) dac amplitude no longer halved! NOTE: this increases the gain from before by a factor of 2, or roughly 6 dB!! BEWARE!! 今回のリリースを受けたminiAudicleとThe Audicleの最新版は現在準備中らしい。 ところで、ChucKとminiAudicleのリリースノートを眺めてて気付いたんだが、去年の10月26日にわざわざ太字でウソを書いていた。今さらにもほどがある訂正。 でもminiAudicleの最新バージョン(0.1.3.8)に含まれているCh

    最新版 - ならば
    nbqx69
    nbqx69 2008/07/22
    chuck最新版
  • ワウワウ - ならば

    音色を周期的に変化させて文字通り「わうわう」という感じにするのをワウワウ(ワウ効果とも)という。なんて安直なネーミング…。この効果はフィルタの設定周波数をLFOで変調すると得られる。 SawOsc s => BPF f => dac; SinOsc lfo => blackhole; 2 => f.Q; // レゾナンスの強さを変えると音色も変わる 5 => lfo.freq; 200 => lfo.gain; fun void chcenterfreq() { while(ms => now) lfo.last() + s.freq() => f.freq; // キーフォローのつもり } spork ~ chcenterfreq(); [60, 62, 64, 67, 69] @=> int scale[]; // 四七抜き音階 while(true) { scale[Std.rand

    ワウワウ - ならば
  • [chuck-users] TextMate bundle

    nbqx69
    nbqx69 2007/07/17
    しらんかったー
  • S.M.E.L.T.

    nbqx69
    nbqx69 2007/07/17
    Small Musically Expressive Laptop Toolkit
  • 1