1 00:00:00,000 --> 00:00:05,900 2 00:00:05,900 --> 00:00:07,170 >> SAM GREEN: Hi, tout moun. 3 00:00:07,170 --> 00:00:08,640 Byenveni nan seminè nou an. 4 00:00:08,640 --> 00:00:10,009 Non mwen se Sam. 5 00:00:10,009 --> 00:00:11,050 HUGH Zabriskie: Mwen Hugh. 6 00:00:11,050 --> 00:00:17,420 SAM GREEN: E nou pwal pale jodi a sou JavaScript ak API la Web Audio. 7 00:00:17,420 --> 00:00:21,180 Jis yo kòmanse soti, sa a se yon deskripsyon nan ajanda nou an pou seminè a. 8 00:00:21,180 --> 00:00:25,350 Nou pral kòmanse pa pale de poukisa ou ta dwe ka enterese nan entènèt la 9 00:00:25,350 --> 00:00:30,130 Audio API, poukisa se JavaScript lang a ou bezwen pou li, 10 00:00:30,130 --> 00:00:32,619 ak Lè sa a pale sou JavaScript essentials-- konsa tankou, 11 00:00:32,619 --> 00:00:34,800 mache ou atravè kèk Basics nan lang lan, 12 00:00:34,800 --> 00:00:37,290 ak Lè sa a pale sou la API odyo nan yon nivo segondè. 13 00:00:37,290 --> 00:00:41,140 Lè sa a, Hugh pral pale sou kèk nan premye etap yo nan pwodiksyon odyo 14 00:00:41,140 --> 00:00:45,509 ak Lè sa a Demo sekansyèl sa a awizom pwojè li bati epi montre w kòd la. 15 00:00:45,509 --> 00:00:48,050 Lè sa a,, nou pral gen tan pou kesyon nan fen an pou moun 16 00:00:48,050 --> 00:00:49,593 ki gen isit la ap viv la. 17 00:00:49,593 --> 00:00:50,540 >> HUGH Zabriskie: Cool. 18 00:00:50,540 --> 00:00:50,990 >> SAM GREEN: Cool. 19 00:00:50,990 --> 00:00:51,383 >> HUGH Zabriskie: Cool. 20 00:00:51,383 --> 00:00:52,170 Mwen pral tounen moute. 21 00:00:52,170 --> 00:00:54,960 >> SAM GREEN: Se konsa, premye bagay premye. 22 00:00:54,960 --> 00:00:57,840 Se konsa, youn nan gwo bagay sa yo sou entènèt Audio API la 23 00:00:57,840 --> 00:01:00,480 se ke gen nan pa gen moute seri yo mande yo. 24 00:01:00,480 --> 00:01:04,230 Li vini bati-an nan pi navigatè modèn, 25 00:01:04,230 --> 00:01:08,630 ki gen ladan Chrome, Edge, yon antye pakèt moun sou others-- tout yo menm ki 26 00:01:08,630 --> 00:01:12,650 pòsyon ki gwo nan moun ki ap itilize jodi a. 27 00:01:12,650 --> 00:01:14,807 Se konsa, gen nan pa gen okenn mete kanpe, sou kote nan men jis ap resevwa 28 00:01:14,807 --> 00:01:16,890 yon sèvè sit entènèt prale a, pou ou jwenn te kòmanse k ap travay 29 00:01:16,890 --> 00:01:18,420 sou pwojè ou a, ki se gwo. 30 00:01:18,420 --> 00:01:21,500 31 00:01:21,500 --> 00:01:24,190 >> Nou rekòmande bèl lou ke ou konsidere 32 00:01:24,190 --> 00:01:26,530 lè l sèvi avèk Chrome pou JavaScript devlopman sou sit wèb ★ 33 00:01:26,530 --> 00:01:30,260 jis paske pwomotè li yo zouti yo se reyèlman fò. 34 00:01:30,260 --> 00:01:33,220 Kòm yon egzanp nan jis sa nou vle di lè li di louvri moute JavaScript ou 35 00:01:33,220 --> 00:01:38,600 console-- si ou ale nan Chrome epi ou gade nan nenpòt ki paj entènèt, 36 00:01:38,600 --> 00:01:43,897 epi ou kite klike sou Enspekte Eleman, ak Lè sa 37 00:01:43,897 --> 00:01:46,730 ou ale nan sa a ti kras gout-desann dwa isit la, epi ou klike sou Console, 38 00:01:46,730 --> 00:01:50,660 ou pral wè sa ki ouvè sanble yon sanble anpil ak yon èd memwa lòd ke ou 39 00:01:50,660 --> 00:01:53,720 ta ka wè sou Mac ou, oswa sou ID a. 40 00:01:53,720 --> 00:01:59,260 Epi jis tankou sa yo, nou kapab kalite kòmande isit la, tankou Klè, 41 00:01:59,260 --> 00:02:01,350 ak lòt kòmandman tankou sa. 42 00:02:01,350 --> 00:02:04,267 Nou ka kreye varyab, kòm nou pral wè pita nan JavaScript. 43 00:02:04,267 --> 00:02:07,100 Se konsa, anyen nou ka fè nan JavaScript, nou kapab fè avèk konsole a, 44 00:02:07,100 --> 00:02:11,430 e ke sa a yon fason super sou la men kòmanse jwe otou ak APIs 45 00:02:11,430 --> 00:02:15,760 ak ap resevwa konfòtab ak JavaScript dwa koupe baton an. 46 00:02:15,760 --> 00:02:18,290 Se pa mete kanpe obligatwa, ki se reyèlman bèl. 47 00:02:18,290 --> 00:02:18,790 Fre. 48 00:02:18,790 --> 00:02:22,064 49 00:02:22,064 --> 00:02:22,880 Pè. 50 00:02:22,880 --> 00:02:24,780 >> Se konsa, jis yon sèl bagay plis yo ajoute. 51 00:02:24,780 --> 00:02:27,780 Si w gen nenpòt questions-- gen anpil nan nou ki pa isit la ap viv la, 52 00:02:27,780 --> 00:02:31,232 santi yo lib yo voye yon imèl ba sa yo fi Fiziyad Kous se adrès imel nou an. 53 00:02:31,232 --> 00:02:33,190 Si w gen kesyon ou pa vle mande nou, 54 00:02:33,190 --> 00:02:36,160 tankou, oh mwen gen yon ensèk nan kòd m 'yo, oswa yon bagay 55 00:02:36,160 --> 00:02:39,270 sa a, se yon ti kras plis espesifik, petèt Google li an premye. 56 00:02:39,270 --> 00:02:42,340 Gen yon anpil nan resous gwo sou entènèt Audio API la yo deyò. 57 00:02:42,340 --> 00:02:44,089 Li nan vrèman byen dokimante ak li a ke yo te 58 00:02:44,089 --> 00:02:47,194 itilize pa yon tòn moun nan endistri yo, ak moun ki yo se jis 59 00:02:47,194 --> 00:02:48,610 bati plezi bagay pou tèt yo. 60 00:02:48,610 --> 00:02:51,306 Se konsa, ta dwe gen yon anpil nan resous yo deyò. 61 00:02:51,306 --> 00:02:53,040 Pè. 62 00:02:53,040 --> 00:02:56,100 >> Cool, konsa poukisa Web Audio API la? 63 00:02:56,100 --> 00:02:59,840 Dyagram sa a se yon ti jan nan yon evolisyon nan wout la 64 00:02:59,840 --> 00:03:04,100 son sou entènèt la te cultivées sou tan. 65 00:03:04,100 --> 00:03:13,080 Bgsound te tankou tag nan HTML orijinal ki Internet Explorer itilize yo sipòte. 66 00:03:13,080 --> 00:03:16,790 Li sèlman pèmèt pou son bèl debaz yo, fonksyonalite a pa t 'trè gaya, 67 00:03:16,790 --> 00:03:19,380 epi ou pa t 'kapab fè konplike sekans, 68 00:03:19,380 --> 00:03:21,890 oswa kontwole lè son te kòmanse ak sispann trè Robuste. 69 00:03:21,890 --> 00:03:23,930 Se konsa, li pa t 'patikilyèman byen devlope. 70 00:03:23,930 --> 00:03:27,470 Lè sa a, apre sa, Fè yan rive along-- ki, 71 00:03:27,470 --> 00:03:31,712 Mwen si ke ke ou nèg, yo tout yo konnen yo ak Flash-- petèt pa ki jan li fonksyone, 72 00:03:31,712 --> 00:03:32,920 men ou te sètènman wè li. 73 00:03:32,920 --> 00:03:35,586 Ou te gen yo mete ajou Flash ou Ploge nan, tout sa ki kalite bagay, 74 00:03:35,586 --> 00:03:40,110 e ke sètènman pwolonje seri a nan fonctionnalités ki te disponib. 75 00:03:40,110 --> 00:03:45,370 Men, fè itilizatè a enstale yon ploge nan se definitivman 76 00:03:45,370 --> 00:03:48,480 yon dezavantaj ki gen ladan Flash nan aplikasyon ou, dwa? 77 00:03:48,480 --> 00:03:52,410 Paske lè sa a ou se depann sou la itilizatè pral jwenn sa a ak ploge nan, 78 00:03:52,410 --> 00:03:54,660 ak pwobableman te vire koupe pa etap siplemantè sa a 79 00:03:54,660 --> 00:03:56,640 yo gen pou pran pou sèvi ak app ou yo. 80 00:03:56,640 --> 00:04:01,270 Lè sa a, ta kapab genyen yon ajou ki pral kraze aplikasyon antye ou, 81 00:04:01,270 --> 00:04:03,880 epi li fini moute ke yo te yon kochma pou pwomotè a, tou. 82 00:04:03,880 --> 00:04:06,230 Se konsa, sa ki te yon barikad. 83 00:04:06,230 --> 00:04:10,480 >> Lè sa a, apre yo fin ki te vin ansanm, HTML odyo tag a, ki 84 00:04:10,480 --> 00:04:16,579 se yon karakteristik ki gen plis HTML-- modèn ki sètènman pèmèt pou yon anpil plis bagay, 85 00:04:16,579 --> 00:04:20,050 men menm bagay sa yo ou ta ka fè te gen yon ti jan limite jis 86 00:04:20,050 --> 00:04:22,730 kòm yon rezilta nan bagay ki ki HTML te kapab nan. 87 00:04:22,730 --> 00:04:26,060 Se konsa, lè JavaScript nan API, Web Audio API la, 88 00:04:26,060 --> 00:04:29,290 te vin tounen yon estanda pratike atravè navigatè, 89 00:04:29,290 --> 00:04:32,490 ki vrèman mete nan elaji nan opòtinite pou devlopè 90 00:04:32,490 --> 00:04:36,590 reyèlman jwenn nan bilding fre bagay pou entènèt la. 91 00:04:36,590 --> 00:04:39,220 Pou yon tan long gen te gen te zouti vrèman gaya 92 00:04:39,220 --> 00:04:44,360 pou aplikasyon pou odyo natal, like-- tout moun konnen GarageBand, 93 00:04:44,360 --> 00:04:48,360 ak Lè sa a evidamman gen plis odyo melanje aplikasyon pwofesyonèl, 94 00:04:48,360 --> 00:04:49,640 ak ki kalite bagay. 95 00:04:49,640 --> 00:04:52,690 Men, gen pa t 'yon pa reyèlman bon Cloud-- 96 00:04:52,690 --> 00:04:55,811 Cloud, yeah, mwen devine Cloud-- platfòm ki baze sou wèb 97 00:04:55,811 --> 00:04:58,310 ki ta pèmèt devlopè yo bati aplikasyon pou moun ki 98 00:04:58,310 --> 00:05:00,570 fè odyo melanje. 99 00:05:00,570 --> 00:05:03,960 Antan l 'te pral montre w apre, Web Audio API la 100 00:05:03,960 --> 00:05:07,470 pèmèt pou vrèman pwisan bagay rive reyèlman tou senpleman, 101 00:05:07,470 --> 00:05:09,597 ki se trè fre. 102 00:05:09,597 --> 00:05:12,680 Se konsa, sa a, se enstriksyon an poukisa ou ta dwe gade rès la nan seminè a, 103 00:05:12,680 --> 00:05:14,350 fondamantalman. 104 00:05:14,350 --> 00:05:17,880 >> Epi, koulye a, mwen pral pale sou kèk JavaScript eleman jis debaz 105 00:05:17,880 --> 00:05:20,240 nan lang lan, se konsa ke nou kapab nan paj la menm 106 00:05:20,240 --> 00:05:22,470 lè nou pale sou nan API yon ti kras pita. 107 00:05:22,470 --> 00:05:23,260 Fre. 108 00:05:23,260 --> 00:05:26,192 >> Se konsa, sa a se yon rezime. 109 00:05:26,192 --> 00:05:27,150 Mwen bliye sa a te isit la. 110 00:05:27,150 --> 00:05:27,510 Yeah. 111 00:05:27,510 --> 00:05:27,870 >> HUGH Zabriskie: Genyen de glisad isit la. 112 00:05:27,870 --> 00:05:30,245 >> SAM GREEN: Sa a se rezime a nan kèk nan limit yo 113 00:05:30,245 --> 00:05:35,220 a obligatwa ak lòt, metòd yo fin vye granmoun. 114 00:05:35,220 --> 00:05:37,828 Lè sa a, kounye a, nou gen bagay sa yo. 115 00:05:37,828 --> 00:05:40,011 Fre. 116 00:05:40,011 --> 00:05:40,510 Pè. 117 00:05:40,510 --> 00:05:43,200 >> Se konsa, JavaScript esansyèl. 118 00:05:43,200 --> 00:05:47,230 Bagay sa yo premye premye, gen nan yon bèl siyifikatif diferans 119 00:05:47,230 --> 00:05:49,940 nan JavaScript kont nan yon lang tankou C, nan chemen an 120 00:05:49,940 --> 00:05:52,050 ki varyab yo kreye. 121 00:05:52,050 --> 00:05:55,634 Se konsa, nan C, nou ap itilize yo gen tape varyab nou an, dwa? 122 00:05:55,634 --> 00:05:57,800 Apre sa, mwen pa vle di kalite tankou tape yo nan, mwen vle di di ki 123 00:05:57,800 --> 00:06:01,900 tankou plase yo yon siyifikasyon type-- tankou, yon int, yon flote, se yon Char. 124 00:06:01,900 --> 00:06:05,210 Nan C, nou te reyèlman itilize yo gen yo kreye yon varyab 125 00:06:05,210 --> 00:06:09,690 ak Lè sa a bwa nan ki kalite pou nan tout tan ke nou itilize ki varyab. 126 00:06:09,690 --> 00:06:13,990 E ke se pa nesesèman pi mal, men li la pwobableman pi rèd yo sèvi ak. 127 00:06:13,990 --> 00:06:16,190 Youn nan karakteristik yo fre a JavaScript se 128 00:06:16,190 --> 00:06:19,740 ki varyab yo se sa ki yo rele "dynamique tape," ki 129 00:06:19,740 --> 00:06:22,500 vle di ke mwen kapab kreye yon varyab ak sa sentaks, 130 00:06:22,500 --> 00:06:25,800 varX egal 5, pou egzanp. 131 00:06:25,800 --> 00:06:27,790 Sa orijinal kreye yon nonb antye relatif variable-- 132 00:06:27,790 --> 00:06:29,870 dwat anba a kapo somewhere-- men mwen 133 00:06:29,870 --> 00:06:33,040 kapab chanje varyab sa , al gade nan yon fisèl 134 00:06:33,040 --> 00:06:35,820 san yo pa fè yon bagay tankou kreye yon varyab nouvo. 135 00:06:35,820 --> 00:06:37,880 Mwen pa bezwen enkyete sou chanje nan kalite. 136 00:06:37,880 --> 00:06:45,440 JavaScript konnen ke kalite a nan chanje yo, epi sa rive dynamique. 137 00:06:45,440 --> 00:06:48,510 >> Se konsa, gen benefis ak dezavantaj yo fè sa, 138 00:06:48,510 --> 00:06:51,250 kòm nenpòt moun ki ki moun ki nan te travay nan JavaScript pou yon ti tan ta ka konnen. 139 00:06:51,250 --> 00:06:53,600 Gen kèk fwa yo ou ta ka aksidantèlman 140 00:06:53,600 --> 00:06:57,720 chanje kalite a nan yon varyab ak Pa manyen ki chanje kalite, 141 00:06:57,720 --> 00:07:01,120 ak Lè sa a JavaScript ou ka crash-- oswa yon eksepsyon 142 00:07:01,120 --> 00:07:06,070 pral kraze nèt vide, paske ou pral gen nan mal di ki lè ou ap atann yon sèl kalite. 143 00:07:06,070 --> 00:07:07,040 Fre. 144 00:07:07,040 --> 00:07:11,470 >> Se konsa, scoping-- ki se tankou, si nou sonje semèn yo byen bonè nan kou a, 145 00:07:11,470 --> 00:07:15,420 refere a ki jan vizib yon varyab se ak nan sa ki zòn nan kòd la. 146 00:07:15,420 --> 00:07:18,400 Tout moun nan ki sanble trè menm jan nan wout la li sanble nan C. 147 00:07:18,400 --> 00:07:24,755 Se konsa, varyab yo scoped jeneralman nan aparèy òtopedik Curly ki nan yon fonksyon, 148 00:07:24,755 --> 00:07:27,005 ak Lè sa a, gen tou varyab globalman-scoped ki 149 00:07:27,005 --> 00:07:29,171 sont- si ou ekri yon varyab deyò nan yon fonksyon, 150 00:07:29,171 --> 00:07:31,790 li pral vizib nan tèks la tout antye. 151 00:07:31,790 --> 00:07:35,840 >> Youn diferans ki genyen ant JavaScript ak C an patikilye, 152 00:07:35,840 --> 00:07:40,280 se ke si ou deklare yon mondyal varyab nenpòt kote nan yon dosye tèks 153 00:07:40,280 --> 00:07:43,324 li a vizib nan nenpòt fonksyon nan ki dosye tèks. 154 00:07:43,324 --> 00:07:44,240 Sa a kòrèk, dwa? 155 00:07:44,240 --> 00:07:46,330 >> HUGH Zabriskie: Oui. 156 00:07:46,330 --> 00:07:49,120 >> SAM GREEN: Se konsa, sa a, se tou yon ti kras ti jan fenki nan konparezon a C, 157 00:07:49,120 --> 00:07:52,660 kote nou toujou te gen yo gen nou an definisyon varyab pi wo a tout tanp zidòl yo 158 00:07:52,660 --> 00:07:53,770 yo te itilize. 159 00:07:53,770 --> 00:07:57,957 Sa a pa yon règ ki nan fè respekte restriksyon ankò, se konsa, yon ti kras diferan. 160 00:07:57,957 --> 00:08:00,540 Epi ankò jis yo Renfòse, mondyal kont variables-- lokal 161 00:08:00,540 --> 00:08:03,457 trè menm jan ak C. Ou te kapab gen de varyab ak non an menm, 162 00:08:03,457 --> 00:08:06,540 epi yo gen youn nan non yo dwe kouvri pa yon varyab lokal si youn nan yo 163 00:08:06,540 --> 00:08:07,546 te mondyal. 164 00:08:07,546 --> 00:08:09,420 Se konsa, menm jan kalite pwoblèm ki anpil nan nou 165 00:08:09,420 --> 00:08:11,920 ka te kouri antre nan nan kèk a pwoblèm ou kouche byen lwen tèlman. 166 00:08:11,920 --> 00:08:14,450 Cool, se konsa sa a, se varyab. 167 00:08:14,450 --> 00:08:20,310 >> Koule kontwòl, sa vle di tankou, si-else-- stuff-- ki lojik e ki pasan. 168 00:08:20,310 --> 00:08:24,510 Se konsa, kòmanse ak, sa a se sa ki si-lòt bagay deklarasyon gade tankou nan JavaScript. 169 00:08:24,510 --> 00:08:29,750 Plasman an nan bagay sa yo sa yo divès kalite sou liy ki se pa enpòtan. 170 00:08:29,750 --> 00:08:34,409 Sa a se jis youn nan konvansyon ki pou fason nou estrikti kòd la. 171 00:08:34,409 --> 00:08:38,634 Jis tankou nan C, nou gen yon "si," yon deklarasyon parantèz. 172 00:08:38,634 --> 00:08:40,840 173 00:08:40,840 --> 00:08:42,090 Sa a pa sa mwen vle di ke yo fè. 174 00:08:42,090 --> 00:08:44,860 175 00:08:44,860 --> 00:08:45,550 M 'te fè l' ankò. 176 00:08:45,550 --> 00:08:46,841 >> HUGH Zabriskie: Ap eseye sòti? 177 00:08:46,841 --> 00:08:49,770 SAM GREEN: Non, mwen se jis ap eseye rale nan. 178 00:08:49,770 --> 00:08:50,660 Li pa gen pwoblèm. 179 00:08:50,660 --> 00:08:54,730 180 00:08:54,730 --> 00:08:59,370 >> Se konsa, nou gen yon "si" deklarasyon ak nou gen yon kondisyon andedan nan li 181 00:08:59,370 --> 00:09:03,130 ki evalye nan vrè oswa fo, ak ki detèmine si wi ou non 182 00:09:03,130 --> 00:09:04,510 nou antre nan ki blòk nan kòd. 183 00:09:04,510 --> 00:09:09,860 Konsa tou, nou gen yon lòt bagay-si, ak yon lòt bagay, jis tankou nou ap itilize yo nan C. 184 00:09:09,860 --> 00:09:14,010 >> Ou menm tou yo ta dwe bèl konfòtab dwa koupe baton an ak pasan, 185 00:09:14,010 --> 00:09:16,440 paske yo gade tou yon sanble anpil ak C sanble. 186 00:09:16,440 --> 00:09:19,600 Men, ou pral avi ke nou ankò genyen, olye pou yo int inisyalizasyon, 187 00:09:19,600 --> 00:09:22,570 nou gen inisyalizasyon var. 188 00:09:22,570 --> 00:09:24,650 Apre sa, mwen devine ou gen dwe fè atansyon fè 189 00:09:24,650 --> 00:09:28,460 w ke ou pa chanje valè la nan mwen soti nan yon int nan yon fisèl, 190 00:09:28,460 --> 00:09:31,780 pou egzanp, paske sa k ap pase yo lakòz konpòtman etranj ou ta ka pa 191 00:09:31,780 --> 00:09:32,280 atann. 192 00:09:32,280 --> 00:09:35,750 Men, sa a ta dwe gade bèl yo konnen yo, kòm byen. 193 00:09:35,750 --> 00:09:39,460 >> Se konsa, sa a se kote bagay sa yo kòmanse jwenn yon ti jan fou nan JavaScript 194 00:09:39,460 --> 00:09:44,920 pou yon moun ki moun ki pral soti nan yon background nan C. Gen fonksyon 195 00:09:44,920 --> 00:09:48,070 nan JavaScript, ak gen nan yon fason deklare yon fonksyon ki sanble 196 00:09:48,070 --> 00:09:50,361 sòt de menm jan ak C, ak Lè sa a, gen nan yon lòt youn ki 197 00:09:50,361 --> 00:09:52,450 sanble kalite diferan. 198 00:09:52,450 --> 00:09:54,930 >> Vèsyon an premye, ki nou ka wè isit la, 199 00:09:54,930 --> 00:09:59,260 se kalite C-tankou, kote nou di, sa a se yon fonksyon, 200 00:09:59,260 --> 00:10:01,490 bay li yon non, bay ki kantite agiman, 201 00:10:01,490 --> 00:10:05,150 ak Lè sa a sa ki nan fonksyon an ale andedan sa yo aparèy òtopedik Curly. 202 00:10:05,150 --> 00:10:08,850 Nou pwal wè yon egzanp sou agiman nan jis yon dezyèm fwa. 203 00:10:08,850 --> 00:10:13,420 >> Lè nou konsidere ke sou liy kap vini an, nou wè, oh, isit la nan yon varyab rele "myFunction," 204 00:10:13,420 --> 00:10:17,546 epi nou egal l 'bay sa a jenerik fonksyon-bagay-- ki 205 00:10:17,546 --> 00:10:19,170 pa sanble yo gen anyen pral sou. 206 00:10:19,170 --> 00:10:22,780 207 00:10:22,780 --> 00:10:26,080 Rezon ki fè la sa a, se diferan pase C se ke JavaScript 208 00:10:26,080 --> 00:10:30,040 se sa yo rele yon lang fonksyonèl, oswa si li gen eleman fonksyonèl, ki vle di 209 00:10:30,040 --> 00:10:33,510 ki fonksyon yo aktyèlman valè. 210 00:10:33,510 --> 00:10:39,520 Lè sa vle di ke nou ka mete yon varyab egal yon fonksyon 211 00:10:39,520 --> 00:10:43,210 ak lè sa a deplase ki fonksyon alantou li, pase li kòm yon agiman, 212 00:10:43,210 --> 00:10:46,550 fè tout kalite bagay tankou ke ak fonksyon. 213 00:10:46,550 --> 00:10:49,682 >> Yon lòt bagay yo note-- fonksyon sa ekri 214 00:10:49,682 --> 00:10:51,140 ak yon sèten kantite agiman. 215 00:10:51,140 --> 00:10:54,056 Nou pwal wè yon egzanp sou yon fonksyon ak yon agiman sou pwochen glise la. 216 00:10:54,056 --> 00:10:56,720 Men, JavaScript pa pral rele nan ou si ou eseye 217 00:10:56,720 --> 00:10:59,330 yo sèvi ak yon fonksyon ak nan mal kantite agiman. 218 00:10:59,330 --> 00:11:05,310 Li pral jis fè pi byen li yo fè fè, sa vle di ke si ou pase, 219 00:11:05,310 --> 00:11:09,410 ou rele yon fonksyon ki espere yon agiman ki pa gen okenn agiman, tout sa ki 220 00:11:09,410 --> 00:11:13,990 pral rive se li pral fè pi byen li yo eseye ak egzekite ki kòd, 221 00:11:13,990 --> 00:11:16,541 epi si li evantyèlman kouri nan yon eksepsyon oswa yon erè, 222 00:11:16,541 --> 00:11:19,790 li pral voye jete ki eksepsyon ak jis kenbe going-- ki se jis youn nan fason ki 223 00:11:19,790 --> 00:11:21,070 ki JavaScript fonksyone. 224 00:11:21,070 --> 00:11:21,781 Yeah. 225 00:11:21,781 --> 00:11:24,207 >> ODYANS: Kisa kap rive si gen nan twò anpil agiman? 226 00:11:24,207 --> 00:11:26,040 SAM GREEN: Se konsa, nan kesyon te, sa k ap pase 227 00:11:26,040 --> 00:11:27,380 si gen twò anpil agiman? 228 00:11:27,380 --> 00:11:29,171 Apre sa, repons lan se ke JavaScript pral jis 229 00:11:29,171 --> 00:11:32,120 inyore sa yo ki yo apre yo menm ki li espere. 230 00:11:32,120 --> 00:11:36,420 Li ap eseye egzekite fonksyon an rele kòm si li te jis de a an premye. 231 00:11:36,420 --> 00:11:37,075 Dwa? 232 00:11:37,075 --> 00:11:37,700 >> HUGH Zabriskie: Sa a dwat, yeah. 233 00:11:37,700 --> 00:11:39,449 Menm jan an tou, si gen yo twò kèk agiman, 234 00:11:39,449 --> 00:11:42,640 li jis kalite bay null nan tout agiman li pa gen okenn valè 235 00:11:42,640 --> 00:11:43,660 pou. 236 00:11:43,660 --> 00:11:45,810 >> SAM GREEN: Ki kapab aktyèlman ap sou la men, si ou 237 00:11:45,810 --> 00:11:49,060 vle ekri yon fonksyon ki pran yon varyab agiman kantite. 238 00:11:49,060 --> 00:11:55,830 Ou ka mete valè default nan definisyon an nan fonksyon an, 239 00:11:55,830 --> 00:11:59,060 epi li ka inyore lefèt ki D 'a nan pa la. 240 00:11:59,060 --> 00:12:01,584 241 00:12:01,584 --> 00:12:04,000 Se konsa, mwen vle pale yon ti kras plis sou sa bal dènye 242 00:12:04,000 --> 00:12:05,541 pwen, ki se fonksyon yo valè. 243 00:12:05,541 --> 00:12:07,930 244 00:12:07,930 --> 00:12:11,010 Sa se yon egzanp se sa ki yon ti kras lide-mouche 245 00:12:11,010 --> 00:12:14,880 si ou jis li li l ', epi yo pa panse sou sa k ap pase sou pou yon dezyèm fwa. 246 00:12:14,880 --> 00:12:17,910 Se konsa, kite pou yo gade jis nan liy lan premye isit la. 247 00:12:17,910 --> 00:12:24,360 Nou gen varyab sa a, F1, ki nou di se yon fonksyon ki fè bagay sa a. 248 00:12:24,360 --> 00:12:28,535 Apre sa, sa ki nan fonksyon an yo console.log ('alo'). 249 00:12:28,535 --> 00:12:32,220 Ou ka panse a kòm console.log nan JavaScript ekivalan nan printf. 250 00:12:32,220 --> 00:12:35,510 Se konsa, sa ki pral rive se, si nou kouri kòd sa a nan navigatè nou an, 251 00:12:35,510 --> 00:12:37,530 li pral enprime soti yon kòd. 252 00:12:37,530 --> 00:12:39,342 Mwen kapab demontre sa. 253 00:12:39,342 --> 00:12:42,300 ODYANS: Lè boutèy demi lit, menm si, fè sa vle di li nan ke yo te anrejistre yon kote? 254 00:12:42,300 --> 00:12:42,550 SAM GREEN: Yeah. 255 00:12:42,550 --> 00:12:44,216 Se konsa, mwen pral montre w sa k pral rive. 256 00:12:44,216 --> 00:12:48,085 Se konsa, kesyon an te, ki sa louvri sesyon vle di? 257 00:12:48,085 --> 00:12:51,262 >> HUGH Zabriskie: Se konsa, console.log se tankou printf pou C. 258 00:12:51,262 --> 00:12:52,970 SAM GREEN: Se konsa, console.log se tankou printf, 259 00:12:52,970 --> 00:12:59,240 Se konsa, si mwen gen console.log sa a ('alo'), ak mwen rele sa, fisèl la "alo" 260 00:12:59,240 --> 00:13:00,730 vin enprime soti nan konsole a. 261 00:13:00,730 --> 00:13:03,340 Sa a se konsole la. 262 00:13:03,340 --> 00:13:05,930 Li nan jis tankou printf, kote li simagri nan estanda deyò. 263 00:13:05,930 --> 00:13:09,050 264 00:13:09,050 --> 00:13:11,230 Epitou, n ap wè nan yon minit, men sa a se aktyèlman 265 00:13:11,230 --> 00:13:16,529 refere li a konsole objè a, ak rele yon metòd sou sa objè. 266 00:13:16,529 --> 00:13:18,320 Sa pral fè plis sans nan yon minit lè nou 267 00:13:18,320 --> 00:13:20,660 li ale nan pale sou objè ki nan JavaScript, 268 00:13:20,660 --> 00:13:22,509 men mwen te panse mwen ta jis mansyone sa. 269 00:13:22,509 --> 00:13:24,300 HUGH Zabriskie: Nou itilize yo nan C, regleman 270 00:13:24,300 --> 00:13:27,580 anjeneral nou ekri yon pwogram gwo nan prensipal fè anyen. 271 00:13:27,580 --> 00:13:30,700 Men, sa ki nan fre nan JavaScript se ou gen sa a kalite entèprèt ki 272 00:13:30,700 --> 00:13:33,620 kouri nan tan reyèl, se konsa li pran jis liy pa liy, 273 00:13:33,620 --> 00:13:35,320 li ka jis entèprete ke sou tèren an. 274 00:13:35,320 --> 00:13:37,403 Epi, se kenbe yon dosye sou bagay sa yo ki te kouri anvan, 275 00:13:37,403 --> 00:13:41,620 se konsa li a yon zouti itil nan bèl itilize console.log, oswa konsole a, 276 00:13:41,620 --> 00:13:46,870 jeneralman, pou jis jwe otou ak JavaScript. 277 00:13:46,870 --> 00:13:51,420 >> SAM GREEN: Se konsa, pral tounen nan sa a example-- liy nan dezyèm nan Kòd 278 00:13:51,420 --> 00:13:55,320 isit la se trè lide-boggling nan tèt mwen. 279 00:13:55,320 --> 00:13:59,790 A premye fwa mwen li sa a, li te tankou, sa k ap pase sou? 280 00:13:59,790 --> 00:14:04,580 Se konsa, sa k ap pase sa ki, sa a deklarasyon fonksyon di, 281 00:14:04,580 --> 00:14:10,170 Mwen gen yon fonksyon rele F2 ki nan tann yon sèl agiman, f, 282 00:14:10,170 --> 00:14:12,990 ak Lè sa a li rele ki fonksyon, f, ki 283 00:14:12,990 --> 00:14:17,652 te pase nan li kòm yon agiman ki pa gen okenn agiman tèt li. 284 00:14:17,652 --> 00:14:19,110 Se konsa, ki ta ka yo te konfizyon. 285 00:14:19,110 --> 00:14:21,890 286 00:14:21,890 --> 00:14:28,400 Si nou konprann sa a kòm F2 pran F1 kòm yon agiman, ak Lè sa andedan nan F2, 287 00:14:28,400 --> 00:14:31,190 f vin called-- ki vle di ke sa a liy nan kòd, 288 00:14:31,190 --> 00:14:34,192 apre de liy sa yo nan Kòd, rezilta nan "alo" 289 00:14:34,192 --> 00:14:35,400 ke yo te enprime nan konsole a. 290 00:14:35,400 --> 00:14:41,660 291 00:14:41,660 --> 00:14:44,910 >> Lefèt ke nou ka pase fonksyon alantou kòm valè 292 00:14:44,910 --> 00:14:47,870 fini moute yo te youn nan pi plis nan karakteristik pwisan nan JavaScript 293 00:14:47,870 --> 00:14:49,700 kòm yon lang programmation. 294 00:14:49,700 --> 00:14:52,782 Deyò nan tout nan nan bagay awizom li ka fè, 295 00:14:52,782 --> 00:14:54,990 menm jan yon karakteristik nan la ak lang nan tèm de wout la 296 00:14:54,990 --> 00:14:58,400 ke li fè bagay sa yo fasil nan pwogram ak pèmèt 297 00:14:58,400 --> 00:15:01,060 pou bagay sa yo ki pa patikilyèman ki byen adapte nan entènèt la, 298 00:15:01,060 --> 00:15:04,500 pwogram fonksyonèl ak fonksyonèl aspè pwogram nan JavaScript 299 00:15:04,500 --> 00:15:07,130 se youn nan pi plis nan konsèp pwisan ki 300 00:15:07,130 --> 00:15:11,030 egziste nan JavaScript si ou mande m '. 301 00:15:11,030 --> 00:15:11,960 Fre. 302 00:15:11,960 --> 00:15:13,534 >> Se konsa, bagay kap vini an. 303 00:15:13,534 --> 00:15:16,450 Anplis de sa ke yo te fonksyonèl, genyen tou eleman nan JavaScript 304 00:15:16,450 --> 00:15:20,510 ki objè-oryante, ki se youn nan trè an 305 00:15:20,510 --> 00:15:23,800 Mo Buzz popilè nan syans òdinatè. 306 00:15:23,800 --> 00:15:27,040 Pwogram objè-oryante se yon bagay reyèlman popilè. 307 00:15:27,040 --> 00:15:34,210 JavaScript gen yon vèsyon nan sa, kote mwen kwè chak valè tou se 308 00:15:34,210 --> 00:15:41,475 yon objè, ki vle di ke chak objè vlope ansanm kèk nimewo nan valè. 309 00:15:41,475 --> 00:15:44,020 310 00:15:44,020 --> 00:15:49,750 Se konsa, pou valè ki yo se senp, tankou yon nonb antye relatif, tankou varX egal 5, 311 00:15:49,750 --> 00:15:52,250 ki objè jis vlope ke youn valè. 312 00:15:52,250 --> 00:15:54,760 313 00:15:54,760 --> 00:15:59,036 >> Men, nou kapab tou imajine yon sitiyasyon where-- nou ka panse nan sitiyasyon nan C 314 00:15:59,036 --> 00:16:00,910 kote nou te vle fè yon bagay ki gen strukt, 315 00:16:00,910 --> 00:16:03,285 pou egzanp, ki vlope plizyè valè yo ansanm ak fait 316 00:16:03,285 --> 00:16:05,870 li vrèman fasil yo pase bagay alantou. 317 00:16:05,870 --> 00:16:09,270 Sa a lè yon objè se an JavaScript. 318 00:16:09,270 --> 00:16:12,340 >> Li nan enpòtan sonje lè m 'di ke objè vlope 319 00:16:12,340 --> 00:16:15,330 kèk nimewo nan valè yo ansanm, ki fonksyon yo tou 320 00:16:15,330 --> 00:16:21,506 valè, ki vle di ke fonksyon kapab tou ap andedan nan yon objè ki JavaScript. 321 00:16:21,506 --> 00:16:26,910 Ak rezon an sa a, se enpòtan se ke, Lè nou konsidere ke nou souvan 322 00:16:26,910 --> 00:16:30,290 panse a rele yon metòd sou yon objè sa a, se 323 00:16:30,290 --> 00:16:35,200 nan yon tèm popilè ki soti nan lòt popilè objè-oryante lang, 324 00:16:35,200 --> 00:16:39,330 youn nan diferans ki genyen isit la se ke tout sa ki yon metòd se nan JavaScript 325 00:16:39,330 --> 00:16:47,270 se yon valè ki estoke andedan nan yon objè ki fè kèk action-- pètèt 326 00:16:47,270 --> 00:16:51,850 lè l sèvi avèk lòt valè yo ki andedan nan ki objè, men se pa nesesèman. 327 00:16:51,850 --> 00:16:56,930 Se konsa, ou ka imajine yon sitiyasyon, mwen devine nan yon ti kras nan yon fason fou, 328 00:16:56,930 --> 00:17:02,990 kote ou rele yon metòd pou yon sèl objè sou yon lòt objè, pou egzanp. 329 00:17:02,990 --> 00:17:06,010 Se konsa, li nan yon ti jan fenki nan fason sa a. 330 00:17:06,010 --> 00:17:09,369 >> Epi ou ka tou chanje metòd yo ki yo asosye avèk yon objè 331 00:17:09,369 --> 00:17:13,740 pa plase ke metòd yon fonksyon nouvo, ki se tou 332 00:17:13,740 --> 00:17:18,250 bèl diferan de lòt objè-oryante lang, kote 333 00:17:18,250 --> 00:17:21,410 yon fwa nou deklare yon objè ak enstansye li, 334 00:17:21,410 --> 00:17:25,839 nou pa ka chanje metòd yo ki ki asosye ak ki objè ankò. 335 00:17:25,839 --> 00:17:28,680 Se konsa, sa a, se bèl diferan. 336 00:17:28,680 --> 00:17:29,570 Fre. 337 00:17:29,570 --> 00:17:34,010 >> Se konsa, isit la nan yon egzanp, an premye, yon objè nan aksyon. 338 00:17:34,010 --> 00:17:36,390 Sa a se sa yo rele yon objè ki jenerik, ki 339 00:17:36,390 --> 00:17:39,460 vle di ke li pa gen okenn Non patikilye, pa gen yon klas, 340 00:17:39,460 --> 00:17:42,190 li nan jis kèk anbalaj nan valè. 341 00:17:42,190 --> 00:17:49,790 Ak wout la ki sanble se, nou gen sa a pè deyò nan aparèy òtopedik Curly isit la 342 00:17:49,790 --> 00:17:57,950 ki endike JavaScript ak di, sa a se yon objè. 343 00:17:57,950 --> 00:18:02,130 Valè yo andedan nan li yo chak valè andedan 344 00:18:02,130 --> 00:18:04,590 nan objè a ki ta dwe dwe vlope yo ansanm. 345 00:18:04,590 --> 00:18:09,180 Apre sa, andedan nan ki objè, nou Lè sa a gen valè kle pè, 346 00:18:09,180 --> 00:18:13,880 kote kle a refere a non an ki gen valè nan andedan nan objè a, 347 00:18:13,880 --> 00:18:16,790 ak lòt side-- nan opoze isit lan-- a kolon 348 00:18:16,790 --> 00:18:19,850 se valè aktyèl la ki ta dwe estoke. 349 00:18:19,850 --> 00:18:26,210 >> Se konsa, ou wè isit la nou gen yon kle rele FN ak valè sam, 350 00:18:26,210 --> 00:18:29,430 ki te swiv pa yon vigil, li di sou antre nan kap vini an. 351 00:18:29,430 --> 00:18:33,560 Lè sa a, yon kle rele LN, ki gen yon valè nan vèt, 352 00:18:33,560 --> 00:18:35,840 ki te swiv pa yon vigil, ki te swiv pa "ekri an lèt detache," 353 00:18:35,840 --> 00:18:43,209 ki se ale nan gen yon valè fonksyon ki pral fè liy sa a nan kòd. 354 00:18:43,209 --> 00:18:45,500 Se pou nou pran yon etap retounen lakay yo epi defèr sa k ap pase isit la. 355 00:18:45,500 --> 00:18:47,280 Se konsa, sa a se yon ti jan konplike, epi nou ap wè yon bagay nouvo 356 00:18:47,280 --> 00:18:48,071 la pou premye fwa a. 357 00:18:48,071 --> 00:18:51,190 358 00:18:51,190 --> 00:18:55,065 "Sa a" mo kle a se bagay ki nouvo nou ap wè isit la, e ki sa sa fè 359 00:18:55,065 --> 00:19:00,540 se, refere a aktyèl la objè nan sijè ki abòde, dwa? 360 00:19:00,540 --> 00:19:03,990 Se konsa, lè nou di, sa a pwen tout wout la tounen 361 00:19:03,990 --> 00:19:08,140 object-- sa a tout antye lè nou fè this.fn, 362 00:19:08,140 --> 00:19:11,990 nou ap ale nan ale tout wout la tounen nan sa a objè, ale nan valè a fn 363 00:19:11,990 --> 00:19:16,471 epi pou yo jwenn Sam, rale li tout wout la tounen, bwa l 'isit la, ak Lè sa deplase sou. 364 00:19:16,471 --> 00:19:19,838 >> ODYANS: Se konsa, avèk Rekipere an, se ki fè paske yo te paramèt la 365 00:19:19,838 --> 00:19:20,621 definisyon? 366 00:19:20,621 --> 00:19:23,870 SAM GREEN: Se konsa, kesyon an te ye a, se la Rekipere fè paske yo te paramèt la 367 00:19:23,870 --> 00:19:24,727 definisyon? 368 00:19:24,727 --> 00:19:25,435 Yeah, absoliman. 369 00:19:25,435 --> 00:19:29,660 370 00:19:29,660 --> 00:19:32,470 Ki sa ki nan pral rive isit la se, sa a dot di JavaScript a, 371 00:19:32,470 --> 00:19:39,990 OK, Mwen ap resevwa kèk valè soti nan objè sa a soti nan tèt mwen. 372 00:19:39,990 --> 00:19:46,375 Lè sa a, li pral gade pou yon antre rele fn, epi si li jwenn li, 373 00:19:46,375 --> 00:19:48,470 li pral retounen ki value-- konsa, li nan Sam. 374 00:19:48,470 --> 00:19:51,540 Men, mwen ta ka tou te tape yon bagay ki pa te defini isit la, 375 00:19:51,540 --> 00:19:54,090 ak Lè sa a li ta jis retounen undefined-- ki 376 00:19:54,090 --> 00:19:58,250 se yon bagay ki ka JavaScript fè, sa ki ka gen benefis yo, 377 00:19:58,250 --> 00:20:03,190 men li la also-- si ou fè yon Typo, li ka rezilta nan erè etranj. 378 00:20:03,190 --> 00:20:05,617 Se konsa, li pral jis eseye jwenn tou sa ou di l 'bay jwenn 379 00:20:05,617 --> 00:20:07,700 epi li pa k ap pase yo pote plent si se pa jwenn li ankò. 380 00:20:07,700 --> 00:20:11,390 Li pral jis di, mwen pa t ' jwenn li, ak Lè sa a deplase sou. 381 00:20:11,390 --> 00:20:17,581 Se konsa, li ta dwe undefined, plis vid, plis siyati. 382 00:20:17,581 --> 00:20:18,080 Yeah. 383 00:20:18,080 --> 00:20:21,070 Lè sa a, nou ka wè ke si nou te kapab Lè sa a, v al access-- 384 00:20:21,070 --> 00:20:25,450 epi nou rele tf.print () ak parantèz. 385 00:20:25,450 --> 00:20:30,000 Li nan ale nan rele ke ekri an lèt detache fonksyon ki pa gen okenn agiman, dwa? 386 00:20:30,000 --> 00:20:34,490 Men, si nou jis di tf.print () virgules, san yo pa parantèz yo, 387 00:20:34,490 --> 00:20:37,480 tout sa ki ta te fè se rale soti fonksyon nan soti nan valè a, 388 00:20:37,480 --> 00:20:40,609 men se pa aktyèlman rele l '. 389 00:20:40,609 --> 00:20:41,162 Fre. 390 00:20:41,162 --> 00:20:42,870 HUGH Zabriskie: yo ta dwe nou fè yon objè? 391 00:20:42,870 --> 00:20:44,161 SAM GREEN: Asire w, se pou yo fè sa. 392 00:20:44,161 --> 00:20:48,750 Se konsa, mwen ka deplase sa a egzanp nan konsole a. 393 00:20:48,750 --> 00:20:51,380 394 00:20:51,380 --> 00:20:55,466 Nou ka imajine ke mwen gen yon objè. 395 00:20:55,466 --> 00:21:03,026 396 00:21:03,026 --> 00:21:04,150 Se konsa, sa a se yon objè ki senp. 397 00:21:04,150 --> 00:21:06,910 398 00:21:06,910 --> 00:21:11,050 Sa a se yon bagay ki gen de valè ak de kle, de kle valè 399 00:21:11,050 --> 00:21:12,710 pè. 400 00:21:12,710 --> 00:21:21,850 Se konsa, mwen ka Lè sa a aksè a ki estoke valè andedan nan sa a objè pa fè x.x1, 401 00:21:21,850 --> 00:21:23,400 pou egzanp, ak mwen jwenn 1 tounen. 402 00:21:23,400 --> 00:21:29,590 Menm jan an tou, x.x2, jwenn ke valè tounen. 403 00:21:29,590 --> 00:21:33,330 >> Epi, koulye a bagay la vrèman fre se, mwen kapab aktyèlman ajoute yon bagay nan sa a objè 404 00:21:33,330 --> 00:21:34,316 apre mwen te kreye li. 405 00:21:34,316 --> 00:21:36,315 Se konsa, ou ka imajine, se pou yo di mwen gen yon fonksyon. 406 00:21:36,315 --> 00:21:44,430 407 00:21:44,430 --> 00:21:46,352 >> HUGH Zabriskie: Ou dwe fè chanjman-Antre nan. 408 00:21:46,352 --> 00:21:47,643 >> SAM GREEN: Oh, sa a, se anmèdan. 409 00:21:47,643 --> 00:22:02,460 410 00:22:02,460 --> 00:22:04,324 Ki sa li pa renmen? 411 00:22:04,324 --> 00:22:04,824 Oh. 412 00:22:04,824 --> 00:22:07,532 413 00:22:07,532 --> 00:22:08,691 Isit la nou ale. 414 00:22:08,691 --> 00:22:09,190 Fre. 415 00:22:09,190 --> 00:22:12,840 >> Se konsa, mwen te jis kreye sa a fonksyon, f, ki 416 00:22:12,840 --> 00:22:17,590 ki pral pou yo ale nan aktyèl la objè epi enprime this.x1. 417 00:22:17,590 --> 00:22:20,330 Se konsa, si mwen jis rele f pa tèt li, pa gen anyen k ap pase 418 00:22:20,330 --> 00:22:26,970 rive, dwa, paske li pa gen x1 jaden an objè a li nan refere li a. 419 00:22:26,970 --> 00:22:39,710 Men, si mwen di, x.f = f, ak Lè sa a mwen rele x.f (), mwen pral jwenn tounen 1. 420 00:22:39,710 --> 00:22:42,990 421 00:22:42,990 --> 00:22:46,530 Sa fonksyon f se kounye a ki asosye ak objè x la, 422 00:22:46,530 --> 00:22:51,800 ki te gen yon kle rele x1 ki asosye ak valè a 1, 423 00:22:51,800 --> 00:22:54,570 Se konsa, lè nou rele this.x1, li nan ale nan jwenn sa li a kap chèche 424 00:22:54,570 --> 00:22:56,450 epi yo dwe kapab enprime yon valè deyò. 425 00:22:56,450 --> 00:22:58,700 Se konsa, sa se sèlman yon egzanp nan kalite nan bagay ki fou 426 00:22:58,700 --> 00:23:01,190 ou kapab fè avèk objè ki nan JavaScript. 427 00:23:01,190 --> 00:23:03,870 428 00:23:03,870 --> 00:23:07,560 >> Se konsa, ke vèsyon te nan jenerik vèsyon, siyifikasyon 429 00:23:07,560 --> 00:23:13,780 ke nou te kreye lè l sèvi avèk sa a yon objè parantèz notasyon atèl Notasyon, 430 00:23:13,780 --> 00:23:16,880 rather-- e ke sa a sou la men si nou jis vle 431 00:23:16,880 --> 00:23:21,440 yon sèl egzanp nan yon objè patikilye, men sa ki si nou vle gen plis pase yon 432 00:23:21,440 --> 00:23:22,210 nan kalite la menm? 433 00:23:22,210 --> 00:23:24,440 Apre sa, repons lan nan kesyon se, gen bagay 434 00:23:24,440 --> 00:23:26,760 rele klas nan JavaScript kòm byen. 435 00:23:26,760 --> 00:23:31,470 436 00:23:31,470 --> 00:23:36,420 Nou ka kreye yon fonksyon ki fè kèk sòt de inisyalizasyon 437 00:23:36,420 --> 00:23:41,690 pou yon objè etranje yo, epi nou ta di, tankou, 438 00:23:41,690 --> 00:23:44,550 class-- m 'konsa non an a object-- nan ki kapab itilize ankò 439 00:23:44,550 --> 00:23:47,100 egal fonksyon ki kouche li. 440 00:23:47,100 --> 00:23:52,280 Se konsa, sa sa a ta ka ekivalan ap kreye yon bagay ki 441 00:23:52,280 --> 00:23:55,930 ta dwe jis renmen, Curly atèl, str, kolon, 442 00:23:55,930 --> 00:23:59,630 sa a se yon fisèl, virgules, Curly atèl. 443 00:23:59,630 --> 00:24:01,880 Ki ta ka jenerik nan objè nou inisyalize, 444 00:24:01,880 --> 00:24:06,380 ak diferans nan yon sèl ke yo te sou mòn lan liy pwochen nou kreye yon pwototip, ki 445 00:24:06,380 --> 00:24:11,190 vle di li yon kle default ki nou ajoute nan objè nou an ki 446 00:24:11,190 --> 00:24:13,970 gen valè nan ki nan lis isit la. 447 00:24:13,970 --> 00:24:20,570 Sa vle di, lè m 'kreye yon nouvo egzanp nan sa a objè MyClass, 448 00:24:20,570 --> 00:24:27,440 li k ap pase yo gen pre-bati andedan nan li se yon valè rele str ak yon lòt valè 449 00:24:27,440 --> 00:24:32,418 rele myPrint, ki se pral gen yon fonksyon. 450 00:24:32,418 --> 00:24:32,918 Pè. 451 00:24:32,918 --> 00:24:37,410 452 00:24:37,410 --> 00:24:37,990 >> Great. 453 00:24:37,990 --> 00:24:40,710 Se konsa, bagay ki sot pase a di sou JavaScript 454 00:24:40,710 --> 00:24:46,430 se ke li nan reyèlman itil pou sa yo rele operasyon asenkron. 455 00:24:46,430 --> 00:24:52,500 Asynchrone vle di se ke nou ka tann pou kèk operasyon 456 00:24:52,500 --> 00:24:57,870 ranpli anvan nou deplase sou, men deplase sou pandan ke nou rete tann 457 00:24:57,870 --> 00:24:59,690 ak Lè sa a gen yon bagay rive pita sou. 458 00:24:59,690 --> 00:25:03,480 Ak sa ki mwen vle di pa se sa ki, ou ka imajine yon sitiyasyon kote 459 00:25:03,480 --> 00:25:06,850 ou voye yon demann yo voye kèk sèvè wèb yon kote, 460 00:25:06,850 --> 00:25:09,670 epi li k ap pase yo voye ba ou tounen kèk moso gwo nan done, dwa? 461 00:25:09,670 --> 00:25:13,320 Apre sa, itilizatè ou te kapab rete tann nan nan Antretan pou sa rive, 462 00:25:13,320 --> 00:25:15,200 e pa gen anyen ta ka ale sou nan moman sa. 463 00:25:15,200 --> 00:25:18,110 Men, sa a pa yon gwo konsepsyon, dwa? 464 00:25:18,110 --> 00:25:20,214 Ou pa vle paj wèb la friz. 465 00:25:20,214 --> 00:25:22,380 E si itilizatè a vle klike sou yon meni drop-desann? 466 00:25:22,380 --> 00:25:24,870 Li pa yon modèl konsepsyon gwo. 467 00:25:24,870 --> 00:25:29,290 Olye de sa, fondamantalman sa JavaScript di, 468 00:25:29,290 --> 00:25:31,870 OK, fè operasyon sa a asenkron. 469 00:25:31,870 --> 00:25:36,520 Se konsa, tankou, rete tann nan background nan, ak Lè sa a lè se operasyon an fè, 470 00:25:36,520 --> 00:25:39,420 rele kalbak nan fonksyon- rele kèk fonksyon, 471 00:25:39,420 --> 00:25:43,800 kèk action-- yo fè siyal ki nan operasyon nou te ap tann pou nan fen 472 00:25:43,800 --> 00:25:45,520 se sou. 473 00:25:45,520 --> 00:25:51,240 Ak rezon an sa a, se super pwisan se, nou ka fè yon bagay, pase yon agiman, 474 00:25:51,240 --> 00:25:54,440 fè yon bagay, Lè sa a, rete tann ak pou yon bagay rive. 475 00:25:54,440 --> 00:25:58,970 Lè sa a, yon fwa ke yon bagay konplete, nou ka rele yon kalbak. 476 00:25:58,970 --> 00:26:03,300 Sa ki nan vrèman sou la men paske li pèmèt nou fè bagay sa yo ak Web Audio API, 477 00:26:03,300 --> 00:26:07,490 pou egzanp, tankou chaj yon odyo dosye soti nan yon sèvè aleka 478 00:26:07,490 --> 00:26:11,660 san yo pa gen pou ret tann pou a tout dosye odyo yo dwe chaje, 479 00:26:11,660 --> 00:26:14,440 ki ta dwe reyèlman move pou eksperyans itilizatè. 480 00:26:14,440 --> 00:26:17,080 Fre. 481 00:26:17,080 --> 00:26:19,460 >> Denye koup nòt sou debogaj, depi sa a 482 00:26:19,460 --> 00:26:23,682 se yon bagay w ap ale nan dwe fè kòm yon pati nan pwojè ou, garanti. 483 00:26:23,682 --> 00:26:25,140 Mwen mansyone konsole a JavaScript. 484 00:26:25,140 --> 00:26:27,550 Li se yon karakteristik super itil nan tout navigatè modèn, 485 00:26:27,550 --> 00:26:30,300 Apre sa, nou vrèman ankouraje w yo ka resevwa konfòtab lè l sèvi avèk konsole ou, 486 00:26:30,300 --> 00:26:33,660 si ou vle jwenn bon nan JavaScript. 487 00:26:33,660 --> 00:26:36,320 Li nan super sou la men pou debogaj, men li la tou 488 00:26:36,320 --> 00:26:39,440 reyèlman itil pou lè n ap kalkile konnen kouman ou kapab sèvi ak yon API. 489 00:26:39,440 --> 00:26:41,950 Li pèmèt pou reyèlman eksperimantasyon fasil 490 00:26:41,950 --> 00:26:45,910 san yo pa gen tape kèk kòd, ak Lè sa a konpile li. 491 00:26:45,910 --> 00:26:47,500 Ou pa dwe fè tout moun sa yo etap. 492 00:26:47,500 --> 00:26:49,619 Ou ka jis ekri kèk kòd nan yon liy, 493 00:26:49,619 --> 00:26:52,410 ak Lè sa a jwenn fidbak imedya sou si wi ou non ke liy nan kòd 494 00:26:52,410 --> 00:26:55,230 worked-- trè sou la men. 495 00:26:55,230 --> 00:26:59,760 >> Epi tou, sèlman yon sèl note-- teknik konsole a JavaScript se yon egzanp 496 00:26:59,760 --> 00:27:05,680 nan yon REPL-- konsa sa a, se R-E-P-L, REPL, ki vle di pou Li, evalye, 497 00:27:05,680 --> 00:27:06,180 ekri an lèt detache riban. 498 00:27:06,180 --> 00:27:09,100 499 00:27:09,100 --> 00:27:12,120 W ap ale nan tape kèk bagay an, li pral li sa ou tape nan, 500 00:27:12,120 --> 00:27:17,280 li pral evalye l ', li li pral enprime nan pwodiksyon, ak Lè sa a li pral kòmanse ankò. 501 00:27:17,280 --> 00:27:22,056 Ki pèmèt ou byen vit ale nan ti sèk iteration, ki se vrèman fre. 502 00:27:22,056 --> 00:27:25,150 503 00:27:25,150 --> 00:27:28,930 >> Mwen devine reyèl dènye note-- sa a se aktyèl nòt ki sot pase a, wi. 504 00:27:28,930 --> 00:27:30,780 Ki jan nou aktyèlman sèvi ak JavaScript? 505 00:27:30,780 --> 00:27:34,040 Se konsa, premye, nou ka enpòte li lè l sèvi avèk yon tag script 506 00:27:34,040 --> 00:27:39,500 nan tèt la oswa anba nan yon HTML file-- nenpòt kote andedan nan yon dosye HTML, 507 00:27:39,500 --> 00:27:40,440 vrèman. 508 00:27:40,440 --> 00:27:47,390 E nan lespas de yon tag script, gen de sub-fason pou importation JavaScript. 509 00:27:47,390 --> 00:27:51,370 Premye a se pa gen yon separe dosye JavaScript 510 00:27:51,370 --> 00:27:58,010 ke nou enpòte nan antye li yo, oswa pa gen yon zòn nan Kòd tankou script 511 00:27:58,010 --> 00:28:00,290 yo kòmanse, ak Lè sa a script antislach nan fen. 512 00:28:00,290 --> 00:28:02,620 Lè sa a, nou jis ekri JavaScript andedan dosye a HTML. 513 00:28:02,620 --> 00:28:03,790 Moun sa yo se de fason yo. 514 00:28:03,790 --> 00:28:05,165 Ou pa ka genyen li andedan nan HTML. 515 00:28:05,165 --> 00:28:06,502 516 00:28:06,502 --> 00:28:08,126 ODYANS: Se youn pi bon pase lòt la? 517 00:28:08,126 --> 00:28:10,542 SAM GREEN: Kesyon an te, se youn pi bon pase lòt la. 518 00:28:10,542 --> 00:28:18,306 Se konsa, repons lan se wi, kòm yon pratik style kodaj, epi tou li li a tankou yon pratik konsepsyon. 519 00:28:18,306 --> 00:28:20,180 Gen de rezon poukisa li ta kapab pi bon. 520 00:28:20,180 --> 00:28:23,934 Premye a se, li fè yon ou Kòd anpil plis lizib si tout nan HTML ou 521 00:28:23,934 --> 00:28:27,100 se nan yon sèl kote, nan tout CSS ou a nan yon lòt kote, nan tout JavaScript ou 522 00:28:27,100 --> 00:28:28,420 se nan yon twazyèm plas la. 523 00:28:28,420 --> 00:28:28,920 Dwa? 524 00:28:28,920 --> 00:28:32,370 Mwen panse ke nou ta dwe te deja pale sou li nan sections-- tankou CSS-- sa 525 00:28:32,370 --> 00:28:35,220 ki is-- ak li ale souvan nan yon lòt dosye. 526 00:28:35,220 --> 00:28:37,090 Se konsa, menm jan kalite konsèp isit la. 527 00:28:37,090 --> 00:28:42,410 Ou kapab tou imajine ke JavaScript ta dwe reyitilize sou plis pase yon 528 00:28:42,410 --> 00:28:47,350 Paj HTML, oswa petèt yon gwo anpil paj HTML, 529 00:28:47,350 --> 00:28:49,340 epi ki gen ki JavaScript refactored nan yon sèl 530 00:28:49,340 --> 00:28:51,950 ranpli ke ou ka enpòte nan plis pase yon sèl kote 531 00:28:51,950 --> 00:28:54,570 pèmèt kòd la yo dwe fason pi plis soutnabl. 532 00:28:54,570 --> 00:28:57,930 Ou ka imajine fè yon sèl chanje nan JavaScript nan 533 00:28:57,930 --> 00:29:00,070 epi ki gen mande chanje li nan 100 dosye diferan. 534 00:29:00,070 --> 00:29:04,070 Ak olye pou nou ka jis chanje li nan yon sèl, ki se yon fason plis pouvwa anpil. 535 00:29:04,070 --> 00:29:05,420 Èske mwen reponn kesyon ou a? 536 00:29:05,420 --> 00:29:07,950 Fre. 537 00:29:07,950 --> 00:29:10,830 >> Nou kapab tou tape nan konsole a, kòm nou te mansyone anvan an. 538 00:29:10,830 --> 00:29:15,070 Epi ankò, yon dènye note-- Web Audio se bati nan, 539 00:29:15,070 --> 00:29:16,978 ou pa bezwen chaje anyen. 540 00:29:16,978 --> 00:29:17,478 Fre. 541 00:29:17,478 --> 00:29:20,519 Èske gen nenpòt kesyon, ou gen nenpòt ki plis kesyon sou JavaScript, 542 00:29:20,519 --> 00:29:21,930 anvan nou deplase sou? 543 00:29:21,930 --> 00:29:24,286 >> ODYANS: [fèbl] 544 00:29:24,286 --> 00:29:25,410 SAM GREEN: Tout dwa, fre. 545 00:29:25,410 --> 00:29:27,200 Se konsa, kounye li te ale nan pale sou API la. 546 00:29:27,200 --> 00:29:28,490 >> HUGH Zabriskie: Cool. 547 00:29:28,490 --> 00:29:28,990 Mèsi, Sam. 548 00:29:28,990 --> 00:29:30,184 >> SAM GREEN: Asire w. 549 00:29:30,184 --> 00:29:32,600 HUGH Zabriskie: Awesome, se konsa nou pral deplase sou soti nan JavaScript. 550 00:29:32,600 --> 00:29:35,350 Se konsa, nou te pale sou kèk nan esansyèl yo nan JavaScript, 551 00:29:35,350 --> 00:29:41,105 ak sa yo se varyab yo, fonksyon, objè, fonksyon kòm varyab, 552 00:29:41,105 --> 00:29:41,980 asenkron loading. 553 00:29:41,980 --> 00:29:46,100 Sa yo se tout bagay sa yo ke ou pral wè kòm ou itilize entènèt la Audio. 554 00:29:46,100 --> 00:29:49,230 Se konsa, nou ap jis pral pale sou li premye nan yon nivo segondè. 555 00:29:49,230 --> 00:29:52,120 >> Se yon API, se konsa li nan yon bagay ki nan bati, kòm Sam te di, 556 00:29:52,120 --> 00:29:57,010 dwa nan JavaScript nan ke ou itilize nan konsole a. 557 00:29:57,010 --> 00:30:01,020 Apre sa, li la aktyèlman jis tankou C ++ Kòd ki se reyèlman bati nan Chrome 558 00:30:01,020 --> 00:30:04,470 ak Firefox, ak tout nan navigatè sa yo. 559 00:30:04,470 --> 00:30:07,060 Se konsa, lide nan prensipal ak Web Audio se ke ou gen 560 00:30:07,060 --> 00:30:09,440 sa a kalite tiyo nan odyo, dwa? 561 00:30:09,440 --> 00:30:13,670 Se konsa, done odyo ou vini nan nan kèk fòm. 562 00:30:13,670 --> 00:30:16,690 >> Gen kalite twa forms-- prensipal ou gen osilator a, ki 563 00:30:16,690 --> 00:30:21,340 kreye yon vag sinis, kosinis vag, nou ap ale nan wè ki jan ki travay. 564 00:30:21,340 --> 00:30:23,890 Yon lòt yon sèl trè komen, nan kou, se yon MP3. 565 00:30:23,890 --> 00:30:25,810 Se konsa, petèt ou kòmanse ak yon chan, ak Lè sa a ou 566 00:30:25,810 --> 00:30:28,320 vle fè kèk filtraj ak sa yo ki ak pwodiksyon 567 00:30:28,320 --> 00:30:30,605 that-- ki te kapab yon sous posib. 568 00:30:30,605 --> 00:30:32,480 Lè sa a, yon vrèman fre se yon sèl mikwofòn la. 569 00:30:32,480 --> 00:30:37,230 Se konsa, ou ka sèvi ak kèk trè apèl debaz yo genyen nan JavaScript 570 00:30:37,230 --> 00:30:39,440 jwenn aksè nan la mikwofòn, ak kidonk si w 571 00:30:39,440 --> 00:30:42,870 te vle fè yon app tankou yon detektè goudwon, 572 00:30:42,870 --> 00:30:45,290 pou egzanp, ki pran an vwa ou ak figi soti 573 00:30:45,290 --> 00:30:47,740 pitch-- wout la trè fasil yo sa. 574 00:30:47,740 --> 00:30:50,730 Ou ka jis kalite li li l ' nan, figi konnen frekans lan, 575 00:30:50,730 --> 00:30:52,250 ak Lè sa a pwodiksyon yon nimewo. 576 00:30:52,250 --> 00:30:56,080 Se konsa, nou pral wè ki jan ki travay, tankou byen. 577 00:30:56,080 --> 00:30:59,430 >> Destinasyon an se fondamantalman kote done a odyo se pwodiksyon. 578 00:30:59,430 --> 00:31:02,890 Se konsa, jeneralman, sa a, se tankou natif laptop ou. 579 00:31:02,890 --> 00:31:05,610 Lòt opsyon yo tankou yon ScriptProcessorNode-- 580 00:31:05,610 --> 00:31:07,990 nou pral ale nan nœuds nan yon second-- men fondamantalman, 581 00:31:07,990 --> 00:31:11,939 swa w ap mete son soti a òdinatè w lan atravè moun kap pale, 582 00:31:11,939 --> 00:31:14,730 oswa w ap kalite anrejistreman li, se konsa w ap estoke li kòm done odyo. 583 00:31:14,730 --> 00:31:18,980 Se konsa, petèt si yon moun kreye mizik nan app ou ak Lè sa a 584 00:31:18,980 --> 00:31:22,410 ou vle nan dosye ki e petèt tankou ekspòtasyon li nan SoundCloud, pou example-- 585 00:31:22,410 --> 00:31:25,281 ki ta ka yon fason fè sa. 586 00:31:25,281 --> 00:31:27,030 Tout bagay la plezi, ki nou pral pale sou, 587 00:31:27,030 --> 00:31:29,950 k ap pase ant de pwen sa yo, kote nou chaje nan mizik la 588 00:31:29,950 --> 00:31:31,410 ak Lè sa a pwodiksyon li. 589 00:31:31,410 --> 00:31:36,660 >> Se konsa, mwen pral pale sou senk an etap nan pwodiksyon odyo nan yon dezyèm fwa. 590 00:31:36,660 --> 00:31:38,950 Nou gen bagay sa yo rele yon AudioContext, ki 591 00:31:38,950 --> 00:31:41,580 se sa a ti kras pakè nou wè isit la. 592 00:31:41,580 --> 00:31:49,980 Fondamantalman sa AudioContext is-- si nou ale nan JavaScript konsole a kounye a, 593 00:31:49,980 --> 00:31:52,740 nou ka kreye youn kounye a. 594 00:31:52,740 --> 00:31:54,040 Jis yon egzanp sou REPL, dwa? 595 00:31:54,040 --> 00:31:57,880 Nou ap lekti, evalye, epi li simagri. 596 00:31:57,880 --> 00:32:00,260 >> AudioContext se yon eta mondyal. 597 00:32:00,260 --> 00:32:05,500 Li nan yon struct, li nan yon objè isit la, ak li kenbe enfòmasyon 598 00:32:05,500 --> 00:32:09,960 sou bagay sa yo ke yo ale sou sou ekran an ki gen rapò ak odyo. 599 00:32:09,960 --> 00:32:15,220 Yon egzanp se tan aktyèl la. 600 00:32:15,220 --> 00:32:18,910 Sa a di ou nimewo a de segonn, trè jisteman, 601 00:32:18,910 --> 00:32:20,890 depi paj wèb la chaje. 602 00:32:20,890 --> 00:32:24,110 Se konsa, sa a se yon reyèlman itil ti kras pwopriyete ke ou ka itilize. 603 00:32:24,110 --> 00:32:27,898 Li nan li only-- Mwen panse ke aktyèlman ou ka eseye mete l 'se yon valè. 604 00:32:27,898 --> 00:32:29,856 Li pral di ou mete l ', ak Lè sa a si ou enprime li 605 00:32:29,856 --> 00:32:31,439 again-- li pa t 'aktyèlman byen travay. 606 00:32:31,439 --> 00:32:34,472 Se konsa, gen li-sèlman pwopriyete nan JavaScript. 607 00:32:34,472 --> 00:32:36,430 Sa a se vrèman itil si w ap kalite senkronize 608 00:32:36,430 --> 00:32:38,610 yon anpil nan diferan enfòmasyon, lè w ap 609 00:32:38,610 --> 00:32:41,280 kalite jwe son diferan. 610 00:32:41,280 --> 00:32:43,630 >> Yon lòt yon sèl reyèlman itil se destinasyon an kontèks. 611 00:32:43,630 --> 00:32:46,587 612 00:32:46,587 --> 00:32:49,670 Definitivman, si w ap enterese, se pou ap eseye sa a nan pwòp ou a dwat konsole 613 00:32:49,670 --> 00:32:50,980 kounye a. 614 00:32:50,980 --> 00:32:53,150 Se konsa, sa a se yon AudioDestinationNode. 615 00:32:53,150 --> 00:32:56,480 Fondamantalman ki sa sa a di se, ki kote pwodiksyon an prale? 616 00:32:56,480 --> 00:32:59,590 Se konsa, gen de opsyon reyèl isit la. 617 00:32:59,590 --> 00:33:01,940 Anjeneral default a se jis ki pale natif ou, 618 00:33:01,940 --> 00:33:05,150 se konsa AudioDestinationNode fondamantalman jis di 619 00:33:05,150 --> 00:33:09,240 gen zewo rezilta son an vini nan, voye moun k ap pale a. 620 00:33:09,240 --> 00:33:12,050 Se konsa, jeneralman, ou pa fè sa gen yo jwe ak sa. 621 00:33:12,050 --> 00:33:15,720 Si w ap enterese nan lè l sèvi avèk aktyèlman ScriptProcessorNode a pou anrejistreman, 622 00:33:15,720 --> 00:33:16,990 definitivman tire m 'yon imel pita paske se sa 623 00:33:16,990 --> 00:33:18,330 yon ti kras plis konplike. 624 00:33:18,330 --> 00:33:21,590 Men, jeneralman, w ap jis kalite a sorti son nan kèk fòm. 625 00:33:21,590 --> 00:33:24,347 Se konsa, fre, nou pral so tounen isit la. 626 00:33:24,347 --> 00:33:25,180 ODYANS: Mwen regrèt. 627 00:33:25,180 --> 00:33:26,054 HUGH Zabriskie: Yeah. 628 00:33:26,054 --> 00:33:28,770 ODYANS: Mwen konnen ou te di yo pale bay ou pita sou anrejistreman. 629 00:33:28,770 --> 00:33:31,550 Èske ou ka koòdone ke ak Pro Zouti? 630 00:33:31,550 --> 00:33:33,120 >> HUGH Zabriskie: Avèk Pro Zouti? 631 00:33:33,120 --> 00:33:35,260 Ann we. 632 00:33:35,260 --> 00:33:37,220 Mwen pa panse sa. 633 00:33:37,220 --> 00:33:41,670 Se konsa, ale ant kliyan an, ki se JavaScript nan 634 00:33:41,670 --> 00:33:44,310 konsole, ak aktyèl ou òdinatè, se jeneralman 635 00:33:44,310 --> 00:33:46,490 yon bagay ki nan kalite a koupe limit, si ou 636 00:33:46,490 --> 00:33:52,320 pral, kalite pa nati a nan the-- li nan kalite yon bagay konsepsyon, 637 00:33:52,320 --> 00:33:57,770 men ou eseye kenbe navigatè a separe soti nan itilizatè a aktyèl òdinatè. 638 00:33:57,770 --> 00:34:02,310 Anjeneral, bagay la sèlman w ap kapab aksè se mikwofòn la oswa kamera a. 639 00:34:02,310 --> 00:34:04,730 Ou pa kapab, mwen pa panse, sèvi ak Pro Zouti. 640 00:34:04,730 --> 00:34:07,480 Sepandan, si ou te kreye yon tras nan Pro zouti, 641 00:34:07,480 --> 00:34:12,710 ekspòte sa, ou te kapab chaje ki nan isit la, filtre li, pou egzanp, 642 00:34:12,710 --> 00:34:16,820 pwosesis sa a, epi ekri ki nan yon Audio Destination-- oswa, no-- yon esfè 643 00:34:16,820 --> 00:34:17,870 Processeur neu. 644 00:34:17,870 --> 00:34:20,730 Lè sa a, soti nan la, ou te kapab ekspòtasyon ke yo SoundCloud, ou 645 00:34:20,730 --> 00:34:25,320 te kapab voye l 'nan yon imèl, oswa tou sa ou renmen soti nan la. 646 00:34:25,320 --> 00:34:31,159 >> Men, gen se kalite yon baryè ti tay ant fè mizik sou òdinatè ou 647 00:34:31,159 --> 00:34:33,050 ak fè mizik sou entènèt. 648 00:34:33,050 --> 00:34:37,940 >> SAM GREEN: Epi sa a, pa inik nan API sa a. 649 00:34:37,940 --> 00:34:44,060 Li se yon karakteristik sekirite nan Chrome, ak Mwen panse ke tout lòt navigatè modèn. 650 00:34:44,060 --> 00:34:45,860 Navigatè a se endepandan. 651 00:34:45,860 --> 00:34:50,980 Se konsa, pou egzanp, yon paj entènèt pa kapab itilize JavaScript yo vire son an 652 00:34:50,980 --> 00:34:54,190 sou sou ki pale natif ou, pou egzanp. 653 00:34:54,190 --> 00:34:58,120 Oswa li pa ka vire òdinatè w lan nan. 654 00:34:58,120 --> 00:35:01,530 Apre sa, pa gen okenn pwen entèmedyè ant de bagay sa yo, dwa, 655 00:35:01,530 --> 00:35:05,960 se konsa swa ou gen yon konplè distraksyon, 656 00:35:05,960 --> 00:35:10,050 oswa ou louvri moute nan defo sekirite nan kite 657 00:35:10,050 --> 00:35:14,440 yon pwogramè ak move entansyon fè tou sa yo vle ak laptop ou. 658 00:35:14,440 --> 00:35:18,104 Epi sa a, poukisa Chrome se endepandan. 659 00:35:18,104 --> 00:35:19,310 >> HUGH Zabriskie: Yeah. 660 00:35:19,310 --> 00:35:20,840 Ki fè sans? 661 00:35:20,840 --> 00:35:21,369 Cool, fre. 662 00:35:21,369 --> 00:35:23,160 Mwen te jis ale nan montre yon egzanp sou yon sèl. 663 00:35:23,160 --> 00:35:25,118 Sa a se bèl anpil kòm lwen ke ou jwenn, nan tèm 664 00:35:25,118 --> 00:35:26,950 a aksè òdinatè itilizatè a la. 665 00:35:26,950 --> 00:35:30,180 Si ou gen yon klavye USB ploge nan, ou ka itilize yon bagay yo rele entènèt la 666 00:35:30,180 --> 00:35:32,180 MIDI API, nou pa pral reyèlman pale sou isit la, 667 00:35:32,180 --> 00:35:36,330 men sa a se yon lòt API sa a, se bati nan omwen Chrome-- ankò, 668 00:35:36,330 --> 00:35:41,570 sa a se poukisa nou renmen Chrome-- Mwen panse ke Firefox oswa Safari, 669 00:35:41,570 --> 00:35:44,300 sa a se yon bagay fasil yo google-- navigatè diferan gen 670 00:35:44,300 --> 00:35:46,917 diferan sipò pou ki APIs yo te aplike. 671 00:35:46,917 --> 00:35:49,875 Men, si ou te vle ploge nan yon klavye epi travay ak enfòmasyon sa a, 672 00:35:49,875 --> 00:35:52,850 kalite voye klavye a enfòmasyon sou nan òdinatè a 673 00:35:52,850 --> 00:35:57,620 ak Lè sa a sèvi ak sa sou entènèt, sa a API se kote ou ta dwe ap travay sa. 674 00:35:57,620 --> 00:35:58,150 >> Fre. 675 00:35:58,150 --> 00:35:58,710 OK. 676 00:35:58,710 --> 00:36:01,320 Se konsa, byen vit deplase sou isit la. 677 00:36:01,320 --> 00:36:03,310 Kouman yo nou fè sou tan? 678 00:36:03,310 --> 00:36:04,210 >> Oratè 1: Sou 15. 679 00:36:04,210 --> 00:36:05,543 >> HUGH Zabriskie: 15 minit rete? 680 00:36:05,543 --> 00:36:06,160 OK, fre. 681 00:36:06,160 --> 00:36:08,170 Se konsa, nou pral ras devan yo isit la. 682 00:36:08,170 --> 00:36:13,500 >> Se konsa, fondamantalman, pwen prensipal la nan panse a sa a kòm yon tiyo 683 00:36:13,500 --> 00:36:16,430 se ke chak etap nan tiyo a se yon seri de nœuds odyo. 684 00:36:16,430 --> 00:36:19,284 685 00:36:19,284 --> 00:36:20,950 Sous nou an, se pou yo di, se yon osilator. 686 00:36:20,950 --> 00:36:23,380 Nou bezwen yo kreye yon ne osilator. 687 00:36:23,380 --> 00:36:25,690 Apre sa se jis kalite a fonksyon-la ti kras 688 00:36:25,690 --> 00:36:30,460 epi yo ap tout ki baze soti nan kontèks la odyo isit la. 689 00:36:30,460 --> 00:36:32,885 >> ODYANS: Lè li di osilator, ki vle di 690 00:36:32,885 --> 00:36:37,250 li la aktyèlman pral soti nan literalman de poto diferan dèyè, yo soti? 691 00:36:37,250 --> 00:36:41,170 >> HUGH Zabriskie: Non, li la tankou yon reprezantasyon dijital. 692 00:36:41,170 --> 00:36:42,740 Li nan aktyèlman aplike nan C ++. 693 00:36:42,740 --> 00:36:46,460 Mwen aktyèlman pa konnen karakteristik yo nan ki jan li la aktyèlman aplike, 694 00:36:46,460 --> 00:36:48,500 Men, tou sa ap travay kòm done binè. 695 00:36:48,500 --> 00:36:51,260 696 00:36:51,260 --> 00:36:52,370 Aktyèlman, yeah. 697 00:36:52,370 --> 00:36:53,950 Ki ta ka di: mwen te kapab aktyèlman, si w ap enterese, 698 00:36:53,950 --> 00:36:56,533 Mwen te kapab voye ba ou yon ti kras plis enfòmasyon sou ki jan trase 699 00:36:56,533 --> 00:37:00,181 yo kenbe li te gen yon fòma dijital. 700 00:37:00,181 --> 00:37:00,680 OK, fre. 701 00:37:00,680 --> 00:37:03,120 >> Se konsa, nou ap génération yon ton tankou yon sinis balanse oswa yon bagay tankou sa yo, petèt 702 00:37:03,120 --> 00:37:04,190 440 Hertz. 703 00:37:04,190 --> 00:37:05,830 Nou kreye yon osilator. 704 00:37:05,830 --> 00:37:09,180 Si nou vle yo mete volim nan, nou konekte anyen nan yon GainNode, 705 00:37:09,180 --> 00:37:12,500 nou ta ka fè ak .creategain. 706 00:37:12,500 --> 00:37:14,250 Ki kouche volim ou yo. 707 00:37:14,250 --> 00:37:17,820 Ou ka konsa, sou nenpòt ki nan lòt la options-- byen, 708 00:37:17,820 --> 00:37:20,300 se konsa yon sous tanpon odyo ne se kote ou ta ka 709 00:37:20,300 --> 00:37:23,660 magazen yon MP3 ke ou te chaje nan. 710 00:37:23,660 --> 00:37:27,670 >> Biquad filtre se pou filtraj si ou vle pran tout baz la soti 711 00:37:27,670 --> 00:37:29,630 nan yon chante, oswa yon bagay tankou sa. 712 00:37:29,630 --> 00:37:32,450 Bondye padon ou vle pran baz la soti nan yon chante. 713 00:37:32,450 --> 00:37:36,980 Apre sa, AudioDestination ne se, ankò, tankou kote finaliser nou an, se. 714 00:37:36,980 --> 00:37:39,980 Si ou se tout tan tout tan enterese nan wè tout diferan opsyon ki disponib nan posib, 715 00:37:39,980 --> 00:37:45,190 jis ale nan tab la epi kite oto a-konplè vini. 716 00:37:45,190 --> 00:37:48,690 Men, si ou kreye, ou pral wè nan tout bagay sa yo diferan ke ou ka kreye. 717 00:37:48,690 --> 00:37:50,398 Ou ka kreye dinamik processeurs script, 718 00:37:50,398 --> 00:37:52,940 Mwen pa menm konnen ki sa ki se, pou melanje chanèl fusions 719 00:37:52,940 --> 00:37:55,930 ak chanèl repartiteur ak tou sa. 720 00:37:55,930 --> 00:37:56,430 Fre. 721 00:37:56,430 --> 00:37:59,560 722 00:37:59,560 --> 00:38:01,390 >> Se konsa, sa a se jis yon egzanp sou yon tiyo. 723 00:38:01,390 --> 00:38:03,580 Se konsa, nou gen twa sous vini nan. 724 00:38:03,580 --> 00:38:06,830 Petèt sa yo, se trase, petèt sa yo, se MP3s. 725 00:38:06,830 --> 00:38:08,740 Youn k ap pase nan yon filtre, yon lòt yon sèl la 726 00:38:08,740 --> 00:38:12,404 ap resevwa yon lòt defòme balances yon sèl la kite la ak dwa. 727 00:38:12,404 --> 00:38:15,320 Ou ka fè tout kalite bagay sa yo ak yo tout jwenn melanje alantou ansanm, 728 00:38:15,320 --> 00:38:18,880 ak Lè sa a soti vini odyo a nan fen a, menm jan destinasyon. 729 00:38:18,880 --> 00:38:22,720 Sa a se yon egzanp sou sa ki plis konplike Web Audio Kòd sanble. 730 00:38:22,720 --> 00:38:26,720 W ap kreye tout bagay sa yo diferan objè ki dwat isit lan-- 731 00:38:26,720 --> 00:38:27,706 Mwen pa si nan sa a. 732 00:38:27,706 --> 00:38:29,120 Non, li pa rale nan. 733 00:38:29,120 --> 00:38:29,620 OK. 734 00:38:29,620 --> 00:38:31,257 >> SAM GREEN: Ou fè kontwòl, Scroll-Up. 735 00:38:31,257 --> 00:38:32,590 HUGH Zabriskie: kontwòl Scroll-- 736 00:38:32,590 --> 00:38:33,000 SAM GREEN: Non, pa gen okenn. 737 00:38:33,000 --> 00:38:33,500 Control-- 738 00:38:33,500 --> 00:38:36,540 739 00:38:36,540 --> 00:38:38,140 >> HUGH Zabriskie: Oh, kontwòl, Scroll? 740 00:38:38,140 --> 00:38:38,780 Oh, gotcha. 741 00:38:38,780 --> 00:38:41,480 Yeah. 742 00:38:41,480 --> 00:38:42,240 Wow, Non, Nope. 743 00:38:42,240 --> 00:38:42,740 OK. 744 00:38:42,740 --> 00:38:46,090 Mwen p'ap fè sa. 745 00:38:46,090 --> 00:38:48,300 >> Se konsa, yeah, nan sa a premye seksyon isit la, ou wè 746 00:38:48,300 --> 00:38:52,720 nou ap kreye tout bagay sa yo diferan nœuds soti nan kontèks la. 747 00:38:52,720 --> 00:38:54,980 Nou jis ap piecing yo ansanm nan dezyèm pati a 748 00:38:54,980 --> 00:38:56,980 pa sa a fonksyon rele konekte. 749 00:38:56,980 --> 00:38:58,830 Sa se yon reyèlman kle fonksyon nan Web Audio. 750 00:38:58,830 --> 00:39:01,930 Li jis vle di yon fwa ou te fè yon bagay ki gen son an nan yon sèl ne, 751 00:39:01,930 --> 00:39:03,705 pase l bay ne kap vini an. 752 00:39:03,705 --> 00:39:05,830 Se konsa, nou gen sous la, li konekte nan analyser la, 753 00:39:05,830 --> 00:39:09,140 analyser nan fè yon bagay ak li, li ale nan deformation, ak sou sa, 754 00:39:09,140 --> 00:39:12,725 ak nan destinasyon an nan pati anba a isit la menm. 755 00:39:12,725 --> 00:39:13,225 Fre. 756 00:39:13,225 --> 00:39:14,640 OK, se konsa nou pral kenbe deplase sou. 757 00:39:14,640 --> 00:39:17,180 >> Pipeline-- a ankò, sa yo se tuyaux ki pi komen, 758 00:39:17,180 --> 00:39:21,300 se konsa nou pale sou tout bagay sa yo tankou distòsyon, balances yo, tout bagay sa a. 759 00:39:21,300 --> 00:39:24,280 Si ou se reyèlman enterese nan lè l sèvi avèk bagay sa yo Pro zouti, 760 00:39:24,280 --> 00:39:25,820 moun pwobableman enterese w. 761 00:39:25,820 --> 00:39:27,740 Si ou pa, petèt ou jis vle jwe son an, 762 00:39:27,740 --> 00:39:29,990 oswa petèt ou jis vle mete volim nan sou son an. 763 00:39:29,990 --> 00:39:35,270 Moun sa yo ki yo se de sòt nan pi komen nan tuyaux nan pwodiksyon odyo. 764 00:39:35,270 --> 00:39:38,640 >> Yon fwa ankò, fason yo ou ka pran li nan kòm yon oscillator-- konsa, se pou yo 765 00:39:38,640 --> 00:39:42,460 fè yon Demo a nan ki dwa isit la. 766 00:39:42,460 --> 00:39:47,090 767 00:39:47,090 --> 00:39:52,225 Se konsa, nou ap ale nan kreye yon senp kontèks odyo isit la, 768 00:39:52,225 --> 00:39:54,350 ak pou soti nan ke nou ap ale yo kreye osilator nou an. 769 00:39:54,350 --> 00:39:58,620 Se konsa, se sa ki, ankò, nou ap jis pral rele Kreye osilateur. 770 00:39:58,620 --> 00:40:07,030 Nou pral mete yon frekans sou sa, 440 Hertz, pi renmen tout moun. 771 00:40:07,030 --> 00:40:13,290 Apre sa, nou konekte ki nan destinasyon an point-- ki se oratè a, se konsa 772 00:40:13,290 --> 00:40:15,750 kontèks destinasyon an. 773 00:40:15,750 --> 00:40:21,400 Finalman, nou jis di, kòmanse zewo segonn nan kounye a, epi nou te son? 774 00:40:21,400 --> 00:40:22,400 >> [K ap sonnen] 775 00:40:22,400 --> 00:40:24,980 >> HUGH Zabriskie: Isit la nou ale. 776 00:40:24,980 --> 00:40:25,940 Se jis yon vag sinis. 777 00:40:25,940 --> 00:40:26,440 OK, fre. 778 00:40:26,440 --> 00:40:28,274 Lè sa a, nou pral sispann sa. 779 00:40:28,274 --> 00:40:30,520 >> ODYANS: Ki kote te fè ki fidbak soti? 780 00:40:30,520 --> 00:40:31,250 >> HUGH Zabriskie: fidbak la? 781 00:40:31,250 --> 00:40:32,458 Oh, pwobableman mikro nou an. 782 00:40:32,458 --> 00:40:34,221 783 00:40:34,221 --> 00:40:35,470 Se konsa, yeah, sa a, se ki jan ou fè li. 784 00:40:35,470 --> 00:40:37,261 Apre sa, aktyèlman, si mwen te gen kenbe li kouri, ou 785 00:40:37,261 --> 00:40:39,540 te kapab gen frekans lan valè kòm li nan kouri, 786 00:40:39,540 --> 00:40:43,320 se konsa sa a, se yon bagay plezi yo jwe alantou. 787 00:40:43,320 --> 00:40:44,930 Fre. 788 00:40:44,930 --> 00:40:46,600 Sa a toujou yon sèl bèl yo prezante. 789 00:40:46,600 --> 00:40:48,792 >> SAM GREEN: Nou pa t ' panse osijè de sa, èske nou ye? 790 00:40:48,792 --> 00:40:50,500 HUGH Zabriskie: Yeah, sa a, se yon yon sèl anbarasan. 791 00:40:50,500 --> 00:40:53,249 Se konsa, pezib loading-- mwen pral montre yon egzanp sou ke nan fen an anpil. 792 00:40:53,249 --> 00:40:55,090 Sa a chaje yon MP3. 793 00:40:55,090 --> 00:40:58,880 Apre sa, mikwofòn, ou itilize jis yon fonksyon rele Navigator.getUserMedia () 794 00:40:58,880 --> 00:41:03,240 pou mande pou aksè nan lan nan itilizatè mikwofòn pou enfòmasyon sa. 795 00:41:03,240 --> 00:41:05,610 >> Isit la nan filtraj, mwen pral jis kenbe k ap soti nan sa a. 796 00:41:05,610 --> 00:41:08,600 Sa a se trè wo nivo, men filtè jis pèmèt ou 797 00:41:08,600 --> 00:41:16,154 >> [Bip] 798 00:41:16,154 --> 00:41:18,320 Filtraj pèmèt ou tou yo kreye bagay sa yo tankou woz 799 00:41:18,320 --> 00:41:20,050 bri, bri mawon, bri blan. 800 00:41:20,050 --> 00:41:24,330 Si ou vle kreye pi bon kalite bri, ki gen kèk moun ki renmen dezòd otou ak, 801 00:41:24,330 --> 00:41:27,490 ou ka itilize Web Audio filtraj fè sa. 802 00:41:27,490 --> 00:41:30,039 >> Audio Panning-- konsa imajine si w ap ekri yon jwèt 803 00:41:30,039 --> 00:41:32,330 epi ou vle son an son tankou li nan ap vini, tankou, 804 00:41:32,330 --> 00:41:36,090 tire nan tout ekran an, ou ka itilize balances nan odyo a 805 00:41:36,090 --> 00:41:39,770 yo kreye sa a jan de kòn, ki like-- li a trè mathy, 806 00:41:39,770 --> 00:41:41,850 men li la aktyèlman vrèman fre si ou jwenn li travay, 807 00:41:41,850 --> 00:41:44,500 ak gen nan kèk bon tutoryèl sou li mwen ka voye ba ou. 808 00:41:44,500 --> 00:41:46,400 Fondamantalman, ou kapab kalite a kreye son an 809 00:41:46,400 --> 00:41:50,480 nan yon bagay ap pase nan yon fason 3D. 810 00:41:50,480 --> 00:41:57,350 Men, si ou gen yon enterè DJ, ou ka kòmanse melanje ak travèse manyak chante. 811 00:41:57,350 --> 00:42:01,260 >> Sa a se jis kèk anpil debaz kòd, fondamantalman sa m 'te ye anvan an. 812 00:42:01,260 --> 00:42:06,140 Sa a kouche volim nan nan osilator, se konsa nou kreye osilator nou an 813 00:42:06,140 --> 00:42:07,380 ki kreye ond lan. 814 00:42:07,380 --> 00:42:09,940 Nou kreye GainNode nou an, mete frekans nou an, 815 00:42:09,940 --> 00:42:14,170 ak Lè sa a konekte osilator la nan GainNode, ki Lè sa a fondamantalman chanje 816 00:42:14,170 --> 00:42:16,760 konbyen lajan siyal pèmèt nan. 817 00:42:16,760 --> 00:42:20,467 Men, reyèlman, li nan yon dijital bagay, se konsa li nan plis just-- yeah. 818 00:42:20,467 --> 00:42:23,550 Sa a pa sa k ap aktyèlman pase, men sa a sa k ap pase nan lavi reyèl 819 00:42:23,550 --> 00:42:24,393 ak yon byen yo. 820 00:42:24,393 --> 00:42:27,258 >> ODYANS: --quantization a paramèt nan volim? 821 00:42:27,258 --> 00:42:28,174 HUGH Zabriskie: Padon? 822 00:42:28,174 --> 00:42:30,360 ODYANS: Èske se yon kantifye paramèt volim? 823 00:42:30,360 --> 00:42:31,840 HUGH Zabriskie: Yeah. 824 00:42:31,840 --> 00:42:34,620 Lè sa a se yon sèl bagay Mwen vrèman ensufizant sou nan mwen konnen, 825 00:42:34,620 --> 00:42:38,010 ki jan pran travay sou yon nivo dijital. 826 00:42:38,010 --> 00:42:40,140 Mwen konnen ak aktyèl siyal, li nan fondamantalman 827 00:42:40,140 --> 00:42:45,120 kontwole konbyen lajan ou ap anplifikasyon siyal la. 828 00:42:45,120 --> 00:42:47,017 Se konsa, yeah. 829 00:42:47,017 --> 00:42:50,100 Mwen pral voye ba ou plis enfòmasyon sou sa, paske mwen ta dwe kirye aktyèlman 830 00:42:50,100 --> 00:42:51,099 konnen plis sou sa. 831 00:42:51,099 --> 00:42:54,090 Men, fondamantalman paramèt yo ye a, se yon sèl fold-- nan 832 00:42:54,090 --> 00:42:59,690 signal-- nan pi fò ak zewo gen okenn siyal, oswa ou pa pral tande nenpòt son. 833 00:42:59,690 --> 00:43:03,150 Nou pral sote tan Demo pou sa paske li nan fondamantalman sa m 'te ye anvan an. 834 00:43:03,150 --> 00:43:07,630 Epi ankò, an Context.Destination se ne la destinasyon odyo. 835 00:43:07,630 --> 00:43:08,360 Awesome, OK. 836 00:43:08,360 --> 00:43:10,470 >> Se konsa, mwen pral fè yon rapid de Demonstrasyon. 837 00:43:10,470 --> 00:43:11,760 Kouman yo nou fè sou tan? 838 00:43:11,760 --> 00:43:12,640 >> Oratè 1: Sou 10 minit. 839 00:43:12,640 --> 00:43:13,130 >> HUGH Zabriskie: 10 minit? 840 00:43:13,130 --> 00:43:13,630 Gwo! 841 00:43:13,630 --> 00:43:14,320 Pè. 842 00:43:14,320 --> 00:43:19,010 >> Se konsa, yon sèl nan premye mwen pral , sa yo rele chante pi renmen mwen. 843 00:43:19,010 --> 00:43:22,410 Se konsa, sa a se jis yon ti kras HTML JavaScript. 844 00:43:22,410 --> 00:43:25,510 Nou ap ale nan gen de bouton sou paj la jwe chante pi renmen m ' 845 00:43:25,510 --> 00:43:29,192 epi yo sispann chante pi renmen m 'yo. 846 00:43:29,192 --> 00:43:30,180 Mwen pral chanje sa a. 847 00:43:30,180 --> 00:43:32,110 >> ODYANS: Kouvri mikwofòn ou yo. 848 00:43:32,110 --> 00:43:33,430 >> HUGH Zabriskie: Yeah. 849 00:43:33,430 --> 00:43:36,300 Apre sa, mwen te chaje nan isit la yon script ki basically-- 850 00:43:36,300 --> 00:43:38,520 ak sa a se reyèlman itil pou loading yon MP3, 851 00:43:38,520 --> 00:43:41,820 kidonk sa a jis fè loading MP3s fason pi vit. 852 00:43:41,820 --> 00:43:44,180 Li nan fondamantalman jis yon pakè. 853 00:43:44,180 --> 00:43:48,737 Li jis fè pwosesis la nan loading nan MP3s anpil pi vit, 854 00:43:48,737 --> 00:43:51,570 sinon ou ap itilize demann HTTP, kalite tankou sa nou te fè 855 00:43:51,570 --> 00:43:53,950 sou pyès la kounye a mete ak sèvè. 856 00:43:53,950 --> 00:43:55,950 Li nan reyèlman lèd, ou pa vle fè li. 857 00:43:55,950 --> 00:44:04,110 >> Se konsa, sa a Guy, Boris SMUs, te ekri yon vrèman itil zouti ti kras rele BufferLoader. 858 00:44:04,110 --> 00:44:08,780 Tout sa ou fè se tou senpleman pase l nan kontèks, ou pase l 'yon list-- 859 00:44:08,780 --> 00:44:11,327 oswa, yeah, se li yon lis nan JavaScript? 860 00:44:11,327 --> 00:44:12,160 SAM GREEN: Yon etalaj. 861 00:44:12,160 --> 00:44:14,201 HUGH Zabriskie: Oh, li se yon etalaj, ki nan dwa. 862 00:44:14,201 --> 00:44:18,660 Li nan yon etalaj de chemen nan dosye diferan. 863 00:44:18,660 --> 00:44:21,990 Lè sa a, ou pase l 'yon fonksyon. 864 00:44:21,990 --> 00:44:25,530 Sa a se kalbak a nou te pale sou ak asenkron loading. 865 00:44:25,530 --> 00:44:28,720 Ki pral dwe rele yon fwa dosye yo chaje. 866 00:44:28,720 --> 00:44:33,780 Epi sa fonksyon ki yo rele lè nan nan dosye chaje pran kòm yon perimèt 867 00:44:33,780 --> 00:44:35,840 yon etalaj de tanpon chaje. 868 00:44:35,840 --> 00:44:37,990 Se konsa, ki fèt isit la. 869 00:44:37,990 --> 00:44:41,180 Fondamantalman, se BufferList ale nan fè yon sèl value-- 870 00:44:41,180 --> 00:44:46,380 oswa li k ap pase yo dwe yon etalaj de longè yon sèl, ki gen ladan l 'nan endèks 871 00:44:46,380 --> 00:44:51,320 zewo tout dosye a chaje nan MP3 a. 872 00:44:51,320 --> 00:44:53,320 Se konsa, sa m 'fè lè m' fini loading se, Mwen tou senpleman 873 00:44:53,320 --> 00:44:57,430 kreye yon sous tanpon, ki se yon odyo sous tanpon ne. 874 00:44:57,430 --> 00:45:03,410 Pwochen etap la se mwen chaje nan la source.buffer kòm tanpon an plen chaje 875 00:45:03,410 --> 00:45:06,740 soti nan BufferList-- nan li nan yon anpil nan buffers-- 876 00:45:06,740 --> 00:45:10,255 ak Lè sa a ou konekte ki odyo pezib nan destinasyon an. 877 00:45:10,255 --> 00:45:12,380 Se konsa, sa li a pral fè se jis tou senpleman mete MP3 a 878 00:45:12,380 --> 00:45:15,260 tou dwat nan nan pwodiksyon an, epi yo kòmanse li imedyatman 879 00:45:15,260 --> 00:45:18,010 sou ap resevwa apèl sa a. 880 00:45:18,010 --> 00:45:21,660 >> Cool, se konsa kite a wè sa a rive nan aksyon. 881 00:45:21,660 --> 00:45:24,490 Mwen [fèbl] isit la, se pou yo wè. 882 00:45:24,490 --> 00:45:26,430 Se konsa, mwen jis ale nan kòmanse yon sèvè de baz yo. 883 00:45:26,430 --> 00:45:28,660 Sa a yon bagay ki sa ou bezwen fè si w ap 884 00:45:28,660 --> 00:45:32,490 fè demann pou dosye loading. 885 00:45:32,490 --> 00:45:34,140 Mwen pral kòmanse yon sèvè de baz yo. 886 00:45:34,140 --> 00:45:38,200 Sa a se fondamantalman ou tout antye PSET kounye a nan yon sèl liy, 887 00:45:38,200 --> 00:45:43,930 men li la jis kòmanse yon sèvè sou pò 80/80. 888 00:45:43,930 --> 00:45:47,300 Se konsa, nou ale sou isit la, nou ale nan chaje 80/80, 889 00:45:47,300 --> 00:45:49,110 nou ap ale nan ale nan chante pi renmen mwen. 890 00:45:49,110 --> 00:45:51,660 Se konsa, si mwen frape "Jwe mwen pi renmen chante "kounye a, 891 00:45:51,660 --> 00:45:53,964 li k ap pase yo chaje mwen chante pi renmen ak jwe l-- 892 00:45:53,964 --> 00:45:55,880 [MIZIK - Eagles yo, "LIFE NAN vit la  LANE "] 893 00:45:55,880 --> 00:46:00,490 --which k ap pase yo dwe "Lavi nan Lane a vit "pa Eagles yo. 894 00:46:00,490 --> 00:46:06,346 Koulye a, mwen te kapab frape "One Stop mwen pi renmen chante "ak reparèt li. 895 00:46:06,346 --> 00:46:09,160 >> [MIZIK - Eagles yo, "LIFE NAN vit la  LANE "] 896 00:46:09,160 --> 00:46:18,340 >> Men, si m 'ale sou nan konsole, paske Mwen itilize yon varyab mondyal sou isit la 897 00:46:18,340 --> 00:46:23,390 nan kenbe tras nan sa a valè, li aktyèlman pral kounye a dwe rekonèt nan konsole a. 898 00:46:23,390 --> 00:46:25,160 Se konsa, li oto-kreye pou mwen. 899 00:46:25,160 --> 00:46:29,991 Se konsa, sa a, se sa k ap jwe kounye a, e mwen ka tou senpleman rele source.stop () 900 00:46:29,991 --> 00:46:30,490 sou sa. 901 00:46:30,490 --> 00:46:34,930 902 00:46:34,930 --> 00:46:35,860 Oke, ou konnen ki sa? 903 00:46:35,860 --> 00:46:39,760 Jis pou ou nèg te tande sa a song-- ou ta ka rekonèt chante sa a. 904 00:46:39,760 --> 00:46:41,801 >> [MIZIK - Rick Astley, "PA JANM BAY pral  Ou leve "] 905 00:46:41,801 --> 00:46:42,299 906 00:46:42,299 --> 00:46:44,215 [MIZIK - Eagles yo, "LIFE NAN vit la  LANE "] 907 00:46:44,215 --> 00:46:46,195 Nou te kounye a tout te Rickrolled. 908 00:46:46,195 --> 00:46:50,155 OK, gwo, k ap deplase sou. 909 00:46:50,155 --> 00:46:51,160 Fre. 910 00:46:51,160 --> 00:46:54,554 Se konsa, sa a se fondamantalman yon egzanp sou jis ki jan ou te kapab chaje yon MP3 file-- 911 00:46:54,554 --> 00:46:56,470 [MIZIK - Eagles yo, "LIFE NAN vit la  LANE "] 912 00:46:56,470 --> 00:46:59,590 --and jwe li, epi yo sispann epi yo kòmanse li. 913 00:46:59,590 --> 00:47:03,008 Mwen te kapab te fè yon anpil plis [fèbl] 914 00:47:03,008 --> 00:47:07,570 >> Yon sèl nan dènye mwen pral fè se, Mwen pral montre w yon [fèbl]. 915 00:47:07,570 --> 00:47:18,070 >> [MIZIK jwe] 916 00:47:18,070 --> 00:47:21,800 >> Se tankou, ogg.wave.mp3. 917 00:47:21,800 --> 00:47:26,450 Mwen panse ke, si mwen sonje kòrèkteman, Mwen te kouri antre nan kèk pwoblèm ak .m4a, 918 00:47:26,450 --> 00:47:27,721 men mwen pa fin sèten sou sa. 919 00:47:27,721 --> 00:47:28,470 Mwen panse ke mp3.wave-- 920 00:47:28,470 --> 00:47:28,930 921 00:47:28,930 --> 00:47:30,971 >> [MIZIK - Rick Astley, "PA JANM BAY pral  Ou leve "] 922 00:47:30,971 --> 00:47:35,930 923 00:47:35,930 --> 00:47:36,500 >> OK, gwo. 924 00:47:36,500 --> 00:47:37,625 Mwen pa ta dwe te di ke. 925 00:47:37,625 --> 00:47:40,570 De tout fason, hello. 926 00:47:40,570 --> 00:47:43,430 927 00:47:43,430 --> 00:47:45,490 Se konsa, nou gen sa a louvri. 928 00:47:45,490 --> 00:47:52,320 Se konsa, kounye a tout mwen fè se, mwen fondamantalman kreye yon sentaks debaz pou kreye mizik. 929 00:47:52,320 --> 00:47:57,610 Se konsa, si m 'fè yon bagay tankou, ajoute g4 sou 1 2, ki sa sa vle di se ke, 930 00:47:57,610 --> 00:48:00,950 ajoute nòt la pyano, G4, ki se katriyèm G a 931 00:48:00,950 --> 00:48:02,680 moute sou pyano a anba nan fon an. 932 00:48:02,680 --> 00:48:05,930 Se konsa, sa a se kalite MIDI pale, se konsa pou moun ki mizik ki baze sou, 933 00:48:05,930 --> 00:48:07,860 sa a se nòt jis MIDI. 934 00:48:07,860 --> 00:48:10,090 >> ODYANS: Sa a G a nan Mwayen C a, dwa? 935 00:48:10,090 --> 00:48:11,840 >> HUGH Zabriskie: Sa a se G a pi wo a Middle C, sa a, se dwa. 936 00:48:11,840 --> 00:48:12,470 >> ODYANS: Pi wo pase Middle C. 937 00:48:12,470 --> 00:48:13,345 >> HUGH Zabriskie: Yeah. 938 00:48:13,345 --> 00:48:14,340 Aktyèlman, repons lan se wi. 939 00:48:14,340 --> 00:48:16,131 Mwen panse ke mwen aktyèlman te fè li se youn [fèbl], 940 00:48:16,131 --> 00:48:18,860 kidonk sa a ta kapab yon oktav pi wo a sa. 941 00:48:18,860 --> 00:48:20,070 Se konsa, kite a wè. 942 00:48:20,070 --> 00:48:21,152 Si m 'frape Play-- 943 00:48:21,152 --> 00:48:22,110 [Repetitif Piano REMAK] 944 00:48:22,110 --> 00:48:23,200 --we're ale nan tande sa. 945 00:48:23,200 --> 00:48:25,700 Lide a se ke li opere jis tankou yon liy lòd ta, 946 00:48:25,700 --> 00:48:27,510 Se konsa, si m 'ale leve, li desann sou klavye m 'yo, ou 947 00:48:27,510 --> 00:48:31,550 ka ale tounen nan anvan yo kòmande, ki se trè itil. 948 00:48:31,550 --> 00:48:35,136 Apre sa, anba a se lis mwen an nan tren, ki fè yo tout kouri sou riban. 949 00:48:35,136 --> 00:48:38,260 >> ODYANS: Ou te an konsideran la 88-kle klavye sou sa, dwa? 950 00:48:38,260 --> 00:48:41,051 >> HUGH Zabriskie: Kesyon an te, Mwen an konsideran yon kap klavye 88-kle, 951 00:48:41,051 --> 00:48:41,990 ak repons lan se wi, se mwen. 952 00:48:41,990 --> 00:48:45,030 Ki sa ki m 'te fè se mwen fondamantalman pran 88 echantiyon 953 00:48:45,030 --> 00:48:46,970 nan pyano a, yonn pou chak nòt. 954 00:48:46,970 --> 00:48:49,180 Se konsa, chak fwa ou tande yon nòt, depi koulye a, 955 00:48:49,180 --> 00:48:57,550 ki se aktyèlman yon bouk ki sanble like-- sa a se ap resevwa te jwe sou riban, 956 00:48:57,550 --> 00:49:00,120 se konsa pou chak nòt, sa a ap kouri. 957 00:49:00,120 --> 00:49:02,860 Kisa k ap pase se, Mwen kreye yon zòn de defans ankò, 958 00:49:02,860 --> 00:49:06,010 Mwen kreye yon ne pran yo mete volim nan. 959 00:49:06,010 --> 00:49:08,240 Sa a jis yon reyèlman konplike fason pou li di mwen 960 00:49:08,240 --> 00:49:10,550 magazen tanpon an nan yon source.buffer. 961 00:49:10,550 --> 00:49:13,160 Mwen bay li pran an, mwen konekte li nan genyen an, 962 00:49:13,160 --> 00:49:15,576 se benefis la ki konekte nan la pwodiksyon, ak Lè sa a mwen jwe li. 963 00:49:15,576 --> 00:49:20,735 Se konsa, ki se kalite pwosesis la nan pran nan yon sous tanpon. 964 00:49:20,735 --> 00:49:24,820 >> ODYANS: Èske ou ka aktyèlman pran ki son sèk, epi fè li mouye [fèbl]? 965 00:49:24,820 --> 00:49:26,260 >> HUGH Zabriskie: Ou kapab, yeah. 966 00:49:26,260 --> 00:49:29,260 Genyen re-vèb, gen nan reta, deformation. 967 00:49:29,260 --> 00:49:33,260 Ou ka fondamantalman mete anyen nan ant nan ki sandwich de- byen, 968 00:49:33,260 --> 00:49:37,660 tiyo se yon pi bon metafò, men ou ka ajoute anyen nan sa. 969 00:49:37,660 --> 00:49:38,200 Fre. 970 00:49:38,200 --> 00:49:40,280 >> Se konsa, mwen pral fini Demo a la a yo ba ou yon sans 971 00:49:40,280 --> 00:49:46,390 nan jis nimewo a absoli nan fwa ou ka kouri ki fonksyon tout nan yon fwa. 972 00:49:46,390 --> 00:49:49,280 Se konsa, mwen pral retire sa a. 973 00:49:49,280 --> 00:49:59,110 Mwen pral kreye yon dèlko that-- fondamantalman sa does-- sa a se reyèlman 974 00:49:59,110 --> 00:50:04,220 kalite yon sentaks konplike men li la ale nan jenere nòt sou vole a, 975 00:50:04,220 --> 00:50:06,601 ak jis kòmanse jwe yo kòm li evalye yo. 976 00:50:06,601 --> 00:50:07,392 [Entèrpozisyon Piano] 977 00:50:07,392 --> 00:50:10,990 978 00:50:10,990 --> 00:50:12,817 >> Se konsa, nou ka jis fè yon ti kras mizik isit la. 979 00:50:12,817 --> 00:50:13,608 [Entèrpozisyon Piano] 980 00:50:13,608 --> 00:50:39,570 981 00:50:39,570 --> 00:50:41,470 >> Se konsa, sa kòmandman sa a fè sa, pou egzanp, se 982 00:50:41,470 --> 00:50:46,910 li pran moun twa nòt pou la pyano ak Lè sa a mete yo sou B3. 983 00:50:46,910 --> 00:50:48,660 Sentaks sa a ta ka fè yon sans ti kras pi plis 984 00:50:48,660 --> 00:50:50,590 bay moun yo ki gen yon jan nou koumanse mizik isit la. 985 00:50:50,590 --> 00:50:55,180 986 00:50:55,180 --> 00:50:56,551 >> Mwen kapab ajoute yon tanbou choute. 987 00:50:56,551 --> 00:50:57,050 Mwen can-- 988 00:50:57,050 --> 00:50:58,048 >> [Entèrpozisyon ENSTRIMAN] 989 00:50:58,048 --> 00:50:59,256 >> --just jwe otou ak sa. 990 00:50:59,256 --> 00:51:12,519 991 00:51:12,519 --> 00:51:13,474 >> Se konsa, ou ka make-- 992 00:51:13,474 --> 00:51:14,515 [Entèrpozisyon ENSTRIMAN] 993 00:51:14,515 --> 00:51:15,513 Ke yon moun nan yon ti kras pi plis anmèdan. 994 00:51:15,513 --> 00:51:16,554 [Entèrpozisyon ENSTRIMAN] 995 00:51:16,554 --> 00:51:26,491 996 00:51:26,491 --> 00:51:30,981 >> Se konsa, ki ajoute yon owaza senbal sèk sou chak nòt 16th, ak yon 16% 997 00:51:30,981 --> 00:51:31,481 [Fèbl]. 998 00:51:31,481 --> 00:51:32,522 >> [Entèrpozisyon ENSTRIMAN] 999 00:51:32,522 --> 00:51:40,962 1000 00:51:40,962 --> 00:51:50,400 >> Yeah, se konsa wout la sa a fonctionne-l 'la toujou nan 4: 4. 1001 00:51:50,400 --> 00:51:51,441 [Entèrpozisyon ENSTRIMAN] 1002 00:51:51,441 --> 00:52:06,910 1003 00:52:06,910 --> 00:52:10,902 >> Yeah, se konsa kat kwen yo, ak 16/8. 1004 00:52:10,902 --> 00:52:14,851 1005 00:52:14,851 --> 00:52:15,892 [Entèrpozisyon ENSTRIMAN] 1006 00:52:15,892 --> 00:52:27,970 1007 00:52:27,970 --> 00:52:33,780 >> Se konsa, an mwayèn, ou jwenn 60% a frape sou nòt yo 16th. 1008 00:52:33,780 --> 00:52:35,990 >> Aniwe, sa a te jis kalite yo montre nan 1009 00:52:35,990 --> 00:52:39,780 kèk nan bagay sa yo ou te kapab bati ak Web Audio API la. 1010 00:52:39,780 --> 00:52:43,840 Li nan reyèlman pwisan, li vrèman vit, epi ou ka fè yon anpil nan bagay sa yo fre 1011 00:52:43,840 --> 00:52:44,340 ak li. 1012 00:52:44,340 --> 00:52:51,260 Se konsa, ankò, nenpòt kesyon ou genyen, imel moi Hugh-- oswa Sam, 1013 00:52:51,260 --> 00:52:55,869 e franchman, Google gen yon tòn resous bon. 1014 00:52:55,869 --> 00:52:56,660 Nenpòt kesyon sot pase a? 1015 00:52:56,660 --> 00:52:57,970 Yeah. 1016 00:52:57,970 --> 00:53:00,790 >> ODYANS: Se konsa, ou kapab jwenn aksè nan bati-an mikwofòn la. 1017 00:53:00,790 --> 00:53:03,089 E si ou te vle sèvi ak yon pi bon mikwofòn? 1018 00:53:03,089 --> 00:53:05,380 HUGH Zabriskie: Si ou te vle yo sèvi ak pi bon mikwofòn? 1019 00:53:05,380 --> 00:53:11,320 Se konsa, ankò, sa a se yon pati nan la distraksyon ant Chrome 1020 00:53:11,320 --> 00:53:12,950 ak rès la nan òdinatè w lan. 1021 00:53:12,950 --> 00:53:18,950 Sòf si li nan disponib atravè yon API, tankou Web MIDI API, 1022 00:53:18,950 --> 00:53:22,030 ou te kapab pwobableman jwenn kèk antay, men jeneralman pa tankou sa posib. 1023 00:53:22,030 --> 00:53:25,300 >> SAM GREEN: Ou ka also-- tout Chrome a konnen 1024 00:53:25,300 --> 00:53:28,820 se sa ki mikwofòn default ou se, epi li jwenn aksè sa. 1025 00:53:28,820 --> 00:53:33,410 Se konsa, si ou te gen yon mikwofòn ou te kapab mete kòm mikwofòn default òdinatè a, 1026 00:53:33,410 --> 00:53:35,990 , ou te kapab jwenn aksè nan li fason sa a epi li ta pwobableman travay. 1027 00:53:35,990 --> 00:53:37,490 HUGH Zabriskie: Sa se yon pwen bon. 1028 00:53:37,490 --> 00:53:39,656 Mwen pa janm te eseye sa, men ou ta ka kapab kalite 1029 00:53:39,656 --> 00:53:45,700 de- si ou redireksyon oratè a D ', ou ka kapab fè sa, yeah. 1030 00:53:45,700 --> 00:53:48,360 >> Nenpòt kesyon sot pase a? 1031 00:53:48,360 --> 00:53:49,340 Fre. 1032 00:53:49,340 --> 00:53:51,680 Oke di ou mèsi mesye anpil pou l ap gade. 1033 00:53:51,680 --> 00:53:52,199 Mwen se Hugh. 1034 00:53:52,199 --> 00:53:52,990 SAM GREEN: Mwen Sam. 1035 00:53:52,990 --> 00:53:55,410 HUGH Zabriskie: Lè sa a se CS50. 1036 00:53:55,410 --> 00:53:56,767