æšæ¥ïŒããããïŒçç±ããªããç§ã¯ãã®é³ã®èµ·æºã«èå³ããããå°ãç 究ããŸããã ç§ã¯åœŒã®è©±ã«æ·±ãæåããŸãããããªããšå ±æããããšæããŸãã ãã®åŸãç§ãã¡ã¯ç¶ããŸã-ãããŠãç§ãã¡ã¯èªåã§ãã®é³ãäœããã¯ãã¿ãšæ¥çå€ãæºåããŸãïŒ
ç§ãèŠã€ããããšãã§ããé³ã«ã€ããŠã®æé«ã®æ å ±æºã¯ãç§ã®æèŠã§ã¯ã2005幎ã«åªããMusic Thingããã°ã§å ¬éããã圌ã®å®å šãªé»æ°é³é¿æ§æã§ãã ãã¡ããæçš¿ãžã®ãªã³ã¯ã§ãã
é³ã«é¢ããããã€ãã®äºå®ïŒ
- 1982幎ã«ãžã§ãŒã ãºã¢ã³ãã£ã ãŒã©ãŒå士ã«ãã£ãŠäœæãããŸãã ã
- æŽå²ã®ããæ¥ã1æ¥4,000åãã»ãŒ20ç§ããšã«å€±ãããŸããïŒ ã ãŒã©ãŒå士ããã®åŒçšïŒ
ãTHXã®ãµãŠã³ãã¯ãäžçã§æã人æ°ã®ããã³ã³ãã¥ãŒã¿ãŒé³æ¥œäœåã§ãã æ¬åœãã©ããã¯åãããªããããã£ãããã§ããïŒ
- ãªã¢ã«ã¿ã€ã ã§é³ãåæã§ããASPïŒAudio Signal ProcessorïŒã³ã³ãã¥ãŒã¿ãŒã§äœæãããŸãã
- 20,000è¡ã®Cã³ãŒãã®ããã°ã©ã ã¯ãASPã§åçããããã®ããŒã¿ãçæããŸããã çæãããããŒã¿ã¯ãASPã§åŠçããã250,000è¡ã§æ§æãããŠããŸããã
- é³å£°çºæ¯åšã¯ãããžã¿ã«åããããã§ãããŒã³ãä¿¡å·ãšããŠäœ¿çšããŸãã Murerå士ã¯ããµã³ãã«ã«çŽ12ã®é«èª¿æ³¢ããã£ãããšãæãåºããŸãã ASPã¯ããã®ãããªçºæ¯åšããªã¢ã«ã¿ã€ã ã§30åå®è¡ã§ããŸãïŒæ¯èŒã®ããã«ãç§ã®ã©ãããããã¯ãããã®çºæ¯åšã®ãã¡1000å以äžãé害ãªãåŠçã§ããããã«ãªããŸããïŒã
- ãµãŠã³ãèªäœã¯èäœæš©ã«ãã£ãŠä¿è·ãããŠããŸãããåé¡ã¯æ¬¡ã®ãšããã§ããDrãMurerã®ã³ãŒãã¯ä¹±æ°ãžã§ãã¬ãŒã¿ãŒïŒçæããã»ã¹ïŒã«äŸåããŠãããæ¯åãµãŠã³ãããããã«ç°ãªããŸãã ãããã£ãŠãããã»ã¹èªäœããèäœæš©ã«ãã£ãŠä¿è·ãããŠããããŸãã¯ãä¿è·ã§ããããšèšã£ãŠãå®å šã ãšã¯æããŸããã é³èªäœãã¯ããç¹å®ã®ãµã³ãã«ã¯ä¿è·ãããŠããŸãã
- ãµãŠã³ãã¯ã1983幎ã«åå ¬éãããåã«ãTHXãã¬ãŒã©ãŒãReturn of the Jediãã§ããã¥ãŒããŸããã
- ããæç¹ã§ã®ããã»ã¹ã®çæç¹æ§ãåé¡ã«ãªããŸããã The Return of the Jediã®ãªãªãŒã¹åŸãå ã®Deep Noteã¬ã³ãŒãã¯å€±ãããŸããã Murerå士ã¯äŒç€Ÿã®ããã«äœåãåçŸããŸãããã圌ãã¯ããããªãªãžãã«ã®ããã«èãããªãããšãåžžã«äžå¹³ãèšããŸããã æçµçã«ãå ã®ã¬ã³ãŒããèŠã€ãããå®å šãªå Žæã«ä¿åãããŸããã
- å士 Dreã¯é³æ¥œã§ãµã³ãã«ã䜿çšããèš±å¯ãæ±ããŸãããã圌ã¯æåŠãããŸããã 圌ã¯ãšã«ããããã䜿çšãã蚎èšãèµ·ãããã
- Janis XenakisïŒ1954ïŒã«ããMetastaseisã®äœåã«ã¯ãéåžžã«ãã䌌ããªãŒããã³ã°ã¯ã¬ãã·ã§ã³ãããããŸãïŒä»ã®äœæ²å®¶ã®ä»ã®äœåãšåæ§ïŒã ããããDeep Noteã®ããã«ãåäžã®ããŒã³ã§å§ãŸããå®å šã«åé³ã§ã¯ãªããå調æŽãããããŒã³ã¯ã©ã¹ã¿ãŒã§çµãããŸãã ç¹èš±åºé¡ããã®é²é³ã¯ããã§èãããšãã§ããŸã ã
å¿ ãé³ãèããŠãã ãããDeepNoteãåäœæãããšãã¯ããã®ç¹å®ã®é²é³ãåç §ããããã§ãã
ãµãŠã³ãåæã«çæããåã®ããã€ãã®æè¡ç/çè«çäºå®ã¯æ¬¡ã®ãšããã§ãã
- ç§ã®èŠ³å¯ïŒç¹èš±åºã®ãŠã§ããµã€ãããã®æåã®ãšã³ããªã§ã¯ãã¡ã€ã³ããŒã³ã¯DãšEbã®éã§ãããæ°ããããŒãžã§ã³ã§ã¯åºæ¬å€ã¯EãšFã®éã§ããå ã®å®æ°D / Ebã䜿çšããŸãã ééã£ãŠããªããã°ãæ°ãããªãã·ã§ã³ã¯éåžžçããªããŸãã æããã«ãç§ã¯ç¹èš±å±ã«æåºããããªãã·ã§ã³ã奜ãã
- Murerå士ã«ãããšïŒãããŠç§ã®è³ã§ã確èªãããïŒãæçã¯200 Hzãã400 Hzã®éã®ã©ã³ãã ãªåšæ³¢æ°ã«èª¿æŽãããçºæ¯åšããå§ãŸããŸãã ãããããªã·ã¬ãŒã¿ãŒã¯åã«ãã¶ãŒã ãã§ã¯ãããŸãã-åšæ³¢æ°ã¯ã©ã³ãã ã«å€èª¿ãããã¹ã ãŒãžã³ã°ãã£ã«ã¿ãŒã䜿çšããŠããŒã³ã®ã©ã³ãã ãªé·ç§»ãæ»ããã«ããŸãã ããã¯ãã¯ã¬ãã·ã§ã³ããå§ãŸããŸã§ç¶ããŸãã
- ã¯ã¬ãã·ã§ã³ãå éšããã³ãµãŠã³ããã©ã°ã¡ã³ãã®æåŸã§ã¯ãã©ã³ããã€ã¶ãŒã¯ãªã·ã¬ãŒã¿ãŒã®åšæ³¢æ°ãå€èª¿ãããããã©ã®æç¹ã§ãå®å®ããŠããŸããã ããããã©ã³ãã ã¹ã€ãŒãã®ç¯å²ã¯éåžžã«çããããèªç¶ãªé³/åå±é³ãè¿œå ãããŸãã
- Murerå士ã¯ãããžã¿ã«åããããã§ããµãŠã³ãã®ã¹ãã¯ãã«ã«ã¯çŽ12ã®ç°ãªãåé³ããã£ãããšãæãåºããŸãã
- ç§ã®ç¥ãéãããžã§ãã¬ãŒã¿ãŒã®å€ïŒèäœæš©ãååŸããããã«äœ¿çšãããŠããïŒã¯æžé¢ã§å ¬éãããŠããŸããã ã ãŒã©ãŒå士ã¯ãTHXããèš±å¯ãåŸãã°ãèšé²ã§ãããšèšããŸãã ããããé³ãäœãçŽãå¿ èŠã¯ãªããšæããŸãã
- ç§ã®æèŠã§ã¯ããã£ããŒã¬ã®é³ïŒæè¡çã«ã¯åé³ã§ã¯ãããŸããïŒã¯ãåºæ¬é³ã®ãªã¯ã¿ãŒããå ããã ãã§ãã ãããã£ãŠãåäœæãããšãã¯ãã©ã³ãã ã«ãã¥ãŒãã³ã°ãããïŒ200ã400 HzïŒãªã·ã¬ãŒã¿ãŒããå§ããäœD / Ebã®éã®ãããã«ãªã¯ã¿ãŒããé©çšããããšã«ãããå€å°è€éãªã¹ã€ãŒããäœæããŠçµäºããŸãã
ããã§ã¯å§ããŸãããã ããã§ã®ç§ã®äœæ¥ããŒã«ã¯SuperColliderã§ãã ç°¡åãªãµã³ãã«ããå§ããŸãããã ãœãŒã¹ãšããŠãã³ã®ãªæ³¢ã䜿çšãããã®ã§ãããå¶æ°æåãšå¥æ°æåã®è±ãã§èª¿åã®ãšããã¹ãã¯ãã«ãæã£ãŠããŸãã åŸã§ãé ç¹ãé€å€ããäºå®ã§ãã ã³ãŒãã®æåã®éšåããã®æç²ã¯æ¬¡ã®ãšããã§ãã
//30 , ( { var numVoices = 30; //generating initial random fundamentals: var fundamentals = {rrand(200.0, 400.0)}!numVoices; Mix ({|numTone| var freq = fundamentals[numTone]; Pan2.ar ( Saw.ar(freq), rrand(-0.5, 0.5), //stereo placement of voices numVoices.reciprocal //scale the amplitude of each voice ) }!numVoices); }.play; )
Murerå士ãèšã£ãããã«ãASPã³ã³ãã¥ãŒã¿ãŒã®èœåã«å¿ããŠã30ã®ãªã·ã¬ãŒã¿ãŒãéžæããŠãµãŠã³ããçæããŸããã 200ã400 Hzã®30ã®ã©ã³ãã ãªåšæ³¢æ°ã®é åãäœæããrrandåŒæ°ïŒ-0.5ã0.5ïŒã§Pan2.arã䜿çšããŠã¹ãã¬ãªãã£ãŒã«ãã«ã©ã³ãã ã«åæ£ãããã³ã®ãªæ³¢ã«åšæ³¢æ°ãå²ãåœãŠãŸããïŒ30ã³ããŒïŒã ãããã©ãèããããã§ãã
ã ãŒã©ãŒå士ããã®æ å ±ã調ã¹ãããå ã®æçã泚ææ·±ãèããããããšããªã·ã¬ãŒã¿ãŒã®åšæ³¢æ°ãã©ã³ãã ã«äžäžã«ã·ããããŠããããšãããããŸãã ãã®å¹æãè¿œå ããŠããããªãŒã¬ããã¯ãªãµãŠã³ãã«ããããšæããŸãã åšæ³¢æ°ã¹ã±ãŒã«ã¯å¯Ÿæ°ã§ãããããäœãåšæ³¢æ°ã§ã¯ãé«ãåšæ³¢æ°ãããçãæ¯åç¯å²ãå¿ èŠã§ãã ããã¯ãMixãã¯ãå ã§mulåŒæ°ã®LFNoise2ïŒ2次è£éãããã©ã³ãã ãªå€ãçæïŒã§ã©ã³ãã ã«çæãããåšæ³¢æ°ã䞊ã¹æ¿ããããšã§å®è¡ã§ããŸãã ãŸãããªã·ã¬ãŒã¿ãŒåšæ³¢æ°ã®5åã®ã«ãããªãåšæ³¢æ°ãšé©åºŠãª1 / qã®ãªã·ã¬ãŒã¿ãŒçšã®ããŒãã¹ãã£ã«ã¿ãŒãè¿œå ããŸããã
// , , ( { var numVoices = 30; //sorting to get high freqs at top var fundamentals = ({rrand(200.0, 400.0)}!numVoices).sort; Mix ({|numTone| //fundamentals are sorted, so higher frequencies drift more. var freq = fundamentals[numTone] + LFNoise2.kr(0.5, 3 * (numTone + 1)); Pan2.ar ( BLowPass.ar(Saw.ar(freq), freq * 5, 0.5), rrand(-0.5, 0.5), numVoices.reciprocal ) }!numVoices); }.play; )
ææ°ã®ç·šéã§ãµã³ãã«ãã©ã®ããã«èããããã以äžã«ç€ºããŸã ã
ããã¯ãã§ã«è¯ãåºçºç¹ã®ããã«èŠããã®ã§ãæåã¯éåžžã«å€±ç€Œãªã¹ã€ãŒãã®å®è£ ãå§ããŸãããã ã¹ã€ãŒããå®è£ ããã«ã¯ããŸãåãªã·ã¬ãŒã¿ãŒã®æçµåšæ³¢æ°ã決å®ããå¿ èŠããããŸãã ããã»ã©åçŽã§ã¯ãããŸããããããã»ã©é£ãããããŸããã ã¡ã€ã³ããŒã³ã¯äœDãšEbã®éã«ããå¿ èŠãããããããã®ããŒã³ã®å¹³ååšæ³¢æ°ã¯14.5ã§ãïŒ0ã¯Cãæåã®ãªã¯ã¿ãŒããªãã§åé³éã§ã«ãŠã³ãïŒã ãããã£ãŠã30åã®ãªã·ã¬ãŒã¿ãŒã§ã¯ã200ã400 Hzã®ã©ã³ãã ãªåšæ³¢æ°ã14.5ã®å€ãšå¯Ÿå¿ãããªã¯ã¿ãŒãã«å€æããŸãã è³ã§ã¯ãæåã®6ãªã¯ã¿ãŒããéžæããŸããã ãããã£ãŠãåšæ³¢æ°ã®æçµçãªé åã¯æ¬¡ã®ãšããã§ãã
(numVoices.collect({|nv| (nv/(numVoices/6)).round * 12; }) + 14.5).midicps;
0ãã1ãŸã§ã®ã¹ã€ãŒãã䜿çšããŸããã©ã³ãã ãªåšæ³¢æ°ã«ã¯å€
(1 â )
ãä¹ç®ãããã¿ãŒã²ããåšæ³¢æ°ã«ã¯ã¹ã€ãŒãèªäœãä¹ç®ãããŸãã ãããã£ãŠãæåŒã0ïŒéå§ïŒã®å Žåãåšæ³¢æ°ã¯ã©ã³ãã ã«ãªããŸãã ã¹ã€ãŒãã0.5ã®å Žåã
(( + ) / 2)
ãšãªãã1ã®å Žåãåšæ³¢æ°ã¯æçµå€ã«ãªããŸãã å€æŽãããã³ãŒãã¯æ¬¡ã®ãšããã§ãã
// (), ( { var numVoices = 30; var fundamentals = ({rrand(200.0, 400.0)}!numVoices).sort; var finalPitches = (numVoices.collect({|nv| (nv/(numVoices/6)).round * 12; }) + 14.5).midicps; var sweepEnv = EnvGen.kr(Env([0, 1], [13])); Mix ({|numTone| var initRandomFreq = fundamentals[numTone] + LFNoise2.kr(0.5, 3 * (numTone + 1)); var destinationFreq = finalPitches[numTone]; var freq = ((1 - sweepEnv) * initRandomFreq) + (sweepEnv * destinationFreq); Pan2.ar ( BLowPass.ar(Saw.ar(freq), freq * 5, 0.5), rrand(-0.5, 0.5), numVoices.reciprocal //scale the amplitude of each voice ) }!numVoices); }.play; )
é³ã¯ããã«ãããŸã ã
ç§ãèšã£ãããã«ãããã¯éåžžã«å€§ãŸããªã¹ãã£ã³ã§ãã 0ãã1ã«çŽç·çã«å¢å ããŸãããããã¯å ã®æ§æãšäžèŽããŠããŸããã ãŸããæåŸã®ãªã¯ã¿ãŒããå®ç§ãªãªã¯ã¿ãŒãã«èª¿æŽãããŠãããããŒã¹ããŒã³ãåé³ã®ããã«äºãã«çµåããŠãããããæåŸã®ãªã¯ã¿ãŒããã²ã©ãé³ã«ãªãããšã«æ°ã¥ãããããããŸããã æçµæ®µéã§ã©ã³ãã ãªã¹ã€ã³ã°ãè¿œå ããããšã§ãããä¿®æ£ããŸã-æåãšåãããã«ããããªãŒã¬ããã¯ã«èãããŸãã
ãŸããäžè¬çãªåšæ³¢æ°æåŒåŒãä¿®æ£ããå¿ èŠããããŸãã åã®ãã®ã¯è©Šçšçšã§ããã ãªãªãžãã«ãèŠããšãæåã®5ã6ç§ã§ãµãŠã³ãã«ã»ãšãã©å€åããªãããšãããããŸãã ãã®åŸãé«éã§ææ°é¢æ°çãªã¹ã€ãŒããè¡ããããªã·ã¬ãŒã¿ãŒãæéãªã¯ã¿ãŒãééã«ãªããŸãã éžæãããªãã·ã§ã³ã¯æ¬¡ã®ãšããã§ãã
sweepEnv = EnvGen.kr(Env([0, 0.1, 1], [5, 8], [2, 5]));
ããã§ã0ãã0.1ãžã®ç§»è¡ã«ã¯5ç§ãããã0.1ãã1ãžã®ç§»è¡ã«ã¯8ç§ããããŸãã ãããã®ã»ã°ã¡ã³ãã®ã·ãŒã«ã¯2ãš5ã«èšå®ãããŸããåŸã§äœãèµ·ãã£ãããèããŸãããæåã«æçµééãä¿®æ£ããå¿ èŠããããŸãã åãšåãããã«ãLFNoise2ã§ã©ã³ãã æ¯åãè¿œå ããŸãããã®ç¯å²ã¯ãçºæ¯åšã®æçµåšæ³¢æ°ã«æ¯äŸããŸãã ããã«ããããã£ããŒã¬ããããªãŒã¬ããã¯ã«ãªããŸãã å€æŽãããã³ãŒãã¯æ¬¡ã®ãšããã§ãã
// ( { var numVoices = 30; var fundamentals = ({rrand(200.0, 400.0)}!numVoices).sort; var finalPitches = (numVoices.collect({|nv| (nv/(numVoices/6)).round * 12; }) + 14.5).midicps; var sweepEnv = EnvGen.kr(Env([0, 0.1, 1], [5, 8], [2, 5])); Mix ({|numTone| var initRandomFreq = fundamentals[numTone] + LFNoise2.kr(0.5, 3 * (numTone + 1)); var destinationFreq = finalPitches[numTone] + LFNoise2.kr(0.1, (numTone / 4)); var freq = ((1 - sweepEnv) * initRandomFreq) + (sweepEnv * destinationFreq); Pan2.ar ( BLowPass.ar(Saw.ar(freq), freq * 8, 0.5), rrand(-0.5, 0.5), numVoices.reciprocal ) }!numVoices); }.play; )
ããã§ãããŒãã¹ãã£ã«ã¿ãŒã®ã«ãããªãåšæ³¢æ°ãèªåã®å¥œã¿ã«åãããŠèª¿æŽããŸããã çµæãæªåããªãå Žåãç§ã¯ç©äºãä¿®æ£ããã®ã奜ãã§ã...ãããã«ããŠãã ããã¯äœãèµ·ãã£ããã§ãã
ãã®ã¹ãã£ã³ãã¿ãŒã³ã¯ããŸã奜ãã§ã¯ãããŸããã ããªãã¯å§ãŸãã䌞ã°ããä»äžããã¹ããŒãã¢ããããå¿ èŠããããŸãã ãŸãã¯åŸ ã£ãŠãã ãã...ãã¹ãŠã®çºæ¯åšã«åãåè·¯ãå®è£ ããããšãæ¬åœã«å¿ èŠã§ããïŒ çµ¶å¯Ÿã«ãããŸããïŒ åãªã·ã¬ãŒã¿ãŒã¯ãæéãšæ²çã®å€ããããã«ç°ãªãç¬èªã®åè·¯ãåããŠããå¿ èŠããããŸã-ãã£ãšé¢çœããšæããŸãã ã©ã³ãã ã®ãããæ¯ç¶ã¯ã©ã¹ã¿ãŒã®é«åšæ³¢æ°ã®åé³ã¯äŸç¶ãšããŠå°ãè¿·æã§ãããã®ãããå šäœã®çµæã«ããŒãã¹ãã£ã«ã¿ãŒãè¿œå ããŸãããã®ã«ãããªãã¯ããªã·ã¬ãŒã¿ãŒåè·¯ãšã¯é¢ä¿ã®ãªãã°ããŒãã«ãªãå€éšãå€ã«ãã£ãŠå¶åŸ¡ãããŸãã å€æŽãããã³ãŒãã¯æ¬¡ã®ãšããã§ãã
// . ( { var numVoices = 30; var fundamentals = ({rrand(200.0, 400.0)}!numVoices).sort; var finalPitches = (numVoices.collect({|nv| (nv/(numVoices/6)).round * 12; }) + 14.5).midicps; var outerEnv = EnvGen.kr(Env([0, 0.1, 1], [8, 4], [2, 4])); var snd = Mix ({|numTone| var initRandomFreq = fundamentals[numTone] + LFNoise2.kr(0.5, 3 * (numTone + 1)); var destinationFreq = finalPitches[numTone] + LFNoise2.kr(0.1, (numTone / 4)); var sweepEnv = EnvGen.kr( Env([0, rrand(0.1, 0.2), 1], [rrand(5.0, 6), rrand(8.0, 9)], [rrand(2.0, 3.0), rrand(4.0, 5.0)])); var freq = ((1 - sweepEnv) * initRandomFreq) + (sweepEnv * destinationFreq); Pan2.ar ( BLowPass.ar(Saw.ar(freq), freq * 8, 0.5), rrand(-0.5, 0.5), numVoices.reciprocal ) }!numVoices); BLowPass.ar(snd, 2000 + (outerEnv * 18000), 0.5); }.play; )
å°ããªå€æŽã«ãããã¹ãã£ã³ãå°ãé¢çœããªããŸããã 2000 Hzã®ããŒãã¹ãã£ã«ã¿ãŒã¯ãåæã¯ã©ã¹ã¿ãŒã®èª¿æŽã«åœ¹ç«ã¡ãŸãã ãããã©ãèããããã§ãã
ãã®ããã»ã¹ãããã«é¢çœããããã®ããã1ã€ãããŸãã èŠããŠãããŠãæåã«ã©ã³ãã ãªã·ã¬ãŒã¿ãŒããœãŒãããŸãããïŒ ããŠãä»åºŠã¯éã®é åºã§äžŠã¹æ¿ããã¯ã¬ãã·ã§ã³ãã®åŸãããé«ãã©ã³ãã åšæ³¢æ°ã®ãªã·ã¬ãŒã¿ãŒãããäœããã€ã¹ã«ãªããéããŸãåæ§ã§ããããšã確èªã§ããŸãã ããã«ãããã¯ã¬ãã·ã§ã³ãã«ãåãããè¿œå ãããå ã®ãã©ã°ã¡ã³ããã©ã®ããã«æ§æãããŠããããšäžèŽããŸãã Murerå士ãããããã®ããã«ããã°ã©ã ãããã©ããã¯ããããŸããããèšé²ã«ã¯ãã®ããã»ã¹ããããçæããã»ã¹ã®ã©ã³ãã ãªè£œåã§ããããšç¹å¥ãªéžæã§ããããšãã¯ãŒã«ã«èãããŸãã ïŒãããç§ã¯ãããèšã£ãã®ã§ããïŒããã»ã¹ããã®ãããªãªãã·ã§ã³ãæäŸããå Žåãããã¯éžæè¢ã§ã...ïŒ ãããã£ãŠããœãŒãã®é åºãšã³ãŒãæ§é ãå€æŽããŠãæçµçã«é«åšæ³¢æ°ã®ãã³ã®ãªæ¯ãäœé³ã«ããŸããã®éã«ãªãããã«ããŸãã
ãã1ã€ïŒãã倧ããªäœé³ãå¿ èŠã§ãã ããã§ããã¹ãŠã®ãã€ã¹ã®æ¯å¹ ãåãã«ãªããŸããã äœé³ã®é³ãå°ã倧ããããåšæ³¢æ°ã®å¢å ã«æ¯äŸããŠãã§ãŒãããŸãã ãããã£ãŠãããã«å¿ããŠPan2ã®mulåŒæ°ãå€æŽããŸãã åã ã®ãªã·ã¬ãŒã¿ãŒã®ããŒãã¹ãã£ã«ã¿ãŒã®ã«ãããªãåšæ³¢æ°ãå調æŽããŸãã ãããŠãã¹ã ãŒãºã«æå¹ã«ãªãããã£ããŒã¬ãŸã§æ¶ããscserverãã解æŸãããæ¯å¹ ã¹ã±ãŒãªã³ã°ã¹ããŒã ãè¿œå ããŸãã ãã¡ãã¡ã«ããã€ãã®æ°å€èšå®ããããŸã-ãããŠãããã«æçµçãªã³ãŒãããããŸãïŒ
// init sort, , , ( { var numVoices = 30; var fundamentals = ({rrand(200.0, 400.0)}!numVoices).sort.reverse; var finalPitches = (numVoices.collect({|nv| (nv/(numVoices/6)).round * 12; }) + 14.5).midicps; var outerEnv = EnvGen.kr(Env([0, 0.1, 1], [8, 4], [2, 4])); var ampEnvelope = EnvGen.kr(Env([0, 1, 1, 0], [3, 21, 3], [2, 0, -4]), doneAction: 2); var snd = Mix ({|numTone| var initRandomFreq = fundamentals[numTone] + LFNoise2.kr(0.5, 6 * (numVoices - (numTone + 1))); var destinationFreq = finalPitches[numTone] + LFNoise2.kr(0.1, (numTone / 3)); var sweepEnv = EnvGen.kr( Env([0, rrand(0.1, 0.2), 1], [rrand(5.5, 6), rrand(8.5, 9)], [rrand(2.0, 3.0), rrand(4.0, 5.0)])); var freq = ((1 - sweepEnv) * initRandomFreq) + (sweepEnv * destinationFreq); Pan2.ar ( BLowPass.ar(Saw.ar(freq), freq * 6, 0.6), rrand(-0.5, 0.5), (1 - (1/(numTone + 1))) * 1.5 ) / numVoices }!numVoices); Limiter.ar(BLowPass.ar(snd, 2000 + (outerEnv * 18000), 0.5, (2 + outerEnv) * ampEnvelope)); }.play; )
ãããŠãããäœåã®æçµé²é³ã§ã ã
ãªãªãžãã«ãšæ¯èŒã§ããŸãã
ã¯ããããã¯ç§ã®è§£éã§ãã ãããŠãã¡ããããã¿ãŒã³ãåšæ³¢æ°ãååžãªã©ãå€æŽããããšã§ãæ»ã«åãããŠæé©åããããšãã§ããŸã...ããã§ããããã¯é³ã®éºç£ãä¿åãã䟡å€ã®ããè©Šã¿ã ãšæããŸãã ãã®ã¯ã¬ãã·ã§ã³ããåæããããªãã®ã³ã¡ã³ãããã³/ãŸãã¯ããªãèªèº«ã®è©Šã¿ãèãããã§ãã
ã¯ãããããŠç§ã楜ãã¿ã®ããã«ããããäžã€ã®ããšã§ãã èŠããŠãããŠããªãªãžãã«ãçæããã®ã«20,000è¡ã®Cã³ãŒããå¿ èŠã ãšèšã£ãã®ã§ãããã ãŒã©ãŒå士ã¯ãã¹ãŠãæã§æžããªããã°ãªããªãã£ãã®ã§ããã®æ°åã¯é©ãããšã§ã¯ãããŸããã ããããTwitterã®äººæ°ã«ãããç§ãã¡ã¯ãã¹ãŠã140æåã®ã³ãŒãã«çµã蟌ãããšããŠããŸãã 楜ãã¿ã®ããã«ã140æåã®ã³ãŒãã§æ§æã®åºæ¬èŠçŽ ãåçŸããããšããŸããã ãµã³ãã«ã¯ãŸã ã¯ãŒã«ã«èããããšæããŸããããã«ã³ãŒãããããŸãïŒã¡ã€ã³ããŒã³F / Eã䜿çšïŒïŒ
play{Mix({|k|k=k+1/2;2/k*Mix({|i|i=i+1;Blip.ar(i*XLine.kr(rand(2e2,4e2),87+LFNoise2.kr(2)*k,15),2,1/(i/a=XLine.kr(0.3,1,9))/9)}!9)}!40)!2*a}
ãããŠããã®ããŒãžã§ã³ãçæãããµãŠã³ãã¯æ¬¡ã®ãšããã§ãã
1ã€ã®ããã¥ã¡ã³ã -å®éšçšã®ãã®ããŒãžã®ãã¹ãŠã®ã³ãŒãã
è¯ãã¯ã¬ãã·ã§ã³ããåéïŒ