1 00:00:00,000 --> 00:00:05,900 2 00:00:05,900 --> 00:00:07,170 >> SAM GREEN: Hei, kaikille. 3 00:00:07,170 --> 00:00:08,640 Tervetuloa meidän seminaari. 4 00:00:08,640 --> 00:00:10,009 Nimeni on Sam. 5 00:00:10,009 --> 00:00:11,050 HUGH Zabriskie: Olen Hugh. 6 00:00:11,050 --> 00:00:17,420 SAM VIHREÄ: Ja me aiomme puhua tänään noin JavaScript ja Web Audio API. 7 00:00:17,420 --> 00:00:21,180 Vain aloittaa, tämä on ääriviivat meidän asialistalla seminaarin. 8 00:00:21,180 --> 00:00:25,350 Aiomme aloittaa puhumalla miksi sinun pitäisi olla kiinnostunut Web 9 00:00:25,350 --> 00:00:30,130 Audio API, miksi on Javascript kieli tarvitset sitä, 10 00:00:30,130 --> 00:00:32,619 ja sitten puhua JavaScript essentials-- niin kuin, 11 00:00:32,619 --> 00:00:34,800 opastaa joitakin perusasiat kielen, 12 00:00:34,800 --> 00:00:37,290 ja sitten puhua audio API korkealla tasolla. 13 00:00:37,290 --> 00:00:41,140 Sitten Hugh puhuu joitakin vaiheista äänen tuotanto 14 00:00:41,140 --> 00:00:45,509 ja sitten demo tämä mahtava sekvensseri Hankkeen hän rakensi ja näyttää koodin. 15 00:00:45,509 --> 00:00:48,050 Ja sitten, meillä on aikaa kysymyksiä lopussa ihmisille 16 00:00:48,050 --> 00:00:49,593 jotka ovat täällä elää. 17 00:00:49,593 --> 00:00:50,540 >> HUGH Zabriskie: Cool. 18 00:00:50,540 --> 00:00:50,990 >> SAM VIHREÄ: Cool. 19 00:00:50,990 --> 00:00:51,383 >> HUGH Zabriskie: Cool. 20 00:00:51,383 --> 00:00:52,170 Minä varmuuskopioi. 21 00:00:52,170 --> 00:00:54,960 >> SAM GREEN: Niin, asiat ensin. 22 00:00:54,960 --> 00:00:57,840 Joten yksi suuria asioita Tietoja Web-Audio API 23 00:00:57,840 --> 00:01:00,480 on, että ei ole perustettu tarvita. 24 00:01:00,480 --> 00:01:04,230 Se tulee sisäänrakennettuna useimmat uudet selaimet, 25 00:01:04,230 --> 00:01:08,630 kuten Chrome, Edge, koko nippu others-- kaikki ne 26 00:01:08,630 --> 00:01:12,650 että suuri osa ihmiset käyttävät nykyään. 27 00:01:12,650 --> 00:01:14,807 Joten ei ole perustettu, syrjään juuri 28 00:01:14,807 --> 00:01:16,890 web-palvelin menossa, varten voit päästä alkuun työ 29 00:01:16,890 --> 00:01:18,420 teidän projekti, joka on suuri. 30 00:01:18,420 --> 00:01:21,500 31 00:01:21,500 --> 00:01:24,190 >> Suosittelemme aika raskaasti, että pidätte 32 00:01:24,190 --> 00:01:26,530 käyttäen Chrome JavaScript web-kehitys, 33 00:01:26,530 --> 00:01:30,260 vain koska sen kehittäjä työkalut ovat todella vahva. 34 00:01:30,260 --> 00:01:33,220 Esimerkkinä juuri mitä tarkoitamme sanomalla avata JavaScript 35 00:01:33,220 --> 00:01:38,600 console-- jos menet Chromeen ja sinä katsot Web-sivulta, 36 00:01:38,600 --> 00:01:43,897 ja jätit napsauta Tarkista Element, ja sitten 37 00:01:43,897 --> 00:01:46,730 menet tämä pieni avattavan täällä ja klikkaat Console 38 00:01:46,730 --> 00:01:50,660 näet mitä avautuu näyttää paljon kuin komentokehotteen, että olet 39 00:01:50,660 --> 00:01:53,720 saattaa nähdä Macissa, tai tunnus. 40 00:01:53,720 --> 00:01:59,260 Ja noin vain, voimme tyyppi komentoja täällä, kuten Clear, 41 00:01:59,260 --> 00:02:01,350 ja muut komennot kuten että. 42 00:02:01,350 --> 00:02:04,267 Voimme luoda muuttujia, kuten näemme myöhemmin JavaScript. 43 00:02:04,267 --> 00:02:07,100 Ja niin mitä voimme tehdä JavaScript, voimme tehdä konsoli, 44 00:02:07,100 --> 00:02:11,430 ja se on erittäin kätevä tapa Aloita pelaa noin API 45 00:02:11,430 --> 00:02:15,760 ja saada mukava JavaScript suoralta kädeltä. 46 00:02:15,760 --> 00:02:18,290 Ei perustettu tarvita, joka on todella mukavaa. 47 00:02:18,290 --> 00:02:18,790 Viileä. 48 00:02:18,790 --> 00:02:22,064 49 00:02:22,064 --> 00:02:22,880 Mahtava. 50 00:02:22,880 --> 00:02:24,780 >> Joten vain yksi asia lisätä. 51 00:02:24,780 --> 00:02:27,780 Jos sinulla on questions-- on monet teistä jotka eivät ole täällä elää, 52 00:02:27,780 --> 00:02:31,232 ota yhteyttä sähköpostitse us-- nämä ovat meidän sähköpostiosoitteet. 53 00:02:31,232 --> 00:02:33,190 Jos sinulla on kysyttävää et halua kysyä meiltä, 54 00:02:33,190 --> 00:02:36,160 kuten, oh minulla bug minun koodi, tai jotain 55 00:02:36,160 --> 00:02:39,270 että on hieman tarkempi, ehkä googlettaa ensin. 56 00:02:39,270 --> 00:02:42,340 On paljon suuria resursseja Tietoja Web-Audio API siellä. 57 00:02:42,340 --> 00:02:44,089 Se on todella hyvin dokumentoitu ja se on 58 00:02:44,089 --> 00:02:47,194 käyttämä ton ihmisiä teollisuus, ja ihmisiä, jotka ovat juuri 59 00:02:47,194 --> 00:02:48,610 rakennus kivaa itselleen. 60 00:02:48,610 --> 00:02:51,306 Joten ei pitäisi olla paljon resurssien siellä. 61 00:02:51,306 --> 00:02:53,040 Mahtava. 62 00:02:53,040 --> 00:02:56,100 >> Viileä, joten miksi Web Audio API? 63 00:02:56,100 --> 00:02:59,840 Tämä kaavio on hieman keino kehittää tapa 64 00:02:59,840 --> 00:03:04,100 ääni internetissä on kasvanut ajan myötä. 65 00:03:04,100 --> 00:03:13,080 Bgsound oli kuin alkuperäisen HTML tag että Internet Explorer käytetään tukemaan. 66 00:03:13,080 --> 00:03:16,790 Se sallittu vain melko perus ääniä, toiminnallisuus ei ollut kovin vahva, 67 00:03:16,790 --> 00:03:19,380 ja et voi tehdä monimutkainen sekvensointi, 68 00:03:19,380 --> 00:03:21,890 tai, milloin ääni alkoi ja pysähtyi hyvin voimakkaasti. 69 00:03:21,890 --> 00:03:23,930 Niin, se ei ole erityisen hyvin kehittynyt. 70 00:03:23,930 --> 00:03:27,470 Sitten sen jälkeen, Flash tuli along-- joka, 71 00:03:27,470 --> 00:03:31,712 Olen varma, että te kaikki tuttuja kanssa Flash-- ehkä ole miten se toimii, 72 00:03:31,712 --> 00:03:32,920 mutta olet varmasti nähnyt sen. 73 00:03:32,920 --> 00:03:35,586 Sinun täytyy päivittää Flash Plug-in, kaikki tuollaista, 74 00:03:35,586 --> 00:03:40,110 ja että varmasti laajensi toiminnallisuutta, joka oli saatavana. 75 00:03:40,110 --> 00:03:45,370 Mutta tekee käyttäjä asentaa plug-in on ehdottomasti 76 00:03:45,370 --> 00:03:48,480 haittapuoli kuten Flash hakemuksesi, eikö? 77 00:03:48,480 --> 00:03:52,410 Koska silloin olet riippuvainen käyttäjä menee ja löytää tämä plug-in, 78 00:03:52,410 --> 00:03:54,660 ja luultavasti käynnistyä pois tämä ylimääräinen vaihe 79 00:03:54,660 --> 00:03:56,640 ne on otettava käyttää app. 80 00:03:56,640 --> 00:04:01,270 Ja sitten voisi olla päivitys että saat rikkoa koko sovellus, 81 00:04:01,270 --> 00:04:03,880 ja se päätyy painajainen kehittäjä, liian. 82 00:04:03,880 --> 00:04:06,230 Niin että oli barrikadi. 83 00:04:06,230 --> 00:04:10,480 >> Ja sitten sen jälkeen tulivat, HTML audio tag, joka 84 00:04:10,480 --> 00:04:16,579 on piirre modernimpi HTML-- joka varmasti mahdollisti paljon enemmän tavaraa, 85 00:04:16,579 --> 00:04:20,050 mutta jopa asioita voisi tehdä siellä oli hieman rajoitettu vain 86 00:04:20,050 --> 00:04:22,730 seurauksena asioita että HTML kykeni. 87 00:04:22,730 --> 00:04:26,060 Joten kun JavaScript API, web-Audio API, 88 00:04:26,060 --> 00:04:29,290 tuli standardi harjoitella eri selaimissa, 89 00:04:29,290 --> 00:04:32,490 että todella laajennettu sarja mahdollisuuksia kehittäjille 90 00:04:32,490 --> 00:04:36,590 todella päästä rakennukseen hienoja juttuja web. 91 00:04:36,590 --> 00:04:39,220 Jo pitkään on ollut ollut todella tukevia työkaluja 92 00:04:39,220 --> 00:04:44,360 äidinkielenään äänisovelluksiin like-- kaikki tietävät GarageBand, 93 00:04:44,360 --> 00:04:48,360 ja sitten tietysti on enemmän ammatillinen miksaus sovelluksia, 94 00:04:48,360 --> 00:04:49,640 ja tuollaista. 95 00:04:49,640 --> 00:04:52,690 Mutta ei ollut todella hyvä Cloud-- ei 96 00:04:52,690 --> 00:04:55,811 Pilvi, joo, kai Cloud-- web-pohjainen 97 00:04:55,811 --> 00:04:58,310 joka sallisi kehittäjät rakentaa sovelluksia ihmisiä 98 00:04:58,310 --> 00:05:00,570 tehdä miksaus. 99 00:05:00,570 --> 00:05:03,960 Ja kun hän näyttää myöhemmin, Web Audio API 100 00:05:03,960 --> 00:05:07,470 mahdollistaa todella voimakas juttuja tapahtua todella yksinkertaisesti, 101 00:05:07,470 --> 00:05:09,597 joka on aika siistiä. 102 00:05:09,597 --> 00:05:12,680 Niin, että ohje miksi sinua pitäisi katsoa loput seminaarin, 103 00:05:12,680 --> 00:05:14,350 pohjimmiltaan. 104 00:05:14,350 --> 00:05:17,880 >> Ja nyt, aion puhua jotkut JavaScript-- vain peruselementtejä 105 00:05:17,880 --> 00:05:20,240 kielen, niin että voimme olla samalla sivulla 106 00:05:20,240 --> 00:05:22,470 kun puhumme API hieman myöhemmin. 107 00:05:22,470 --> 00:05:23,260 Viileä. 108 00:05:23,260 --> 00:05:26,192 >> Joten, tämä on yhteenveto. 109 00:05:26,192 --> 00:05:27,150 Unohdin tämä oli tässä. 110 00:05:27,150 --> 00:05:27,510 Joo. 111 00:05:27,510 --> 00:05:27,870 >> HUGH Zabriskie: Ei kaksi dioja täällä. 112 00:05:27,870 --> 00:05:30,245 >> SAM GREEN: Tämä on yhteenveto joitakin rajoituksia 113 00:05:30,245 --> 00:05:35,220 Muiden sitovien, vanha menetelmiä. 114 00:05:35,220 --> 00:05:37,828 Ja sitten nyt, meillä on nämä asiat. 115 00:05:37,828 --> 00:05:40,011 Viileä. 116 00:05:40,011 --> 00:05:40,510 Mahtava. 117 00:05:40,510 --> 00:05:43,200 >> Joten, JavaScript olennaiseen. 118 00:05:43,200 --> 00:05:47,230 First things first, siellä melko merkittävä ero 119 00:05:47,230 --> 00:05:49,940 JavaScript versus kieli kuten C, tiellä 120 00:05:49,940 --> 00:05:52,050 että muuttujat on luotu. 121 00:05:52,050 --> 00:05:55,634 Joten C, olemme tottuneet kirjoittaa meidän muuttujia, eikö? 122 00:05:55,634 --> 00:05:57,800 Enkä tarkoita tyyppi kuten kirjoittaa niitä, tarkoitan tyyppi 123 00:05:57,800 --> 00:06:01,900 kuten liittää ne type-- merkitys kuten, int, float, nieriää. 124 00:06:01,900 --> 00:06:05,210 C, olimme todella käytettiin ottaa luoda muuttujan 125 00:06:05,210 --> 00:06:09,690 ja sitten kiinni, että tyyppi koko ajan, että käytämme että muuttujaa. 126 00:06:09,690 --> 00:06:13,990 Ja joka ei välttämättä ole huonompi, mutta se on luultavasti vaikeampi käyttää. 127 00:06:13,990 --> 00:06:16,190 Yksi hienoja ominaisuuksia JavaScript on 128 00:06:16,190 --> 00:06:19,740 että muuttujat ovat mitä kutsutaan "Dynaamisesti kirjoitetaan", joka 129 00:06:19,740 --> 00:06:22,500 tarkoittaa, että voin luoda muuttuja kanssa syntaksia, 130 00:06:22,500 --> 00:06:25,800 varX vastaa 5, esimerkiksi. 131 00:06:25,800 --> 00:06:27,790 Alun perin luo kokonaisluku variable-- 132 00:06:27,790 --> 00:06:29,870 oikealla alla huppu somewhere-- mutta minä 133 00:06:29,870 --> 00:06:33,040 voi muuttaa sitä muuttuja viitata merkkijono 134 00:06:33,040 --> 00:06:35,820 tekemättä mitään kuin luoda uusi muuttuja. 135 00:06:35,820 --> 00:06:37,880 Minun ei tarvitse huolehtia noin tyyppi muuttuu. 136 00:06:37,880 --> 00:06:45,440 JavaScript tietää, että tyyppi on muuttunut, ja se tapahtuu dynaamisesti. 137 00:06:45,440 --> 00:06:48,510 >> Niin, on hyötyä ja haittapuolia, että 138 00:06:48,510 --> 00:06:51,250 jokainen, joka on työskennellyt Javascript aikaa saattaisi tietää. 139 00:06:51,250 --> 00:06:53,600 On aikoja, jolloin saatat vahingossa 140 00:06:53,600 --> 00:06:57,720 vaihdetaan toiseen vaihteleva ja ei käsitellä sitä tyyppiä muuttuvat, 141 00:06:57,720 --> 00:07:01,120 ja sitten JavaScript voi crash-- tai poikkeus 142 00:07:01,120 --> 00:07:06,070 heittää, koska sinulla on väärän tyyppinen kun odottaa yksi tyyppi. 143 00:07:06,070 --> 00:07:07,040 Viileä. 144 00:07:07,040 --> 00:07:11,470 >> Joten, scoping-- joka on kuin, jos me muistaa ensimmäisten viikkojen aikana, 145 00:07:11,470 --> 00:07:15,420 viittaa siihen, kuinka näkyvä muuttuja on ja millä alueella koodi. 146 00:07:15,420 --> 00:07:18,400 Kaikki tämä näyttää hyvin samankaltainen tapaa se näyttää C. 147 00:07:18,400 --> 00:07:24,755 Joten muuttujat scoped yleensä sisällä aaltosulkeita sisällä toiminto, 148 00:07:24,755 --> 00:07:27,005 ja sitten on myös maailmanlaajuisesti-alainen muuttujia 149 00:07:27,005 --> 00:07:29,171 are-- jos kirjoitat muuttuja ulkopuolella toiminto, 150 00:07:29,171 --> 00:07:31,790 se näkyy koko tekstissä. 151 00:07:31,790 --> 00:07:35,840 >> Yksi ero JavaScript ja C erityisesti, 152 00:07:35,840 --> 00:07:40,280 on, että jos julistaa maailmanlaajuinen muuttuja tahansa tekstitiedosto 153 00:07:40,280 --> 00:07:43,324 se on näkyvissä mitään toimintoa sisällä että tekstitiedosto. 154 00:07:43,324 --> 00:07:44,240 Se on oikein, eikö? 155 00:07:44,240 --> 00:07:46,330 >> HUGH Zabriskie: Jep. 156 00:07:46,330 --> 00:07:49,120 >> SAM VIHREÄ: Niin, että myös hieman bittinen funky verrattuna C, 157 00:07:49,120 --> 00:07:52,660 jossa meillä on aina ollut on meidän muuttuja määritelmät yläpuolella paikkoja 158 00:07:52,660 --> 00:07:53,770 niitä on käytetty. 159 00:07:53,770 --> 00:07:57,957 Se ei ole sääntö, joka on täytäntöön enää, niin, hieman erilainen. 160 00:07:57,957 --> 00:08:00,540 Ja jälleen vain reemphasize, globaali vs. paikallinen variables-- 161 00:08:00,540 --> 00:08:03,457 hyvin samanlainen kuin C Voisit olla kaksi muuttujaa samanniminen, 162 00:08:03,457 --> 00:08:06,540 ja on yksi niiden nimien varjoon paikallinen muuttuja, jos yksi heistä 163 00:08:06,540 --> 00:08:07,546 oli maailmanlaajuinen. 164 00:08:07,546 --> 00:08:09,420 Joten, samantyyppinen ongelmia, että jotkut teistä 165 00:08:09,420 --> 00:08:11,920 saattanut törmätä joissakin teidän ongelma asettaa toistaiseksi. 166 00:08:11,920 --> 00:08:14,450 Viileä, joten se on muuttujia. 167 00:08:14,450 --> 00:08:20,310 >> Kontrollivuo, eli kuten, jos-else-- looginen stuff-- ja silmukoita. 168 00:08:20,310 --> 00:08:24,510 Joten aloittaa, tämä on mitä jos-else lausunnot näyttävät JavaScript. 169 00:08:24,510 --> 00:08:29,750 Sijoittaminen eri asioita radoilla ei ole tärkeä. 170 00:08:29,750 --> 00:08:34,409 Tämä on vain yksi yleissopimusten sillä miten me rakenne koodi. 171 00:08:34,409 --> 00:08:38,634 Aivan kuten C, meillä "Jos" suluissa julkilausuman. 172 00:08:38,634 --> 00:08:40,840 173 00:08:40,840 --> 00:08:42,090 Se ei ole mitä tarkoitin tehdä. 174 00:08:42,090 --> 00:08:44,860 175 00:08:44,860 --> 00:08:45,550 Tein sen taas. 176 00:08:45,550 --> 00:08:46,841 >> HUGH Zabriskie: Yritetään poistua? 177 00:08:46,841 --> 00:08:49,770 SAM GREEN: Ei, olen vain yrittää suurentaa. 178 00:08:49,770 --> 00:08:50,660 Sillä ei ole väliä. 179 00:08:50,660 --> 00:08:54,730 180 00:08:54,730 --> 00:08:59,370 >> Joten, meillä on "jos" lausunto ja meillä on edellytys sen sisällä 181 00:08:59,370 --> 00:09:03,130 että on tosi tai epätosi, ja joka määrittää, onko vai ei 182 00:09:03,130 --> 00:09:04,510 astumme että koodiosion. 183 00:09:04,510 --> 00:09:09,860 Ja samoin, meillä on muuta-jos, ja muu, aivan kuten olemme tottuneet C. 184 00:09:09,860 --> 00:09:14,010 >> Sinun tulisi myös olla melko mukava suoralta kädeltä silmukat, 185 00:09:14,010 --> 00:09:16,440 koska ne myös näyttävät paljon kuten C näyttää. 186 00:09:16,440 --> 00:09:19,600 Mutta huomaat kerran, että me on sijasta int alustukset, 187 00:09:19,600 --> 00:09:22,570 meillä on var alustukset. 188 00:09:22,570 --> 00:09:24,650 Ja kai teillä olla varovainen, jotta 189 00:09:24,650 --> 00:09:28,460 varma et muuta arvoa I alkaen int merkkijono, 190 00:09:28,460 --> 00:09:31,780 esimerkiksi, koska se on menossa aiheuttaa outo käyttäytyminen saatat ei 191 00:09:31,780 --> 00:09:32,280 odottaa. 192 00:09:32,280 --> 00:09:35,750 Mutta tämän pitäisi näyttää tuttuja, samoin. 193 00:09:35,750 --> 00:09:39,460 >> Joten tämä on, jos asiat alkavat saada hieman hullu JavaScript 194 00:09:39,460 --> 00:09:44,920 joku, joka on menee tausta C. On toimintoja 195 00:09:44,920 --> 00:09:48,070 JavaScript, ja siellä on yksi tapa julistaa toiminto, joka näyttää 196 00:09:48,070 --> 00:09:50,361 tavallaan samanlainen kuin C, ja sitten on toinen, joka 197 00:09:50,361 --> 00:09:52,450 näyttää ikään eri. 198 00:09:52,450 --> 00:09:54,930 >> Ensimmäinen versio, jossa voimme nähdä täällä, 199 00:09:54,930 --> 00:09:59,260 on sellainen C-like, jossa sanomme, tämä on toiminto, 200 00:09:59,260 --> 00:10:01,490 antaa sille nimi, anna määrä argumentteja, 201 00:10:01,490 --> 00:10:05,150 ja sitten sisältö toiminnon mennä sisälle ne aaltosulkeita. 202 00:10:05,150 --> 00:10:08,850 Näemme esimerkki argumentteja vain toinen. 203 00:10:08,850 --> 00:10:13,420 >> Ottaa huomioon, että seuraavalla rivillä, näemme, OH, tässä on muuttuja nimeltä "myFunction" 204 00:10:13,420 --> 00:10:17,546 ja me yhtä sen tähän yleinen thing-- function-- että 205 00:10:17,546 --> 00:10:19,170 ei näytä olevan mitään meneillään. 206 00:10:19,170 --> 00:10:22,780 207 00:10:22,780 --> 00:10:26,080 Syystä, että on erilaista kuin C on, että JavaScript 208 00:10:26,080 --> 00:10:30,040 on mitä kutsutaan toiminnallinen kieli, tai on toiminnallisia elementtejä, mikä tarkoittaa 209 00:10:30,040 --> 00:10:33,510 että toiminnot ovat itse asiassa arvoja. 210 00:10:33,510 --> 00:10:39,520 Ja se tarkoittaa, että voimme asettaa muuttujan yhtä toiminto 211 00:10:39,520 --> 00:10:43,210 ja sitten siirtyä että toiminto ympärillä, siirtää sen väitteen, 212 00:10:43,210 --> 00:10:46,550 tehdä kaikenlaista tavaraa kuten että toiminnoilla. 213 00:10:46,550 --> 00:10:49,682 >> Eräs toinen asia note-- toiminnot on kirjoitettu 214 00:10:49,682 --> 00:10:51,140 tietyllä useita väitteitä. 215 00:10:51,140 --> 00:10:54,056 Näemme esimerkin funktion jossa väitettä seuraavan dian. 216 00:10:54,056 --> 00:10:56,720 Mutta JavaScript ei huutaa, jos yrität 217 00:10:56,720 --> 00:10:59,330 käyttää toimintoa väärä määrä argumentteja. 218 00:10:59,330 --> 00:11:05,310 Se tulee vain tehdä parhaansa, jotta tehdä, mikä tarkoittaa, että jos pyörryt, 219 00:11:05,310 --> 00:11:09,410 soitat toiminto, joka odottaa argumentti ilman argumenttia, kaikki jotka 220 00:11:09,410 --> 00:11:13,990 tapahtuu on se tulee tehdä parhaansa yrittää suorittaa että koodia, 221 00:11:13,990 --> 00:11:16,541 ja jos se lopulta kulkee osaksi poikkeus tai virhe, 222 00:11:16,541 --> 00:11:19,790 se tulee heittää, että poikkeus ja vain pitää going-- joka on vain yksi tavoista 223 00:11:19,790 --> 00:11:21,070 että JavaScript toimii. 224 00:11:21,070 --> 00:11:21,781 Joo. 225 00:11:21,781 --> 00:11:24,207 >> Yleisö: Mitä tapahtuu, jos siellä on liian monta argumenttia? 226 00:11:24,207 --> 00:11:26,040 SAM VIHREÄ: Niin kysymys oli, mitä tapahtuu 227 00:11:26,040 --> 00:11:27,380 jos on liikaa perusteluja? 228 00:11:27,380 --> 00:11:29,171 Ja vastaus on, että JavaScript vain 229 00:11:29,171 --> 00:11:32,120 sivuuttaa ne, jotka ovat kun niistä se odottaa. 230 00:11:32,120 --> 00:11:36,420 Se tulee yrittää suorittaa toiminto kutsua kuin se oli vain kaksi ensimmäistä. 231 00:11:36,420 --> 00:11:37,075 Oikea? 232 00:11:37,075 --> 00:11:37,700 >> HUGH Zabriskie: Aivan oikein, joo. 233 00:11:37,700 --> 00:11:39,449 Samoin, jos on on liian vähän argumentteja, 234 00:11:39,449 --> 00:11:42,640 se juuri sellainen antaa nolla kaikille väitteitä se ei ole arvoja 235 00:11:42,640 --> 00:11:43,660 varten. 236 00:11:43,660 --> 00:11:45,810 >> SAM VIHREÄ: joka voi todella kätevä, jos 237 00:11:45,810 --> 00:11:49,060 halua kirjoittaa toiminto vie vaihteleva määrä argumentteja. 238 00:11:49,060 --> 00:11:55,830 Voit asettaa oletusarvoja määritelmä funktion, 239 00:11:55,830 --> 00:11:59,060 ja se voi jättää huomiotta sitä, että tulo ei ole siellä. 240 00:11:59,060 --> 00:12:01,584 241 00:12:01,584 --> 00:12:04,000 Joten haluan puhua hieman lisää tästä viime luoti 242 00:12:04,000 --> 00:12:05,541 piste, joka on toiminnot ovat arvoja. 243 00:12:05,541 --> 00:12:07,930 244 00:12:07,930 --> 00:12:11,010 Tämä on esimerkki, joka on hieman häkellyttävä 245 00:12:11,010 --> 00:12:14,880 jos vain lukea sen, ja usko mitä tapahtuu toiseen. 246 00:12:14,880 --> 00:12:17,910 Joten Katsotaanpa juuri ensimmäinen rivi täällä. 247 00:12:17,910 --> 00:12:24,360 Meillä on tämä muuttuja, f1, että sanomme on toiminto, joka tekee tämän asian. 248 00:12:24,360 --> 00:12:28,535 Ja sisällön toiminnon ovat console.log ('hei'). 249 00:12:28,535 --> 00:12:32,220 Voit ajatella console.log kuin JavaScript vastaa printf. 250 00:12:32,220 --> 00:12:35,510 Joten mitä tapahtuu on, jos me suorittaa tämän koodin myös selaimen, 251 00:12:35,510 --> 00:12:37,530 se tulee tulostaa merkkijonon. 252 00:12:37,530 --> 00:12:39,342 Voin osoittaa, että. 253 00:12:39,342 --> 00:12:42,300 Yleisö: log, kuitenkin, tekee sen tarkoita että se on tallennettu jonnekin? 254 00:12:42,300 --> 00:12:42,550 SAM VIHREÄ: Joo. 255 00:12:42,550 --> 00:12:44,216 Niin minä näytän sinulle, mitä tulee tapahtumaan. 256 00:12:44,216 --> 00:12:48,085 Joten kysymys oli, mitä log tarkoittaa? 257 00:12:48,085 --> 00:12:51,262 >> HUGH Zabriskie: Niin console.log on kuin printf C. 258 00:12:51,262 --> 00:12:52,970 SAM VIHREÄ: Niin console.log on kuin printf, 259 00:12:52,970 --> 00:12:59,240 joten jos minulla on tämä console.log ('hei'), ja pyydän, että merkkijono "hei" 260 00:12:59,240 --> 00:13:00,730 saa tulostaa konsoliin. 261 00:13:00,730 --> 00:13:03,340 Tämä on konsoli. 262 00:13:03,340 --> 00:13:05,930 Se on aivan kuin printf, jossa se tulostaa standardin ulos. 263 00:13:05,930 --> 00:13:09,050 264 00:13:09,050 --> 00:13:11,230 Ja näemme hetken, mutta tämä on oikeastaan 265 00:13:11,230 --> 00:13:16,529 viitaten konsoli esine, ja jossa menetelmä joka esinettä. 266 00:13:16,529 --> 00:13:18,320 Että saat tehdä enemmän järkeä hetken, kun 267 00:13:18,320 --> 00:13:20,660 päästä puhumaan esineet JavaScript, 268 00:13:20,660 --> 00:13:22,509 mutta ajattelin vain mainita, että. 269 00:13:22,509 --> 00:13:24,300 HUGH Zabriskie: Olemme käytetään C, right-- 270 00:13:24,300 --> 00:13:27,580 me yleensä kirjoittaa iso ohjelma Tärkeimpien tehdä mitään. 271 00:13:27,580 --> 00:13:30,700 Mutta mitä viileä JavaScript on sinua on tällainen tulkin että 272 00:13:30,700 --> 00:13:33,620 toimii reaaliajassa, joten se kestää vain rivi riviltä, 273 00:13:33,620 --> 00:13:35,320 se voi vain tulkita, että paikan päällä. 274 00:13:35,320 --> 00:13:37,403 Ja se pitää kirjaa asioita, jotka ovat näkyneet ennen, 275 00:13:37,403 --> 00:13:41,620 joten se on melko hyödyllinen väline käyttää console.log, tai konsoli, 276 00:13:41,620 --> 00:13:46,870 yleensä, vain pelaamalla noin JavaScript. 277 00:13:46,870 --> 00:13:51,420 >> SAM VIHREÄ: niin menee takaisin tähän example-- toisella rivillä koodia 278 00:13:51,420 --> 00:13:55,320 tässä melko ällistyttävää päähäni. 279 00:13:55,320 --> 00:13:59,790 Ensimmäistä kertaa olen lukenut tämän, Se oli kuin, mitä on tekeillä? 280 00:13:59,790 --> 00:14:04,580 Joten mitä tapahtuu on, tämä toiminto ilmoitus kertoo, 281 00:14:04,580 --> 00:14:10,170 Minulla on toiminto nimeltään F2 joka on odottanut yksi argumentti, f, 282 00:14:10,170 --> 00:14:12,990 ja sitten se kutsuu että funktio, f, joka 283 00:14:12,990 --> 00:14:17,652 hyväksyttiin sen argumenttina ilman argumentteja itse. 284 00:14:17,652 --> 00:14:19,110 Niin, että olisi ollut sekava. 285 00:14:19,110 --> 00:14:21,890 286 00:14:21,890 --> 00:14:28,400 Jos ymmärrämme tätä F2 vie f1 argumenttina, ja sitten sisällä F2, 287 00:14:28,400 --> 00:14:31,190 f saa called-- jotka välineet että tämä rivi koodia, 288 00:14:31,190 --> 00:14:34,192 Kun nämä kaksi riviä koodi, tulokset "hei" 289 00:14:34,192 --> 00:14:35,400 tulostetaan konsoliin. 290 00:14:35,400 --> 00:14:41,660 291 00:14:41,660 --> 00:14:44,910 >> Se, että voimme välittää toiminnot noin arvoina 292 00:14:44,910 --> 00:14:47,870 päätyy yksi tehokkaita ominaisuuksia JavaScript 293 00:14:47,870 --> 00:14:49,700 kuten ohjelmointikieli. 294 00:14:49,700 --> 00:14:52,782 Ulkopuolella kaikista mahtavia asioita se voi tehdä, 295 00:14:52,782 --> 00:14:54,990 aivan kuin osa kieli suhteen, miten 296 00:14:54,990 --> 00:14:58,400 että se tekee asiat helposti ohjelmoida ja mahdollistaa 297 00:14:58,400 --> 00:15:01,060 asioita, jotka eivät ole erityisen sopii hyvin verkossa, 298 00:15:01,060 --> 00:15:04,500 toiminnallinen ohjelmointi ja toiminnalliset ohjelmointi näkökohdat JavaScript 299 00:15:04,500 --> 00:15:07,130 on yksi voimakas käsitteitä, jotka 300 00:15:07,130 --> 00:15:11,030 olemassa JavaScript-- jos minulta kysytään. 301 00:15:11,030 --> 00:15:11,960 Viileä. 302 00:15:11,960 --> 00:15:13,534 >> Joten, seuraava asia. 303 00:15:13,534 --> 00:15:16,450 Sen lisäksi, että toimiva, on myös elementtejä JavaScript 304 00:15:16,450 --> 00:15:20,510 jotka ovat olio-, joka on yksi hyvin 305 00:15:20,510 --> 00:15:23,800 suosittu sirinä sanat tietotekniikassa. 306 00:15:23,800 --> 00:15:27,040 Olio-ohjelmointi on todella suosittu juttu. 307 00:15:27,040 --> 00:15:34,210 JavaScript on versio kyseisestä, jossa Uskon jokainen arvo on myös 308 00:15:34,210 --> 00:15:41,475 esine, mikä tarkoittaa, että jokainen esine kietoo yhteen joitakin määrä arvoja. 309 00:15:41,475 --> 00:15:44,020 310 00:15:44,020 --> 00:15:49,750 Joten arvoja, jotka ovat yksinkertaisia, kuten kokonaisluku, kuten varX on yhtä kuin 5, 311 00:15:49,750 --> 00:15:52,250 että esine vain ylireagoi että yksi arvo. 312 00:15:52,250 --> 00:15:54,760 313 00:15:54,760 --> 00:15:59,036 >> Mutta voimme myös kuvitella tilanne where-- voimme ajatella tilanteita, C 314 00:15:59,036 --> 00:16:00,910 jossa halusimme tehdä jotain structs, 315 00:16:00,910 --> 00:16:03,285 esimerkiksi, että ylireagoi useat arvot yhteen ja merkkeihin 316 00:16:03,285 --> 00:16:05,870 se todella helppo siirtää asioita ympäri. 317 00:16:05,870 --> 00:16:09,270 Silloin objekti on JavaScript. 318 00:16:09,270 --> 00:16:12,340 >> On tärkeää muistaa kun sanon, että esineitä kääritty 319 00:16:12,340 --> 00:16:15,330 jotkut määrä arvoja yhdessä, että toiminnot ovat myös 320 00:16:15,330 --> 00:16:21,506 arvot, mikä tarkoittaa sitä, että toimintoja voidaan myös olla sisällä JavaScript olio. 321 00:16:21,506 --> 00:16:26,910 Ja siitä syystä, että on tärkeää on, että vaikka me usein 322 00:16:26,910 --> 00:16:30,290 ajatella kutsuvan menetelmä objektia, joka on 323 00:16:30,290 --> 00:16:35,200 suosittu termi muista suosittu olio-kielet, 324 00:16:35,200 --> 00:16:39,330 yksi eroista on se, että kaikki, että menetelmä on JavaScript 325 00:16:39,330 --> 00:16:47,270 on tallennettu arvo sisällä esine joka suorittaa jotkut action-- mahdollisesti 326 00:16:47,270 --> 00:16:51,850 käyttämällä muita arvoja, jotka ovat sisällä että esine, mutta ei välttämättä. 327 00:16:51,850 --> 00:16:56,930 Joten voitte kuvitella tilanne, en arvata vuonna hieman hullu tavalla, 328 00:16:56,930 --> 00:17:02,990 jossa soitit menetelmä yhden esine toiseen esine, esimerkiksi. 329 00:17:02,990 --> 00:17:06,010 Niin, se on vähän outoja tällä tavalla. 330 00:17:06,010 --> 00:17:09,369 >> Ja voit myös muuttaa menetelmiä jotka liittyvät kohde 331 00:17:09,369 --> 00:17:13,740 osoittamalla, että menetelmä uusi toiminto, joka on myös 332 00:17:13,740 --> 00:17:18,250 melko erilainen kuin muut olio-kielet, missä 333 00:17:18,250 --> 00:17:21,410 kun me julistamme esine ja instantiate se, 334 00:17:21,410 --> 00:17:25,839 emme voi muuttaa menetelmiä, jotka ovat liittyvä objektia enää. 335 00:17:25,839 --> 00:17:28,680 Niin se on aika erilainen. 336 00:17:28,680 --> 00:17:29,570 Viileä. 337 00:17:29,570 --> 00:17:34,010 >> Joten tässä on esimerkiksi ensimmäinen, objektin toiminnassa. 338 00:17:34,010 --> 00:17:36,390 Tämä on mitä kutsutaan yleinen esine, joka 339 00:17:36,390 --> 00:17:39,460 tarkoittaa sitä, että ei ole mitään Erityisesti nimi, ei ole luokka, 340 00:17:39,460 --> 00:17:42,190 se on vain joitakin käärimistä arvoja. 341 00:17:42,190 --> 00:17:49,790 Ja että näyttää on, meillä on tämä ulompi pari aaltosulkeita täällä 342 00:17:49,790 --> 00:17:57,950 jotka osoittavat JavaScript ja sanoa, tämä on esine. 343 00:17:57,950 --> 00:18:02,130 Arvot sen sisällä ovat kukin arvoja sisällä 344 00:18:02,130 --> 00:18:04,590 esine, joka pitäisi kääriä yhdessä. 345 00:18:04,590 --> 00:18:09,180 Ja sisältä että esine, Sitten on keskeinen arvo pareja, 346 00:18:09,180 --> 00:18:13,880 missä avain viittaa nimi arvon sisällä esineen, 347 00:18:13,880 --> 00:18:16,790 ja muut side-- vastapäätä paksusuolen here-- 348 00:18:16,790 --> 00:18:19,850 on todellinen arvo että tulisi säilyttää. 349 00:18:19,850 --> 00:18:26,210 >> Niin näet täällä, että meillä avain kutsutaan fn kanssa arvo sam, 350 00:18:26,210 --> 00:18:29,430 jälkeen pilkku, sanomalla päälle seuraava merkintä. 351 00:18:29,430 --> 00:18:33,560 Sitten avain nimeltä ln, jonka arvo on vihreä, 352 00:18:33,560 --> 00:18:35,840 jälkeen pilkku, jälkeen "Print" 353 00:18:35,840 --> 00:18:43,209 joka tulee olemaan funktioarvon joka aikoo tehdä koodirivin. 354 00:18:43,209 --> 00:18:45,500 Otetaan askel taaksepäin ja purkaa mitä täällä tapahtuu. 355 00:18:45,500 --> 00:18:47,280 Joten tämä on hieman monimutkaisempi, ja me näemme jotain uutta 356 00:18:47,280 --> 00:18:48,071 ensimmäistä kertaa. 357 00:18:48,071 --> 00:18:51,190 358 00:18:51,190 --> 00:18:55,065 "Tämä" avainsana on uusi asia me näemme täällä, ja mitä tämä tekee 359 00:18:55,065 --> 00:19:00,540 on, viittaa nykyiseen esine laajuudeltaan, eikö? 360 00:19:00,540 --> 00:19:03,990 Joten kun sanomme, tämä muistuttaa aina takaisin 361 00:19:03,990 --> 00:19:08,140 Tämän koko object-- kun teemme this.fn, 362 00:19:08,140 --> 00:19:11,990 aiomme mennä aina takaisin Tämän objektin, siirry fn arvo 363 00:19:11,990 --> 00:19:16,471 ja saada sam, vedä se kokonaan takaisin, kiinni se täällä, ja sitten siirtyä. 364 00:19:16,471 --> 00:19:19,838 >> Yleisö: Joten haku, on että tehdään koska parametrin 365 00:19:19,838 --> 00:19:20,621 määritelmä? 366 00:19:20,621 --> 00:19:23,870 SAM VIHREÄ: Joten kysymys oli, on haku tehdään, koska parametrin 367 00:19:23,870 --> 00:19:24,727 määritelmä? 368 00:19:24,727 --> 00:19:25,435 Joo, ehdottomasti. 369 00:19:25,435 --> 00:19:29,660 370 00:19:29,660 --> 00:19:32,470 Mitä tulee tapahtumaan tässä on, tämä piste sanoo JavaScript, 371 00:19:32,470 --> 00:19:39,990 OK, Saan jotain arvoa Tämän objektin itsestäni. 372 00:19:39,990 --> 00:19:46,375 Ja sitten se tulee etsiä merkintä nimeltään fn, ja jos se löytää sen, 373 00:19:46,375 --> 00:19:48,470 se tulee palauttaa että value-- niin, se on sam. 374 00:19:48,470 --> 00:19:51,540 Mutta voisin myös kirjoittanut jotain, joka ei ole määritelty tässä, 375 00:19:51,540 --> 00:19:54,090 ja niin se olisi vain palata undefined-- joka 376 00:19:54,090 --> 00:19:58,250 on asia, että JavaScript voi do, joka voi olla hyötyä, 377 00:19:58,250 --> 00:20:03,190 mutta se on also-- jos teet kirjoitusvirheen, se voi aiheuttaa outoja virheitä. 378 00:20:03,190 --> 00:20:05,617 Joten se täytyy vain yrittää löytää mitä kerrot sen löytää 379 00:20:05,617 --> 00:20:07,700 ja se ei aio valittaa, jos ei löydä sitä. 380 00:20:07,700 --> 00:20:11,390 Se vain sanoa, en löydä sitä, ja sitten siirtyä. 381 00:20:11,390 --> 00:20:17,581 Joten se olisi määrittelemätön, plus tyhjä, ja sukunimi. 382 00:20:17,581 --> 00:20:18,080 Joo. 383 00:20:18,080 --> 00:20:21,070 Ja sitten voimme nähdä, että jos me voisi mennä alas ja access-- 384 00:20:21,070 --> 00:20:25,450 ja kutsumme tf.print () kanssa suluissa. 385 00:20:25,450 --> 00:20:30,000 Se tulee soittaa että Tulosta toiminta ilman argumentteja, eikö? 386 00:20:30,000 --> 00:20:34,490 Mutta jos me vain sanoi tf.print () puolipiste, ilman suluissa, 387 00:20:34,490 --> 00:20:37,480 kaikki jotka olisi tehnyt on vetää ulos toiminnon arvosta, 388 00:20:37,480 --> 00:20:40,609 mutta ei oikeastaan ​​kutsui sitä. 389 00:20:40,609 --> 00:20:41,162 Viileä. 390 00:20:41,162 --> 00:20:42,870 HUGH Zabriskie: Pitäisikö teemme esine? 391 00:20:42,870 --> 00:20:44,161 SAM GREEN: Toki, tehdään se. 392 00:20:44,161 --> 00:20:48,750 Joten en voi siirtää tätä Esimerkiksi konsoliin. 393 00:20:48,750 --> 00:20:51,380 394 00:20:51,380 --> 00:20:55,466 Voimme kuvitella, että minulla on esine. 395 00:20:55,466 --> 00:21:03,026 396 00:21:03,026 --> 00:21:04,150 Joten tämä on yksinkertainen esine. 397 00:21:04,150 --> 00:21:06,910 398 00:21:06,910 --> 00:21:11,050 Tämä on objekti, joka sisältää kaksi arvot kaksi avainta, kaksi keskeistä arvo 399 00:21:11,050 --> 00:21:12,710 paria. 400 00:21:12,710 --> 00:21:21,850 Joten en voi sitten käyttää tallennettu arvo sisällä tämän kohteen tekemällä x.x1, 401 00:21:21,850 --> 00:21:23,400 esimerkiksi, ja saan 1 takaisin. 402 00:21:23,400 --> 00:21:29,590 Samoin x.x2, saada, että arvo takaisin. 403 00:21:29,590 --> 00:21:33,330 >> Ja nyt todella kova juttu on, voin todella lisätä jotain tämän objektin 404 00:21:33,330 --> 00:21:34,316 kun olen luonut. 405 00:21:34,316 --> 00:21:36,315 Joten voitte kuvitella, katsotaanpa sanoa on toiminto. 406 00:21:36,315 --> 00:21:44,430 407 00:21:44,430 --> 00:21:46,352 >> HUGH Zabriskie: Olet täytyy tehdä Vaihto-Enter. 408 00:21:46,352 --> 00:21:47,643 >> SAM GREEN: Voi, se on ärsyttävää. 409 00:21:47,643 --> 00:22:02,460 410 00:22:02,460 --> 00:22:04,324 Mitä se ei pidä? 411 00:22:04,324 --> 00:22:04,824 Oi. 412 00:22:04,824 --> 00:22:07,532 413 00:22:07,532 --> 00:22:08,691 No niin. 414 00:22:08,691 --> 00:22:09,190 Viileä. 415 00:22:09,190 --> 00:22:12,840 >> Joten olen juuri luonut tämä toiminto, f, että 416 00:22:12,840 --> 00:22:17,590 on menossa nykyisen esine ja tulostaa this.x1. 417 00:22:17,590 --> 00:22:20,330 Joten jos vain soittaa f mukaan itse, ei mitään on menossa 418 00:22:20,330 --> 00:22:26,970 tapahtua, oikea, koska ei ole x1 kentän objekti se viittaa. 419 00:22:26,970 --> 00:22:39,710 Mutta, jos sanon, x.f = f, ja sitten minä call x.f (), aion saada takaisin 1. 420 00:22:39,710 --> 00:22:42,990 421 00:22:42,990 --> 00:22:46,530 Että f-toiminto on nyt liittyvä esine X, 422 00:22:46,530 --> 00:22:51,800 joka on keskeinen nimeltään x1 liittyvä arvo 1, 423 00:22:51,800 --> 00:22:54,570 joten kun me kutsumme this.x1, se on menossa selvittää, mikä etsii 424 00:22:54,570 --> 00:22:56,450 ja voi tulostaa arvon ulos. 425 00:22:56,450 --> 00:22:58,700 Niin se on vain yksi esimerkki ja laji hulluja asioita 426 00:22:58,700 --> 00:23:01,190 voit tehdä esineitä JavaScript. 427 00:23:01,190 --> 00:23:03,870 428 00:23:03,870 --> 00:23:07,560 >> Niin että versio oli geneeristä, merkitys 429 00:23:07,560 --> 00:23:13,780 että olemme luoneet objektin tätä suluissa notation-- ahdin merkintätapa, 430 00:23:13,780 --> 00:23:16,880 rather-- ja se on käteviä, jos me vain haluamme 431 00:23:16,880 --> 00:23:21,440 yksi esiintymä tietyn esineen, mutta mitä jos haluamme olla enemmän kuin yksi 432 00:23:21,440 --> 00:23:22,210 samanlaista? 433 00:23:22,210 --> 00:23:24,440 Ja vastaus tähän kysymys on, on olemassa asioita 434 00:23:24,440 --> 00:23:26,760 nimeltään luokat JavaScript samoin. 435 00:23:26,760 --> 00:23:31,470 436 00:23:31,470 --> 00:23:36,420 Voimme luoda toiminto, ei jonkinlainen alustuksen 437 00:23:36,420 --> 00:23:41,690 varten vieras esine, ja olimme sanoa, kuten, 438 00:23:41,690 --> 00:23:44,550 minun class-- joten nimi on uudelleenkäytettäviä object-- 439 00:23:44,550 --> 00:23:47,100 vastaa toiminto, joka erottaa sen ylös. 440 00:23:47,100 --> 00:23:52,280 Joten mitä tämä vastaisi ja luo objektin 441 00:23:52,280 --> 00:23:55,930 olisi aivan kuten, kihara ahdin, str, paksusuoli, 442 00:23:55,930 --> 00:23:59,630 tämä on merkkijono, puolipiste, kihara ahdin. 443 00:23:59,630 --> 00:24:01,880 Se olisi yleinen esine me alustaa, 444 00:24:01,880 --> 00:24:06,380 kanssa yksi ero olemisesta seuraava linjat luomme prototyyppi, joka 445 00:24:06,380 --> 00:24:11,190 tarkoittaa että se on oletus avain, lisäämme meidän objekti 446 00:24:11,190 --> 00:24:13,970 on arvo lueteltu tässä. 447 00:24:13,970 --> 00:24:20,570 Eli, kun luon uutta esimerkki tästä MyClass esine, 448 00:24:20,570 --> 00:24:27,440 se tulee valmiiksi rakennettu sisällä se arvo nimeltään str ja toinen arvo 449 00:24:27,440 --> 00:24:32,418 nimeltään myPrint, joka on olemaan funktio. 450 00:24:32,418 --> 00:24:32,918 Mahtava. 451 00:24:32,918 --> 00:24:37,410 452 00:24:37,410 --> 00:24:37,990 >> Suuri. 453 00:24:37,990 --> 00:24:40,710 Niin viimeinen asia sanottavaa JavaScript 454 00:24:40,710 --> 00:24:46,430 on, että se on todella hyödyllinen mitä kutsutaan asynkroninen toimintaa. 455 00:24:46,430 --> 00:24:52,500 Asynchronous tarkoittaa, että meidän voi odottaa joitakin toiminta 456 00:24:52,500 --> 00:24:57,870 loppuun ennen kuin siirrymme , mutta siirtyä odottaessamme 457 00:24:57,870 --> 00:24:59,690 ja sitten jotain tapahtuu myöhemmin. 458 00:24:59,690 --> 00:25:03,480 Ja mitä tarkoitan, että on, te kuvitella tilannetta, jossa 459 00:25:03,480 --> 00:25:06,850 lähetät pyynnön jotkut web-palvelin jonnekin, 460 00:25:06,850 --> 00:25:09,670 ja se tulee lähettää sinut takaisin isoja kimpale tietojen, eikö? 461 00:25:09,670 --> 00:25:13,320 Ja käyttäjä voi odottaa Tällä välin tämä onnistuisi, 462 00:25:13,320 --> 00:25:15,200 ja mikään ei voisi olla meneillään tuolloin. 463 00:25:15,200 --> 00:25:18,110 Mutta se ei ole hyvä muotoilu, eikö? 464 00:25:18,110 --> 00:25:20,214 Et halua verkkosivustoa jäätyä. 465 00:25:20,214 --> 00:25:22,380 Entä jos käyttäjä haluaa klikkaa pudotusvalikosta? 466 00:25:22,380 --> 00:25:24,870 Se ei ole hyvä suunnittelu kuvio. 467 00:25:24,870 --> 00:25:29,290 Sen sijaan, periaatteessa mitä JavaScript ei on sanoo, 468 00:25:29,290 --> 00:25:31,870 OK, tämän toiminnon asynkronisesti. 469 00:25:31,870 --> 00:25:36,520 Joten kuten, odota taustalla, ja sitten kun operaatio on tehty, 470 00:25:36,520 --> 00:25:39,420 soita soittopyyntö function-- soita jonkin toiminnon, 471 00:25:39,420 --> 00:25:43,800 jotkut action-- viestittää, että toiminta odotimme Loppuun 472 00:25:43,800 --> 00:25:45,520 on ohi. 473 00:25:45,520 --> 00:25:51,240 Ja siitä syystä, että on erittäin tehokas on, voimme tehdä jotain, pass argumentti, 474 00:25:51,240 --> 00:25:54,440 tehdä jotain, ja sitten odottaa jotakin tapahtuvaksi. 475 00:25:54,440 --> 00:25:58,970 Sitten, kun tämä jotain valmis, voimme kutsua soittopyynnön. 476 00:25:58,970 --> 00:26:03,300 Se on todella kätevä, koska sen avulla meille tehdä asioita Web Audio API, 477 00:26:03,300 --> 00:26:07,490 esimerkiksi, kuten kuorma äänitiedosto etäpalvelimelta 478 00:26:07,490 --> 00:26:11,660 joutumatta odottamaan koko äänitiedosto ladataan, 479 00:26:11,660 --> 00:26:14,440 joka olisi todella huono käyttökokemuksen. 480 00:26:14,440 --> 00:26:17,080 Viileä. 481 00:26:17,080 --> 00:26:19,460 >> Parin viime muistiinpanoja virheenkorjaus, koska tämä 482 00:26:19,460 --> 00:26:23,682 on asia aiot täytyy tehdä osana projektin, taattu. 483 00:26:23,682 --> 00:26:25,140 Mainitsin JavaScript-konsoli. 484 00:26:25,140 --> 00:26:27,550 Se on erittäin hyödyllinen ominaisuus kaikki uudet selaimet, 485 00:26:27,550 --> 00:26:30,300 Ja me todella kannustaa sinua saamaan mukava käyttää konsoli, 486 00:26:30,300 --> 00:26:33,660 jos haluat saada hyvä JavaScript. 487 00:26:33,660 --> 00:26:36,320 Se on erittäin kätevä virheenkorjaus, mutta se on myös 488 00:26:36,320 --> 00:26:39,440 todella hyödyllinen miettiminen ulos miten käyttää API. 489 00:26:39,440 --> 00:26:41,950 Se mahdollistaa todella helppo kokeilu 490 00:26:41,950 --> 00:26:45,910 ilman kirjoittaa joitakin koodi, ja sitten kääntää sen. 491 00:26:45,910 --> 00:26:47,500 Sinun ei tarvitse tehdä kaikki nämä toimet. 492 00:26:47,500 --> 00:26:49,619 Voit vain kirjoittaa Joissakin koodin linja, 493 00:26:49,619 --> 00:26:52,410 ja sitten saada välitöntä palautetta onko Koodirivin 494 00:26:52,410 --> 00:26:55,230 worked-- erittäin kätevä. 495 00:26:55,230 --> 00:26:59,760 >> Ja myös, vain yksi tekninen note-- JavaScript-konsoli on esimerkki 496 00:26:59,760 --> 00:27:05,680 of REPL-- niin se on R-E-P-L, REPL, joka tarkoittaa lukea, arvioida, 497 00:27:05,680 --> 00:27:06,180 Tulosta silmukka. 498 00:27:06,180 --> 00:27:09,100 499 00:27:09,100 --> 00:27:12,120 Olet menossa kirjoittaa joitakin juttuja vuonna, se tulee lukea mitä kirjoitit, 500 00:27:12,120 --> 00:27:17,280 se tulee arvioida sitä, ja se tulee tulostaa tuotos, ja sitten se tulee aloittaa uudelleen. 501 00:27:17,280 --> 00:27:22,056 Jonka avulla voit nopeasti mennä piireissä iteroimalla, mikä on todella hienoa. 502 00:27:22,056 --> 00:27:25,150 503 00:27:25,150 --> 00:27:28,930 >> Luulen todellinen viime note-- tämä on todellinen viimeinen huomautus, kyllä. 504 00:27:28,930 --> 00:27:30,780 Miten me oikeastaan ​​käyttää JavaScript? 505 00:27:30,780 --> 00:27:34,040 Joten ensimmäinen, voimme tuoda sen avulla komentosarjatunnus 506 00:27:34,040 --> 00:27:39,500 yläreunassa tai alareunassa HTML file-- missä tahansa sisällä HTML-tiedoston, 507 00:27:39,500 --> 00:27:40,440 ihan oikeesti. 508 00:27:40,440 --> 00:27:47,390 Ja sisällä komentosarjatunnus, on kaksi osa-tapoja tuoda JavaScript. 509 00:27:47,390 --> 00:27:51,370 Ensimmäinen on ottaa erillinen JavaScript-tiedoston 510 00:27:51,370 --> 00:27:58,010 että tuomme kokonaisuudessaan, tai saamalla alueen koodia kirjoitus 511 00:27:58,010 --> 00:28:00,290 aloittaa, ja sitten kenoviivat script lopettaa. 512 00:28:00,290 --> 00:28:02,620 Ja sitten me vain kirjoittaa JavaScript sisällä HTML-tiedoston. 513 00:28:02,620 --> 00:28:03,790 Ne ovat kaksi tapaa. 514 00:28:03,790 --> 00:28:05,165 Et voi olla sitä sisällä HTML. 515 00:28:05,165 --> 00:28:06,502 516 00:28:06,502 --> 00:28:08,126 Yleisö: On yksi paremmin kuin muut? 517 00:28:08,126 --> 00:28:10,542 SAM VIHREÄ: kysymys oli, on yksi parempi kuin muut. 518 00:28:10,542 --> 00:28:18,306 Joten, kyllä, koska koodaus tyyli käytäntö, ja myös se on kuin suunnittelu käytännössä. 519 00:28:18,306 --> 00:28:20,180 Tähän on kaksi syytä Miksi se voisi olla parempi. 520 00:28:20,180 --> 00:28:23,934 Ensimmäinen on, se tekee koodin paljon enemmän luettavissa jos kaikki HTML 521 00:28:23,934 --> 00:28:27,100 on yhdessä paikassa, kaikki CSS on toinen paikka, kaikki JavaScript 522 00:28:27,100 --> 00:28:28,420 on kolmannella sijalla. 523 00:28:28,420 --> 00:28:28,920 Oikea? 524 00:28:28,920 --> 00:28:32,370 Mielestäni meidän olisi pitänyt jo puhuneet noin se sections-- kuten CSS-- mitä 525 00:28:32,370 --> 00:28:35,220 että is-- ja se menee usein toiseen tiedostoon. 526 00:28:35,220 --> 00:28:37,090 Joten, samantyyppinen käsite tässä. 527 00:28:37,090 --> 00:28:42,410 Voit myös kuvitella, että JavaScript olisi uudelleen useammalle kuin yhdelle 528 00:28:42,410 --> 00:28:47,350 HTML-sivun, tai ehkä monia HTML-sivuja, 529 00:28:47,350 --> 00:28:49,340 ja ottaa että JavaScript refactored yhdeksi 530 00:28:49,340 --> 00:28:51,950 tiedoston, jonka voit tuoda useampaan kuin yhteen paikkaan 531 00:28:51,950 --> 00:28:54,570 mahdollistaa koodin olla paljon enemmän ylläpidettävissä. 532 00:28:54,570 --> 00:28:57,930 Voit kuvitella tehdä yksi vaihtaa JavaScript 533 00:28:57,930 --> 00:29:00,070 ja ottaa muuttaa sitä 100 eri tiedostoja. 534 00:29:00,070 --> 00:29:04,070 Ja sen sijaan voimme vain muuttaa sitä yhden, joka on paljon tehokkaampi. 535 00:29:04,070 --> 00:29:05,420 Teinkö kysymykseesi? 536 00:29:05,420 --> 00:29:07,950 Viileä. 537 00:29:07,950 --> 00:29:10,830 >> Voimme myös kirjoitat konsoliin, kuten olemme aiemmin mainittiin. 538 00:29:10,830 --> 00:29:15,070 Ja vielä, yksi viime note-- Web Audio on rakennettu, 539 00:29:15,070 --> 00:29:16,978 sinun ei tarvitse ladata mitään. 540 00:29:16,978 --> 00:29:17,478 Viileä. 541 00:29:17,478 --> 00:29:20,519 Onko kysyttävää, onko sinulla kysyttävää JavaScript, 542 00:29:20,519 --> 00:29:21,930 Ennen kuin siirrymme? 543 00:29:21,930 --> 00:29:24,286 >> Yleisö: [äänetön] 544 00:29:24,286 --> 00:29:25,410 SAM VIHREÄ: Hyvä, viileä. 545 00:29:25,410 --> 00:29:27,200 Nyt hän aikoo puhua API. 546 00:29:27,200 --> 00:29:28,490 >> HUGH Zabriskie: Cool. 547 00:29:28,490 --> 00:29:28,990 Kiitos, Sam. 548 00:29:28,990 --> 00:29:30,184 >> SAM VIHREÄ: Toki. 549 00:29:30,184 --> 00:29:32,600 HUGH Zabriskie: Mahtavaa, joten me siirrymme JavaScript. 550 00:29:32,600 --> 00:29:35,350 Joten olemme puhuneet joistakin Essentials JavaScript, 551 00:29:35,350 --> 00:29:41,105 ja ne ovat muuttujia, funktioita, esineitä, toimii muuttujia, 552 00:29:41,105 --> 00:29:41,980 asynkroninen lastaus. 553 00:29:41,980 --> 00:29:46,100 Nämä ovat kaikki asioita, että sinun pitävät käytät Web Audio. 554 00:29:46,100 --> 00:29:49,230 Joten me vain aio puhua siitä ensin korkealla tasolla. 555 00:29:49,230 --> 00:29:52,120 >> Se on API, joten se on jotain joka on rakennettu, Sam sanoi, 556 00:29:52,120 --> 00:29:57,010 suoraan JavaScript että käytät konsolin. 557 00:29:57,010 --> 00:30:01,020 Ja se on oikeastaan ​​aivan kuten C ++ koodi että on todella rakennettu Chrome 558 00:30:01,020 --> 00:30:04,470 ja Firefox, ja kaikki näistä selaimista. 559 00:30:04,470 --> 00:30:07,060 Joten tärkein ajatus Web Audio on, että sinulla on 560 00:30:07,060 --> 00:30:09,440 tällainen putki audio, eikö? 561 00:30:09,440 --> 00:30:13,670 Joten audiodataa tulee jossain muodossa. 562 00:30:13,670 --> 00:30:16,690 >> On tavallaan kolme forms-- sinulla on oskillaattori, joka 563 00:30:16,690 --> 00:30:21,340 luo siniaalto, kosini aalto, aiomme nähdä miten se toimii. 564 00:30:21,340 --> 00:30:23,890 Toinen hyvin yleinen yksi, tietenkin, on MP3. 565 00:30:23,890 --> 00:30:25,810 Joten ehkä aloitat laulu, ja sitten 566 00:30:25,810 --> 00:30:28,320 haluat tehdä joitakin suodatus kyseiseen ja ulostulo 567 00:30:28,320 --> 00:30:30,605 that-- joka voisi olla mahdollinen lähde. 568 00:30:30,605 --> 00:30:32,480 Ja sitten todella cool yksi on mikrofoni. 569 00:30:32,480 --> 00:30:37,230 Joten voit käyttää joitakin hyvin perus puhelut JavaScript 570 00:30:37,230 --> 00:30:39,440 päästä käsiksi mikrofoni, ja niin jos 571 00:30:39,440 --> 00:30:42,870 halusi tehdä sovelluksen kuten piki ilmaisin, 572 00:30:42,870 --> 00:30:45,290 esimerkiksi, joka vie äänesi ja keksii 573 00:30:45,290 --> 00:30:47,740 pitch-- erittäin helppo tapa, että. 574 00:30:47,740 --> 00:30:50,730 Voit juuri sellainen lukea sen vuonna, selvittää taajuus, 575 00:30:50,730 --> 00:30:52,250 ja sitten lähtö numero. 576 00:30:52,250 --> 00:30:56,080 Joten näemme, miten se toimii, samoin. 577 00:30:56,080 --> 00:30:59,430 >> Määränpää on pohjimmiltaan jos audiodata annetaan ulos. 578 00:30:59,430 --> 00:31:02,890 Niin yleisesti, että on kuin kannettavan tietokoneen kaiuttimet. 579 00:31:02,890 --> 00:31:05,610 Muita vaihtoehtoja ovat kuin ScriptProcessorNode-- 580 00:31:05,610 --> 00:31:07,990 me saamme solmut second-- mutta pohjimmiltaan, 581 00:31:07,990 --> 00:31:11,939 joko olet laskemisesta äänen ulos kautta tietokoneeseen kaiuttimet, 582 00:31:11,939 --> 00:31:14,730 tai olet sellainen kirjaamiseksi, niin olet varastointia kuin äänidataa. 583 00:31:14,730 --> 00:31:18,980 Joten ehkä jos joku luo musiikkia App ja sitten 584 00:31:18,980 --> 00:31:22,410 haluat tallentaa, että ja ehkä kuten viedä sen SoundCloud, sillä example-- 585 00:31:22,410 --> 00:31:25,281 että olisi yksi tapa tehdä se. 586 00:31:25,281 --> 00:31:27,030 Kaikki hauskaa, joka me puhumme, 587 00:31:27,030 --> 00:31:29,950 tapahtuu näiden kahden pisteen välillä, jossa latautuvat musiikki 588 00:31:29,950 --> 00:31:31,410 ja sitten tulostaa sen. 589 00:31:31,410 --> 00:31:36,660 >> Joten aion puhua viisi vaiheissa äänen tuotanto toisessa. 590 00:31:36,660 --> 00:31:38,950 Meillä on tämä asia sanottu AudioContext, joka 591 00:31:38,950 --> 00:31:41,580 on tämä pieni kääre näemme täällä. 592 00:31:41,580 --> 00:31:49,980 Periaatteessa mitä AudioContext is-- jos me Siirry JavaScript-konsoli juuri nyt, 593 00:31:49,980 --> 00:31:52,740 voimme luoda juuri nyt. 594 00:31:52,740 --> 00:31:54,040 Vain esimerkki REPL, eikö? 595 00:31:54,040 --> 00:31:57,880 Me luet, arvioidaan, ja se tulostaa. 596 00:31:57,880 --> 00:32:00,260 >> AudioContext on globaali valtio. 597 00:32:00,260 --> 00:32:05,500 Se struct, se esine täällä, ja se pitää tietoja 598 00:32:05,500 --> 00:32:09,960 asioita että on meneillään ruudulla liittyvät äänen. 599 00:32:09,960 --> 00:32:15,220 Yksi esimerkki on nykyinen aika. 600 00:32:15,220 --> 00:32:18,910 Tämä kertoo numero sekuntia, erittäin tarkasti, 601 00:32:18,910 --> 00:32:20,890 koska sivun ladattu. 602 00:32:20,890 --> 00:32:24,110 Joten tämä on todella hyödyllinen pikku ominaisuus, jota voit käyttää. 603 00:32:24,110 --> 00:32:27,898 Se on lukenut only-- mielestäni todella voit yrittää asettaa sen arvo. 604 00:32:27,898 --> 00:32:29,856 Se kerromme asettaa sen, ja sitten jos tulostaa sen 605 00:32:29,856 --> 00:32:31,439 again-- se ei oikeastaan ​​aika työtä. 606 00:32:31,439 --> 00:32:34,472 Joten on vain luku- ominaisuudet JavaScript. 607 00:32:34,472 --> 00:32:36,430 Tämä on todella hyödyllistä jos olet eräänlainen synkronointi 608 00:32:36,430 --> 00:32:38,610 paljon erilaisia tiedot, kun olet 609 00:32:38,610 --> 00:32:41,280 eräänlainen pelaa erilaisia ​​ääniä. 610 00:32:41,280 --> 00:32:43,630 >> Toinen todella hyödyllinen on yhteydessä määränpää. 611 00:32:43,630 --> 00:32:46,587 612 00:32:46,587 --> 00:32:49,670 Ehdottomasti, jos olet kiinnostunut, on yrittää tätä omalla konsolin oikealla 613 00:32:49,670 --> 00:32:50,980 nyt. 614 00:32:50,980 --> 00:32:53,150 Joten tämä on AudioDestinationNode. 615 00:32:53,150 --> 00:32:56,480 Periaatteessa mitä tämä sanoo on, jossa on lähtö menee? 616 00:32:56,480 --> 00:32:59,590 Joten on olemassa kaksi todellista vaihtoehtoa täällä. 617 00:32:59,590 --> 00:33:01,940 Yleensä oletuksena on vain kaiuttimet, 618 00:33:01,940 --> 00:33:05,150 niin AudioDestinationNode pohjimmiltaan vain sanoo 619 00:33:05,150 --> 00:33:09,240 on nolla lähdöt ääni tulossa, lähetetään puhuja. 620 00:33:09,240 --> 00:33:12,050 Niin yleensä, et täytyy pelata sitä. 621 00:33:12,050 --> 00:33:15,720 Jos olet kiinnostunut todellisuudessa käyttävät ScriptProcessorNode tallennus-, 622 00:33:15,720 --> 00:33:16,990 ehdottomasti ampua minut sähköpostiviestin myöhemmin koska se on 623 00:33:16,990 --> 00:33:18,330 hieman monimutkaisempi. 624 00:33:18,330 --> 00:33:21,590 Mutta yleensä, olet vain sellainen syöttöä ääni jossain muodossa. 625 00:33:21,590 --> 00:33:24,347 Niin cool, me hypätä takaisin tänne. 626 00:33:24,347 --> 00:33:25,180 Yleisö: Olen pahoillani. 627 00:33:25,180 --> 00:33:26,054 HUGH Zabriskie: Joo. 628 00:33:26,054 --> 00:33:28,770 Yleisö: Tiedän sanoit puhua sinulle myöhemmin noin tallennuksen. 629 00:33:28,770 --> 00:33:31,550 Voitko käyttöliittymä, joka Pro Tools? 630 00:33:31,550 --> 00:33:33,120 >> HUGH Zabriskie: With Pro Tools? 631 00:33:33,120 --> 00:33:35,260 Katsotaan. 632 00:33:35,260 --> 00:33:37,220 En usko. 633 00:33:37,220 --> 00:33:41,670 Niin menee välillä asiakas, joka on JavaScript 634 00:33:41,670 --> 00:33:44,310 konsoli, ja todellinen tietokone, on yleensä 635 00:33:44,310 --> 00:33:46,490 jotain, joka on eräänlainen on tabu, jos 636 00:33:46,490 --> 00:33:52,320 tulee, jollaisia ​​luonteen the-- se on eräänlainen suunnittelu asia, 637 00:33:52,320 --> 00:33:57,770 mutta yrität pitää selaimen erillistä käyttäjän todellinen tietokone. 638 00:33:57,770 --> 00:34:02,310 Yleensä ainoa asia pystyt yhteys on mikrofonin tai kameran. 639 00:34:02,310 --> 00:34:04,730 Et pysty, en usko, käytä Pro Tools. 640 00:34:04,730 --> 00:34:07,480 Kuitenkin, jos olet luonut Raidan Pro Tools, 641 00:34:07,480 --> 00:34:12,710 vientiä, että voisit ladata että täällä, suodattaa sen, esimerkiksi, 642 00:34:12,710 --> 00:34:16,820 prosessi, ja tallentaa sen osaksi Audio Destination-- tai no-- Sphere 643 00:34:16,820 --> 00:34:17,870 Prosessori Node. 644 00:34:17,870 --> 00:34:20,730 Ja sitten sieltä, voisit viedä että SoundCloud, sinua 645 00:34:20,730 --> 00:34:25,320 voisi lähettää sen sähköpostilla, tai mitä haluat sieltä. 646 00:34:25,320 --> 00:34:31,159 >> Mutta on eräänlainen pieni este välillä tehdä musiikkia tietokoneella 647 00:34:31,159 --> 00:34:33,050 ja tehdä musiikkia verkossa. 648 00:34:33,050 --> 00:34:37,940 >> SAM VIHREÄ: Ja se on koske ainoastaan ​​tätä API. 649 00:34:37,940 --> 00:34:44,060 Se on turvallisuus ominaisuus Chromen, ja Mielestäni jokainen muu moderni selain. 650 00:34:44,060 --> 00:34:45,860 Selain on itsenäinen. 651 00:34:45,860 --> 00:34:50,980 Niinpä esimerkiksi, verkkosivu ei voi käyttää JavaScript kytkee äänen 652 00:34:50,980 --> 00:34:54,190 on kaiuttimien, esimerkiksi. 653 00:34:54,190 --> 00:34:58,120 Tai se voi kääntää tietokoneesta virta. 654 00:34:58,120 --> 00:35:01,530 Eikä ole välipisteessä välillä nämä kaksi asiaa, oikea, 655 00:35:01,530 --> 00:35:05,960 joten joko olet täydellinen abstraktio, 656 00:35:05,960 --> 00:35:10,050 tai avaat turvallisuuden puute kerroit 657 00:35:10,050 --> 00:35:14,440 ohjelmoija vilpillisessä do mitä he haluavat kannettavan tietokoneen. 658 00:35:14,440 --> 00:35:18,104 Ja siksi Chrome on itsenäinen. 659 00:35:18,104 --> 00:35:19,310 >> HUGH Zabriskie: Joo. 660 00:35:19,310 --> 00:35:20,840 Onko siinä järkeä? 661 00:35:20,840 --> 00:35:21,369 Viileä, viileä. 662 00:35:21,369 --> 00:35:23,160 Olin juuri menossa esittävät esimerkkiä yhden. 663 00:35:23,160 --> 00:35:25,118 Tämä on melko paljon kuin Mitä saat, mitä 664 00:35:25,118 --> 00:35:26,950 pääsemistä käyttäjän tietokoneessa. 665 00:35:26,950 --> 00:35:30,180 Jos sinulla on USB-näppäimistö kytkettynä, voit käyttää jotain kutsutaan Web 666 00:35:30,180 --> 00:35:32,180 MIDI API, jota emme todella puhua täällä, 667 00:35:32,180 --> 00:35:36,330 mutta tämä on toinen API, joka on rakennettu ainakin Chrome-- uudelleen, 668 00:35:36,330 --> 00:35:41,570 siksi me rakastamme Chrome-- Mielestäni Firefox tai Safari, 669 00:35:41,570 --> 00:35:44,300 tämä on helppo asia google-- eri selaimilla on 670 00:35:44,300 --> 00:35:46,917 eri tukea, jotka API ne ovat toteuttaneet. 671 00:35:46,917 --> 00:35:49,875 Mutta jos halusi kytkeä näppäimistö ja työskennellä tämän tiedon, 672 00:35:49,875 --> 00:35:52,850 Tällainen lähettää näppäimistö informaatiota tietokoneelle 673 00:35:52,850 --> 00:35:57,620 ja sitten käyttää verkossa, tämä API on, jos olisit työskennellyt että. 674 00:35:57,620 --> 00:35:58,150 >> Viileä. 675 00:35:58,150 --> 00:35:58,710 OK. 676 00:35:58,710 --> 00:36:01,320 Joten, nopeasti liikkuvat täällä. 677 00:36:01,320 --> 00:36:03,310 Miten pärjäämme ajoissa? 678 00:36:03,310 --> 00:36:04,210 >> SPEAKER 1: Noin 15. 679 00:36:04,210 --> 00:36:05,543 >> HUGH Zabriskie: 15 minuuttia jäljellä? 680 00:36:05,543 --> 00:36:06,160 OK, viileä. 681 00:36:06,160 --> 00:36:08,170 Niin me rodun eteenpäin täällä. 682 00:36:08,170 --> 00:36:13,500 >> Joten periaatteessa, tärkein kohta ajatellut tätä putki 683 00:36:13,500 --> 00:36:16,430 on, että kukin vaihe putki on sarja äänen solmuja. 684 00:36:16,430 --> 00:36:19,284 685 00:36:19,284 --> 00:36:20,950 Meidän lähde, sanokaamme, on oskillaattori. 686 00:36:20,950 --> 00:36:23,380 Meidän on luotava oskillaattorin solmu. 687 00:36:23,380 --> 00:36:25,690 Ja juuri sellainen pikku function-- 688 00:36:25,690 --> 00:36:30,460 ja he kaikki perustuu ulos audio yhteydessä täällä. 689 00:36:30,460 --> 00:36:32,885 >> Yleisö: Kun se sanoi oskillaattori, se tarkoittaa 690 00:36:32,885 --> 00:36:37,250 Se on oikeastaan ​​kirjaimellisesti menee kaksi erilaista pylväät edestakaisin? 691 00:36:37,250 --> 00:36:41,170 >> HUGH Zabriskie: Ei, se on kuin digitaalinen esitys. 692 00:36:41,170 --> 00:36:42,740 Se on todella toteutettu C ++. 693 00:36:42,740 --> 00:36:46,460 En oikeastaan ​​tiedä silmälasit miten se tosiasiallisesti täytäntöön, 694 00:36:46,460 --> 00:36:48,500 mutta kaikki tämä työskentelee binaaridataa. 695 00:36:48,500 --> 00:36:51,260 696 00:36:51,260 --> 00:36:52,370 Oikeastaan, joo. 697 00:36:52,370 --> 00:36:53,950 Se olisi sanoen, voisin todella, jos olet kiinnostunut, 698 00:36:53,950 --> 00:36:56,533 Voisin lähettää sinulle hieman enemmän Tietoja aaltomuotojen 699 00:36:56,533 --> 00:37:00,181 pidetään, jolla on digitaalisessa muodossa. 700 00:37:00,181 --> 00:37:00,680 OK, viileä. 701 00:37:00,680 --> 00:37:03,120 >> Joten me tuottaa sävy kuin sini aalto tai jotain, ehkä 702 00:37:03,120 --> 00:37:04,190 440 Hertz. 703 00:37:04,190 --> 00:37:05,830 Luomme oskillaattorin. 704 00:37:05,830 --> 00:37:09,180 Jos haluamme asettaa äänenvoimakkuuden, me kytkeä mitään GainNode, 705 00:37:09,180 --> 00:37:12,500 jota voisimme tehdä .creategain. 706 00:37:12,500 --> 00:37:14,250 Joka asettaa äänenvoimakkuuden. 707 00:37:14,250 --> 00:37:17,820 Voit siirtää, että mille tahansa Muiden options-- hyvin, 708 00:37:17,820 --> 00:37:20,300 joten audiopuskurin lähde solmu on, jos saatat 709 00:37:20,300 --> 00:37:23,660 tallentaa MP3 että olet ladatun. 710 00:37:23,660 --> 00:37:27,670 >> Biquad suodatin on suodatus jos haluat ottaa kaikki pohja pois 711 00:37:27,670 --> 00:37:29,630 laulun, tai jotain. 712 00:37:29,630 --> 00:37:32,450 Jumala varjelkoon haluat ottaa pohja pois laulun. 713 00:37:32,450 --> 00:37:36,980 Ja AudioDestination solmu on, jälleen, kuten missä meidän viimeistelyn. 714 00:37:36,980 --> 00:37:39,980 Jos olet koskaan kiinnostunut näkemään kaikki erilaisia ​​mahdollisia vaihtoehtoja, 715 00:37:39,980 --> 00:37:45,190 vain mennä välilehti ja anna automaattinen täydennys keksiä. 716 00:37:45,190 --> 00:37:48,690 Ja jos et luo, näet kaikki eri asioita, joita voit luoda. 717 00:37:48,690 --> 00:37:50,398 Voit luoda dynaamisia käsikirjoitus prosessorit, 718 00:37:50,398 --> 00:37:52,940 En edes tiedä, mitä se on, sekoittamiseen kanavan fuusioita 719 00:37:52,940 --> 00:37:55,930 ja kanava hakkurit ja kaikki. 720 00:37:55,930 --> 00:37:56,430 Viileä. 721 00:37:56,430 --> 00:37:59,560 722 00:37:59,560 --> 00:38:01,390 >> Joten tämä on vain Esimerkki putkilinjan. 723 00:38:01,390 --> 00:38:03,580 Joten meillä on kolme lähteistä tulossa. 724 00:38:03,580 --> 00:38:06,830 Ehkä nämä ovat aaltomuodot, ehkä nämä ovat MP3. 725 00:38:06,830 --> 00:38:08,740 Yksi menee läpi suodatin, toinen n 726 00:38:08,740 --> 00:38:12,404 saada vääristynyt toinen oman vieritys vasemmalle ja oikealle. 727 00:38:12,404 --> 00:38:15,320 Voit tehdä kaikenlaisia ​​asioita ja ne kaikki menevät sekaisin ympäri yhteen, 728 00:38:15,320 --> 00:38:18,880 ja sitten ulos tulee ääni lopussa, kun määränpää. 729 00:38:18,880 --> 00:38:22,720 Tämä on esimerkki siitä, mitä muuta monimutkainen Web Audio koodi näyttää. 730 00:38:22,720 --> 00:38:26,720 Luot kaikki nämä erilaisia ​​esineitä oikeassa here-- 731 00:38:26,720 --> 00:38:27,706 En ole varma tästä. 732 00:38:27,706 --> 00:38:29,120 Ei, se ei lähentää. 733 00:38:29,120 --> 00:38:29,620 OK. 734 00:38:29,620 --> 00:38:31,257 >> SAM VIHREÄ: Et Ohjaus, Scroll-Up. 735 00:38:31,257 --> 00:38:32,590 HUGH Zabriskie: Ohjaus Scroll-- 736 00:38:32,590 --> 00:38:33,000 SAM GREEN: Ei, ei. 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: Voi, ohjaus, Siirry? 740 00:38:38,140 --> 00:38:38,780 Voi, Sainpas. 741 00:38:38,780 --> 00:38:41,480 Joo. 742 00:38:41,480 --> 00:38:42,240 Vau, Ehei, nope. 743 00:38:42,240 --> 00:38:42,740 OK. 744 00:38:42,740 --> 00:38:46,090 En tee sitä. 745 00:38:46,090 --> 00:38:48,300 >> Niin joo, tässä ensimmäisessä kohta täällä, näet 746 00:38:48,300 --> 00:38:52,720 Luomme kaikki nämä eri solmut ulos yhteydessä. 747 00:38:52,720 --> 00:38:54,980 Me vain vähitellen luonut heidät yhdessä toisessa osassa 748 00:38:54,980 --> 00:38:56,980 Tämän toiminto nimeltään Connect. 749 00:38:56,980 --> 00:38:58,830 Se on todella keskeinen toiminto Web Audio. 750 00:38:58,830 --> 00:39:01,930 Se vain tarkoittaa, kun olet tehnyt jotain ääntä yhdessä solmussa, 751 00:39:01,930 --> 00:39:03,705 välittää sen seuraavalle solmulle. 752 00:39:03,705 --> 00:39:05,830 Joten meillä on lähde, se yhteyden analysaattori, 753 00:39:05,830 --> 00:39:09,140 analysaattori tekee jotain sen kanssa, se menee vääristymistä, ja niin edelleen, 754 00:39:09,140 --> 00:39:12,725 ja määränpäähän alareunassa täällä. 755 00:39:12,725 --> 00:39:13,225 Viileä. 756 00:39:13,225 --> 00:39:14,640 OK, joten me jatkamme liikkuu. 757 00:39:14,640 --> 00:39:17,180 >> Pipeline-- uudelleen, nämä ovat yleisimpiä putkilinjojen, 758 00:39:17,180 --> 00:39:21,300 joten puhumme kaikki nämä asiat, kuten vääristymä, panorointi, kaikki jutut. 759 00:39:21,300 --> 00:39:24,280 Jos olet todella kiinnostunut käytössä asiat Pro Tools, 760 00:39:24,280 --> 00:39:25,820 ne luultavasti kiinnostaa sinua. 761 00:39:25,820 --> 00:39:27,740 Jos ei, ehkä vain haluat toistaa äänen, 762 00:39:27,740 --> 00:39:29,990 tai ehkä haluat vain Aseta äänenvoimakkuus äänen. 763 00:39:29,990 --> 00:39:35,270 Ne ovat kaksi yleisintä lajitella putkistojen äänen tuotanto. 764 00:39:35,270 --> 00:39:38,640 >> Jälleen miten voit ottaa sen niin oscillator-- niin, katsotaanpa 765 00:39:38,640 --> 00:39:42,460 tehdä demo, että täällä. 766 00:39:42,460 --> 00:39:47,090 767 00:39:47,090 --> 00:39:52,225 Joten aiomme luoda yksinkertainen audio yhteydessä täällä, 768 00:39:52,225 --> 00:39:54,350 ja että olemme menossa luoda meidän oskillaattori. 769 00:39:54,350 --> 00:39:58,620 Niin että on, jälleen, olemme vain menossa soittaa Luo Oscillator. 770 00:39:58,620 --> 00:40:07,030 Aiomme asettaa taajuuden että, 440 Hertz, kaikkien suosikki. 771 00:40:07,030 --> 00:40:13,290 Sitten liittää kyseisen määränpäähän point-- joka on kaiutin, niin 772 00:40:13,290 --> 00:40:15,750 yhteydessä määränpää. 773 00:40:15,750 --> 00:40:21,400 Lopuksi, me vain sanoa, aloita nolla sekunnin päästä, ja meillä on ääni? 774 00:40:21,400 --> 00:40:22,400 >> [RINGING] 775 00:40:22,400 --> 00:40:24,980 >> HUGH Zabriskie: Nyt mennään. 776 00:40:24,980 --> 00:40:25,940 Se on vain siniaallon. 777 00:40:25,940 --> 00:40:26,440 OK, viileä. 778 00:40:26,440 --> 00:40:28,274 Ja sitten me lopetamme sen. 779 00:40:28,274 --> 00:40:30,520 >> Yleisö: Mistä että palaute tulee? 780 00:40:30,520 --> 00:40:31,250 >> HUGH Zabriskie: palautetta? 781 00:40:31,250 --> 00:40:32,458 Voi, luultavasti meidän mikrofonit. 782 00:40:32,458 --> 00:40:34,221 783 00:40:34,221 --> 00:40:35,470 Niin joo, se miten teet sen. 784 00:40:35,470 --> 00:40:37,261 Ja itse asiassa, jos olisin piti sen käynnissä, voit 785 00:40:37,261 --> 00:40:39,540 voisi olla taajuus arvoa se on käynnissä, 786 00:40:39,540 --> 00:40:43,320 niin se hauska juttu leikkiä. 787 00:40:43,320 --> 00:40:44,930 Viileä. 788 00:40:44,930 --> 00:40:46,600 Se aina ihana yksi esittää. 789 00:40:46,600 --> 00:40:48,792 >> SAM VIHREÄ: Meillä ei ajatella, että ei me? 790 00:40:48,792 --> 00:40:50,500 HUGH Zabriskie: Joo, se ilkeä yksi. 791 00:40:50,500 --> 00:40:53,249 Joten, puskuri loading-- näytän esimerkki tästä aivan lopussa. 792 00:40:53,249 --> 00:40:55,090 Joka on lastaus MP3. 793 00:40:55,090 --> 00:40:58,880 Ja mikrofoni, käytät vain toiminto nimeltään Navigator.getUserMedia () 794 00:40:58,880 --> 00:41:03,240 pyytää pääsy käyttäjän mikrofoni tästä tiedosta. 795 00:41:03,240 --> 00:41:05,610 >> Tässä suodatus, minä vain pysyä liikkeellä tästä. 796 00:41:05,610 --> 00:41:08,600 Tämä on melko korkea, mutta suodattimet vain voit 797 00:41:08,600 --> 00:41:16,154 >> [Piippaa] 798 00:41:16,154 --> 00:41:18,320 Suodatus voi myös luoda asioita, kuten pinkki 799 00:41:18,320 --> 00:41:20,050 melu, ruskea melu, valkoista kohinaa. 800 00:41:20,050 --> 00:41:24,330 Jos haluat luoda puhdasta melua, joka jotkut ihmiset rakastavat pelleillä, 801 00:41:24,330 --> 00:41:27,490 voit käyttää Web-Audio suodatus tehdä niin. 802 00:41:27,490 --> 00:41:30,039 >> Audio Panning-- niin kuvitella Jos kirjoitat peli 803 00:41:30,039 --> 00:41:32,330 ja haluat äänen kuulostaa se tulee, kuten, 804 00:41:32,330 --> 00:41:36,090 ammunta ruudun poikki, sinä voivat käyttää panorointia audio 805 00:41:36,090 --> 00:41:39,770 luoda tällainen kartio, joka like-- ihan Mathy, 806 00:41:39,770 --> 00:41:41,850 mutta se on oikeastaan ​​todella viileä jos saat sen toimimaan, 807 00:41:41,850 --> 00:41:44,500 ja siellä on hyviä tutorials se voin lähettää sinulle. 808 00:41:44,500 --> 00:41:46,400 Pohjimmiltaan, voit laji luovat äänen 809 00:41:46,400 --> 00:41:50,480 jotain menossa 3D-tavalla. 810 00:41:50,480 --> 00:41:57,350 Ja jos sinulla on DJ kiinnostusta, voit Aloita sekoittamalla ja rajat häipyminen lauluja. 811 00:41:57,350 --> 00:42:01,260 >> Tämä on vain muutama yksinkertainen koodi, periaatteessa mitä tein ennen. 812 00:42:01,260 --> 00:42:06,140 Tämä asettaa tilavuus oskillaattori, joten luomme oskillaattori 813 00:42:06,140 --> 00:42:07,380 joka luo aaltomuoto. 814 00:42:07,380 --> 00:42:09,940 Luomme GainNode, asettaneet taajuus, 815 00:42:09,940 --> 00:42:14,170 ja liitä oskillaattorin GainNode, joka sitten periaatteessa muuttaa 816 00:42:14,170 --> 00:42:16,760 kuinka paljon signaali on sallittu kautta. 817 00:42:16,760 --> 00:42:20,467 Mutta oikeasti, se on digitaalinen asia, joten se on enemmän just-- joo. 818 00:42:20,467 --> 00:42:23,550 Se ei ole mitä todella tapahtuu, mutta se mitä tapahtuu tosielämässä 819 00:42:23,550 --> 00:42:24,393 jossa voitto. 820 00:42:24,393 --> 00:42:27,258 >> Yleisö: --quantization tilavuuden parametrin? 821 00:42:27,258 --> 00:42:28,174 HUGH Zabriskie: Anteeksi? 822 00:42:28,174 --> 00:42:30,360 Yleisö: Onko se kvantisoitu tilavuus parametri? 823 00:42:30,360 --> 00:42:31,840 HUGH Zabriskie: Joo. 824 00:42:31,840 --> 00:42:34,620 Ja tämä on yksi asia, olen todella puutteellisia minun tietoon, 825 00:42:34,620 --> 00:42:38,010 miten saada toimii digitaalisen tasolla. 826 00:42:38,010 --> 00:42:40,140 Tiedän todellinen signaaleja, se on pohjimmiltaan 827 00:42:40,140 --> 00:42:45,120 valvoa, kuinka paljon olet signaalin vahvistamiseksi. 828 00:42:45,120 --> 00:42:47,017 Niin, joo. 829 00:42:47,017 --> 00:42:50,100 Lähetän sinulle lisää tietoa että, koska olisin utelias todella 830 00:42:50,100 --> 00:42:51,099 tietää enemmän siitä. 831 00:42:51,099 --> 00:42:54,090 Mutta pohjimmiltaan parametrit ovat, yksi on fold-- 832 00:42:54,090 --> 00:42:59,690 kovempaa signal-- ja nolla ei signaali, tai et kuule mitään ääntä. 833 00:42:59,690 --> 00:43:03,150 Me ohittaa demo aikaa, että koska se on pohjimmiltaan mitä tein ennen. 834 00:43:03,150 --> 00:43:07,630 Ja vielä, Context.Destination on äänen kohdesolmu. 835 00:43:07,630 --> 00:43:08,360 Mahtavaa, OK. 836 00:43:08,360 --> 00:43:10,470 >> Joten aion tehdä nopeasti kaksi demoa. 837 00:43:10,470 --> 00:43:11,760 Miten pärjäämme ajoissa? 838 00:43:11,760 --> 00:43:12,640 >> SPEAKER 1: Noin 10 minuuttia. 839 00:43:12,640 --> 00:43:13,130 >> HUGH Zabriskie: 10 minuuttia? 840 00:43:13,130 --> 00:43:13,630 Hienoa! 841 00:43:13,630 --> 00:43:14,320 Mahtava. 842 00:43:14,320 --> 00:43:19,010 >> Joten ensimmäinen aion do, sitä kutsutaan My Favorite Song. 843 00:43:19,010 --> 00:43:22,410 Joten tämä on vain pikku HTML JavaScript. 844 00:43:22,410 --> 00:43:25,510 Aiomme olla kaksi painiketta sivulla pelata minun suosikki laulu 845 00:43:25,510 --> 00:43:29,192 ja lopettaa minun suosikki biisi. 846 00:43:29,192 --> 00:43:30,180 Minä muuttaa. 847 00:43:30,180 --> 00:43:32,110 >> Yleisö: Peitä mikrofoni. 848 00:43:32,110 --> 00:43:33,430 >> HUGH Zabriskie: Joo. 849 00:43:33,430 --> 00:43:36,300 Ja olen ladattu täällä skripti, joka basically-- 850 00:43:36,300 --> 00:43:38,520 ja tämä on todella hyödyllinen lataamiseksi MP3, 851 00:43:38,520 --> 00:43:41,820 joten tämä vain tekee lastaus MP3 perille nopeammin. 852 00:43:41,820 --> 00:43:44,180 Se on pohjimmiltaan vain kääre. 853 00:43:44,180 --> 00:43:48,737 Se vain tekee prosessin lastausta MP3 paljon nopeammin, 854 00:43:48,737 --> 00:43:51,570 muuten käytät HTTP-pyynnön, ikään kuin mitä teimme 855 00:43:51,570 --> 00:43:53,950 nykyisestä osainen sarja, jossa palvelin. 856 00:43:53,950 --> 00:43:55,950 Se on todella ruma, sinua eivät halua tehdä sitä. 857 00:43:55,950 --> 00:44:04,110 >> Joten tämä kaveri, Boris pk-yritykset, kirjoitti todella hyödyllinen pikku työkalu nimeltään BufferLoader. 858 00:44:04,110 --> 00:44:08,780 Kaikki sinun on yksinkertaisesti siirtää se yhteydessä, ohitat sen list-- 859 00:44:08,780 --> 00:44:11,327 tai, joo, on se lista JavaScript? 860 00:44:11,327 --> 00:44:12,160 SAM VIHREÄ: array. 861 00:44:12,160 --> 00:44:14,201 HUGH Zabriskie: Voi, se on array, se on totta. 862 00:44:14,201 --> 00:44:18,660 Se joukko polkuja eri tiedostoja. 863 00:44:18,660 --> 00:44:21,990 Ja sitten ohitat sen funktio. 864 00:44:21,990 --> 00:44:25,530 Tämä on soittopyyntö puhuimme noin asynkroninen lastaus. 865 00:44:25,530 --> 00:44:28,720 Tämä on nimeltään Kun tiedostot ladataan. 866 00:44:28,720 --> 00:44:33,780 Ja että toiminto, jota kutsutaan kun tiedosto kuormitettujen vie niin kehä 867 00:44:33,780 --> 00:44:35,840 joukko ladattu puskureita. 868 00:44:35,840 --> 00:44:37,990 Niin että tapahtuu täällä. 869 00:44:37,990 --> 00:44:41,180 Pohjimmiltaan, BufferList on tulee olemaan yksi value-- 870 00:44:41,180 --> 00:44:46,380 tai se tulee olemaan joukko pituus yksi, joka on siinä hakemistotilassa 871 00:44:46,380 --> 00:44:51,320 nolla koko ladattu tiedosto MP3. 872 00:44:51,320 --> 00:44:53,320 Joten mitä teen, kun lopetan lastaus on, en yksinkertaisesti 873 00:44:53,320 --> 00:44:57,430 luodaan puskuri lähde, joka on audiopuskurin lähtösolmun. 874 00:44:57,430 --> 00:45:03,410 Seuraava askel on lataan vuonna source.buffer kuin koko ladattu puskuri 875 00:45:03,410 --> 00:45:06,740 alkaen BufferList-- se on paljon buffers-- 876 00:45:06,740 --> 00:45:10,255 ja sitten liität että ääni puskuri määränpäähän. 877 00:45:10,255 --> 00:45:12,380 Joten mitä se aikoo tehdä on vain yksinkertaisesti laittaa MP3 878 00:45:12,380 --> 00:45:15,260 suoraan läpi lähtöön, ja aloittaa sen heti 879 00:45:15,260 --> 00:45:18,010 kun saada tämä puhelu. 880 00:45:18,010 --> 00:45:21,660 >> Viileä, joten katsotaanpa tämä tapahtuu toiminnassa. 881 00:45:21,660 --> 00:45:24,490 Omat [äänetön] täällä, katsotaanpa. 882 00:45:24,490 --> 00:45:26,430 Joten olen juuri menossa aloittaa perus-palvelimen. 883 00:45:26,430 --> 00:45:28,660 Se on jotain, joka sinun ei tarvitse tehdä, jos olet 884 00:45:28,660 --> 00:45:32,490 tehden pyyntöjä lastaus tiedostoja. 885 00:45:32,490 --> 00:45:34,140 Aion aloittaa perus-palvelimen. 886 00:45:34,140 --> 00:45:38,200 Tämä on pohjimmiltaan koko PSET nyt yhdellä rivillä, 887 00:45:38,200 --> 00:45:43,930 mutta se on vasta aloittelemassa palvelimen portti 80/80. 888 00:45:43,930 --> 00:45:47,300 Joten mennään tänne, me menossa ladata 80/80, 889 00:45:47,300 --> 00:45:49,110 aiomme mennä My Favorite Song. 890 00:45:49,110 --> 00:45:51,660 Joten jos osuin "Play my suosikki laulu "juuri nyt, 891 00:45:51,660 --> 00:45:53,964 se tulee ladata minun suosikki laulu ja pelata it-- 892 00:45:53,964 --> 00:45:55,880 [MUSIC - Eagles, "Life nopeasti  KAISTA"] 893 00:45:55,880 --> 00:46:00,490 --which sattuu olemaan "Elämä Fast Lane "The Eagles. 894 00:46:00,490 --> 00:46:06,346 Nyt, voisin lyödä "lopetan suosikki laulu "ja toistaa sen. 895 00:46:06,346 --> 00:46:09,160 >> [MUSIC - Eagles, "Life nopeasti  KAISTA"] 896 00:46:09,160 --> 00:46:18,340 >> Ja vaikka minä menen yli lohduttaa, koska Käytin globaali muuttuja täällä 897 00:46:18,340 --> 00:46:23,390 seurata tämän arvon, se todella nyt tunnustetaan konsoli. 898 00:46:23,390 --> 00:46:25,160 Niin se auto-luo minulle. 899 00:46:25,160 --> 00:46:29,991 Niin, että mitä pelissä juuri nyt, ja voin vain soittaa source.stop () 900 00:46:29,991 --> 00:46:30,490 siinä. 901 00:46:30,490 --> 00:46:34,930 902 00:46:34,930 --> 00:46:35,860 No, tiedätkö mitä? 903 00:46:35,860 --> 00:46:39,760 Just niin te kuulleet tästä song-- saatat tunnistaa tämän laulun. 904 00:46:39,760 --> 00:46:41,801 >> [Musiikki - Rick Astley, "ei koskaan aio antaa  You Up "] 905 00:46:41,801 --> 00:46:42,299 906 00:46:42,299 --> 00:46:44,215 [MUSIC - Eagles, "Life nopeasti  KAISTA"] 907 00:46:44,215 --> 00:46:46,195 Olemme nyt kaikki on Rickrolled. 908 00:46:46,195 --> 00:46:50,155 OK, suuri, liikkuu. 909 00:46:50,155 --> 00:46:51,160 Viileä. 910 00:46:51,160 --> 00:46:54,554 Joten tämä on periaatteessa esimerkki miten voit ladata MP3 file-- 911 00:46:54,554 --> 00:46:56,470 [MUSIC - Eagles, "Life nopeasti  KAISTA"] 912 00:46:56,470 --> 00:46:59,590 --and pelata, ja lopeta ja käynnistä se. 913 00:46:59,590 --> 00:47:03,008 Olisin voinut tehdä paljon enemmän [äänetön] 914 00:47:03,008 --> 00:47:07,570 >> Viimeinen teen on, Näytän sinulle [kuultavissa]. 915 00:47:07,570 --> 00:47:18,070 >> [Musiikkia] 916 00:47:18,070 --> 00:47:21,800 >> Se on kuin, ogg.wave.mp3. 917 00:47:21,800 --> 00:47:26,450 Uskon, jos muistan oikein, Olen törmätä joitakin ongelmia .m4a, 918 00:47:26,450 --> 00:47:27,721 mutta en ole varma siitä. 919 00:47:27,721 --> 00:47:28,470 Mielestäni mp3.wave-- 920 00:47:28,470 --> 00:47:28,930 921 00:47:28,930 --> 00:47:30,971 >> [Musiikki - Rick Astley, "ei koskaan aio antaa  You Up "] 922 00:47:30,971 --> 00:47:35,930 923 00:47:35,930 --> 00:47:36,500 >> OK, suuri. 924 00:47:36,500 --> 00:47:37,625 Minun ei olisi pitänyt sanoa, että. 925 00:47:37,625 --> 00:47:40,570 Joka tapauksessa, hei. 926 00:47:40,570 --> 00:47:43,430 927 00:47:43,430 --> 00:47:45,490 Joten meillä on tämä avoin. 928 00:47:45,490 --> 00:47:52,320 Joten nyt kaikki mitä teen on, olen periaatteessa luonut Syntaksi luoda musiikkia. 929 00:47:52,320 --> 00:47:57,610 Joten jos en jotain, lisätä G4 1 2, mitä tämä tarkoittaa, että, 930 00:47:57,610 --> 00:48:00,950 Lisää piano huomata, G4, joka on neljäs G- 931 00:48:00,950 --> 00:48:02,680 ylös piano pohjasta. 932 00:48:02,680 --> 00:48:05,930 Joten tämä on tavallaan MIDI puhua, joten niille, jotka ovat musiikin perustuu, 933 00:48:05,930 --> 00:48:07,860 tämä on vain MIDI muistiinpanoja. 934 00:48:07,860 --> 00:48:10,090 >> Yleisö: Se on G Lähi C, eikö? 935 00:48:10,090 --> 00:48:11,840 >> HUGH Zabriskie: Tämä on G- Edellä Lähi C, aivan oikein. 936 00:48:11,840 --> 00:48:12,470 >> Yleisö: Above Lähi C. 937 00:48:12,470 --> 00:48:13,345 >> HUGH Zabriskie: Joo. 938 00:48:13,345 --> 00:48:14,340 Oikeastaan ​​kyllä. 939 00:48:14,340 --> 00:48:16,131 Taisin itse tehnyt se yksi [kuulumaton], 940 00:48:16,131 --> 00:48:18,860 joten tämä voi olla oktaavin yläpuolella. 941 00:48:18,860 --> 00:48:20,070 Katsotaanpa. 942 00:48:20,070 --> 00:48:21,152 Jos osuin Play-- 943 00:48:21,152 --> 00:48:22,110 [TOISTUVAISLENTOSUUNNITELMAT PIANO HUOM] 944 00:48:22,110 --> 00:48:23,200 --we're menossa kuulla. 945 00:48:23,200 --> 00:48:25,700 Ajatuksena on, että se toimii kuten komentoriviltä olisi, 946 00:48:25,700 --> 00:48:27,510 joten jos menen ylös ja alas minun näppäimistö, sinua 947 00:48:27,510 --> 00:48:31,550 voi palata edelliseen komentoja, joka on melko hyödyllinen. 948 00:48:31,550 --> 00:48:35,136 Ja alla on minun luettelo kappaleita, jotka kaikki käynnissä silmukka. 949 00:48:35,136 --> 00:48:38,260 >> Yleisö: Olit olettaen 88-avain näppäimistö, eikö? 950 00:48:38,260 --> 00:48:41,051 >> HUGH Zabriskie: kysymys oli, olen olettaen 88-avain näppäimistö, 951 00:48:41,051 --> 00:48:41,990 ja kyllä, olen. 952 00:48:41,990 --> 00:48:45,030 Mitä tein on I pohjimmiltaan otti 88 näytettä 953 00:48:45,030 --> 00:48:46,970 piano, yksi kullekin merkille. 954 00:48:46,970 --> 00:48:49,180 Ja niin joka kerta, kun kuulla muistio nyt, 955 00:48:49,180 --> 00:48:57,550 että on itse asiassa silmukka, joka näyttää like-- Tämä alkaa pelataan silmukka, 956 00:48:57,550 --> 00:49:00,120 joten jokaiselle merkille, tämä on käynnissä. 957 00:49:00,120 --> 00:49:02,860 Mitä tapahtuu on, minä luodaan puskuri uudelleen, 958 00:49:02,860 --> 00:49:06,010 Luon voitto solmun säätää äänenvoimakkuutta. 959 00:49:06,010 --> 00:49:08,240 Tämä vain todella monimutkainen tapa sanoa I 960 00:49:08,240 --> 00:49:10,550 säilytä puskuri source.buffer. 961 00:49:10,550 --> 00:49:13,160 Annan se voitto, olen liitä se voitto, 962 00:49:13,160 --> 00:49:15,576 vahvistus on kytketty tuotos, ja sitten minä pelata sitä. 963 00:49:15,576 --> 00:49:20,735 Tämä on siis sellainen prosessi ottaa puskurissa lähde. 964 00:49:20,735 --> 00:49:24,820 >> Yleisö: Voitko itse ottaa, että kuiva ääni ja kastelevat sen [äänetön]? 965 00:49:24,820 --> 00:49:26,260 >> HUGH Zabriskie: Voit, joo. 966 00:49:26,260 --> 00:49:29,260 Ei uudelleen verbi, siellä viive, särö. 967 00:49:29,260 --> 00:49:33,260 Voit periaatteessa laittaa mitään välillä, että sandwich of-- hyvin, 968 00:49:33,260 --> 00:49:37,660 putki on parempi metafora, mutta voit lisätä mitään, että. 969 00:49:37,660 --> 00:49:38,200 Viileä. 970 00:49:38,200 --> 00:49:40,280 >> Niin minä loppuun demo täällä antaa sinulle tunteen 971 00:49:40,280 --> 00:49:46,390 vain pelkkä monta kertaa olet voi suorittaa tämän tehtävän kaikki kerralla. 972 00:49:46,390 --> 00:49:49,280 Joten aion poistaa tämän. 973 00:49:49,280 --> 00:49:59,110 Aion luoda generaattori that-- periaatteessa mitä does-- tämä on todella 974 00:49:59,110 --> 00:50:04,220 Tällainen monimutkainen syntax-- mutta se on menossa tuottaa muistiinpanoja lennossa, 975 00:50:04,220 --> 00:50:06,601 ja juuri aloittaa pelaaminen niitä se arvioi niitä. 976 00:50:06,601 --> 00:50:07,392 [Väliin PIANO] 977 00:50:07,392 --> 00:50:10,990 978 00:50:10,990 --> 00:50:12,817 >> Joten voimme vain tehdä vähän musiikkia täällä. 979 00:50:12,817 --> 00:50:13,608 [Väliin PIANO] 980 00:50:13,608 --> 00:50:39,570 981 00:50:39,570 --> 00:50:41,470 >> Joten mitä tämä komento ei, esimerkiksi, on 982 00:50:41,470 --> 00:50:46,910 se ryhtyy kolmen muistiinpanoja piano ja sitten laittaa ne B3. 983 00:50:46,910 --> 00:50:48,660 Tämä syntaksi saattaa tehdä hieman enemmän järkeä 984 00:50:48,660 --> 00:50:50,590 niille, jotka ovat musiikkia taustalla täällä. 985 00:50:50,590 --> 00:50:55,180 986 00:50:55,180 --> 00:50:56,551 >> Voin lisätä bassorumpu. 987 00:50:56,551 --> 00:50:57,050 Voin-- 988 00:50:57,050 --> 00:50:58,048 >> [Väliin INSTRUMENTS] 989 00:50:58,048 --> 00:50:59,256 >> --just leikkiä että. 990 00:50:59,256 --> 00:51:12,519 991 00:51:12,519 --> 00:51:13,474 >> Joten voit make-- 992 00:51:13,474 --> 00:51:14,515 [Väliin INSTRUMENTS] 993 00:51:14,515 --> 00:51:15,513 Tuo on hieman harmittaa. 994 00:51:15,513 --> 00:51:16,554 [Väliin INSTRUMENTS] 995 00:51:16,554 --> 00:51:26,491 996 00:51:26,491 --> 00:51:30,981 >> Niin että satunnaisesti lisää kuiva symbaali joka 16. merkille, jossa 16% 997 00:51:30,981 --> 00:51:31,481 [KUULUMATON]. 998 00:51:31,481 --> 00:51:32,522 >> [Väliin INSTRUMENTS] 999 00:51:32,522 --> 00:51:40,962 1000 00:51:40,962 --> 00:51:50,400 >> Joo, niin miten tämä works-- se on aina 4: 4. 1001 00:51:50,400 --> 00:51:51,441 [Väliin INSTRUMENTS] 1002 00:51:51,441 --> 00:52:06,910 1003 00:52:06,910 --> 00:52:10,902 >> Joo, joten neljän vuosineljänneksen ja 16/8. 1004 00:52:10,902 --> 00:52:14,851 1005 00:52:14,851 --> 00:52:15,892 [Väliin INSTRUMENTS] 1006 00:52:15,892 --> 00:52:27,970 1007 00:52:27,970 --> 00:52:33,780 >> Niin keskimäärin, saat 60% Osumia 16. toteaa. 1008 00:52:33,780 --> 00:52:35,990 >> Anyways, tämä oli vain Tällainen keuliminen 1009 00:52:35,990 --> 00:52:39,780 joitakin asioita voisit rakentaa Web Audio API. 1010 00:52:39,780 --> 00:52:43,840 Se on todella voimakas, se on todella nopea, ja voit tehdä paljon hienoja asioita 1011 00:52:43,840 --> 00:52:44,340 sen kanssa. 1012 00:52:44,340 --> 00:52:51,260 Joten jälleen, kysymyksiä sinulla on, sähköposti myself-- Hugh-- tai Sam, 1013 00:52:51,260 --> 00:52:55,869 ja rehellisesti, Google on ton hyviä resursseja. 1014 00:52:55,869 --> 00:52:56,660 Viimeisiä kysymyksiä? 1015 00:52:56,660 --> 00:52:57,970 Joo. 1016 00:52:57,970 --> 00:53:00,790 >> Yleisö: joten voit käyttää sisäänrakennettu mikrofoni. 1017 00:53:00,790 --> 00:53:03,089 Mitä jos halusi käyttää paremmin mikrofonia? 1018 00:53:03,089 --> 00:53:05,380 HUGH Zabriskie: Jos halusi käyttää paremmin mikrofonia? 1019 00:53:05,380 --> 00:53:11,320 Joten jälleen, tämä on osa abstraktio välillä Chrome 1020 00:53:11,320 --> 00:53:12,950 ja loput tietokoneen. 1021 00:53:12,950 --> 00:53:18,950 Ellei se on saatavilla kautta API, kuten Web MIDI API, 1022 00:53:18,950 --> 00:53:22,030 voisit ehkä löytää hakata, mutta yleensä ei kuin mahdollista. 1023 00:53:22,030 --> 00:53:25,300 >> SAM VIHREÄ: Voit also-- kaikki Chrome tietää 1024 00:53:25,300 --> 00:53:28,820 on mitä oletus mikrofoni on, ja se pääsee että. 1025 00:53:28,820 --> 00:53:33,410 Joten jos sinulla on ollut mikrofoni voisit asettaa tietokoneen oletuksena mikrofoni, 1026 00:53:33,410 --> 00:53:35,990 voit käyttää sitä tällä tavalla ja se olisi todennäköisesti toimi. 1027 00:53:35,990 --> 00:53:37,490 HUGH Zabriskie: Se on hyvä kohta. 1028 00:53:37,490 --> 00:53:39,656 En ole koskaan kokeillut sitä, mutta saatat pystyä eräänlainen 1029 00:53:39,656 --> 00:53:45,700 of-- jos ohjaat tulo puhuja, voit ehkä tehdä niin, joo. 1030 00:53:45,700 --> 00:53:48,360 >> Viimeisiä kysymyksiä? 1031 00:53:48,360 --> 00:53:49,340 Viileä. 1032 00:53:49,340 --> 00:53:51,680 Hyvin kiitos kaverit niin paljon katseluun. 1033 00:53:51,680 --> 00:53:52,199 Olen Hugh. 1034 00:53:52,199 --> 00:53:52,990 SAM VIHREÄ: Olen Sam. 1035 00:53:52,990 --> 00:53:55,410 HUGH Zabriskie: Ja tämä on CS50. 1036 00:53:55,410 --> 00:53:56,767