â
ããæ°å¹´ã¯ä½ãæãã¤ãããã¨ããããrubyã§æ¸ãã¦ã¢ã¤ãã¢ã®æè¦ãã¤ããã®ããã¿ã¼ã³ã§ä»äºã ã¨ä¸»ã«linuxãä¸å¿ã¨ããä½å ¥ã£ã¦ããããããªãè²ããªãã·ã³ã§åãããªãã¨ãããªãã¨ããæé»çãªå¶ç´ããããããããã¨ãèªåã®å ´åã¯ä»ã¾ã§ã ã£ããPerlã§æ¸ãã¦ããã ãã©Perlã«ããã»ã©é¦´æã®ãªã人ã«å§ããã®é ·ãªãããããã®ã§è²ããªã¨ãã§åãããã¨ã«ãªãããã ãã©ç°¡åãªãã¼ã«ã¯linuxæ¨æºã§å ¥ã£ã¦ã¦ã³ã¼ãã®è¦ãç®ã綺éºãªpythonã§æ¸ããã¨ãã¦ãã¦ãå®éã«ããã¤ãæ¸ãã¦ãã
python絡ã¿ã§ãåããæ°ã«ãªã£ã¦ãSphinx + blockdiag/seqdiag使ã£ã¦ä»äºã®ããã¥ã¡ã³ãæ¸ãã¦ã¿ã¦ããã©ãæ®éã«blockdiagã®æ¸ãæ¹ã§OmniGraffleã§æããå³ã®ãããªè¦ãç®ã«ãªãã®ãããæãã
reStructuredTextã®åå¨èªä½ã¯ç¥ã£ã¦ããã©æ¸ãããã¨ããã¾ããªãã¦ãã®çç±ãèãããã ãã©pythonã«çµ¡ã¾ãªãã¨ããã§ç®ã«ããæ©ä¼ãå°ãªãã£ãããã ããããmarkdownã¯github以åããç®ã«ããæ©ä¼ãå¤ãã£ãããã«æããå人çãªå種ã¡ã¢ãã¾ã¨ãã¯emacsã®org-modeã§æ¸ãã¦ãããã£ãã¡ã¢ãã¡ã¤ã«ç½®ãå ´ã§ ls | grep .org$ | wc -l ããã151åãã¡ã¤ã«ããã£ããorgã«ã¯ã¨ããããæ°ã«ãªããããã¯åä½(vlad, q4m, beat_detection, kinect_openNI, chuckã¨ã)ã§ãã¡ã¤ã«ã«ã¡ã¢ãã¦ãã¦ãã¡ã¢ãã¡ã¤ã«ç½®ãå ´ã«ããä¸çªå¤ãorgã®ã¿ã¤ã ã¹ã¿ã³ãã«ããã¨orgã§æ¸ãå§ããã®ã2009å¹´ç§é ã ã£ãããã®æ¥è¨ã®æ´æ°é »åº¦ã®ä½ä¸ã«å½±é¿ãã¦ãããã«è¦ããã
ãããããã¨èããªããããããã°æ¥è¨æ´æ°ãã¦ãªããªã¼ã¨æã£ã¦ã¯ã¦ãªãã¤ã¢ãªã¼ã¿ããæçµæ´æ°ãä¸å¹´åã®å æã§ä»æ´æ°ããã¨ããããã ã£ãã®ã§æ´æ°ãã¦ã¿ã¾ãããæ´æ°ã£ã¦è¨èããªã¤ãããæãããã
ruck
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管çãã¹ã±ã¸ã¥ã¼ãªã³ã°ãæéå¶å¾¡ãæ å½ããshredulerã¯ãã®ã©ããã¼ã¨ããæããå®éã«ä½¿ãã¨ãã¯shredulerã¤ã³ã¹ã¿ã³ã¹ã®make_convinientã¨ããã¡ã½ãããå®è¡ããã¨module_evalãincludeã§ä¾¿å©ãªã¡ã½ãããããã¤ã追å ãããclockãç´æ¥è§¦ããªãã¦æ¸ãããã«ãªã£ã¦ãã以ä¸ã¯readmeããmake_convinient使ã£ã¦ãã³ã¼ãã®æç²
@shreduler = Ruck::Shreduler.new @shreduler.make_convenient spork do %w{ A B C D E }.each do |letter| puts "#{letter}" Ruck::Shred.yield(1) end end spork do %w{ 1 2 3 4 5 }.each do |number| puts "#{number}" Ruck::Shred.yield(1) end end @shreduler.run
shredã®å®è£ ã¯ruby 1.8ç³»ã¯callcc, 1.9ç³»ã¯Fiberã使ã£ããã®ã«ãªã£ã¦ãã¦shreduler/clockããå¶å¾¡ããã¨ãã«å®éã®å®è£ ãæèããªãã
Ruck::Shred.yieldã¡ã½ããã¯shredããshredulerã«å¶å¾¡ãæ»ãããã®ã¡ã½ããã§ãyieldã«æ¸¡ããæéã¨shredèªèº«ãshredulerã®clockã«å¯¾ãã¦åã¹ã±ã¸ã¥ã¼ã«ããããæ示ãã¦shredãåæ¢ãããshredåæ¢ã¯fiberå®è£ ã ã¨åã«Fiber.yieldããããã«ãªã£ã¦ãã¦ãã®ãããã¯é¢ç½ãã£ãã
event_clockã¯clockã¨ä¼¼ããããªã¤ã³ã¿ãã§ã¼ã¹ãæã¤ãæéã§ãªãã¤ãã³ãã«å¯¾ããshredã¹ã±ã¸ã¥ã¼ãªã³ã°ãè¡ããclockãæéã§ã½ã¼ããããé åãªã®ã«å¯¾ãã¦event_clockã¯ã¤ãã³ãããã¼ã¨ããè¾æ¸ã¨ãã£ãæãã
RubyKaigi2010ã§ã®ãã¬ã¼ã³ã§ã¯strong timing, virtual timeã¾ããã®èª¬æã«éç¹ãç½®ããã¦ãããé常ã®threadã¨ã®æ¯è¼ãfast_forwardã«ããvirtual timeã®å¶å¾¡çãthreadã¨ã®æ¯è¼ã§åºã¦ãããåæåãå
ã«ãã£ã¦åã¹ã¬ããã®æéçµéã¯åæã ããã¿ã¤ãã³ã°ããããªãã¨ãããããªèª¬æå³ã®æå³ãã³ã¼ããèªãã§ããã¯ç解ã§ããã
é¢é£:
- ruck-ugen: ChucKã§ããã¨ããã®UGenãæ å½ãã¦ãã¦ãããããããã¦ä½¿ããã¨ã§ChucKã®ãããªé³çæãå®ç¾ã§ããã
- ruck-realtime: clockã®fast_forwardã¡ã½ãããä¸æ¸ãããã¢ã¸ã¥ã¼ã«ã§ãVMã®ã¹ããããé²ããæéã調æ´ãã¦ãããããã©ã«ãã®fast_forwardå®è£ ã ã¨VMä¸ã§ã®æéã¨ãªãå®æéã¨ãºã¬ãçããã®ã§fast_forwardä¸æ¸ãã§ãã®å·®åãåããããã¨ãããã¨ã ã¨æãã
ChucKã®è»½éã¹ã¬ãã
Chuckã®論文ãæãèªã¿ããããã¼ã ãã¼ã¸ãããã«ãããããã«ChucKã¯ãªã¢ã«ã¿ã¤ã é³å£°åæ/ä½æ²/ããã©ã¼ãã³ã¹ãç®çã¨ããã·ã¹ãã ã§ãå¼·åã«æ£ç¢ºãªæé(strongly-timed)ãªãã¨ãã¦ãªã«ãã¦ãããè«æã§ã¯ãã®æé管çã®é¨åã¨è»½éã¹ã¬ããã®é¢ä¿ã«ã¤ãã¦ã触ãããã¦ããã
ChucKã§é³ãåºãã«ã¯ãD/A Converter(dac)ã¸ä½ããã®ãªã·ã¬ã¼ã¿ã¼ãæ¥ç¶ããå¿
è¦ãªããªã·ã¬ã¼ã¿ã¼ã®è¨å®ãããå¾ãé³ããªããããæéãæå®ãããæå¾ã®é³ããªããæéæå®ã®åã¾ã§ãChucKã§ã®è»½éã¹ã¬ããã®å®è¡åä½(Shredã¨å¼ã°ãã¦ãã)ã¨ãªããé³´ããé³ã®æéæå®ããæç¹ã§é³å£°ã¨ã³ã¸ã³ã«ãã£ã¦é³å£°å¦çãããShredåãæ¿ãå¦ç(Shredulerã¨å¼ã°ãã)ã§ãã¥ã¼ã«ããShredãå¦çãããã以ä¸ã¯åä¸Shredæã®ããã¼(è«æã ã¨p.77, fig.3.34)
è¤æ°Shredã並åå®è¡ããå ´åã¯sporkã«Shredã¨ãã¦å®è¡ããé¢æ°ã渡ããOSCãMIDIçã®å¤é¨ä¿¡å·ã¤ãã³ãã¸ã®åå¿ã®ããã®ãã³ãã©ç»é²ãsporkã§è¡ãããã®è¾ºãã¯javascriptãªããã§ã¤ãã³ããã³ãã©ç»é²ããã®ã¨åããsporkã¯å å²ãã¹ãã¼ã³(spoon + fork)ã®ãã¨ãªã®ã§forkæèãã¦ãã¯ãã
以ä¸ã¯æéæå®ã®é¨åã ãæãåºããã³ã¼ãä¾ã
100::ms => now
'=>'ã¯ä»£å ¥æ¼ç®åã¿ãããªãã®ã§ãä¸è¨ã¯ã³ã¼ãå®è¡æãã100msçµéããã¾ã§å¾ æ©ãã¨ããæå³ã«ãªããã½ã¼ã¹ã¯è¦ã¦ãªããã©ä¸è¨ã®ãããªnowã¸ã®ä»£å ¥ãå®è¡ãããæç¹ã§shredulerã«å¶å¾¡ãè¿ãã¦ä»ã®shredå¦çããã¦ããã¨ãããããªè¨è¿°ãè«æä¸ã«ãã£ããnowã¸ã®durationä»£å ¥ã§ãªãme.yield();ããã¨æéãã¾ããã«ãã®å ´ã§shredulerã«å¦çãè¿ããããã®æ¸ãæ¹ã ã¨è»½éã¹ã¬ããããµãã¼ãããä¸è¬çãªããã°ã©ãã³ã°è¨èªã®å®è¡åä½åãæ¿ãã«ä¼¼ã¦ããã
ChucKã§è»½éã¹ã¬ãããæ¡ç¨ãã主ãªã¡ãªããã¯ãOSã®ã¹ã¬ããæ©æ§ã§ãªãã¦ã¼ã¶ç©ºéã®å調ã¹ã¬ããã使ããã¨ã§ã³ã¼ããæ¸ã人ã®æå³ããã¿ã¤ãã³ã°ã§Shredãå¶å¾¡ã§ãããã¨ãã¨æ¸ãã¦ãã£ã¦ããã«ã¤ãã¦ã¯æé軸ãæã¤ã¡ãã£ã¢ãæ±ããã®ãããã¨æããããã¨ã¯æ®éã®threadã ã¨dead lockæ°ã«ããã®å«ã¨ãã¹ã±ã¸ã¥ã¼ã©ãã¦ã¼ã¶ç©ºéã§åãã¦ãããã«ã¼ãã«ã«æãå ¥ããã«æé©åã§ããã¨ãæ¸ãã¦ãã£ã¦ãããã¯æ®éã®ããã°ã©ãã³ã°ã¨å¤ãããªãã
è«æä¸ã§ã¯ä»ã«ãã³ã³ãã¥ã¼ã¿ã使ã£ãä½æ²ã·ã¹ãã ã®æ´å²ã¨ããªã¢ã«ã¿ã¤ã ã«ã³ã¼ãå¤æ´åæ ããããã®VMå¨ãã®è©±ã¨ãããã©ã¼ãã³ã¹ã¨é¢ä¿ããon the fly programmingã®è©±ã¨ããã£ã¦é¢ç½ãããªæãã§ããã
â
Thomas Ruffのインタビューãèªãã ãå 容ã«ã¤ãã¦ã¯åãã©ããã§ä¼¼ããããªãã®ãèªãã ãã¨ããã£ãã®ã§ç¹ã«æããã¨ã¯ãªãã£ãã®ã ãã©ã人ããnudesãããã¨èãã¦ããªããå°å·ç©ã¯è¦ããã¨ãªãã£ããªã¨æã£ã¦ãããã§jpegsè²·ã£ããæã£ã¦ããã大ãããã®ãå±ãããä¸è¬çãªåçéãã大ããç´ã«å°å·ãããåçã§DCTの8x8ブロックの影響ãè¦ããããããã§æ¤ç´¢ãã¦è¦ãããã®ã¨ã®éãã¯åªä½ã®æ§è³ªãé¤ãã°å¤§ããã ããªãã ãã©ãããã
ããã¨1å¹´ãããåããè¦ãããªã¼ã¨æã£ã¦ãvalerie phillipsã®i can't believe a girl is playing me metallicaãè¦ãããã¡ãã¯æã£ã¦ããããå°ããæ¬ã§ãviktoriaããããã
å¹´å ±2008-2009
確ã2007å¹´9æãã£ã±ãã§åã®ä»äºãè¾ãå°±è·æ´»åããããã®ãå§ããã®ã¯ä¸å¹´å¾ã®2008å¹´10æé ã決ã¾ã£ã¦åãåºããã®ã¯2009å¹´2æãªã®ã§17ã¶æ好ããªäºãã¦ãã
ä»ã®ä¼ç¤¾ã«ã¯perlæè¡è
ã¨ãã¦å
¥ã£ãã®ã ãã©è²ã
èæ
®ããçµæèªåã®æ
å½ç®æã¯rubyåãããã¨ã«ããã移æ¤ä½æ¥ããªãã¤ã¤ç¾è¡ãã¼ã¸ã§ã³ã®ã¡ã³ã/ãã°ãã£ãã¯ã¹/ä»ã¾ã§å¯¾å¿ãã¦ãªãã£ãå
¥åå½¢å¼ã«å¯¾å¿ããããã®ä¿®æ£ã¨ãã£ãæãããã®ãµã¼ãéããã次ã¯ãã®æ§æã«ãããã¨ãã¯ä»ã¾ã§ãªãã£ãã®ã§æ¥½ããã
echonestããããããã¦rubyのechonestモジュールã®å ãã¿æ¸ããããruby-echonest使ããã¨åæã§scissorã«ä¹ã£ã¦ビデオ切り刻むモジュールæ¸ããããããhttp://www.youtube.com/user/rtk2106#g/uã«ããæ¤ç´¢é¿ãã£ã½ãã¿ã¤ãã«ãä½ä¾ã§ã³ã¼ãã¯gistã®ã©ããã«ããã¯ãããã®æµãã§openframeworkã触ã£ããã ãã©linuxçã®ãããªã¾ããããã¾ãã¡ã§éä¸ã§æ¾ç½®ãããISMIRã«echonestã®äººã¨BBCã®äººãæ¥ã¦ã¦èå³ã¯ãããã©å¹³æ¥ã ãå¦è¡çç¥èãªããããªã®ã§è¡ãã®ã¯ããã¨ããã
- In search of the click track « Music Machinery
- @lindsay.at :: Projects :: Remix (music) :: About the Dissociated Mixes
- melka » Soundscapes
- SoundEchoCloudNest « Music Machinery
- The Echo Nest at Music and Bits, October 21 2009
wonder-wall.comãåºãã¨ãæä¼¼ããããªãã¨ãã£ããã¨ãæãåºããã®ã¨ç¤¾å flashåå¼·ä¼ã§ãªããããã¨è¨ãããã¿ã¤ãã³ã°ã¨ãã£ãã®ã§ä¸é¨åç¾ããã®ãこれã社å flasherã®æ¹ã«ããããã§ãã¼ã³ã¨çºè¡¨ããã°ãããããªãã§ããã¿ãããªäºè¨ããããã ãã©ãããã¯èªåãä»ãããã¨ãããªããã§ããã¨ããã£ã¨ãªã³ã¯è²¼ãç¨åº¦ã«ããã
ä»äºçµ¡ã¿ã ã¨perlããã®ç§»æ¤ã¤ãã§ã«ã§TheSchwartz使ã£ã¦ãã¨ããQ4Mã«ãã¦http://github.com/koyachi/ruby-q4mã¨ãã¯ã¼ã«ã¼ããã»ã¹ç®¡çã«http://github.com/koyachi/ruby-log0xã¨ãä½ã£ã¦ããlog0xã¯å ã 社å ã«ãã£ãããã°ã©ã ãrubyå&社å æ å ±éé¢&WorkerManagerã®å½±é¿åãã¦ä½ã£ã¦ããã®ãããã»ã¹ã¾ããã¨ããã£ã¦ãå½±é¿ã§ä»ã¾ã§ãªãã¨ãªãããç¥ããªãã£ãlinuxã®ä½ã¬ã¤ã¤ã詳ãããªãã¤ã¤ããã
kathy graythonさんのブログããããããã¦ã¨ãããã3å¹´åãããè¦ããNew York Minute Bookãè²·ã£ããæ¬ã®å 容ã¯ããã°ã®ã©ããã«ããªãè¼ã£ã¦ããã©æ¢ãã®é¢åãªã®ã§èå³ããæ¹ã¯æ¢ãã¦ã¿ã¦ãã ããã
ucnvããããããããã£ããgif-glitch, aviglitch, datamoshing, ã¨ãã¨ããå½¹ã«ç«ããªããã©æå·§çãªãã®ã°ããã誰ããè¨ã£ã¦ããã©ãã¬ã¼ã³ãã¼ã·ã§ã³ãã»ã¨ãã©ãã£ã¦ãªãã£ã¦ã ãã§ãã£ã¦ããã¨ã¯æåãªäººãå«ãã¦ãããã®äººãããããã
unicode posterã®ãããããã¦ãã³ã¼ãã°ãªãããããããªã¼ã¨æãå§ãã¦twitterã§ã®æºå¸¯çµµæåã使ããªãæåã³ãã¥ãã±ã¼ã·ã§ã³ã§boxer(o'-')-oã¨ãdecodeunicode,unifaces,newmoticons,twitclipart,TW1TT3Rartã¨ãä»ã«ãããã¨æããã©æ¯è¼çæ®éã®äººãããããã®è¦ã¦çä¼¼ãã¦æèããã«netartã£ã½ããã¨ã§ãã¦ãã®ãããããããåãランダムで表示しておもしろグリフ探すやつä½ã£ãã
ä»å¹´ã¯å²ã¨ã¾ããã«ä»äºãã¦ãæ°ãããã®ã§ç¨ã ã«ãã¦ä»äºã«ä½¿ããªããã¨ããªããããã¾ãããã¼ã ãã¼ã¸ã¨ãã
[çæ´»]
http://d.hatena.ne.jp/koyachi/20081225/1230215365#c
http://d.hatena.ne.jp/koyachi/20081226/1230295429#c1259716255
ã³ã¡ã³ãæ°ã¥ãã¦ã¾ããã§ãããå¿æ´ãããã¨ããããã¾ããæ´æ°ãã¾ãã