{"id":1057,"date":"2010-03-08T22:04:46","date_gmt":"2010-03-08T14:04:46","guid":{"rendered":"http:\/\/www.ccttours.com\/blog\/?p=1057"},"modified":"2010-03-16T13:00:15","modified_gmt":"2010-03-16T05:00:15","slug":"supercollider%ef%bc%9a%e4%ba%92%e5%8a%a8","status":"publish","type":"post","link":"https:\/\/learn.travelchinawith.me\/?p=1057","title":{"rendered":"SuperCollider\uff1a\u4e92\u52a8"},"content":{"rendered":"<p><span style=\"color: #800000;\"><strong>\u901a\u8fc7\u9f20\u6807\u3001\u952e\u76d8\u3001MIDI\u3001\u97f3\u9891\u8f93\u5165\u7b49\u8fdb\u884c\u4e92\u52a8<\/strong><\/span><\/p>\n<p>\u8ba9\u6211\u4eec\u73b0\u5728\u5148\u6253\u5f00localhost\u670d\u52a1\u5668\uff1a<\/p>\n<pre class=\"brush:jfx\">(\r\nServer.default=s=Server.local;\r\ns.boot;\r\n)<\/pre>\n<p><!--more--><\/p>\n<p><span style=\"color: #800000;\"><strong><span style=\"text-decoration: underline;\">MouseX\/Y<\/span><\/strong><\/span><br \/>\n\u8fd0\u7528\u9f20\u6807\u4f5c\u4e3a\u4e00\u4e2a\u63a7\u5236\u5668\u662f\u4e00\u4e2a\u4e0epatch\u4e92\u52a8\u7684\u5feb\u901f\u7b80\u5355\u7684\u65b9\u5f0f<\/p>\n<pre class=\"brush:jfx\">\/\/ \u57fa\u4e8e\u53c2\u6570\u7684\u53d8\u5316\u65b9\u5f0f\r\n\/\/ warp\u53ef\u4ee5\u662f'linear'\u6216'exponential'\r\nMouseX.kr(leftval, rightval, warp)\r\n\r\nMouseY.kr(topscreenval, bottomscreenval, warp)<\/pre>\n<p>\u6bd4\u8f83\u4ee5\u4e0b\u542c\u529b\u6d4b\u8bd5\uff08\u5c0f\u5fc3\uff0c\u5b83\u4eec\u6709\u70b9\u523a\u8033\uff09<\/p>\n<pre class=\"brush:jfx\">{SinOsc.ar(MouseX.kr(20,20000, 'linear'),0,0.1)}.play<\/pre>\n<p>\u548c<\/p>\n<pre class=\"brush:jfx\">{SinOsc.ar(MouseY.kr(20,20000, 'exponential'),0,0.1)}.play<\/pre>\n<p>\u6307\u6570\u6620\u5c04\uff08exponential mapping\uff09\u8fd0\u7528\u6574\u4e2a\u8424\u5e55\u7684\u7a7a\u95f4\u9762\u79ef\uff0c\u6bd4\u7ebf\u6027\u90a3\u79cd\u5f3a\u592a\u591a\uff01<\/p>\n<hr \/>\n<p>\u5982\u679c\u4f60\u60f3\u5c06\u4e00\u4e2a\u63a7\u5236\u5668\u9650\u5236\u5728\u4e00\u4e2a\u79bb\u6563\u7684\uff08discrete\uff09\u8303\u56f4\u5185\uff0c\u90a3\u4e48\u4f60\u53ef\u4ee5\u4f7f\u7528<span style=\"color: #0000ff;\"><em>Index<\/em><\/span> UGen<\/p>\n<pre class=\"brush:jfx\">\/\/ indexing signal\u5c06\u4e4b\u4fdd\u6301\u5728\u4e00\u4e2a\u8303\u56f4\u5185\r\n\/\/ \u6570\u7ec4\u5fc5\u987b\u662fFloatArray\uff0c\u56e0\u6b64\u4f60\u624d\u80fd\u5c06\u4e4b\u5efa\u6210[0,1,2].asSignal\r\nIndex.kr(array, indexing signal)<\/pre>\n<pre class=\"brush:jfx\">\/\/\u6709\u4e09\u79cd\u4e0d\u540c\u7684\u72b6\u6001\r\n(\r\nvar vals, buf, s;\r\n\r\ns=Server.local;\r\n\r\nvals= [100,200,300];\r\nbuf=Buffer(s, vals.size, 1); \/\/Buffers\u5c06\u5728\u672c\u6587\u540e\u534a\u90e8\u5206\u8bf4\u660e\r\n\r\n\/\/ \u5206\u914d\u5e76\u8bbe\u7f6e\u503c\r\ns.listSendMsg( buf.allocMsg( buf.setnMsg(0, vals) ));\r\n\r\n{SinOsc.ar(Index.ar(buf.bufnum, MouseX.kr(0, vals.size+1)),0,0.2)}.play\r\n)   \/\/ \u8424\u5e55\u7684\u5de6\u3001\u4e2d\u3001\u53f3\u90e8<\/pre>\n<pre class=\"brush:jfx\">(\r\nvar vals, buf, s;\r\nvar numharm,basefreq;\r\n\r\nnumharm=11; \t\/\/\u548c\u58f0\u7684\u6570\u91cf\r\nbasefreq=66;\t\/\/\u5e8f\u5217\u7684\u57fa\u51c6\u9891\u7387\r\n\r\ns=Server.local;\r\n\r\nvals= basefreq*(Array.series(numharm,1,1));\r\nbuf=Buffer(s, vals.size, 1);\r\n\r\n\/\/ \u5206\u914d\u5e76\u8bbe\u7f6e\u503c\r\ns.listSendMsg( buf.allocMsg( buf.setnMsg(0, vals) ));\r\n\r\n{SinOsc.ar(Index.kr(buf.bufnum,MouseX.kr(0,numharm)),0,0.1)}.play\r\n)<\/pre>\n<p>\u9f20\u6807\u4e5f\u53ef\u4ee5\u88ab\u7528\u6765\u505a\u89e6\u53d1\u5668<\/p>\n<pre class=\"brush:jfx\">(\r\n{\r\nvar trig,mx;\r\nmx=MouseX.kr(0.0,1.0);\r\n\/\/ \u8fd9\u4e2aUGen\u6bd4\u8f83mx\u4e0ekrate\u4e3a0.5\u7684\u6301\u7eed\u4fe1\u53f7\u7684\u503c\r\ntrig= mx&gt;0.5;\r\n\r\nSinOsc.ar(440,0,0.1*trig)\r\n}.play;\r\n)<\/pre>\n<hr \/>\n<pre class=\"brush:jfx\">(\t\/\/ \u5728\u4e00\u4e2a\u7ed9\u5b9a\u7684\u8303\u56f4\u89e6\u53d1\r\n{\r\nvar trig,mx,my;\r\nmx=MouseX.kr(0.0,1.0);\r\nmy=MouseY.kr(0.0,1.0);\r\n\/\/ \u5728\u6b64\uff0cif\u662f\u4e00\u4e2aUGen\uff0c*\u4e0e\u903b\u8f91\u548c\u76f8\u7b49\r\ntrig= if((mx&gt;0.3) * (mx&lt;0.5) * (my&gt;0.3) * (my&lt;0.7),1,0);\r\nSinOsc.ar(440,0,0.1*trig)\r\n}.play;\r\n)<\/pre>\n<hr \/>\n<p>\u4e3a\u4e86\u5c55\u793a\u4e00\u4e2a\u66f4\u6df1\u5165\u5c55\u793a\u8fd9\u4e2a\u539f\u7406\u7684\u4f8b\u5b50\uff0c\u8fd9\u91cc\u6211\u8981\u4f7f\u7528\u6211\u6700\u559c\u6b22\u7684SC patch\uff08James McCartney\u6240\u5199\uff09\u4e4b\u4e00\uff1a<\/p>\n<pre class=\"brush:jfx\">(\r\n    \/\/ \u5f39\u594f\u5409\u4ed6\r\n    \/\/ \u4f7f\u7528\u9f20\u6807\u5f39\u594f\u7434\u5f26\r\n{\r\n\tvar pitch, mousex, out;\r\n\tpitch = [ 52, 57, 62, 67, 71, 76 ];   \/\/ e a d g b e\u5f26\r\n\tmousex = MouseX.kr;\r\n\tout = Mix.fill(pitch.size, { arg i;\r\n\t\tvar trigger, pluck, period, string;\r\n\t\t\/\/ \u4ece0.25\u52300.75\u653e\u7f6e\u89e6\u53d1\u70b9\r\n\t\ttrigger = HPZ1.kr(mousex &gt; (0.25 + (i * 0.1))).abs;\r\n\t\tpluck = PinkNoise.ar(Decay.kr(trigger, 0.05));\r\n\t\tperiod = pitch.at(i).midicps.reciprocal;\r\n\t\tstring = CombL.ar(pluck, period, period, 4);\r\n\t\tPan2.ar(string, i * 0.2 - 0.5);\r\n\t});\r\n\tLPF.ar(out, 12000);\r\n\tLeakDC.ar(out);\r\n}.play;\r\n)<\/pre>\n<hr \/>\n<p><span style=\"color: #800000;\"><strong><span style=\"text-decoration: underline;\">\u952e\u76d8<\/span><\/strong><\/span><br \/>\n\u4f60\u53ef\u4ee5\u901a\u8fc7\u8bbe\u7f6e\u52a8\u4f5c\u51fd\u6570\u7528\u952e\u76d8\u89e6\u53d1\u4e1c\u897f\u3002\u8fd9\u901a\u5e38\u7531GUI\u5b8c\u6210\uff0c\u4f46\u63a5\u4e0b\u6765\u662f\u4e00\u4e2a\u6839\u636e\u4f60\u8f93\u5165\u7684\u6587\u672c\uff08\u4e5f\u5c31\u662f\u6572\u51fb\u952e\u76d8\uff09\u6765\u53d1\u58f0\u7684\u4f8b\u5b50\uff1a<\/p>\n<pre class=\"brush:jfx\">(\r\nvar doc;\r\n\r\nSynthDef(\"typeofsound\",{Out.ar(0,Line.kr(1,0,0.1,doneAction:2)*VarSaw.ar(Rand(100,1000),0,Rand(0.1,0.8),0.1))}).send(s);\r\n\r\ndoc = Document.current; \/\/this text window you're reading from!\r\ndoc.keyDownAction_({arg ...args;\r\n\t[args[1],args[3]].postln;\r\n\tSynth(\"typeofsound\");\r\n});\r\n)\r\n\r\n\/\/\u5173\u95ed\u4e4b\r\n(\r\nDocument.current.keyDownAction_(nil);\r\n)<\/pre>\n<hr \/>\n<p><strong><span style=\"color: #800000;\"><span style=\"text-decoration: underline;\">MIDI<\/span><\/span><\/strong><br \/>\n\u8981\u4f7f\u7528\u4f60\u7684MIDI\u754c\u9762\uff0c\u4f60\u5fc5\u987b\u9884\u7f6e\uff1a<\/p>\n<pre class=\"brush:jfx\">MIDIClient.init<\/pre>\n<p>\u8981\u83b7\u53d6\u65b0\u8fdb\u7684MIDI\u4fe1\u606f\uff0c\u67e5\u770b<span style=\"color: #0000ff;\"><em>MIDIIn<\/em><\/span>\u5e2e\u52a9\u6587\u6863\u3002<\/p>\n<p>\u7528\u6237\u4e3a\u7279\u5b9a\u7684MIDI\u4fe1\u606f\u5efa\u7acb\u6536\u56de\uff08callback\uff09\u51fd\u6570\u3002<\/p>\n<p>\u8981\u5411\u5916\u53d1\u9001MIDI\u4fe1\u606f\uff0c\u67e5\u770b<span style=\"color: #0000ff;\"><em>MIDIOut<\/em><\/span>\u5e2e\u52a9\u6587\u6863\u3002<\/p>\n<hr \/>\n<p><span style=\"color: #800000;\"><strong><span style=\"text-decoration: underline;\">\u97f3\u9891\u8f93\u5165\uff08AudioIn<\/span>\uff09<\/strong><\/span><br \/>\n\u8981\u83b7\u5f97\u5f53\u524d\u7684\u97f3\u9891\u6d41\uff0c\u4f7f\u7528\u7b80\u5355\u7684<span style=\"color: #0000ff;\"><em>AudioIn<\/em><\/span> UGen<\/p>\n<pre class=\"brush:jfx\">{ AudioIn.ar([1,2],0.5) }.play;     \/\/\u7acb\u4f53\u58f0\u8f93\u5165\r\n\r\n{ AudioIn.ar(1,0.5) }.play;\t      \/\/ mono on input channel 1<\/pre>\n<p>\u56e0\u6b64\uff0c\u4e3a\u5b9e\u65f6\u97f3\u9891\u5efa\u7acb\u6548\u679c\u5668\u5c31\u53d8\u5f97\u5f88\u7b80\u5355\u4e86\uff1a<\/p>\n<pre class=\"brush:jfx\">(\r\n{ \/\/\u73af\u8c03\u5236\u5668\r\nSinOsc.ar(MouseX.kr(0.001,110,'exponential' ))*AudioIn.ar([1,2],0.5)\r\n}.play;\t      \/\/ \u7acb\u4f53\u58f0\u8f93\u5165\r\n)<\/pre>\n<hr \/>\n<p>SuperCollider\u5bf9\u5b9e\u65f6\u97f3\u9891\u6709\u4e00\u4e2a\u632f\u5e45\uff08Amplitude\uff09\u8ffd\u8e2a\u5668\u548c\u97f3\u8c03\uff08Pitch\uff09\u8ffd\u8e2a\u5668<\/p>\n<pre class=\"brush:jfx\">(\r\n\/\/\u4f7f\u7528\u8f93\u5165\u7684\u632f\u5e45\u63a7\u5236\u8109\u51b2\u7684\u632f\u5e45\r\n\/\/\u4f7f\u7528\u8033\u673a\u4ee5\u9632\u6b62\u53cd\u9988\r\n{\r\n\tPulse.ar(90, 0.3, Amplitude.kr(AudioIn.ar(1)))\r\n}.play\r\n)<\/pre>\n<hr \/>\n<p>\u4f60\u53ef\u4ee5\u8bbe\u7f6e\u4e00\u4e2a\u8f93\u5165\u9600\u503c\u4ee5\u907f\u514d\u62fe\u53d6\u5230\u80cc\u666f\u566a\u97f3<\/p>\n<pre class=\"brush:jfx\">(\r\n{\r\nvar input,inputAmp,threshhold,gate;\r\nvar basefreq;\r\n\r\ninput = AudioIn.ar(1,0.1);\r\ninputAmp = Amplitude.kr(input);\r\nthreshhold = 0.02;\t\/\/ \u566a\u97f3\u95e8\u9650\r\ngate = Lag.kr(inputAmp &gt; threshhold, 0.01);\r\n(input * gate)\r\n}.play;\r\n)<\/pre>\n<hr \/>\n<figure id=\"attachment_1058\" aria-describedby=\"caption-attachment-1058\" style=\"width: 130px\" class=\"wp-caption alignright\"><a href=\"https:\/\/learn.travelchinawith.me\/wp-content\/uploads\/2010\/03\/K2A.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1058 \" title=\"K2A\" src=\"https:\/\/learn.travelchinawith.me\/wp-content\/uploads\/2010\/03\/K2A.gif\" alt=\"K2A\" width=\"130\" height=\"128\" \/><\/a><figcaption id=\"caption-attachment-1058\" class=\"wp-caption-text\">K2A\u6bd4\u5bf9<\/figcaption><\/figure>\n<p>\u5c3d\u7ba1\u4f60\u53ea\u9700\u4f7f\u7528\u9ed8\u8ba4\u503c\u5c31\u597d\uff0c\u4f46\u97f3\u8c03\u8ffd\u8e2a\u5668\u6709\u5f88\u591a\u8f93\u5165\u5f15\u6570\u3002\u5b83\u8fd4\u56de\u4e24\u4e2a\u8f93\u51fa\u2014\u2014\u88ab\u8ddf\u8e2a\u7684\u9891\u7387\u4ee5\u53ca\u4e00\u4e2a\u663e\u793a\u5176\u5b9e\u5426\u88ab\u9501\u5b9a\u5728\u67d0\u4e2a\u5468\u671f\u4e0a\u7684\u4fe1\u53f7\u3002<\/p>\n<p>\u5982\u679c\u4f60\u5728Mac\u673a\u4e0a\uff0c\u4f60\u9700\u8981\u6362\u56deinternal\u670d\u52a1\u5668\u6765\u4f7f\u7528<em><strong>.scope<\/strong><\/em>\u2014\u2014\u4f60\u53ef\u4ee5\u540c\u65f6\u5f00\u542finternal\u548clocalhost\u670d\u52a1\u5668\uff0c\u4f46\u4f60\u53ef\u80fd\u8fd8\u9700\u8981\u70b9\u51fb\u4e00\u4e0b<span style=\"color: #808080;\">-&gt; default<\/span>\u6309\u94ae\u3002<\/p>\n<pre class=\"brush:jfx\">Server.internal.boot;<\/pre>\n<p>\u5c55\u793a\u8f93\u51fa\u2014\u2014<span style=\"color: #0000ff;\"><em>K2A<\/em><\/span>\u786e\u4fdd\u5c06\u63a7\u5236\u7387\uff08control rate\uff09\u4fe1\u53f7\u8f6c\u6362\u4e3a\u97f3\u9891\u7387\uff08audio rate\uff09\uff0c\u56e0\u4e3a\u4e00\u4e2a\u5408\u6210\u5668\u7684\u6700\u7ec8\u8f93\u51fa\u5fc5\u987b\u4e3a\u97f3\u9891\u7387\u3002<\/p>\n<pre class=\"brush:jfx\">(\r\n{\r\nvar freq, hasFreq;\r\n# freq, hasFreq = Pitch.kr(AudioIn.ar(1,0.1));\r\n[K2A.ar(freq*0.001), K2A.ar(hasFreq)]\r\n}.scope\r\n)<\/pre>\n<hr \/>\n<pre class=\"brush:jfx\">(\r\n{\r\n\tvar in, amp, freq, hasFreq, out;\r\n\tin = Mix.ar(AudioIn.ar([1,2]));\r\n\tamp = Amplitude.kr(in, mul: 0.4);\r\n\t# freq, hasFreq = Pitch.kr(in);\r\n\tout = Mix.ar( LFTri.ar(freq * [0.5, 1, 2]) ) * amp;\r\n\t6.do({\r\n\t\tout = AllpassN.ar(out, 0.040, [0.040.rand,0.040.rand], 2)\r\n\t});\r\n\tout\r\n}.play\r\n)<\/pre>\n<hr \/>\n<pre class=\"brush:jfx\">(\r\n{\r\n\tvar in, amp, freq, hasFreq, out;\r\n\r\n\tin = AudioIn.ar(1);\r\n\tamp = Amplitude.kr(in, mul: 0.4);\r\n\t# freq, hasFreq = Pitch.kr(in);\r\n\r\n\tout=if(hasFreq,Pulse.ar(freq,0.5,0.1),SinOsc.ar(freq,0,0.1));\r\n\r\n\t6.do({\r\n\t\tout = AllpassN.ar(out, 0.040, [0.040.rand,0.040.rand], 2)\r\n\t});\r\n\tout\r\n}.play\r\n)<\/pre>\n<hr \/>\n<p>\u6709\u4e00\u4e9b\u8d77\u59cb\u7684\u63a2\u6d4b\u5668\uff08onset detector\uff09\u53ef\u80fd\u4f1a\u6709\u5e2e\u52a9\u3002<br \/>\n[<span style=\"color: #0000ff;\">PV_HainsworthFoote<\/span>]<br \/>\n[<span style=\"color: #0000ff;\">PV_JensenAndersen<\/span>]<\/p>\n<p>\u89e6\u53d1<span style=\"color: #0000ff;\"><em>TGains<\/em><\/span> UGen\uff1a<\/p>\n<pre class=\"brush:jfx\">s.sendMsg(\\b_allocRead, 10, \"sounds\/a11wlk01.wav\");\r\n\r\n(\r\nvar fftbuf;\r\n\r\nfftbuf=Buffer.alloc(s,2048,1);\r\n\r\n{\r\nvar b = 10, source1, detect;\r\n\r\n\tsource1= AudioIn.ar(1); \r\n\r\n\tdetect= PV_HainsworthFoote.ar(FFT(fftbuf.bufnum,source1), 1.0, 0.0, 0.7, 0.01);\r\n\r\n\tTGrains.ar(2, detect, b, LFNoise0.kr(10,0.2,1.0), MouseX.kr(0,BufDur.kr(b)), MouseY.kr(0.1,0.5), LFNoise0.kr(10,1.0), 0.5, 2);\r\n}.play\r\n)<\/pre>\n<hr \/>\n<p><strong><span style=\"color: #800000;\"><span style=\"text-decoration: underline;\">\u5f55\u97f3\u7f13\u51b2\uff08RecordBuf<\/span><\/span><\/strong><strong><span style=\"color: #800000;\">\uff09<\/span><\/strong><br \/>\n\u5982\u679c\u4f60\u60f3\u5f55\u3001\u7528\u5b9e\u5730\u7684\u58f0\u97f3\uff0c<span style=\"color: #0000ff;\"><em>RecordBuf<\/em><\/span> UGen\u5c06\u5e2e\u5230\u4f60\u3002\u4f60\u9700\u8981\u5efa\u7acb\u4e00\u4e2a\u7f13\u51b2\u533a\u4ee5\u5b58\u50a8\u5f55\u4e0b\u7684\u91c7\u6837\u6570\u636e\u3002\uff08<a href=\"http:\/\/www.douban.com\/artist\/ww1way\/download?song_id=37025\" target=\"_blank\">\u4e0b\u8f7d\u793a\u8303mp3<\/a>\uff09<\/p>\n<pre class=\"brush:jfx\">(\r\nvar b;\r\n\r\n\/\/ \u5206\u914d\u5728local\u670d\u52a1\u5668\u76841\u79d2\u5355\u58f0\u9053\u7f13\u51b2\r\nb=Buffer.alloc(s,44100,1);\r\n\r\n{\r\n\/\/ \u6301\u7eed\u5728\u4e00\u4e2a\u5faa\u73af\u4e2d\u5f55\u97f3\uff0c\u5f55\u5230\u6211\u4eec\u521a\u624d\u7533\u660e\u8fc7\u7684buffer\u4e2d\r\n\/\/ \u6bcf\u4e2a\u5f55\u97f3\u5faa\u73af\u7e41\u6b96\u4e8e\u65e7\u7684\u6570\u636e\u4e4b\u4e0a\r\n\tRecordBuf.ar(AudioIn.ar(1), b.bufnum, 0, 1.0, MouseX.kr(0.0,1.0), 1, 1, 1);\r\n\r\n\/\/ \u5728\u4e00\u4e2a\u5faa\u73af\u4e2d\u56de\u653e\u6355\u6349\u5230\u7684buffer, \u5411\u540e\r\n\tPlayBuf.ar(1, b.bufnum,MouseY.kr(0.0,-1.0), 1,0,1);\r\n}.play;\r\n)<\/pre>\n<p>\u5bf9\u4e8e\u8df3\u821e\u97f3\u4e50\u6765\u8bf4\uff0c\u4f60\u4e5f\u8bb8\u9700\u8981\u5c06\u6355\u6349\u7684buffer\u540c\u6b65\u5230\u5b83\u7684tempo\uff0c\u4f60\u8fd8\u53ef\u4ee5\u4f18\u5316\u5b83\uff0c\u6bd4\u5982\u52a0\u5165\u7528\u6237\u754c\u9762\u4ee5\u9009\u62e9\u4f55\u65f6\u5f55\u5165buffer&#8230;<\/p>\n<hr \/>\n<p>\u540c\u6837\u8fd8\u6709\u63a7\u5236\u6765\u81ea\u7ed8\u56fe\u677f\u6216\u6e38\u620f\u6746\u7684\u5de5\u5177\uff0c\u5c3d\u7ba1\u8fd9\u5728\u6211\u4eec\u4e4b\u540e\u5b66\u4e60\u4e86GUI\u548cOSC\u54cd\u5e94\u540e\u624d\u4f1a\u66f4\u6709\u610f\u4e49\u3002<br \/>\n[<span style=\"color: #0000ff;\">SC2DTabletSlider<\/span>]<br \/>\n[<span style=\"color: #0000ff;\">HIDDeviceService<\/span>]<\/p>\n<p>\u4f60\u53ef\u80fd\u540c\u6837\u559c\u6b22\u5c1d\u8bd5<br \/>\n[<span style=\"color: #0000ff;\">MouseButton<\/span>]<br \/>\n[<span style=\"color: #0000ff;\">KeyState<\/span>]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u901a\u8fc7\u9f20\u6807\u3001\u952e\u76d8\u3001MIDI\u3001\u97f3\u9891\u8f93\u5165\u7b49\u8fdb\u884c\u4e92\u52a8 \u8ba9\u6211\u4eec\u73b0\u5728\u5148\u6253\u5f00localhost\u670d\u52a1\u5668\uff1a ( Server.default=s=Server.local; s.boot; )<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[69],"tags":[70],"class_list":["post-1057","post","type-post","status-publish","format-standard","hentry","category-supercollider3","tag-supercollider"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/learn.travelchinawith.me\/index.php?rest_route=\/wp\/v2\/posts\/1057","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/learn.travelchinawith.me\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/learn.travelchinawith.me\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/learn.travelchinawith.me\/index.php?rest_route=\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/learn.travelchinawith.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1057"}],"version-history":[{"count":6,"href":"https:\/\/learn.travelchinawith.me\/index.php?rest_route=\/wp\/v2\/posts\/1057\/revisions"}],"predecessor-version":[{"id":1063,"href":"https:\/\/learn.travelchinawith.me\/index.php?rest_route=\/wp\/v2\/posts\/1057\/revisions\/1063"}],"wp:attachment":[{"href":"https:\/\/learn.travelchinawith.me\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1057"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/learn.travelchinawith.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1057"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/learn.travelchinawith.me\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1057"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}