1 00:00:00,000 --> 00:00:05,900 2 00:00:05,900 --> 00:00:07,170 >> SAM GREEN: Hi, allir. 3 00:00:07,170 --> 00:00:08,640 Velkomið að námskeið okkar. 4 00:00:08,640 --> 00:00:10,009 Mitt nafn er Sam. 5 00:00:10,009 --> 00:00:11,050 HUGH Zabriskie: Ég er Hugh. 6 00:00:11,050 --> 00:00:17,420 SAM GREEN: Og við erum að fara að tala í dag um JavaScript og Web Audio API. 7 00:00:17,420 --> 00:00:21,180 Bara að byrja út, þetta er yfirlit af dagskrá okkar fyrir námskeiðinu. 8 00:00:21,180 --> 00:00:25,350 Við erum að fara að byrja á því að tala um hvers vegna þú ættir að vera áhuga á vefnum 9 00:00:25,350 --> 00:00:30,130 Audio API, hvers vegna er JavaScript tungumálið sem þú þarft fyrir það, 10 00:00:30,130 --> 00:00:32,619 og þá tala um JavaScript essentials-- svo eins, 11 00:00:32,619 --> 00:00:34,800 ganga í gegnum sumir Grunnurinn af tungumáli, 12 00:00:34,800 --> 00:00:37,290 og þá tala um hljóð API á háu stigi. 13 00:00:37,290 --> 00:00:41,140 Þá Hugh mun tala um suma af stigum hljóð framleiðslu 14 00:00:41,140 --> 00:00:45,509 og þá kynningu þetta frábæra sequencer verkefni sem hann byggði og sýna þér kóðann. 15 00:00:45,509 --> 00:00:48,050 Og þá munum við hafa tíma fyrir spurningar í lok fyrir fólk 16 00:00:48,050 --> 00:00:49,593 sem eru hér búa. 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 Ég mun aftur upp. 21 00:00:52,170 --> 00:00:54,960 >> SAM GREEN: Svo fyrsta sem fyrst. 22 00:00:54,960 --> 00:00:57,840 Svo einn af the mikill hlutur um Web Audio API 23 00:00:57,840 --> 00:01:00,480 er að það er ekki sett upp krafist. 24 00:01:00,480 --> 00:01:04,230 Það kemur innbyggður-í flestum vöfrum 25 00:01:04,230 --> 00:01:08,630 þ.mt Chrome, Edge, í heild fullt af others-- öllum þeim sem 26 00:01:08,630 --> 00:01:12,650 að stór hluti af fólk er að nota í dag. 27 00:01:12,650 --> 00:01:14,807 Þannig að það er ekki sett upp, innskot frá bara að 28 00:01:14,807 --> 00:01:16,890 a vefur framreiðslumaður fara, fyrir þú þarft að byrja að vinna 29 00:01:16,890 --> 00:01:18,420 á verkefninu, sem er frábært. 30 00:01:18,420 --> 00:01:21,500 31 00:01:21,500 --> 00:01:24,190 >> Við mælum með nokkuð mikið að þú telur 32 00:01:24,190 --> 00:01:26,530 nota Chrome fyrir JavaScript vefur þróun, 33 00:01:26,530 --> 00:01:30,260 bara vegna þess að verktaki þess verkfæri eru mjög sterk. 34 00:01:30,260 --> 00:01:33,220 Sem dæmi um það sem er átt við með því að segja opna JavaScript 35 00:01:33,220 --> 00:01:38,600 console-- ef þú ferð inn á Chrome og þú horfir á hvaða vefsíðu, 36 00:01:38,600 --> 00:01:43,897 og þú vinstri smella Skoðið Element, og þá 37 00:01:43,897 --> 00:01:46,730 þú ferð á þetta litla fellivalmyndinni hérna og þú smellir á Console, 38 00:01:46,730 --> 00:01:50,660 þú munt sjá hvað opnast lítur mikið eins og stjórn hvetja sem þér 39 00:01:50,660 --> 00:01:53,720 gætir séð á þinn Lagsi, eða á auðkenni. 40 00:01:53,720 --> 00:01:59,260 Og bara svona, við getum gerð skipanir hér, eins Hreinsa, 41 00:01:59,260 --> 00:02:01,350 og aðrar skipanir eins og þessi. 42 00:02:01,350 --> 00:02:04,267 Við getum búið til breytur, eins og við munum sjá síðar í JavaScript. 43 00:02:04,267 --> 00:02:07,100 Og svo eitthvað sem við getum gert í JavaScript, getum við gert með vélinni, 44 00:02:07,100 --> 00:02:11,430 og það er frábær handlaginn leið til byrja að spila í kring með API 45 00:02:11,430 --> 00:02:15,760 og fá sætt sig við JavaScript strax the kylfa. 46 00:02:15,760 --> 00:02:18,290 Ekki sett upp þarf, sem er mjög gott. 47 00:02:18,290 --> 00:02:18,790 Cool. 48 00:02:18,790 --> 00:02:22,064 49 00:02:22,064 --> 00:02:22,880 Awesome. 50 00:02:22,880 --> 00:02:24,780 >> Svo bara eitt í viðbót til að bæta við. 51 00:02:24,780 --> 00:02:27,780 Ef þú hefur einhverjar questions-- það eru mörg ykkar sem eru ekki hér lifa, 52 00:02:27,780 --> 00:02:31,232 ekki hika við að senda us-- þessar eru netföng okkar. 53 00:02:31,232 --> 00:02:33,190 Ef þú hefur spurningar þú vilt ekki að spyrja okkur, 54 00:02:33,190 --> 00:02:36,160 eins, ó ég hef galla í númerið mitt, eða eitthvað 55 00:02:36,160 --> 00:02:39,270 það er svolítið nákvæmari, kannski Google það fyrst. 56 00:02:39,270 --> 00:02:42,340 There ert a einhver fjöldi af mikill auðlindir Um vefinn Audio API þarna úti. 57 00:02:42,340 --> 00:02:44,089 Það er mjög vel skjalfest og það er að vera 58 00:02:44,089 --> 00:02:47,194 nota tonn af fólki í iðnaður, og fólk sem er bara 59 00:02:47,194 --> 00:02:48,610 byggja stuð fyrir sig. 60 00:02:48,610 --> 00:02:51,306 Þannig að það ætti að vera mikið auðlindir þarna úti. 61 00:02:51,306 --> 00:02:53,040 Awesome. 62 00:02:53,040 --> 00:02:56,100 >> Cool, svo hvers vegna Web Audio API? 63 00:02:56,100 --> 00:02:59,840 Þessi skýringarmynd er svolítið af þróun leiðinni 64 00:02:59,840 --> 00:03:04,100 hljóð á vefnum hefur vaxið með tímanum. 65 00:03:04,100 --> 00:03:13,080 Bgsound var eins upprunalegu HTML tag sem Internet Explorer að nota til að styðja. 66 00:03:13,080 --> 00:03:16,790 Það leyfa aðeins laglegur undirstöðu hljóð, virkni var ekki mjög sterkur, 67 00:03:16,790 --> 00:03:19,380 og þú getur ekki gert flókið raðgreiningu, 68 00:03:19,380 --> 00:03:21,890 eða stjórna þegar hljóð byrjaði og hætt mjög robustly. 69 00:03:21,890 --> 00:03:23,930 Svo var það ekki sérlega vel þróuð. 70 00:03:23,930 --> 00:03:27,470 Svo eftir að Flash kom along-- sem 71 00:03:27,470 --> 00:03:31,712 Ég er viss um að þið erum öll kunnugur með Flash-- kannski ekki hvernig það virkar, 72 00:03:31,712 --> 00:03:32,920 en þú hefur örugglega séð það. 73 00:03:32,920 --> 00:03:35,586 Þú hefur got til að uppfæra Flash Stinga í, allt þannig efni, 74 00:03:35,586 --> 00:03:40,110 og sem vissulega aukið svið af virkni sem var í boði. 75 00:03:40,110 --> 00:03:45,370 En gera notanda að setja a tappi-í er ákveðið 76 00:03:45,370 --> 00:03:48,480 galli að meðtöldum Flash í umsókn þinni, ekki satt? 77 00:03:48,480 --> 00:03:52,410 Því þá ert háður því að Notendur að fara og finna þessa viðbót í, 78 00:03:52,410 --> 00:03:54,660 og líklega verið snúið burt með þetta auka skref 79 00:03:54,660 --> 00:03:56,640 þeir þurfa að gera til að nota app. 80 00:03:56,640 --> 00:04:01,270 Og þá gæti verið að uppfæra sem mun brjóta allt umsókn þína, 81 00:04:01,270 --> 00:04:03,880 og það endar að vera martröð fyrir framkvæmdaraðila, of. 82 00:04:03,880 --> 00:04:06,230 Svo það var barricade. 83 00:04:06,230 --> 00:04:10,480 >> Og þá eftir að kom með, HTML hljóð tag, sem 84 00:04:10,480 --> 00:04:16,579 er eiginleiki nútímalegri HTML-- sem vissulega leyfð mikið meira efni, 85 00:04:16,579 --> 00:04:20,050 en jafnvel það sem þú gætir gert það voru svolítið takmarkað bara 86 00:04:20,050 --> 00:04:22,730 sem afleiðing af þeim hlutum sem HTML var fær um. 87 00:04:22,730 --> 00:04:26,060 Svo þegar JavaScript API, the Web Audio API, 88 00:04:26,060 --> 00:04:29,290 varð staðalbúnaður æfa yfir vafra, 89 00:04:29,290 --> 00:04:32,490 sem raunverulega breikkað sett af tækifærum fyrir hönnuði 90 00:04:32,490 --> 00:04:36,590 til raunverulega fá inn bygging flott efni fyrir vefinn. 91 00:04:36,590 --> 00:04:39,220 Í langan tíma hafði verið mjög sterkur verkfæri 92 00:04:39,220 --> 00:04:44,360 fyrir móðurmáli hljóð forrit, like-- allir vita GarageBand, 93 00:04:44,360 --> 00:04:48,360 og þá vitanlega það eru fleiri Professional Audio blöndun forrit, 94 00:04:48,360 --> 00:04:49,640 og að hvers konar efni. 95 00:04:49,640 --> 00:04:52,690 En það var ekki mjög gott Cloud-- ekki 96 00:04:52,690 --> 00:04:55,811 Cloud, já, held ég Cloud-- vefur-undirstaða pallur 97 00:04:55,811 --> 00:04:58,310 sem myndi leyfa verktaki til byggja forrit fyrir fólk 98 00:04:58,310 --> 00:05:00,570 að gera hljóð blöndun. 99 00:05:00,570 --> 00:05:03,960 Og eins og hann mun sýna þér síðar, the Web Audio API 100 00:05:03,960 --> 00:05:07,470 gerir ráð fyrir mjög öflugur efni til að gerast í raun einfaldlega, 101 00:05:07,470 --> 00:05:09,597 sem er laglegur kaldur. 102 00:05:09,597 --> 00:05:12,680 Svo er að kennsla hvers vegna þú ættir að horfa á restina af námskeiðinu, 103 00:05:12,680 --> 00:05:14,350 grundvallaratriðum. 104 00:05:14,350 --> 00:05:17,880 >> Og nú ætla ég að fara að tala um sumir Javascript-- bara grunnþáttum 105 00:05:17,880 --> 00:05:20,240 tungumálsins, svo sem við getum verið á sömu síðu 106 00:05:20,240 --> 00:05:22,470 þegar við tölum um API svolítið síðar. 107 00:05:22,470 --> 00:05:23,260 Cool. 108 00:05:23,260 --> 00:05:26,192 >> Svo, þetta er samantekt. 109 00:05:26,192 --> 00:05:27,150 Ég gleymdi að þetta var hér. 110 00:05:27,150 --> 00:05:27,510 Já. 111 00:05:27,510 --> 00:05:27,870 >> HUGH Zabriskie: Það er tvær glærur hér. 112 00:05:27,870 --> 00:05:30,245 >> SAM GREEN: Þetta er samantekt sumir af þeim takmörkunum 113 00:05:30,245 --> 00:05:35,220 á öðrum bindandi, gamla aðferðir. 114 00:05:35,220 --> 00:05:37,828 Og þá nú höfum við þetta. 115 00:05:37,828 --> 00:05:40,011 Cool. 116 00:05:40,011 --> 00:05:40,510 Awesome. 117 00:05:40,510 --> 00:05:43,200 >> Svo, JavaScript meginatriðum. 118 00:05:43,200 --> 00:05:47,230 Fyrstur hlutur fyrstur, það er nokkuð marktækur munur 119 00:05:47,230 --> 00:05:49,940 í JavaScript móti í Tungumál eins og C, í leiðinni 120 00:05:49,940 --> 00:05:52,050 sem breytur eru búnar. 121 00:05:52,050 --> 00:05:55,634 Svo í C, erum við að nota til að hafa að slá breytur okkar, ekki satt? 122 00:05:55,634 --> 00:05:57,800 Og ég meina ekki tegund eins slá þá inn, ég meina tegund 123 00:05:57,800 --> 00:06:01,900 eins úthluta þeim type-- merkingu eins, int, fljóta, bleikju. 124 00:06:01,900 --> 00:06:05,210 Í C, við vorum í raun notað til að þurfa að búa til breytu 125 00:06:05,210 --> 00:06:09,690 og þá standa við þá tegund fyrir að Allan tímann sem við notum þá breytu. 126 00:06:09,690 --> 00:06:13,990 Og það er ekki endilega verra, en það er líklega erfiðara að nota. 127 00:06:13,990 --> 00:06:16,190 Einn af the kaldur lögun af JavaScript er 128 00:06:16,190 --> 00:06:19,740 sem breytur eru það sem er kallað "virk slegið," sem 129 00:06:19,740 --> 00:06:22,500 þýðir að ég get búið til breyta með því setningafræði, 130 00:06:22,500 --> 00:06:25,800 varX er 5, til dæmis. 131 00:06:25,800 --> 00:06:27,790 Sem upphaflega skapar heiltala variable-- 132 00:06:27,790 --> 00:06:29,870 rétt undir hetta somewhere-- en ég 133 00:06:29,870 --> 00:06:33,040 Hægt er að breyta þá breytu að vísa í streng 134 00:06:33,040 --> 00:06:35,820 án þess að gera neitt eins og búa til nýja breytu. 135 00:06:35,820 --> 00:06:37,880 Ég þarf ekki að hafa áhyggjur um gerð breytast. 136 00:06:37,880 --> 00:06:45,440 JavaScript veit að gerð er breytt, og það gerist mjög virk. 137 00:06:45,440 --> 00:06:48,510 >> Svo það eru kostir og galli að það, 138 00:06:48,510 --> 00:06:51,250 eins og einhver sem er unnið í JavaScript um stund gæti vita. 139 00:06:51,250 --> 00:06:53,600 There ert sinnum hvenær þú gætir óvart 140 00:06:53,600 --> 00:06:57,720 breyta gerð breytu og ekki séð að gerð breytast, 141 00:06:57,720 --> 00:07:01,120 og þá þinn JavaScript getur crash-- eða undantekning 142 00:07:01,120 --> 00:07:06,070 vera kastað, því þú munt hafa röng tegund þegar þú býst eina tegund. 143 00:07:06,070 --> 00:07:07,040 Cool. 144 00:07:07,040 --> 00:07:11,470 >> Svo, scoping-- sem er eins, ef við muna á fyrstu vikum í námskeiðinu, 145 00:07:11,470 --> 00:07:15,420 vísar til þess að sýnilega breytu er og á hvaða sviði kóðann. 146 00:07:15,420 --> 00:07:18,400 Allt sem lítur mjög svipað að því hvernig það lítur í C. 147 00:07:18,400 --> 00:07:24,755 Svo breytur eru scoped almennt innan hrokkið axlabönd í falli, 148 00:07:24,755 --> 00:07:27,005 og svo eru líka altækt scoped breytur sem 149 00:07:27,005 --> 00:07:29,171 are-- ef þú skrifar breytu utan fall, 150 00:07:29,171 --> 00:07:31,790 það mun vera sýnilegur í öllu texta. 151 00:07:31,790 --> 00:07:35,840 >> Einn munur JavaScript og C í lagi, 152 00:07:35,840 --> 00:07:40,280 er að ef þú lýsa alþjóðlegt breyta hvar í textaskrá 153 00:07:40,280 --> 00:07:43,324 það er sýnilegt í öllum aðgerðum innan þess texta skrá. 154 00:07:43,324 --> 00:07:44,240 Það er rétt, ekki satt? 155 00:07:44,240 --> 00:07:46,330 >> HUGH Zabriskie: Já. 156 00:07:46,330 --> 00:07:49,120 >> SAM GREEN: Svo er það líka svolítið bita Funky í samanburði við C, 157 00:07:49,120 --> 00:07:52,660 þar sem við höfðum alltaf að hafa okkar breytilegum skilgreiningum hér að ofan þeim stöðum 158 00:07:52,660 --> 00:07:53,770 þeir voru notaðir. 159 00:07:53,770 --> 00:07:57,957 Það er ekki regla sem er framfylgt lengur til, svo, svolítið öðruvísi. 160 00:07:57,957 --> 00:08:00,540 Og aftur bara til að reemphasize, alþjóðlegt móti sveitarfélaga variables-- 161 00:08:00,540 --> 00:08:03,457 mjög svipað C Þú gætir hafa tvær breytur með sama nafni, 162 00:08:03,457 --> 00:08:06,540 og hafa einn af nöfnum þeirra að skuggi með staðbundnum breytu ef einn af þeim 163 00:08:06,540 --> 00:08:07,546 var alþjóðlegt. 164 00:08:07,546 --> 00:08:09,420 Svo, svipað góður af vandamál sem sumir af þú 165 00:08:09,420 --> 00:08:11,920 kann að hafa keyrt inn í sumir á vanda þínum setur svo langt. 166 00:08:11,920 --> 00:08:14,450 Cool, svo er það breytur. 167 00:08:14,450 --> 00:08:20,310 >> Control flæði, sem þýðir eins, ef-else-- rökrétt stuff-- og lykkjur. 168 00:08:20,310 --> 00:08:24,510 Svo til að byrja með, þetta er það sem if-else yfirlýsingar líta út eins og í JavaScript. 169 00:08:24,510 --> 00:08:29,750 The staðsetning ýmsum hlutum á línum er ekki mikilvægt. 170 00:08:29,750 --> 00:08:34,409 Þetta er bara eitt af samningunum fyrir því hvernig við uppbyggingu kóða. 171 00:08:34,409 --> 00:08:38,634 Rétt eins og í C, höfum við "ef" a svigi yfirlýsingu. 172 00:08:38,634 --> 00:08:40,840 173 00:08:40,840 --> 00:08:42,090 Það er ekki það sem ég ætlaði að gera. 174 00:08:42,090 --> 00:08:44,860 175 00:08:44,860 --> 00:08:45,550 Ég gerði það aftur. 176 00:08:45,550 --> 00:08:46,841 >> HUGH Zabriskie: Reynt að hætta? 177 00:08:46,841 --> 00:08:49,770 SAM GREEN: Nei, ég er bara að reyna að stækka. 178 00:08:49,770 --> 00:08:50,660 Það skiptir ekki máli. 179 00:08:50,660 --> 00:08:54,730 180 00:08:54,730 --> 00:08:59,370 >> Svo höfum við "ef" yfirlýsingu og við höfum ástand innan þess 181 00:08:59,370 --> 00:09:03,130 sem metur að rétt eða rangt, og sem ákvarðar hvort 182 00:09:03,130 --> 00:09:04,510 við inn að kóðanum. 183 00:09:04,510 --> 00:09:09,860 Og sömuleiðis, við höfum annað, ef, og An annars, rétt eins og við erum að nota í C 184 00:09:09,860 --> 00:09:14,010 >> Þú getur einnig ætti að vera nokkuð vel strax the kylfa með lykkjur, 185 00:09:14,010 --> 00:09:16,440 vegna þess að þeir líta einnig a einhver fjöldi eins og C lítur út. 186 00:09:16,440 --> 00:09:19,600 En þú munt taka aftur að við hafa, í stað þess að INT initializations, 187 00:09:19,600 --> 00:09:22,570 við höfum VAR initializations. 188 00:09:22,570 --> 00:09:24,650 Og ég held að þú ert að vera varkár að gera 189 00:09:24,650 --> 00:09:28,460 viss um að þú breytir ekki gildi af I frá int í streng, 190 00:09:28,460 --> 00:09:31,780 til dæmis vegna þess að er að fara að valdið skrýtið hegðun þú gætir ekki 191 00:09:31,780 --> 00:09:32,280 búast. 192 00:09:32,280 --> 00:09:35,750 En þetta ætti að líta frekar þekki, eins vel. 193 00:09:35,750 --> 00:09:39,460 >> Svo er þetta þar sem hlutirnir byrja að fá smá klikk í JavaScript 194 00:09:39,460 --> 00:09:44,920 fyrir einhvern sem er að fara frá a Forsaga C. Það eru aðgerðir 195 00:09:44,920 --> 00:09:48,070 í JavaScript, og það er ein leið að lýsa því yfir fall sem lítur 196 00:09:48,070 --> 00:09:50,361 konar svipað C, og þá er það annað sem 197 00:09:50,361 --> 00:09:52,450 lítur konar öðruvísi. 198 00:09:52,450 --> 00:09:54,930 >> Fyrsta útgáfa, sem við sjáum hér, 199 00:09:54,930 --> 00:09:59,260 er góður af C-eins, þar við að segja, þetta er fall, 200 00:09:59,260 --> 00:10:01,490 gefa það a nafn, gefa fjöldi rök, 201 00:10:01,490 --> 00:10:05,150 og þá innihald virka fara inn þessara hrokkið axlabönd. 202 00:10:05,150 --> 00:10:08,850 Við munum sjá dæmi um rök í bara annað. 203 00:10:08,850 --> 00:10:13,420 >> En í næstu línu, sjáum við, ó, hér er breytilegt heitir "myFunction," 204 00:10:13,420 --> 00:10:17,546 og við jafnir það að þessu almenn thing-- function-- að 205 00:10:17,546 --> 00:10:19,170 virðist ekki hafa neitt að fara á. 206 00:10:19,170 --> 00:10:22,780 207 00:10:22,780 --> 00:10:26,080 Ástæðan fyrir því að er öðruvísi en C er að JavaScript 208 00:10:26,080 --> 00:10:30,040 er það sem er kallað hagnýtur tungumál, eða hefur hagnýtur þætti, sem þýðir 209 00:10:30,040 --> 00:10:33,510 sem aðgerðir eru í raun gildi. 210 00:10:33,510 --> 00:10:39,520 Og það þýðir að við getum sett breytu til að jafna aðgerð 211 00:10:39,520 --> 00:10:43,210 og þá fara að virka kring, gefa það sem rök, 212 00:10:43,210 --> 00:10:46,550 gera alls konar efni eins og að með aðgerðum. 213 00:10:46,550 --> 00:10:49,682 >> Einn annar hlutur að note-- aðgerðir eru skrifaðar 214 00:10:49,682 --> 00:10:51,140 með ákveðinn fjölda rök. 215 00:10:51,140 --> 00:10:54,056 Við munum sjá dæmi um fall með rök á næstu glæru. 216 00:10:54,056 --> 00:10:56,720 En JavaScript verður ekki æpa á þig ef þú reynir 217 00:10:56,720 --> 00:10:59,330 að nota virka með rangt fjöldi viðfanga. 218 00:10:59,330 --> 00:11:05,310 Það verður bara að gera sitt besta til að gera gera, sem þýðir að ef þú framhjá, 219 00:11:05,310 --> 00:11:09,410 þú hringja í aðgerð sem gerir ráð fyrir að rifrildi við engin rök, allt sem 220 00:11:09,410 --> 00:11:13,990 mun gerast er að það verður að gera sitt besta til að reyna að framkvæma þessi númer, 221 00:11:13,990 --> 00:11:16,541 og ef það rennur að lokum í undanþágu eða villu, 222 00:11:16,541 --> 00:11:19,790 það verður kasta að undantekning og bara halda going-- sem er bara ein af þeim leiðum 223 00:11:19,790 --> 00:11:21,070 sem JavaScript virkar. 224 00:11:21,070 --> 00:11:21,781 Já. 225 00:11:21,781 --> 00:11:24,207 >> Áhorfendur: Hvað gerist ef það er of margir rök? 226 00:11:24,207 --> 00:11:26,040 SAM GREEN: Svo Spurningin var, hvað gerist 227 00:11:26,040 --> 00:11:27,380 ef það eru of margir rök? 228 00:11:27,380 --> 00:11:29,171 Og svarið er að JavaScript verður bara 229 00:11:29,171 --> 00:11:32,120 hunsa þau sem eru eftir þeim það ráð. 230 00:11:32,120 --> 00:11:36,420 Það verður að reyna að framkvæma aðgerðina kalla eins og ef það var bara fyrstu tvær. 231 00:11:36,420 --> 00:11:37,075 Ekki satt? 232 00:11:37,075 --> 00:11:37,700 >> HUGH Zabriskie: Það er rétt, já. 233 00:11:37,700 --> 00:11:39,449 Á sama hátt, ef það eru of fáir rök, 234 00:11:39,449 --> 00:11:42,640 það gefur bara svona null til allra rök það hefur ekki nein gildi 235 00:11:42,640 --> 00:11:43,660 fyrir. 236 00:11:43,660 --> 00:11:45,810 >> SAM GREEN: Hvaða getur reyndar verið vel, ef þú 237 00:11:45,810 --> 00:11:49,060 langar að skrifa fall sem tekur breytilegan fjölda rök. 238 00:11:49,060 --> 00:11:55,830 Þú getur stillt sjálfgefið gildi í skilgreiningu á hlutverki, 239 00:11:55,830 --> 00:11:59,060 og það er hægt að horfa framhjá því að inntak er ekki þar. 240 00:11:59,060 --> 00:12:01,584 241 00:12:01,584 --> 00:12:04,000 Svo ég vil tala svolítið meira um þetta síðasta bullet 242 00:12:04,000 --> 00:12:05,541 lið, sem er virka eru gildi. 243 00:12:05,541 --> 00:12:07,930 244 00:12:07,930 --> 00:12:11,010 Þetta er dæmi sem er svolítið hugur-blása 245 00:12:11,010 --> 00:12:14,880 ef þú lest bara það, og held ekki um hvað er að gerast fyrir a second. 246 00:12:14,880 --> 00:12:17,910 Svo, við skulum líta bara á fyrsta línan hér. 247 00:12:17,910 --> 00:12:24,360 Við höfum þessa breytu, F1, að við segjum er fall sem gerir þetta. 248 00:12:24,360 --> 00:12:28,535 Og innihald virka eru console.log ('Halló'). 249 00:12:28,535 --> 00:12:32,220 Þú getur hugsað console.log sem er JavaScript jafnvirði printf. 250 00:12:32,220 --> 00:12:35,510 Svo hvað mun gerast er, ef við keyra þennan kóða í vafranum okkar, 251 00:12:35,510 --> 00:12:37,530 það mun prenta út streng. 252 00:12:37,530 --> 00:12:39,342 Ég get sýnt fram á að. 253 00:12:39,342 --> 00:12:42,300 Áhorfendur: By þig inn, þó, er að meina það er verið skráð einhvers staðar? 254 00:12:42,300 --> 00:12:42,550 SAM GREEN: Já. 255 00:12:42,550 --> 00:12:44,216 Svo ég ætla að sýna þér hvað er að fara að gerast. 256 00:12:44,216 --> 00:12:48,085 Svo spurningin var, hvað þýðir Log meina? 257 00:12:48,085 --> 00:12:51,262 >> HUGH Zabriskie: Svo console.log er eins og printf fyrir C 258 00:12:51,262 --> 00:12:52,970 SAM GREEN: Svo console.log er eins printf, 259 00:12:52,970 --> 00:12:59,240 svo ef ég hef þetta console.log ('Halló'), og ég kalla það, band "halló" 260 00:12:59,240 --> 00:13:00,730 sé prentuð út í vélinni. 261 00:13:00,730 --> 00:13:03,340 Þetta er að hugga. 262 00:13:03,340 --> 00:13:05,930 Það er bara eins printf, þar það prentar við hefðbundna út. 263 00:13:05,930 --> 00:13:09,050 264 00:13:09,050 --> 00:13:11,230 Og við munum sjá í eina mínútu, en þetta er í raun og veru 265 00:13:11,230 --> 00:13:16,529 vísa í vélinni hlut, og kalla aðferð á að mótmæla. 266 00:13:16,529 --> 00:13:18,320 Sem mun gera meira vit í eina mínútu þegar við 267 00:13:18,320 --> 00:13:20,660 fá að tala um hlutir í JavaScript, 268 00:13:20,660 --> 00:13:22,509 en ég hélt að ég myndi bara nefna það. 269 00:13:22,509 --> 00:13:24,300 HUGH Zabriskie: Við erum er notað til að í C, right-- 270 00:13:24,300 --> 00:13:27,580 við að skrifa venjulega stór forrit í helstu að gera neitt. 271 00:13:27,580 --> 00:13:30,700 En hvað er flott í JavaScript er þú hafa svona túlkur sem 272 00:13:30,700 --> 00:13:33,620 keyrir í rauntíma, svo það tekur bara línu fyrir línu, 273 00:13:33,620 --> 00:13:35,320 það getur bara túlka það á staðnum. 274 00:13:35,320 --> 00:13:37,403 Og það heldur utan um hlutir sem hafa keyrt áður, 275 00:13:37,403 --> 00:13:41,620 svo það er nokkuð gagnlegt tól til nota console.log, eða hugga, 276 00:13:41,620 --> 00:13:46,870 almennt, fyrir bara að spila kring með JavaScript. 277 00:13:46,870 --> 00:13:51,420 >> SAM GREEN: Svo fara aftur á þessa example-- í annarri línu af kóða 278 00:13:51,420 --> 00:13:55,320 hér er nokkuð hugur-boggling í höfðinu á mér. 279 00:13:55,320 --> 00:13:59,790 Í fyrsta skipti sem ég las þetta, það var eins og, hvað er að gerast? 280 00:13:59,790 --> 00:14:04,580 Svo er það sem er að gerast, þetta virka yfirlýsingu segir, 281 00:14:04,580 --> 00:14:10,170 Ég er með virka kallast F2 sem á von á einn rök, f, 282 00:14:10,170 --> 00:14:12,990 og þá kallar það að virka, F, sem 283 00:14:12,990 --> 00:14:17,652 var samþykkt að það sem rök án rök sig. 284 00:14:17,652 --> 00:14:19,110 Svo, sem gæti hafa verið ruglingslegt. 285 00:14:19,110 --> 00:14:21,890 286 00:14:21,890 --> 00:14:28,400 Ef við skiljum þetta eins f2 tekur f1 sem rök, og þá inni F2, 287 00:14:28,400 --> 00:14:31,190 F fær called-- sem þýðir að þessari línu af kóða, 288 00:14:31,190 --> 00:14:34,192 eftir þessum tveimur línum númer, úrslit í "halló" 289 00:14:34,192 --> 00:14:35,400 að prenta á vélinni. 290 00:14:35,400 --> 00:14:41,660 291 00:14:41,660 --> 00:14:44,910 >> Sú staðreynd að við getum framhjá aðgerðir um sem gildi 292 00:14:44,910 --> 00:14:47,870 endar að vera einn af the öflugur lögun af JavaScript 293 00:14:47,870 --> 00:14:49,700 sem forritunarmál. 294 00:14:49,700 --> 00:14:52,782 Utan af öllum hér að ógnvekjandi hlutur það getur gert, 295 00:14:52,782 --> 00:14:54,990 bara eins og a lögun af tungumál í skilmálar af því hvernig 296 00:14:54,990 --> 00:14:58,400 að það gerir það auðvelt að forrita og leyfa 297 00:14:58,400 --> 00:15:01,060 fyrir hluti sem eru ekki sérstaklega vel til þess fallin að vefnum, 298 00:15:01,060 --> 00:15:04,500 hagnýtur forritun og hagnýtur forritun þætti JavaScript 299 00:15:04,500 --> 00:15:07,130 er eitt af mest öflugur hugtök sem 300 00:15:07,130 --> 00:15:11,030 er í Javascript-- ef þú spyrð mig. 301 00:15:11,030 --> 00:15:11,960 Cool. 302 00:15:11,960 --> 00:15:13,534 >> Svo, næstur hlutur. 303 00:15:13,534 --> 00:15:16,450 Auk þess að vera virk, það eru líka þættir JavaScript 304 00:15:16,450 --> 00:15:20,510 sem eru hlutbundin, sem er eitt af mjög 305 00:15:20,510 --> 00:15:23,800 Vinsælast suð orð í tölvunarfræði. 306 00:15:23,800 --> 00:15:27,040 Hlutbundin forritun er mjög vinsæll hlutur. 307 00:15:27,040 --> 00:15:34,210 JavaScript er útgáfa af því, þar sem ég tel hvert gildi einnig 308 00:15:34,210 --> 00:15:41,475 hlut, sem þýðir að hverjum hlut hula saman nokkur fjöldi gildi. 309 00:15:41,475 --> 00:15:44,020 310 00:15:44,020 --> 00:15:49,750 Svo fyrir gildi sem eru einfaldar, eins og heiltala, eins varX er 5, 311 00:15:49,750 --> 00:15:52,250 að mótmæla hula bara að eitt gildi. 312 00:15:52,250 --> 00:15:54,760 313 00:15:54,760 --> 00:15:59,036 >> En við getum líka ímynda sér aðstæður where-- við getum hugsað um aðstæður í C 314 00:15:59,036 --> 00:16:00,910 þar sem við vildum gera eitthvað með structs, 315 00:16:00,910 --> 00:16:03,285 til dæmis, sem hula nokkrir gildi saman og gerir 316 00:16:03,285 --> 00:16:05,870 það mjög auðvelt að fara dæminu við. 317 00:16:05,870 --> 00:16:09,270 Það er þegar hlutur er í JavaScript. 318 00:16:09,270 --> 00:16:12,340 >> Það er mikilvægt að muna þegar ég segi að hlutir vafinn 319 00:16:12,340 --> 00:16:15,330 sumir tala af gildum saman, sem aðgerðir eru einnig 320 00:16:15,330 --> 00:16:21,506 gildi, sem þýðir að virka getur einnig að vera inni í JavaScript hlut. 321 00:16:21,506 --> 00:16:26,910 Og ástæðan sem er mikilvægt er, til þess að vér oft 322 00:16:26,910 --> 00:16:30,290 hugsa um að hringja í aðferð á hlut sem er 323 00:16:30,290 --> 00:16:35,200 af vinsælustu tíma frá öðrum Vinsælast hlutbundin tungumál, 324 00:16:35,200 --> 00:16:39,330 einn af the mismunur er hér að allt sem aðferð er í JavaScript 325 00:16:39,330 --> 00:16:47,270 er gildi geymt inni hlut sem sinnir sumir aðgerð hugsanlega 326 00:16:47,270 --> 00:16:51,850 nota önnur gildi sem eru inni af hlutnum, en ekki endilega. 327 00:16:51,850 --> 00:16:56,930 Svo þú getur ímyndað sér aðstæður, ég giska á smá brjálaður hátt, 328 00:16:56,930 --> 00:17:02,990 þar sem þú kallaðir aðferð einn mótmæla á annan hlut, til dæmis. 329 00:17:02,990 --> 00:17:06,010 Svo, það er svolítið angurvær á þann hátt. 330 00:17:06,010 --> 00:17:09,369 >> Og þú getur líka breytt aðferðum sem eru tengd við hlut 331 00:17:09,369 --> 00:17:13,740 með því að fela það aðferð A nýtt hlutverk, sem er einnig 332 00:17:13,740 --> 00:17:18,250 nokkuð frábrugðin öðrum hlutbundin tungumál, þar 333 00:17:18,250 --> 00:17:21,410 þegar við lýsa hlut og ræst hana, 334 00:17:21,410 --> 00:17:25,839 við getum ekki breytt þeim aðferðum sem eru tengslum við að mótmæla lengur. 335 00:17:25,839 --> 00:17:28,680 Svo er það nokkuð öðruvísi. 336 00:17:28,680 --> 00:17:29,570 Cool. 337 00:17:29,570 --> 00:17:34,010 >> Svo er hér dæmi, fyrst, á hlut í aðgerð. 338 00:17:34,010 --> 00:17:36,390 Þetta er það sem er kallað almenn hlut, sem 339 00:17:36,390 --> 00:17:39,460 þýðir að það hjartarskinn ekki hafa allir Einkum nafn, er ekki með bekknum, 340 00:17:39,460 --> 00:17:42,190 það er bara sumir umbúðir gilda. 341 00:17:42,190 --> 00:17:49,790 Og hvernig sem útlit er, við höfum þessi ytri par af hrokkið axlabönd hér 342 00:17:49,790 --> 00:17:57,950 sem gefa til kynna að JavaScript og segja, þetta er hlutur. 343 00:17:57,950 --> 00:18:02,130 Gildin inni af því eru hvor gildi inni 344 00:18:02,130 --> 00:18:04,590 um hlut sem ætti vera pakkað saman. 345 00:18:04,590 --> 00:18:09,180 Og inni hlutnum, við höfum þá lykill gildi pör, 346 00:18:09,180 --> 00:18:13,880 þar sem lykillinn er átt við heiti af verðmæti inni í hlut, 347 00:18:13,880 --> 00:18:16,790 og hinn side-- gegnt ristill here-- 348 00:18:16,790 --> 00:18:19,850 er raunverulegt gildi sem ætti að geyma. 349 00:18:19,850 --> 00:18:26,210 >> Svo þú sérð hér að við höfum Lykillinn heitir fn með gildi sam, 350 00:18:26,210 --> 00:18:29,430 fylgt eftir með kommu, segja á næstu færslu. 351 00:18:29,430 --> 00:18:33,560 Þá lykillinn heitir LN, með gildið grænn, 352 00:18:33,560 --> 00:18:35,840 fylgt eftir með kommu, eftir "prenta" 353 00:18:35,840 --> 00:18:43,209 sem er að fara að hafa virka gildi sem er að fara að gera þessa línu af kóða. 354 00:18:43,209 --> 00:18:45,500 Við skulum taka skref til baka og taka upp það sem er að gerast hér. 355 00:18:45,500 --> 00:18:47,280 Þannig að þetta er svolítið flókið, og við erum að sjá eitthvað nýtt 356 00:18:47,280 --> 00:18:48,071 í fyrsta skipti. 357 00:18:48,071 --> 00:18:51,190 358 00:18:51,190 --> 00:18:55,065 The "þetta" keyword er nýr hlutur við erum að sjá hér, og hvað þetta gerir 359 00:18:55,065 --> 00:19:00,540 er, vísar í gildandi mótmæla í umfangi, ekki satt? 360 00:19:00,540 --> 00:19:03,990 Svo þegar við segjum, þetta bendir allt aftur 361 00:19:03,990 --> 00:19:08,140 að þessu öllu object-- þegar við gerum this.fn, 362 00:19:08,140 --> 00:19:11,990 við erum að fara að fara alla leið aftur að þessum hlut, fara á fn gildi 363 00:19:11,990 --> 00:19:16,471 og fá sam, draga það alla leið aftur, standa hér, og þá hreyfa á. 364 00:19:16,471 --> 00:19:19,838 >> Áhorfendur: Svo með sókn, er sem gert vegna breytu 365 00:19:19,838 --> 00:19:20,621 skilgreining? 366 00:19:20,621 --> 00:19:23,870 SAM GREEN: Svo spurningin var, er sókn gert vegna breytu 367 00:19:23,870 --> 00:19:24,727 skilgreining? 368 00:19:24,727 --> 00:19:25,435 Já, algerlega. 369 00:19:25,435 --> 00:19:29,660 370 00:19:29,660 --> 00:19:32,470 Hvað er að fara að gerast hér er, þetta punktur segir að JavaScript, 371 00:19:32,470 --> 00:19:39,990 OK, ég er að fá einhverja gildi frá þessum hlut frá mér. 372 00:19:39,990 --> 00:19:46,375 Og þá verður það að leita að færslu heitir fn, og ef það finnur það, 373 00:19:46,375 --> 00:19:48,470 það verður aftur að value-- svo, það er Sam. 374 00:19:48,470 --> 00:19:51,540 En ég gæti líka hafa slegið eitthvað sem ekki var skilgreint hér, 375 00:19:51,540 --> 00:19:54,090 og þá myndi bara aftur undefined-- sem 376 00:19:54,090 --> 00:19:58,250 er hlutur sem JavaScript getur gera, sem getur haft ávinning, 377 00:19:58,250 --> 00:20:03,190 en það er also-- ef þú gerir innsláttarvillu, það getur valdið undarlegt villur. 378 00:20:03,190 --> 00:20:05,617 Svo það verður bara að reyna að finna hvað þú segir það að finna 379 00:20:05,617 --> 00:20:07,700 og það er ekki að fara að kvarta ef ekki finna það. 380 00:20:07,700 --> 00:20:11,390 Það verður bara að segja, ég gerði ekki finna það, og þá fara. 381 00:20:11,390 --> 00:20:17,581 Þannig að það myndi vera óskilgreint, plús auður, auk föðurnafn. 382 00:20:17,581 --> 00:20:18,080 Já. 383 00:20:18,080 --> 00:20:21,070 Og þá getum við séð að ef við gæti þá farið niður og access-- 384 00:20:21,070 --> 00:20:25,450 og við köllum tf.print () með sviga. 385 00:20:25,450 --> 00:20:30,000 Það er að fara að kalla þessi prenta virka án rök, ekki satt? 386 00:20:30,000 --> 00:20:34,490 En ef við sögðum bara tf.print () semíkommu, án sviga, 387 00:20:34,490 --> 00:20:37,480 allt sem hefði gert er að draga út virka frá verðmæti, 388 00:20:37,480 --> 00:20:40,609 en þó ekki kallað það. 389 00:20:40,609 --> 00:20:41,162 Cool. 390 00:20:41,162 --> 00:20:42,870 HUGH Zabriskie: Ætti við að gera hlut? 391 00:20:42,870 --> 00:20:44,161 SAM GREEN: Jú, við skulum gera það. 392 00:20:44,161 --> 00:20:48,750 Svo ég er að færa þetta dæmi til að hugga. 393 00:20:48,750 --> 00:20:51,380 394 00:20:51,380 --> 00:20:55,466 Við getum ímyndað mér að ég hef hlut. 395 00:20:55,466 --> 00:21:03,026 396 00:21:03,026 --> 00:21:04,150 Þannig að þetta er einfalt mótmæla. 397 00:21:04,150 --> 00:21:06,910 398 00:21:06,910 --> 00:21:11,050 Þetta er hlutur sem inniheldur tvo gildi með tveimur tökkum, tveir lykill gildi 399 00:21:11,050 --> 00:21:12,710 pör. 400 00:21:12,710 --> 00:21:21,850 Þannig að ég get þá nálgast gildi geymdar inni þessa hlut með því að gera x.x1, 401 00:21:21,850 --> 00:21:23,400 til dæmis, og ég fæ 1 aftur. 402 00:21:23,400 --> 00:21:29,590 Sömuleiðis x.x2, fá þessi gildi aftur. 403 00:21:29,590 --> 00:21:33,330 >> Og nú er raunverulega kaldur hlutur, ég get reyndar bæta eitthvað við þennan hlut 404 00:21:33,330 --> 00:21:34,316 eftir að ég hef búið það. 405 00:21:34,316 --> 00:21:36,315 Svo þú getur ímyndað þér, við skulum segja að ég hef aðgerð. 406 00:21:36,315 --> 00:21:44,430 407 00:21:44,430 --> 00:21:46,352 >> HUGH Zabriskie: Þú þarft að gera Shift-Enter. 408 00:21:46,352 --> 00:21:47,643 >> SAM GREEN: Ó, það er pirrandi. 409 00:21:47,643 --> 00:22:02,460 410 00:22:02,460 --> 00:22:04,324 Hvað gerði það ekki eins? 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 Hér við fara. 414 00:22:08,691 --> 00:22:09,190 Cool. 415 00:22:09,190 --> 00:22:12,840 >> Þannig að ég hef bara búið þessi aðgerð, f, sem 416 00:22:12,840 --> 00:22:17,590 er að fara að fara í núverandi Markmið og prenta this.x1. 417 00:22:17,590 --> 00:22:20,330 Svo ef ég kalla bara f því sjálft, ekkert að fara 418 00:22:20,330 --> 00:22:26,970 að gerast, rétt, því það er engin x1 sviði í hlut það er að vísa til. 419 00:22:26,970 --> 00:22:39,710 En ef ég segi, x.f = F, og þá er ég kalla x.f (), ég ætla að fá aftur 1. 420 00:22:39,710 --> 00:22:42,990 421 00:22:42,990 --> 00:22:46,530 Að f virka er nú í tengslum við mótmæla x, 422 00:22:46,530 --> 00:22:51,800 sem hefur lykil kallast x1 í tengslum við gildið 1, 423 00:22:51,800 --> 00:22:54,570 svo þegar við köllum this.x1, það er fara að finna hvað það er að leita að 424 00:22:54,570 --> 00:22:56,450 og vera fær um að prenta gildi út. 425 00:22:56,450 --> 00:22:58,700 Svo er það bara eitt dæmi sinnar tegundar á brjálaður hlutur 426 00:22:58,700 --> 00:23:01,190 þú getur gert með hluti í JavaScript. 427 00:23:01,190 --> 00:23:03,870 428 00:23:03,870 --> 00:23:07,560 >> Svo að útgáfa var almenn útgáfa, merking 429 00:23:07,560 --> 00:23:13,780 sem við höfum búið til hlut með þetta sviga notation-- Brace merki, 430 00:23:13,780 --> 00:23:16,880 rather-- og það er vel ef við viljum bara 431 00:23:16,880 --> 00:23:21,440 eitt dæmi um ákveðna hlut, en hvað ef við viljum hafa fleiri en einn 432 00:23:21,440 --> 00:23:22,210 af sama tagi? 433 00:23:22,210 --> 00:23:24,440 Og svarið við því Spurningin er, það eru hlutir 434 00:23:24,440 --> 00:23:26,760 heitir námskeið í JavaScript eins og heilbrigður. 435 00:23:26,760 --> 00:23:31,470 436 00:23:31,470 --> 00:23:36,420 Við getum búið til fall sem er einhvers konar frumstilling 437 00:23:36,420 --> 00:23:41,690 fyrir aðskotahlutur, og við myndum segja, eins og, 438 00:23:41,690 --> 00:23:44,550 class-- mitt svo nafni af einnota object-- 439 00:23:44,550 --> 00:23:47,100 jafngildir fall sem setur það upp. 440 00:23:47,100 --> 00:23:52,280 Svo er það þetta væri jafngilt að er að búa til hlut sem 441 00:23:52,280 --> 00:23:55,930 væri bara eins og, hrokkið Brace, str, ristill, 442 00:23:55,930 --> 00:23:59,630 þetta er band, semíkommu, hrokkið Brace. 443 00:23:59,630 --> 00:24:01,880 Það myndi vera almenn mótmæla við frumstilla, 444 00:24:01,880 --> 00:24:06,380 með einn munurinn er á Næstu línur við að búa til frumgerð sem 445 00:24:06,380 --> 00:24:11,190 þýðir að það er sjálfgefið lykillinn að við bætum við hlut okkar sem 446 00:24:11,190 --> 00:24:13,970 hefur gildið skráð hér. 447 00:24:13,970 --> 00:24:20,570 Sem þýðir að þegar ég bý til nýja dæmi um þetta MyClass hlut, 448 00:24:20,570 --> 00:24:27,440 það er að fara að hafa pre-innbyggður inni það gildi sem heitir STR og annað gildi 449 00:24:27,440 --> 00:24:32,418 kallast myPrint, sem er að fara til vera a virka. 450 00:24:32,418 --> 00:24:32,918 Awesome. 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 Svo síðasta sem að segja um JavaScript 454 00:24:40,710 --> 00:24:46,430 er að það er mjög gagnlegt fyrir hvað eru kallaðir ósamstilltur starfsemi. 455 00:24:46,430 --> 00:24:52,500 Ósamstilltur þýðir að við getur beðið um nokkurt rekstri 456 00:24:52,500 --> 00:24:57,870 til að ljúka áður en við fara á, en fara á meðan við bíðum 457 00:24:57,870 --> 00:24:59,690 og þá hafa eitthvað gerast síðar. 458 00:24:59,690 --> 00:25:03,480 Og það sem ég meina með því sem er, þú getur ímynda sér aðstæður þar 459 00:25:03,480 --> 00:25:06,850 þú sendir beiðni til sumir vefur framreiðslumaður einhvers staðar, 460 00:25:06,850 --> 00:25:09,670 og það er að fara að senda þér aftur nokkur stór klumpur af gögnum, ekki satt? 461 00:25:09,670 --> 00:25:13,320 Og notandi getur beðið í millitíðinni fyrir það að gerast, 462 00:25:13,320 --> 00:25:15,200 og ekkert gæti verið fara á á þeim tíma. 463 00:25:15,200 --> 00:25:18,110 En það er ekki mikill hönnun, ekki satt? 464 00:25:18,110 --> 00:25:20,214 Þú vilt ekki að vefsíðu til að frysta. 465 00:25:20,214 --> 00:25:22,380 Hvað ef notandinn vill smelltu á fellilistanum? 466 00:25:22,380 --> 00:25:24,870 Það er ekki mikill hönnun mynstur. 467 00:25:24,870 --> 00:25:29,290 Þess í stað, í grundvallaratriðum hvað JavaScript er er segir, 468 00:25:29,290 --> 00:25:31,870 OK, gera þessa aðgerð asynchronously. 469 00:25:31,870 --> 00:25:36,520 Svo eins og, bíddu í bakgrunni, og síðan þegar rekstur er gert, 470 00:25:36,520 --> 00:25:39,420 hringja í svarhringingu function-- kalla sumir virka, 471 00:25:39,420 --> 00:25:43,800 gera sumir aðgerð til merki um að aðgerð við vorum að bíða eftir að enda 472 00:25:43,800 --> 00:25:45,520 er búið. 473 00:25:45,520 --> 00:25:51,240 Og ástæðan sem er frábær öflugur er, við getum gert eitthvað, fara að rífast, 474 00:25:51,240 --> 00:25:54,440 gera eitthvað, og þá bíða fyrir eitthvað að gerast. 475 00:25:54,440 --> 00:25:58,970 Þá, þegar að eitthvað lýkur, getum við kalla svarhringingu. 476 00:25:58,970 --> 00:26:03,300 Það er mjög vel vegna þess að það leyfir okkur að gera hluti með vefnum Audio API, 477 00:26:03,300 --> 00:26:07,490 Til dæmis, eins og hlaða hljóðskrá frá ytri miðlara 478 00:26:07,490 --> 00:26:11,660 án þess að þurfa að bíða fyrir allt hljóðskrá til að vera hlaðið, 479 00:26:11,660 --> 00:26:14,440 sem væri mjög slæmt fyrir reynslu notenda. 480 00:26:14,440 --> 00:26:17,080 Cool. 481 00:26:17,080 --> 00:26:19,460 >> Síðasta par bendir um kembiforrit, þar sem þetta 482 00:26:19,460 --> 00:26:23,682 er hlutur sem þú ert að fara að þurfa að gera sem hluta af verkefninu, tryggingu. 483 00:26:23,682 --> 00:26:25,140 Ég nefndi JavaScript vélinni. 484 00:26:25,140 --> 00:26:27,550 Það er frábær gagnlegur lögun af öllum nútíma vöfrum, 485 00:26:27,550 --> 00:26:30,300 Og við hvetjum virkilega að fá þægilegt að nota stjórnborðið, 486 00:26:30,300 --> 00:26:33,660 ef þú vilt fá gott á JavaScript. 487 00:26:33,660 --> 00:26:36,320 Það er frábær vel fyrir kembiforrit, en það er líka 488 00:26:36,320 --> 00:26:39,440 mjög gagnlegt fyrir vangaveltur út hvernig á að nota API. 489 00:26:39,440 --> 00:26:41,950 Það gerir ráð fyrir mjög auðvelt tilraunir 490 00:26:41,950 --> 00:26:45,910 án þess að þurfa að gerð nokkur númer og síðan þýða það. 491 00:26:45,910 --> 00:26:47,500 Þú þarft ekki að gera alla þá skrefum. 492 00:26:47,500 --> 00:26:49,619 Þú getur bara skrifað sumir kóða í línu, 493 00:26:49,619 --> 00:26:52,410 og þá fá tafarlausa endurgjöf á hvort þessi lína af kóða 494 00:26:52,410 --> 00:26:55,230 worked-- mjög vel. 495 00:26:55,230 --> 00:26:59,760 >> Og einnig, bara einn tæknilega note-- JavaScript vélinni er dæmi 496 00:26:59,760 --> 00:27:05,680 af REPL-- svo sem er R-E-P-L, svar við, sem stendur fyrir að lesa, meta, 497 00:27:05,680 --> 00:27:06,180 prenta lykkja. 498 00:27:06,180 --> 00:27:09,100 499 00:27:09,100 --> 00:27:12,120 Þú ert að fara að slá smá dót í, það verður að lesa það sem þú slóst inn, 500 00:27:12,120 --> 00:27:17,280 það mun meta það, og það mun prenta framleiðsla, og þá er það mun byrja aftur. 501 00:27:17,280 --> 00:27:22,056 Það gerir þér kleift að fljótt fara í hringi iterating, sem er mjög flott. 502 00:27:22,056 --> 00:27:25,150 503 00:27:25,150 --> 00:27:28,930 >> Ég giska alvöru Last note-- þetta er í raun síðasta huga, já. 504 00:27:28,930 --> 00:27:30,780 Hvernig notum við í raun JavaScript? 505 00:27:30,780 --> 00:27:34,040 Svo fyrst, getum við flutt það með handrit tag 506 00:27:34,040 --> 00:27:39,500 efst eða neðst á HTML file-- hvar inni af HTML skrá, 507 00:27:39,500 --> 00:27:40,440 í raun. 508 00:27:40,440 --> 00:27:47,390 Og innan handrit tag, það eru tveir undir-leiðir flytja JavaScript. 509 00:27:47,390 --> 00:27:51,370 Í fyrsta lagi er um að hafa Sérstakur JavaScript skrá 510 00:27:51,370 --> 00:27:58,010 sem við flytjum í heild sinni, eða með því að hafa svæði kóða eins handriti 511 00:27:58,010 --> 00:28:00,290 til að byrja, og þá sviga handrit til enda. 512 00:28:00,290 --> 00:28:02,620 Og þá erum við að skrifa bara JavaScript inni í HTML skrá. 513 00:28:02,620 --> 00:28:03,790 Þeir eru tvær leiðir. 514 00:28:03,790 --> 00:28:05,165 Þú getur ekki hafa það inni í HTML. 515 00:28:05,165 --> 00:28:06,502 516 00:28:06,502 --> 00:28:08,126 Áhorfendur: Er einn betri en annar? 517 00:28:08,126 --> 00:28:10,542 SAM GREEN: Spurningin var er einn betri en annar. 518 00:28:10,542 --> 00:28:18,306 Svo, já, eins og erfðaskrá stíl reynd og einnig er það eins og hönnun starfi. 519 00:28:18,306 --> 00:28:20,180 Það eru tvær ástæður hvers vegna það gæti verið betra. 520 00:28:20,180 --> 00:28:23,934 Hið fyrra er, það gerir númer A miklu meira læsileg ef öllum HTML kóðanum 521 00:28:23,934 --> 00:28:27,100 er á einum stað, öll CSS þinn er í annar staður, öll JavaScript 522 00:28:27,100 --> 00:28:28,420 er í þriðja sæti. 523 00:28:28,420 --> 00:28:28,920 Ekki satt? 524 00:28:28,920 --> 00:28:32,370 Ég held að við ættum að hafa þegar talað um það í sections-- eins CSS-- það 525 00:28:32,370 --> 00:28:35,220 að is-- og það fer oft í aðra skrá. 526 00:28:35,220 --> 00:28:37,090 Svo, svipað góður af hugtak hér. 527 00:28:37,090 --> 00:28:42,410 Þú getur einnig ímyndað sér að JavaScript yrði endurnýtt á fleiri en einn 528 00:28:42,410 --> 00:28:47,350 HTML síðu, eða kannski Fjölmargir HTML síður, 529 00:28:47,350 --> 00:28:49,340 og hafa að JavaScript refactored í einn 530 00:28:49,340 --> 00:28:51,950 skrá sem þú getur flutt í fleiri en einum stað 531 00:28:51,950 --> 00:28:54,570 Leyfir kóða til að vera vegur meira haldist. 532 00:28:54,570 --> 00:28:57,930 Þú getur ímyndað þér að gera eitt breyting á JavaScript 533 00:28:57,930 --> 00:29:00,070 og þurfa að breyta því 100 mismunandi skrár. 534 00:29:00,070 --> 00:29:04,070 Og í staðinn getum við bara breytt því í einu, sem er leið öflugri. 535 00:29:04,070 --> 00:29:05,420 Sagði ég svara spurningunni þinni? 536 00:29:05,420 --> 00:29:07,950 Cool. 537 00:29:07,950 --> 00:29:10,830 >> Við getum einnig slegið í vélinni, eins og við höfum áður. 538 00:29:10,830 --> 00:29:15,070 Og aftur, eitt síðasta note-- Web Audio er byggð á, 539 00:29:15,070 --> 00:29:16,978 þú þarft ekki að hlaða neitt. 540 00:29:16,978 --> 00:29:17,478 Cool. 541 00:29:17,478 --> 00:29:20,519 Eru einhverjar spurningar, þú hefur fleiri spurningar um JavaScript, 542 00:29:20,519 --> 00:29:21,930 áður en við fara? 543 00:29:21,930 --> 00:29:24,286 >> Áhorfendur: [inaudible] 544 00:29:24,286 --> 00:29:25,410 SAM GREEN: Allt í lagi, flott. 545 00:29:25,410 --> 00:29:27,200 Svo nú er hann að fara að tala um API. 546 00:29:27,200 --> 00:29:28,490 >> HUGH Zabriskie: Cool. 547 00:29:28,490 --> 00:29:28,990 Takk, Sam. 548 00:29:28,990 --> 00:29:30,184 >> SAM GREEN: Jú. 549 00:29:30,184 --> 00:29:32,600 HUGH Zabriskie: Awesome, svo við munum fara frá JavaScript. 550 00:29:32,600 --> 00:29:35,350 Þannig að við höfum talað um tiltekin meginatriðum af JavaScript, 551 00:29:35,350 --> 00:29:41,105 og þeir eru breytur, föll, hlutir, virka sem breytur, 552 00:29:41,105 --> 00:29:41,980 ósamstilltur hleðsla. 553 00:29:41,980 --> 00:29:46,100 Þetta eru allt hlutir sem þú munt sjá eins og þú nota netið Audio. 554 00:29:46,100 --> 00:29:49,230 Þannig að við erum bara að fara að tala um það fyrst á háu stigi. 555 00:29:49,230 --> 00:29:52,120 >> Það er API, svo það er eitthvað sem er byggð, sem Sam sagði, 556 00:29:52,120 --> 00:29:57,010 rétt í JavaScript sem þú notar í vélinni. 557 00:29:57,010 --> 00:30:01,020 Og það er í raun bara eins og C ++ kóða sem er í raun byggt inn Chrome 558 00:30:01,020 --> 00:30:04,470 og Firefox, og öllum þessum vöfrum. 559 00:30:04,470 --> 00:30:07,060 Svo helstu hugmynd með vefnum Audio er að þú þarft 560 00:30:07,060 --> 00:30:09,440 svona leiðsla hljóð, ekki satt? 561 00:30:09,440 --> 00:30:13,670 So hljóð gögn kemur í í einhverri mynd. 562 00:30:13,670 --> 00:30:16,690 >> Það eru eins konar þremur helstu forms-- þú hefur oscillator, sem 563 00:30:16,690 --> 00:30:21,340 skapar sínus bylgja, kósínus bylgja, við erum að fara að sjá hvernig það virkar. 564 00:30:21,340 --> 00:30:23,890 Annar mjög algeng einn, auðvitað, er MP3. 565 00:30:23,890 --> 00:30:25,810 Svo kannski þú byrjar með lag, og þá 566 00:30:25,810 --> 00:30:28,320 vilja til gera sumir sía að því og framleiðsla 567 00:30:28,320 --> 00:30:30,605 that-- sem gæti verið mögulegt uppspretta. 568 00:30:30,605 --> 00:30:32,480 Og þá virkilega flott einn er á hljóðnemanum. 569 00:30:32,480 --> 00:30:37,230 Svo er hægt að nota sumir mjög undirstöðu símtöl í JavaScript 570 00:30:37,230 --> 00:30:39,440 til að fá aðgang að hljóðnema, og svo ef þú 571 00:30:39,440 --> 00:30:42,870 langaði til að gera app eins og kasta skynjari, 572 00:30:42,870 --> 00:30:45,290 Til dæmis, sem tekur í rödd þín og tölur út 573 00:30:45,290 --> 00:30:47,740 sem pitch-- mjög einföld leið til að. 574 00:30:47,740 --> 00:30:50,730 Þú getur bara svona að lesa það í, reikna út tíðni, 575 00:30:50,730 --> 00:30:52,250 og þá framleiðsla númer. 576 00:30:52,250 --> 00:30:56,080 Þannig að við munum sjá hvernig það virkar, eins og heilbrigður. 577 00:30:56,080 --> 00:30:59,430 >> Áfangastaður er í grundvallaratriðum þar sem hljóð gögn er framleiðsla. 578 00:30:59,430 --> 00:31:02,890 Svo almennt, það er eins og laptop ræðumaður. 579 00:31:02,890 --> 00:31:05,610 Aðrir valkostir eru eins a ScriptProcessorNode-- 580 00:31:05,610 --> 00:31:07,990 við munum fá til hnúður í a second-- en í grundvallaratriðum, 581 00:31:07,990 --> 00:31:11,939 hvort sem þú ert að setja hljóð á í gegnum tölvuna í gegnum hátalarana, 582 00:31:11,939 --> 00:31:14,730 eða þú ert góður af upptöku þess, svo þú ætlar að geyma hana sem hljóð gögn. 583 00:31:14,730 --> 00:31:18,980 Svo kannski ef einhver býr tónlist í app og þá 584 00:31:18,980 --> 00:31:22,410 þú vilt taka það og kannski eins og flytja hana til SoundCloud, fyrir example-- 585 00:31:22,410 --> 00:31:25,281 það væri ein leið til að gera það. 586 00:31:25,281 --> 00:31:27,030 Öll gaman efni, sem við munum tala um, 587 00:31:27,030 --> 00:31:29,950 gerist milli þessara tveggja punkta, þar sem við hlaða í tónlist 588 00:31:29,950 --> 00:31:31,410 og þá framleiðsla það. 589 00:31:31,410 --> 00:31:36,660 >> Þannig að ég ætla að tala um fimm stigum hljóð framleiðslu í annað. 590 00:31:36,660 --> 00:31:38,950 Við höfum þetta kallast An AudioContext, sem 591 00:31:38,950 --> 00:31:41,580 er þetta litla umbúðir sem við sjáum hér. 592 00:31:41,580 --> 00:31:49,980 Í grundvallaratriðum það AudioContext is-- ef við fara á Javascript vélinni núna, 593 00:31:49,980 --> 00:31:52,740 við getum búið til einn núna. 594 00:31:52,740 --> 00:31:54,040 Bara dæmi um svar við, ekki satt? 595 00:31:54,040 --> 00:31:57,880 Við erum að lesa, meta, og það prentar. 596 00:31:57,880 --> 00:32:00,260 >> AudioContext er alþjóðlegt ástand. 597 00:32:00,260 --> 00:32:05,500 Það er struct, er það hlut hér, heldur og það upplýsingar 598 00:32:05,500 --> 00:32:09,960 um hluti sem eru að fara á á skjánum sem tengjast hljóði. 599 00:32:09,960 --> 00:32:15,220 Eitt dæmi er núverandi tími. 600 00:32:15,220 --> 00:32:18,910 Þetta segir þér hversu sekúndum, mjög nákvæmlega, 601 00:32:18,910 --> 00:32:20,890 frá vefsíðu hlaðinn. 602 00:32:20,890 --> 00:32:24,110 Þannig að þetta er mjög gagnlegt lítið eign sem þú getur notað. 603 00:32:24,110 --> 00:32:27,898 Það er að lesa only-- Ég held reyndar þú getur prófað að setja það a gildi. 604 00:32:27,898 --> 00:32:29,856 Það verður að segja að þú setja það, og svo ef þú prenta það 605 00:32:29,856 --> 00:32:31,439 again-- það gerði í raun ekki alveg að vinna. 606 00:32:31,439 --> 00:32:34,472 Þannig að það eru að lesa-eini eignir í JavaScript. 607 00:32:34,472 --> 00:32:36,430 Þetta er mjög gagnlegt ef þú ert góður af syncing 608 00:32:36,430 --> 00:32:38,610 a einhver fjöldi af mismunandi upplýsingar, þegar þú ert 609 00:32:38,610 --> 00:32:41,280 konar spila mismunandi hljóð. 610 00:32:41,280 --> 00:32:43,630 >> Annar mjög gagnlegur einn er samhengi áfangastað. 611 00:32:43,630 --> 00:32:46,587 612 00:32:46,587 --> 00:32:49,670 Ákveðið, ef þú hefur áhuga, vera reyna þetta á eigin vélinni hægri hönd 613 00:32:49,670 --> 00:32:50,980 núna. 614 00:32:50,980 --> 00:32:53,150 Svo er þetta AudioDestinationNode. 615 00:32:53,150 --> 00:32:56,480 Grundvallaratriðum hvað þetta segir er, hvar er framleiðsla að fara? 616 00:32:56,480 --> 00:32:59,590 Þannig að það eru tveir alvöru valkosti hér. 617 00:32:59,590 --> 00:33:01,940 Yfirleitt sjálfgefið er bara ræðumaður, 618 00:33:01,940 --> 00:33:05,150 svo AudioDestinationNode í rauninni bara segir 619 00:33:05,150 --> 00:33:09,240 það eru núll framleiðsla til hljóð koma í, sendir til hátalara. 620 00:33:09,240 --> 00:33:12,050 Svo almennt, þú ert ekki að spila með það. 621 00:33:12,050 --> 00:33:15,720 Ef þú hefur áhuga á því að hefja notkun sem ScriptProcessorNode fyrir upptöku, 622 00:33:15,720 --> 00:33:16,990 örugglega skjóta mig með Netfangið síðar því það er 623 00:33:16,990 --> 00:33:18,330 svolítið flóknara. 624 00:33:18,330 --> 00:33:21,590 En almennt, þú ert bara svona af outputting hljóð í einhverri mynd. 625 00:33:21,590 --> 00:33:24,347 Svo flott, munum við hoppa aftur hér. 626 00:33:24,347 --> 00:33:25,180 Áhorfendur: Fyrirgefðu. 627 00:33:25,180 --> 00:33:26,054 HUGH Zabriskie: Já. 628 00:33:26,054 --> 00:33:28,770 Áhorfendur: Ég veit þú sagðir að tala þér síðar um upptöku. 629 00:33:28,770 --> 00:33:31,550 Getur þú tengi sem við Pro Tools? 630 00:33:31,550 --> 00:33:33,120 >> HUGH Zabriskie: Með Pro Tools? 631 00:33:33,120 --> 00:33:35,260 Látum okkur sjá. 632 00:33:35,260 --> 00:33:37,220 Ég held ekki. 633 00:33:37,220 --> 00:33:41,670 Svo fara á milli viðskiptavinarins, sem er JavaScript 634 00:33:41,670 --> 00:33:44,310 hugga og raunverulegan Computer, er yfirleitt 635 00:33:44,310 --> 00:33:46,490 eitthvað sem er góður af á mörkum, ef þú 636 00:33:46,490 --> 00:33:52,320 mun, góður af eðli the-- það er góður af hönnun hlutur, 637 00:33:52,320 --> 00:33:57,770 en þú reynir að halda í vafranum sérstakt frá raunverulegum tölvu notandans. 638 00:33:57,770 --> 00:34:02,310 Almennt, það eina sem þú ert fær um að aðgangur er á hljóðnemanum eða myndavél. 639 00:34:02,310 --> 00:34:04,730 Þú ert ekki fær um að ég held ekki, nota Pro Tools. 640 00:34:04,730 --> 00:34:07,480 Hins vegar, ef þú hefur búið lag í Pro Tools, 641 00:34:07,480 --> 00:34:12,710 flutt að þú gætir hlaða sem í hér, sía það, til dæmis, 642 00:34:12,710 --> 00:34:16,820 ferli sem, og taka það inn að Audio Destination-- eða no-- kúlu 643 00:34:16,820 --> 00:34:17,870 Örgjörva Hnútur. 644 00:34:17,870 --> 00:34:20,730 Og þá þaðan, þú gætir flytja það til SoundCloud, þér 645 00:34:20,730 --> 00:34:25,320 gæti sent það í tölvupósti, eða hvað sem þú vilt þaðan. 646 00:34:25,320 --> 00:34:31,159 >> En það er góður af lítilsháttar hindrun milli til að spila tónlist á tölvunni þinni 647 00:34:31,159 --> 00:34:33,050 og gera tónlist á netinu. 648 00:34:33,050 --> 00:34:37,940 >> SAM GREEN: Og það er ekki einstakt að þessu API. 649 00:34:37,940 --> 00:34:44,060 Það er öryggisþáttur í Chrome, og Ég held að hver öðrum nútíma vafra. 650 00:34:44,060 --> 00:34:45,860 Vafrinn er sjálf-gámur. 651 00:34:45,860 --> 00:34:50,980 Svo til dæmis, a vefur blaðsíða geta ekki nota JavaScript til að snúa hljóð 652 00:34:50,980 --> 00:34:54,190 á á hátalarana þína, til dæmis. 653 00:34:54,190 --> 00:34:58,120 Eða það er ekki snúa tölvunni á. 654 00:34:58,120 --> 00:35:01,530 Og það er ekkert millistig lið milli þessara tveggja hluta, rétt, 655 00:35:01,530 --> 00:35:05,960 svo annað hvort þú ert með heill abstrakt, 656 00:35:05,960 --> 00:35:10,050 eða þú opnar upp öryggi galli að láta 657 00:35:10,050 --> 00:35:14,440 forritari með slæmur fyrirætlanir gera hvað sem þeir vilja með fartölvuna þína. 658 00:35:14,440 --> 00:35:18,104 Og þess vegna Chrome er sjálf-gámur. 659 00:35:18,104 --> 00:35:19,310 >> HUGH Zabriskie: Já. 660 00:35:19,310 --> 00:35:20,840 Er að skynsamleg? 661 00:35:20,840 --> 00:35:21,369 Cool, flott. 662 00:35:21,369 --> 00:35:23,160 Ég var bara að fara að sýna dæmi um einn. 663 00:35:23,160 --> 00:35:25,118 Þetta er ansi mikið eins langt og þú færð, í skilmálar 664 00:35:25,118 --> 00:35:26,950 fá aðgang tölvu notandans. 665 00:35:26,950 --> 00:35:30,180 Ef þú ert með USB lyklaborð tengt í, þú getur notað eitthvað sem kallast Web 666 00:35:30,180 --> 00:35:32,180 MIDI API, sem við munum ekki raunverulega tala um hér, 667 00:35:32,180 --> 00:35:36,330 en þetta er annað API sem er byggt í að minnsta kosti Chrome-- aftur, 668 00:35:36,330 --> 00:35:41,570 þetta er hvers vegna við elskum Chrome-- Ég held Firefox eða Safari, 669 00:35:41,570 --> 00:35:44,300 þetta er auðvelt að google-- mismunandi vafrar hafa 670 00:35:44,300 --> 00:35:46,917 mismunandi stuðning sem API þeir hafa innleitt. 671 00:35:46,917 --> 00:35:49,875 En ef þú vildir að stinga í lyklaborð og vinna með þeim upplýsingum, 672 00:35:49,875 --> 00:35:52,850 konar senda lyklaborðið upplýsingar yfir til the tölva 673 00:35:52,850 --> 00:35:57,620 og þá nota þessi á netinu, þetta API er þar sem þú vilt vera að vinna að. 674 00:35:57,620 --> 00:35:58,150 >> Cool. 675 00:35:58,150 --> 00:35:58,710 OK. 676 00:35:58,710 --> 00:36:01,320 Svo, fljótt að flytja hér. 677 00:36:01,320 --> 00:36:03,310 Hvernig eigum við að gera á réttum tíma? 678 00:36:03,310 --> 00:36:04,210 >> Ræðumaður 1: Um 15. 679 00:36:04,210 --> 00:36:05,543 >> HUGH Zabriskie: 15 mínútur eftir? 680 00:36:05,543 --> 00:36:06,160 OK, flott. 681 00:36:06,160 --> 00:36:08,170 Þannig að við munum keppa framundan hér. 682 00:36:08,170 --> 00:36:13,500 >> Svo í rauninni, aðalatriðin hugsa um þetta sem leiðsla 683 00:36:13,500 --> 00:36:16,430 er að hvert skref í pípunum er röð af hljómflutnings hnúður. 684 00:36:16,430 --> 00:36:19,284 685 00:36:19,284 --> 00:36:20,950 Uppspretta okkar, við skulum segja, er oscillator. 686 00:36:20,950 --> 00:36:23,380 Við þurfum að búa til oscillator hnút. 687 00:36:23,380 --> 00:36:25,690 Og það er bara svona litla function-- 688 00:36:25,690 --> 00:36:30,460 og þau eru öll byggð á af hljómflutnings samhengi hér. 689 00:36:30,460 --> 00:36:32,885 >> Áhorfendur: Þegar það sagði oscillator, þýðir það 690 00:36:32,885 --> 00:36:37,250 það er í raun bókstaflega að fara frá tvær mismunandi stangir og til baka? 691 00:36:37,250 --> 00:36:41,170 >> HUGH Zabriskie: Nei, það er eins og stafræna framsetningu. 692 00:36:41,170 --> 00:36:42,740 Það er í raun til framkvæmda í C ++. 693 00:36:42,740 --> 00:36:46,460 Ég reyndar veit ekki sérstakur um hvernig það er í raun til framkvæmda, 694 00:36:46,460 --> 00:36:48,500 en allt þetta er að vinna eins og tvöfaldur gögn. 695 00:36:48,500 --> 00:36:51,260 696 00:36:51,260 --> 00:36:52,370 Reyndar, já. 697 00:36:52,370 --> 00:36:53,950 Það myndi vera að segja, ég gat reyndar, ef þú hefur áhuga, 698 00:36:53,950 --> 00:36:56,533 Ég gæti sent þér smá meira upplýsingar um hvernig waveforms 699 00:36:56,533 --> 00:37:00,181 er haldið með stafrænu formi. 700 00:37:00,181 --> 00:37:00,680 OK, flott. 701 00:37:00,680 --> 00:37:03,120 >> Þannig að við erum að búa til tóninn eins og sínus Wave eða eitthvað svoleiðis, kannski 702 00:37:03,120 --> 00:37:04,190 440 Hertz. 703 00:37:04,190 --> 00:37:05,830 Við munum búa til oscillator. 704 00:37:05,830 --> 00:37:09,180 Ef við viljum að stilla hljóðstyrk, við tengja neitt við GainNode, 705 00:37:09,180 --> 00:37:12,500 sem við gætum gert með .creategain. 706 00:37:12,500 --> 00:37:14,250 Sem setur bindi. 707 00:37:14,250 --> 00:37:17,820 Þú geta fara framhjá að á einhverju af öðrum options-- vel, 708 00:37:17,820 --> 00:37:20,300 svo hljóð biðminni uppspretta hnútur er þar sem þú gætir 709 00:37:20,300 --> 00:37:23,660 geyma MP3 sem þú hefur hlaðið inn í. 710 00:37:23,660 --> 00:37:27,670 >> Biquad sía er fyrir síun ef þú vilt taka alla stöð út 711 00:37:27,670 --> 00:37:29,630 af laginu, eða eitthvað svoleiðis. 712 00:37:29,630 --> 00:37:32,450 Guð forði þú vilt taka stöð út af laginu. 713 00:37:32,450 --> 00:37:36,980 Og AudioDestination hnút er, aftur, eins og hvar frágang okkar er. 714 00:37:36,980 --> 00:37:39,980 Ef þú ert alltaf áhuga á að sjá allar mismunandi mögulegar, 715 00:37:39,980 --> 00:37:45,190 bara fara á flipann og láta The sjálfvirkt farartæki-heill koma upp. 716 00:37:45,190 --> 00:37:48,690 Og ef þú býrð, þú munt sjá allar mismunandi hlutir sem þú getur búið til. 717 00:37:48,690 --> 00:37:50,398 Þú getur búið til dynamic handrit örgjörvum, 718 00:37:50,398 --> 00:37:52,940 Ég veit ekki einu sinni hvað það er, að blanda rás samruna 719 00:37:52,940 --> 00:37:55,930 og sund splitters og allt það. 720 00:37:55,930 --> 00:37:56,430 Cool. 721 00:37:56,430 --> 00:37:59,560 722 00:37:59,560 --> 00:38:01,390 >> Svo er þetta bara Dæmi um leiðslum. 723 00:38:01,390 --> 00:38:03,580 Þannig að við höfum þrjár uppsprettur koma í. 724 00:38:03,580 --> 00:38:06,830 Kannski eru þetta waveforms, kannski eru þetta MP3s. 725 00:38:06,830 --> 00:38:08,740 Eitt er að fara í gegnum a sía, annað er 726 00:38:08,740 --> 00:38:12,404 fá brenglast annað klyfjakarfa manns til vinstri og hægri. 727 00:38:12,404 --> 00:38:15,320 Þú getur gert alls konar hluti og þeir fá ruglað í kringum saman, 728 00:38:15,320 --> 00:38:18,880 og þá út kemur hljóð í lok, sem áfangastað. 729 00:38:18,880 --> 00:38:22,720 Þetta er dæmi um það sem meira flókið Web Audio póstnúmer lítur út. 730 00:38:22,720 --> 00:38:26,720 Þú ert að búa allt þetta mismunandi hlutum rétt here-- 731 00:38:26,720 --> 00:38:27,706 Ég er ekki viss um þetta. 732 00:38:27,706 --> 00:38:29,120 Nei, það er ekki stækka. 733 00:38:29,120 --> 00:38:29,620 OK. 734 00:38:29,620 --> 00:38:31,257 >> SAM GREEN: þú stjórna, skrunað upp. 735 00:38:31,257 --> 00:38:32,590 HUGH Zabriskie: Control Scroll-- 736 00:38:32,590 --> 00:38:33,000 SAM GREEN: Nei, nei. 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, Control, Flettu? 740 00:38:38,140 --> 00:38:38,780 Oh, Gotcha. 741 00:38:38,780 --> 00:38:41,480 Já. 742 00:38:41,480 --> 00:38:42,240 Vá, nei, nei. 743 00:38:42,240 --> 00:38:42,740 OK. 744 00:38:42,740 --> 00:38:46,090 Ég mun ekki gera það. 745 00:38:46,090 --> 00:38:48,300 >> Svo já, í þetta fyrst kafla hér, þú sérð 746 00:38:48,300 --> 00:38:52,720 við erum að búa allt þetta öðruvísi hnúður út úr samhengi. 747 00:38:52,720 --> 00:38:54,980 Við erum bara piecing þá saman í seinni hluta 748 00:38:54,980 --> 00:38:56,980 eftir þessa aðgerð sem kallast Connect. 749 00:38:56,980 --> 00:38:58,830 Það er í raun lykillinn virka í Vefur Audio. 750 00:38:58,830 --> 00:39:01,930 Það þýðir bara þegar þú hefur gert eitthvað með hljóðið í einum hnút, 751 00:39:01,930 --> 00:39:03,705 gefa það til næsta hnút. 752 00:39:03,705 --> 00:39:05,830 Þannig að við höfum fengið, það tengir til greina, 753 00:39:05,830 --> 00:39:09,140 greiningartækið er eitthvað við það, það fer að röskun, og svo framvegis, 754 00:39:09,140 --> 00:39:12,725 og á áfangastað neðst til hægri hér. 755 00:39:12,725 --> 00:39:13,225 Cool. 756 00:39:13,225 --> 00:39:14,640 OK, þannig að við munum halda áfram á. 757 00:39:14,640 --> 00:39:17,180 >> The pipeline-- aftur, þær eru algengustu leiðslur, 758 00:39:17,180 --> 00:39:21,300 svo við tölum um allt þetta eins röskun, hliðrunar, allt þetta dót. 759 00:39:21,300 --> 00:39:24,280 Ef þú ert virkilega áhuga í notkun hlutina Pro Tools, 760 00:39:24,280 --> 00:39:25,820 þá sennilega þú hefur áhuga. 761 00:39:25,820 --> 00:39:27,740 Ef ekki, kannski þú bara langar að spila hljóð, 762 00:39:27,740 --> 00:39:29,990 eða kannski þú vilt bara að stilla hljóðstyrk á hljóð. 763 00:39:29,990 --> 00:39:35,270 Þeir eru tveir algengustu tegund leiðslur í hljóð framleiðslu. 764 00:39:35,270 --> 00:39:38,640 >> Aftur, leiðir sem þú getur tekið hana inn sem oscillator-- Svo skulum 765 00:39:38,640 --> 00:39:42,460 gera a kynningu um það hérna. 766 00:39:42,460 --> 00:39:47,090 767 00:39:47,090 --> 00:39:52,225 Þannig að við erum að fara að búa til einföld hljóð samhengi hér, 768 00:39:52,225 --> 00:39:54,350 og frá því að við erum að fara til að búa til oscillator okkar. 769 00:39:54,350 --> 00:39:58,620 Svo það er, aftur, við erum bara að fara að hringja Búa Oscillator. 770 00:39:58,620 --> 00:40:07,030 Við erum að fara að stilla tíðni á að 440 Hertz, hvers manns hugljúfi. 771 00:40:07,030 --> 00:40:13,290 Þá erum við að tengja það á áfangastað point-- sem er ræðumaður, svo 772 00:40:13,290 --> 00:40:15,750 samhengi áfangastað. 773 00:40:15,750 --> 00:40:21,400 Að lokum, við segjum bara, byrja núll sekúndur frá nú, og höfum við hljóð? 774 00:40:21,400 --> 00:40:22,400 >> [Ringing] 775 00:40:22,400 --> 00:40:24,980 >> HUGH Zabriskie: Hér við fara. 776 00:40:24,980 --> 00:40:25,940 Það er bara sínus bylgja. 777 00:40:25,940 --> 00:40:26,440 OK, flott. 778 00:40:26,440 --> 00:40:28,274 Og þá munum við stöðva það. 779 00:40:28,274 --> 00:40:30,520 >> Áhorfendur: Hvaðan sem viðbrögð koma frá? 780 00:40:30,520 --> 00:40:31,250 >> HUGH Zabriskie: The viðbrögð? 781 00:40:31,250 --> 00:40:32,458 Oh, sennilega hljóðnemum okkar. 782 00:40:32,458 --> 00:40:34,221 783 00:40:34,221 --> 00:40:35,470 Svo, það er já hvernig þú gerir það. 784 00:40:35,470 --> 00:40:37,261 Og í raun, ef ég hefði haldið það í gangi, þú 785 00:40:37,261 --> 00:40:39,540 gæti hafa tíðnina gildi eins og það er í gangi, 786 00:40:39,540 --> 00:40:43,320 svo það er skemmtilegur hlutur að leika í kring. 787 00:40:43,320 --> 00:40:44,930 Cool. 788 00:40:44,930 --> 00:40:46,600 Það er alltaf yndislegt einn til kynna. 789 00:40:46,600 --> 00:40:48,792 >> SAM GREEN: Við gerðum ekki hugsa um það, gerði við? 790 00:40:48,792 --> 00:40:50,500 HUGH Zabriskie: Já, það er viðbjóðslegur einn. 791 00:40:50,500 --> 00:40:53,249 Svo, biðminni loading-- Ég skal sýna að dæmi um það á enda. 792 00:40:53,249 --> 00:40:55,090 Það er að hlaða MP3. 793 00:40:55,090 --> 00:40:58,880 Og hljóðnema, þú notar bara virka heitir Navigator.getUserMedia () 794 00:40:58,880 --> 00:41:03,240 að biðja um aðgang að notandi er hljóðnema fyrir þær upplýsingar. 795 00:41:03,240 --> 00:41:05,610 >> Hér er sía, ég bara halda áfram frá þessu. 796 00:41:05,610 --> 00:41:08,600 Þetta er nokkuð mikil, en síur bara leyfa þér að 797 00:41:08,600 --> 00:41:16,154 >> [Bíphljóð] 798 00:41:16,154 --> 00:41:18,320 Sía gerir þér einnig til að búa til hluti eins og bleikur 799 00:41:18,320 --> 00:41:20,050 hávaða, brúnn hávaða, hvítur hávaði. 800 00:41:20,050 --> 00:41:24,330 Ef þú vilt búa til hreint hávaða, sem Sumir elska að skipta um með, 801 00:41:24,330 --> 00:41:27,490 þú getur notað Web Audio sía til að gera það. 802 00:41:27,490 --> 00:41:30,039 >> Audio Panning-- svo ímyndað ef þú ert að skrifa leik 803 00:41:30,039 --> 00:41:32,330 og þú vilt hljóð til hljóma það kemur, eins og, 804 00:41:32,330 --> 00:41:36,090 skjóta yfir skjáinn, þú Hægt er að nota klyfjakarfa á hljóð 805 00:41:36,090 --> 00:41:39,770 til að búa til þessa tegund af keilu, sem like-- það er nokkuð Mathy, 806 00:41:39,770 --> 00:41:41,850 en það er í raun mjög flott ef þú færð það vinna, 807 00:41:41,850 --> 00:41:44,500 og það eru góðar námskeið á það sem ég get sent þér. 808 00:41:44,500 --> 00:41:46,400 Í grundvallaratriðum, getur þú góður um að búa hljóð 809 00:41:46,400 --> 00:41:50,480 eitthvað að fara eftir í 3D hátt. 810 00:41:50,480 --> 00:41:57,350 Og ef þú ert með DJ áhuga, þú getur byrja að blanda og yfir fading lög. 811 00:41:57,350 --> 00:42:01,260 >> Þetta er bara mjög einfalt númer, í grundvallaratriðum það sem ég gerði áður. 812 00:42:01,260 --> 00:42:06,140 Þetta setur rúmmál af oscillator, svo við búa oscillator okkar 813 00:42:06,140 --> 00:42:07,380 sem skapar bylgjuform. 814 00:42:07,380 --> 00:42:09,940 Við munum búa GainNode okkar, stilltu tíðnina okkar, 815 00:42:09,940 --> 00:42:14,170 og þá tengja oscillator til að GainNode, sem þá í rauninni breytist 816 00:42:14,170 --> 00:42:16,760 hversu mikið merki er hleypt í gegnum. 817 00:42:16,760 --> 00:42:20,467 En í raun, það er á stafræna hlutur, svo það er meira just-- já. 818 00:42:20,467 --> 00:42:23,550 Það er ekki hvað er í raun að gerast, en það er það sem gerist í raunveruleikanum 819 00:42:23,550 --> 00:42:24,393 með hagnað. 820 00:42:24,393 --> 00:42:27,258 >> Áhorfendur: --quantization af rúmmáli breytu? 821 00:42:27,258 --> 00:42:28,174 HUGH Zabriskie miður? 822 00:42:28,174 --> 00:42:30,360 Áhorfendur: Er það a skammtaður bindi breytu? 823 00:42:30,360 --> 00:42:31,840 HUGH Zabriskie: Já. 824 00:42:31,840 --> 00:42:34,620 Og þetta er eitt sem ég er virkilega vantandi á í þekkingu mína, 825 00:42:34,620 --> 00:42:38,010 hvernig hagnaður virkar á stafrænu vettvangi. 826 00:42:38,010 --> 00:42:40,140 Ég veit með raunverulegum merki, það er í rauninni 827 00:42:40,140 --> 00:42:45,120 stjórna hversu mikið þú ert magna merki. 828 00:42:45,120 --> 00:42:47,017 Svo, já. 829 00:42:47,017 --> 00:42:50,100 Ég skal senda þér nánari upplýsingar um að vegna þess að ég vil vera forvitinn raun 830 00:42:50,100 --> 00:42:51,099 að vita meira um það. 831 00:42:51,099 --> 00:42:54,090 En í grundvallaratriðum breytur eru, er einn fold-- 832 00:42:54,090 --> 00:42:59,690 því meir signal-- og núll er engin merki, eða þú munt ekki heyra ekkert hljóð. 833 00:42:59,690 --> 00:43:03,150 Við munum sleppa demo tíma fyrir það vegna þess að það er í rauninni það sem ég gerði áður. 834 00:43:03,150 --> 00:43:07,630 Og aftur, Context.Destination er hljóð áfangastað hnút. 835 00:43:07,630 --> 00:43:08,360 Awesome, OK. 836 00:43:08,360 --> 00:43:10,470 >> Þannig að ég ætla að gera a fljótur tvær demo. 837 00:43:10,470 --> 00:43:11,760 Hvernig eigum við að gera á réttum tíma? 838 00:43:11,760 --> 00:43:12,640 >> Ræðumaður 1: Um 10 mínútur. 839 00:43:12,640 --> 00:43:13,130 >> HUGH Zabriskie: 10 mínútur? 840 00:43:13,130 --> 00:43:13,630 Great! 841 00:43:13,630 --> 00:43:14,320 Awesome. 842 00:43:14,320 --> 00:43:19,010 >> Svo fyrsta sem ég ætla að ekki, það er kallað Uppáhalds Song My. 843 00:43:19,010 --> 00:43:22,410 Svo er þetta bara lítið HTML JavaScript. 844 00:43:22,410 --> 00:43:25,510 Við erum að fara að hafa tvo hnappa á síðunni spila uppáhalds lagið mitt 845 00:43:25,510 --> 00:43:29,192 og hætta uppáhalds lagið mitt. 846 00:43:29,192 --> 00:43:30,180 Ég breyti þessu. 847 00:43:30,180 --> 00:43:32,110 >> Áhorfendur: Cover hljóðnema. 848 00:43:32,110 --> 00:43:33,430 >> HUGH Zabriskie: Já. 849 00:43:33,430 --> 00:43:36,300 Og ég hef hlaðið inn hér handrit að basically-- 850 00:43:36,300 --> 00:43:38,520 og þetta er mjög gagnlegt fyrir að hlaða MP3, 851 00:43:38,520 --> 00:43:41,820 þannig að þetta bara gerir hleðsla mp3s leið hraðar. 852 00:43:41,820 --> 00:43:44,180 Það er í rauninni bara umbúðir. 853 00:43:44,180 --> 00:43:48,737 Það gerir bara ferli hleðsla í MP3s miklu hraðar, 854 00:43:48,737 --> 00:43:51,570 annars sem þú ert að nota HTTP beiðni, svona eins og það sem við vorum að gera 855 00:43:51,570 --> 00:43:53,950 á núverandi stykki sett með Server. 856 00:43:53,950 --> 00:43:55,950 Það er virkilega ljót, þú vil ekki að gera það. 857 00:43:55,950 --> 00:44:04,110 >> Þannig að þetta strákur, Boris Smus, skrifaði mjög gagnlegur lítill tól sem heitir BufferLoader. 858 00:44:04,110 --> 00:44:08,780 Allt sem þú gera er einfaldlega að gefa það í samhengi, framhjá þér það list-- 859 00:44:08,780 --> 00:44:11,327 eða, já, það er listi JavaScript? 860 00:44:11,327 --> 00:44:12,160 SAM GREEN: An array. 861 00:44:12,160 --> 00:44:14,201 HUGH Zabriskie: Oh, það er fylki, það er rétt. 862 00:44:14,201 --> 00:44:18,660 Það er fylki af leiðum að mismunandi skrár. 863 00:44:18,660 --> 00:44:21,990 Og þá þú gefa það a virka. 864 00:44:21,990 --> 00:44:25,530 Þetta er svarhringingu við vorum að tala um með ósamstilltur hleðsla. 865 00:44:25,530 --> 00:44:28,720 Sem verður kallað þegar skrá hlaðinn. 866 00:44:28,720 --> 00:44:33,780 Og það fall sem er kallað þegar skráin er hlaðinn tekur sem jaðar 867 00:44:33,780 --> 00:44:35,840 fjölbreytta hlaðinn biðminnin. 868 00:44:35,840 --> 00:44:37,990 Svo gerist það hér. 869 00:44:37,990 --> 00:44:41,180 Í grundvallaratriðum, BufferList er að fara að vera einn value-- 870 00:44:41,180 --> 00:44:46,380 eða það er að fara að vera array af lengd einn, sem hefur í það í skránni 871 00:44:46,380 --> 00:44:51,320 núll allt hlaðinn skrá á MP3. 872 00:44:51,320 --> 00:44:53,320 Svo það sem ég geri þegar ég klára hleðsla er, ég einfaldlega 873 00:44:53,320 --> 00:44:57,430 búa til biðminni uppspretta, sem er hljóð biðminni uppspretta hnút. 874 00:44:57,430 --> 00:45:03,410 Næsta skref er ég hlaða í source.buffer og fullt hlaðinni biðminni 875 00:45:03,410 --> 00:45:06,740 frá BufferList-- það er mikið af buffers-- 876 00:45:06,740 --> 00:45:10,255 og þá að tengja þessi hljóð biðminni á áfangastað. 877 00:45:10,255 --> 00:45:12,380 Svo hvað það er að fara að gera er bara einfaldlega að setja MP3 878 00:45:12,380 --> 00:45:15,260 beint í gegnum til the framleiðsla, og hefja það strax 879 00:45:15,260 --> 00:45:18,010 á að fá þetta símtal. 880 00:45:18,010 --> 00:45:21,660 >> Cool, þannig að við skulum sjá þetta gerast í aðgerð. 881 00:45:21,660 --> 00:45:24,490 My [inaudible] hér, við skulum sjá. 882 00:45:24,490 --> 00:45:26,430 Þannig að ég ætla bara að fara að hefja undirstöðu miðlara. 883 00:45:26,430 --> 00:45:28,660 Það er eitthvað sem þú þarft að gera ef þú ert 884 00:45:28,660 --> 00:45:32,490 gera beiðnir um hleðsla skrár. 885 00:45:32,490 --> 00:45:34,140 Ég ætla að byrja á undirstöðu miðlara. 886 00:45:34,140 --> 00:45:38,200 Þetta er í grundvallaratriðum allt þitt Pset núna í einni línu, 887 00:45:38,200 --> 00:45:43,930 en það er bara að byrja miðlara á gátt 80/80. 888 00:45:43,930 --> 00:45:47,300 Svo við förum hérna, við að fara að hlaða 80/80, 889 00:45:47,300 --> 00:45:49,110 við erum að fara að fara á uppáhalds lagið mitt. 890 00:45:49,110 --> 00:45:51,660 Svo ef ég högg "Play minn Uppáhalds lagið "núna, 891 00:45:51,660 --> 00:45:53,964 það er að fara að hlaða minn Uppáhalds lagið og spila it-- 892 00:45:53,964 --> 00:45:55,880 [TÓNLIST - THE EAGLES, "LIFE IN THE FAST  LANE "] 893 00:45:55,880 --> 00:46:00,490 --which gerist að vera "Lífið í Fast Lane "af The Eagles. 894 00:46:00,490 --> 00:46:06,346 Nú gæti ég högg "Stop minn Uppáhalds lagið "og aukaleikur það. 895 00:46:06,346 --> 00:46:09,160 >> [TÓNLIST - THE EAGLES, "LIFE IN THE FAST  LANE "] 896 00:46:09,160 --> 00:46:18,340 >> Og ef ég fer yfir til að hugga, því Ég notaði global breyta hérna 897 00:46:18,340 --> 00:46:23,390 til að halda utan um þetta gildi, það í raun mun nú vera viðurkennd í vélinni. 898 00:46:23,390 --> 00:46:25,160 Svo það sjálfvirkt farartæki-skapar fyrir mig. 899 00:46:25,160 --> 00:46:29,991 Svo er það sem er að spila núna, og ég get einfaldlega kalla source.stop () 900 00:46:29,991 --> 00:46:30,490 á það. 901 00:46:30,490 --> 00:46:34,930 902 00:46:34,930 --> 00:46:35,860 Jæja, þú veist hvað? 903 00:46:35,860 --> 00:46:39,760 Bara svo þið hafið heyrt þetta song-- þú gætir kannast við þetta lag. 904 00:46:39,760 --> 00:46:41,801 >> [TÓNLIST - Rick Astley, "ALDREI ætla að gefa  YOU UP "] 905 00:46:41,801 --> 00:46:42,299 906 00:46:42,299 --> 00:46:44,215 [TÓNLIST - THE EAGLES, "LIFE IN THE FAST  LANE "] 907 00:46:44,215 --> 00:46:46,195 Við höfum nú öll verið Rickrolled. 908 00:46:46,195 --> 00:46:50,155 OK, frábært, færa á. 909 00:46:50,155 --> 00:46:51,160 Cool. 910 00:46:51,160 --> 00:46:54,554 Svo er þetta í rauninni dæmi um bara hvernig þú getur hlaða MP3 file-- 911 00:46:54,554 --> 00:46:56,470 [TÓNLIST - THE EAGLES, "LIFE IN THE FAST  LANE "] 912 00:46:56,470 --> 00:46:59,590 --and spila það, og hætta og byrja það. 913 00:46:59,590 --> 00:47:03,008 Ég hefði getað gert mikið meira [inaudible] 914 00:47:03,008 --> 00:47:07,570 >> Sú síðasta sem ég ætla að gera er að, Ég skal sýna þér [inaudible]. 915 00:47:07,570 --> 00:47:18,070 >> [TÓNLIST spila] 916 00:47:18,070 --> 00:47:21,800 >> Það er eins og ogg.wave.mp3. 917 00:47:21,800 --> 00:47:26,450 Ég held, ef ég man rétt, Ég hef keyrt í sumum málum með .m4a, 918 00:47:26,450 --> 00:47:27,721 en ég er ekki viss um það. 919 00:47:27,721 --> 00:47:28,470 Ég held mp3.wave-- 920 00:47:28,470 --> 00:47:28,930 921 00:47:28,930 --> 00:47:30,971 >> [TÓNLIST - Rick Astley, "ALDREI ætla að gefa  YOU UP "] 922 00:47:30,971 --> 00:47:35,930 923 00:47:35,930 --> 00:47:36,500 >> OK, frábært. 924 00:47:36,500 --> 00:47:37,625 Ég ætti ekki að hafa sagt það. 925 00:47:37,625 --> 00:47:40,570 Engu að síður, halló. 926 00:47:40,570 --> 00:47:43,430 927 00:47:43,430 --> 00:47:45,490 Þannig að við höfum þetta opið. 928 00:47:45,490 --> 00:47:52,320 Svo nú er allt sem ég geri, ég búin í grundvallaratriðum a undirstöðu setningafræði fyrir að búa til tónlist. 929 00:47:52,320 --> 00:47:57,610 Svo ef ég geri eitthvað eins og, bæta G4 1. 2, hvað það þýðir að, 930 00:47:57,610 --> 00:48:00,950 bæta píanó huga, G4, sem er fjórða G 931 00:48:00,950 --> 00:48:02,680 upp á píanó frá botni. 932 00:48:02,680 --> 00:48:05,930 Svo er þetta eins konar MIDI tala, svo fyrir þá sem eru tónlist byggt, 933 00:48:05,930 --> 00:48:07,860 þetta er bara MIDI skýringum. 934 00:48:07,860 --> 00:48:10,090 >> Áhorfendur: Það er G í Mið-C, ekki satt? 935 00:48:10,090 --> 00:48:11,840 >> HUGH Zabriskie: Þetta er G ofan Mið C, það er rétt. 936 00:48:11,840 --> 00:48:12,470 >> Áhorfendur: Above Middle C. 937 00:48:12,470 --> 00:48:13,345 >> HUGH Zabriskie: Já. 938 00:48:13,345 --> 00:48:14,340 Reyndar já. 939 00:48:14,340 --> 00:48:16,131 Ég held ég hafi í raun það einn [inaudible] 940 00:48:16,131 --> 00:48:18,860 þannig að þetta gæti verið áttund fyrir ofan það. 941 00:48:18,860 --> 00:48:20,070 Svo skulum sjá. 942 00:48:20,070 --> 00:48:21,152 Ef ég högg Play-- 943 00:48:21,152 --> 00:48:22,110 [Endurteknar PIANO ATH] 944 00:48:22,110 --> 00:48:23,200 --we're fara að heyra það. 945 00:48:23,200 --> 00:48:25,700 Hugmyndin er sú að það starfar bara eins og a stjórn lína myndi, 946 00:48:25,700 --> 00:48:27,510 þannig að ef ég fer upp og niður á lyklaborðinu mínu, þú 947 00:48:27,510 --> 00:48:31,550 geta farið aftur til fyrri skipanir, sem er nokkuð gagnlegt. 948 00:48:31,550 --> 00:48:35,136 Og hér er minn listi af lögum, sem öll eru í gangi á lykkju. 949 00:48:35,136 --> 00:48:38,260 >> Áhorfendur: Þú varst að því gefnu að 88-lykill hljómborð á það, ekki satt? 950 00:48:38,260 --> 00:48:41,051 >> HUGH Zabriskie: Spurningin var ég miðað við að 88-lykill hljómborð, 951 00:48:41,051 --> 00:48:41,990 og já, ég er. 952 00:48:41,990 --> 00:48:45,030 Það sem ég gerði er að ég grundvallaratriðum tók 88 sýni 953 00:48:45,030 --> 00:48:46,970 á píanó, einn fyrir hvern huga. 954 00:48:46,970 --> 00:48:49,180 Og svo í hvert skipti sem þú heyra minnismiða héðan í frá, 955 00:48:49,180 --> 00:48:57,550 sem er í raun lykkja sem lítur like-- þetta er að fá að spila á lykkju, 956 00:48:57,550 --> 00:49:00,120 svo fyrir hverja athugasemd, þetta er í gangi. 957 00:49:00,120 --> 00:49:02,860 Hvað sem gerist er, ég búa til biðminni aftur, 958 00:49:02,860 --> 00:49:06,010 Ég skapa öðlast hnút til að stilla hljóðstyrkinn. 959 00:49:06,010 --> 00:49:08,240 Þetta bara mjög flókið leið til að segja ég 960 00:49:08,240 --> 00:49:10,550 geyma biðminni í source.buffer. 961 00:49:10,550 --> 00:49:13,160 Ég gef honum ávinning, ég tengja það við fá, 962 00:49:13,160 --> 00:49:15,576 að ofan færður er tengdur við framleiðsla, og þá er ég að spila það. 963 00:49:15,576 --> 00:49:20,735 Svo er þessi góður af ferlinu að taka í biðminni uppspretta. 964 00:49:20,735 --> 00:49:24,820 >> Áhorfendur: Getur þú raunverulega taka að þurr hljóð og gera það blautur [inaudible]? 965 00:49:24,820 --> 00:49:26,260 >> HUGH Zabriskie: Þú getur, já. 966 00:49:26,260 --> 00:49:29,260 Það er aftur sögn, það er töf, röskun. 967 00:49:29,260 --> 00:49:33,260 Þú getur í rauninni sett neitt í milli í þeirri samloku of-- vel, 968 00:49:33,260 --> 00:49:37,660 leiðsla er betri samlíking, en þú getur bætt neitt í því. 969 00:49:37,660 --> 00:49:38,200 Cool. 970 00:49:38,200 --> 00:49:40,280 >> Svo ég ætla að klára kynningu hér að gefa þér tilfinningu 971 00:49:40,280 --> 00:49:46,390 af bara hreinn tala af sinnum þú getur keyrt að virka allt í einu. 972 00:49:46,390 --> 00:49:49,280 Þannig að ég ætla að fjarlægja þetta. 973 00:49:49,280 --> 00:49:59,110 Ég ætla að búa til rafall that-- grundvallaratriðum hvað does-- þetta er í raun 974 00:49:59,110 --> 00:50:04,220 konar flókið syntax-- en það er fara að búa athugasemdum á flugu, 975 00:50:04,220 --> 00:50:06,601 og bara byrja að spila þá eins og það metur þá. 976 00:50:06,601 --> 00:50:07,392 [Interposing PIANO] 977 00:50:07,392 --> 00:50:10,990 978 00:50:10,990 --> 00:50:12,817 >> Svo við getum bara gera smá tónlist hér. 979 00:50:12,817 --> 00:50:13,608 [Interposing PIANO] 980 00:50:13,608 --> 00:50:39,570 981 00:50:39,570 --> 00:50:41,470 >> Svo er það þetta skipun er, til dæmis, er 982 00:50:41,470 --> 00:50:46,910 það tekur þá þrjá minnismiða píanó og setur þá þá á B3. 983 00:50:46,910 --> 00:50:48,660 Þetta setningafræði gæti gert smá meira vit 984 00:50:48,660 --> 00:50:50,590 að þeir sem hafa tónlist bakgrunnur hér. 985 00:50:50,590 --> 00:50:55,180 986 00:50:55,180 --> 00:50:56,551 >> Ég get bætt sparka tromma. 987 00:50:56,551 --> 00:50:57,050 Ég get-- 988 00:50:57,050 --> 00:50:58,048 >> [Interposing Hljóðfæri] 989 00:50:58,048 --> 00:50:59,256 >> --just leika í kring með það. 990 00:50:59,256 --> 00:51:12,519 991 00:51:12,519 --> 00:51:13,474 >> Svo þú getur make-- 992 00:51:13,474 --> 00:51:14,515 [Interposing Hljóðfæri] 993 00:51:14,515 --> 00:51:15,513 Það eitt er svolítið meira pirrandi. 994 00:51:15,513 --> 00:51:16,554 [Interposing Hljóðfæri] 995 00:51:16,554 --> 00:51:26,491 996 00:51:26,491 --> 00:51:30,981 >> Svo að handahófi bætir þurra bjalla á hverjum 16 huga, með 16% 997 00:51:30,981 --> 00:51:31,481 [Inaudible]. 998 00:51:31,481 --> 00:51:32,522 >> [Interposing Hljóðfæri] 999 00:51:32,522 --> 00:51:40,962 1000 00:51:40,962 --> 00:51:50,400 >> Já, svo hvernig þetta works-- það er alltaf í 4: 4. 1001 00:51:50,400 --> 00:51:51,441 [Interposing Hljóðfæri] 1002 00:51:51,441 --> 00:52:06,910 1003 00:52:06,910 --> 00:52:10,902 >> Já, þannig að fjóra ársfjórðunga, og 16/8. 1004 00:52:10,902 --> 00:52:14,851 1005 00:52:14,851 --> 00:52:15,892 [Interposing Hljóðfæri] 1006 00:52:15,892 --> 00:52:27,970 1007 00:52:27,970 --> 00:52:33,780 >> Svo að meðaltali, þú færð 60% af hits á 16. skýringum. 1008 00:52:33,780 --> 00:52:35,990 >> Allavega, þetta var bara konar að sýna burt 1009 00:52:35,990 --> 00:52:39,780 sumir af þeim hlutum sem þú gætir byggja með vefnum Audio API. 1010 00:52:39,780 --> 00:52:43,840 Það er mjög öflugur, það er mjög hratt, og þú getur gert mikið af flottum hlutum 1011 00:52:43,840 --> 00:52:44,340 með því. 1012 00:52:44,340 --> 00:52:51,260 Svo aftur, einhverjar spurningar sem þú hefur, Netfangið myself-- Hugh-- eða Sam, 1013 00:52:51,260 --> 00:52:55,869 og heiðarlega, Google hefur tonn af góðum úrræðum. 1014 00:52:55,869 --> 00:52:56,660 Einhverjar Síðustu spurningarnar? 1015 00:52:56,660 --> 00:52:57,970 Já. 1016 00:52:57,970 --> 00:53:00,790 >> Áhorfendur: Svo þú getur fengið aðgang að innbyggða hljóðnema. 1017 00:53:00,790 --> 00:53:03,089 Hvað ef þú vildir nota betri hljóðnema? 1018 00:53:03,089 --> 00:53:05,380 HUGH Zabriskie: Ef þú vildir að nota betri hljóðnema? 1019 00:53:05,380 --> 00:53:11,320 Svo aftur, þetta er hluti af abstrakt milli Chrome 1020 00:53:11,320 --> 00:53:12,950 og restin af tölvunni þinni. 1021 00:53:12,950 --> 00:53:18,950 Nema það er í boði í gegnum API, eins Web MIDI API, 1022 00:53:18,950 --> 00:53:22,030 þú gætir sennilega finna nokkrar járnsög, en yfirleitt ekki eins gerlegt. 1023 00:53:22,030 --> 00:53:25,300 >> SAM GREEN: Þú getur also-- allt Chrome veit 1024 00:53:25,300 --> 00:53:28,820 er það sjálfgefið Hljóðneminn er, og það notar það. 1025 00:53:28,820 --> 00:53:33,410 Svo ef þú hefðir hljóðnema þú gætir sjálfvalin hljóðnema tölvunnar, 1026 00:53:33,410 --> 00:53:35,990 þú gætir nálgast það þannig og það myndi líklega vinna. 1027 00:53:35,990 --> 00:53:37,490 HUGH Zabriskie: Það er góður punktur. 1028 00:53:37,490 --> 00:53:39,656 Ég hef aldrei reynt það, en þú might vera fær til tegund 1029 00:53:39,656 --> 00:53:45,700 of-- ef þú beina inntak ræðumaður, þú might vera fær til gera það, já. 1030 00:53:45,700 --> 00:53:48,360 >> Einhverjar Síðustu spurningarnar? 1031 00:53:48,360 --> 00:53:49,340 Cool. 1032 00:53:49,340 --> 00:53:51,680 Jæja þakka ykkur svo mikið fyrir að horfa á. 1033 00:53:51,680 --> 00:53:52,199 Ég er Hugh. 1034 00:53:52,199 --> 00:53:52,990 SAM GREEN: Ég er Sam. 1035 00:53:52,990 --> 00:53:55,410 HUGH Zabriskie: Og þetta er CS50. 1036 00:53:55,410 --> 00:53:56,767