>> SAM GREEN: Hi, allir.
Velkomið að námskeið okkar.
Mitt nafn er Sam.
HUGH Zabriskie: Ég er Hugh.
SAM GREEN: Og við erum að fara að tala í dag um JavaScript og Web Audio API.
Bara að byrja út, þetta er yfirlit af dagskrá okkar fyrir námskeiðinu.
Við erum að fara að byrja á því að tala um hvers vegna þú ættir að vera áhuga á vefnum
Audio API, hvers vegna er JavaScript tungumálið sem þú þarft fyrir það,
og þá tala um JavaScript essentials-- svo eins,
ganga í gegnum sumir Grunnurinn af tungumáli,
og þá tala um hljóð API á háu stigi.
Þá Hugh mun tala um suma af stigum hljóð framleiðslu
og þá kynningu þetta frábæra sequencer verkefni sem hann byggði og sýna þér kóðann.
Og þá munum við hafa tíma fyrir spurningar í lok fyrir fólk
sem eru hér búa.
>> HUGH Zabriskie: Cool.
>> SAM GREEN: Cool.
>> HUGH Zabriskie: Cool.
Ég mun aftur upp.
>> SAM GREEN: Svo fyrsta sem fyrst.
Svo einn af the mikill hlutur um Web Audio API
er að það er ekki sett upp krafist.
Það kemur innbyggður-í flestum vöfrum
þ.mt Chrome, Edge, í heild fullt af others-- öllum þeim sem
að stór hluti af fólk er að nota í dag.
Þannig að það er ekki sett upp, innskot frá bara að
a vefur framreiðslumaður fara, fyrir þú þarft að byrja að vinna
á verkefninu, sem er frábært.
>> Við mælum með nokkuð mikið að þú telur
nota Chrome fyrir JavaScript vefur þróun,
bara vegna þess að verktaki þess verkfæri eru mjög sterk.
Sem dæmi um það sem er átt við með því að segja opna JavaScript
console-- ef þú ferð inn á Chrome og þú horfir á hvaða vefsíðu,
og þú vinstri smella Skoðið Element, og þá
þú ferð á þetta litla fellivalmyndinni hérna og þú smellir á Console,
þú munt sjá hvað opnast lítur mikið eins og stjórn hvetja sem þér
gætir séð á þinn Lagsi, eða á auðkenni.
Og bara svona, við getum gerð skipanir hér, eins Hreinsa,
og aðrar skipanir eins og þessi.
Við getum búið til breytur, eins og við munum sjá síðar í JavaScript.
Og svo eitthvað sem við getum gert í JavaScript, getum við gert með vélinni,
og það er frábær handlaginn leið til byrja að spila í kring með API
og fá sætt sig við JavaScript strax the kylfa.
Ekki sett upp þarf, sem er mjög gott.
Cool.
Awesome.
>> Svo bara eitt í viðbót til að bæta við.
Ef þú hefur einhverjar questions-- það eru mörg ykkar sem eru ekki hér lifa,
ekki hika við að senda us-- þessar eru netföng okkar.
Ef þú hefur spurningar þú vilt ekki að spyrja okkur,
eins, ó ég hef galla í númerið mitt, eða eitthvað
það er svolítið nákvæmari, kannski Google það fyrst.
There ert a einhver fjöldi af mikill auðlindir Um vefinn Audio API þarna úti.
Það er mjög vel skjalfest og það er að vera
nota tonn af fólki í iðnaður, og fólk sem er bara
byggja stuð fyrir sig.
Þannig að það ætti að vera mikið auðlindir þarna úti.
Awesome.
>> Cool, svo hvers vegna Web Audio API?
Þessi skýringarmynd er svolítið af þróun leiðinni
hljóð á vefnum hefur vaxið með tímanum.
Bgsound var eins upprunalegu HTML tag sem Internet Explorer að nota til að styðja.
Það leyfa aðeins laglegur undirstöðu hljóð, virkni var ekki mjög sterkur,
og þú getur ekki gert flókið raðgreiningu,
eða stjórna þegar hljóð byrjaði og hætt mjög robustly.
Svo var það ekki sérlega vel þróuð.
Svo eftir að Flash kom along-- sem
Ég er viss um að þið erum öll kunnugur með Flash-- kannski ekki hvernig það virkar,
en þú hefur örugglega séð það.
Þú hefur got til að uppfæra Flash Stinga í, allt þannig efni,
og sem vissulega aukið svið af virkni sem var í boði.
En gera notanda að setja a tappi-í er ákveðið
galli að meðtöldum Flash í umsókn þinni, ekki satt?
Því þá ert háður því að Notendur að fara og finna þessa viðbót í,
og líklega verið snúið burt með þetta auka skref
þeir þurfa að gera til að nota app.
Og þá gæti verið að uppfæra sem mun brjóta allt umsókn þína,
og það endar að vera martröð fyrir framkvæmdaraðila, of.
Svo það var barricade.
>> Og þá eftir að kom með, HTML hljóð tag, sem
er eiginleiki nútímalegri HTML-- sem vissulega leyfð mikið meira efni,
en jafnvel það sem þú gætir gert það voru svolítið takmarkað bara
sem afleiðing af þeim hlutum sem HTML var fær um.
Svo þegar JavaScript API, the Web Audio API,
varð staðalbúnaður æfa yfir vafra,
sem raunverulega breikkað sett af tækifærum fyrir hönnuði
til raunverulega fá inn bygging flott efni fyrir vefinn.
Í langan tíma hafði verið mjög sterkur verkfæri
fyrir móðurmáli hljóð forrit, like-- allir vita GarageBand,
og þá vitanlega það eru fleiri Professional Audio blöndun forrit,
og að hvers konar efni.
En það var ekki mjög gott Cloud-- ekki
Cloud, já, held ég Cloud-- vefur-undirstaða pallur
sem myndi leyfa verktaki til byggja forrit fyrir fólk
að gera hljóð blöndun.
Og eins og hann mun sýna þér síðar, the Web Audio API
gerir ráð fyrir mjög öflugur efni til að gerast í raun einfaldlega,
sem er laglegur kaldur.
Svo er að kennsla hvers vegna þú ættir að horfa á restina af námskeiðinu,
grundvallaratriðum.
>> Og nú ætla ég að fara að tala um sumir Javascript-- bara grunnþáttum
tungumálsins, svo sem við getum verið á sömu síðu
þegar við tölum um API svolítið síðar.
Cool.
>> Svo, þetta er samantekt.
Ég gleymdi að þetta var hér.
Já.
>> HUGH Zabriskie: Það er tvær glærur hér.
>> SAM GREEN: Þetta er samantekt sumir af þeim takmörkunum
á öðrum bindandi, gamla aðferðir.
Og þá nú höfum við þetta.
Cool.
Awesome.
>> Svo, JavaScript meginatriðum.
Fyrstur hlutur fyrstur, það er nokkuð marktækur munur
í JavaScript móti í Tungumál eins og C, í leiðinni
sem breytur eru búnar.
Svo í C, erum við að nota til að hafa að slá breytur okkar, ekki satt?
Og ég meina ekki tegund eins slá þá inn, ég meina tegund
eins úthluta þeim type-- merkingu eins, int, fljóta, bleikju.
Í C, við vorum í raun notað til að þurfa að búa til breytu
og þá standa við þá tegund fyrir að Allan tímann sem við notum þá breytu.
Og það er ekki endilega verra, en það er líklega erfiðara að nota.
Einn af the kaldur lögun af JavaScript er
sem breytur eru það sem er kallað "virk slegið," sem
þýðir að ég get búið til breyta með því setningafræði,
varX er 5, til dæmis.
Sem upphaflega skapar heiltala variable--
rétt undir hetta somewhere-- en ég
Hægt er að breyta þá breytu að vísa í streng
án þess að gera neitt eins og búa til nýja breytu.
Ég þarf ekki að hafa áhyggjur um gerð breytast.
JavaScript veit að gerð er breytt, og það gerist mjög virk.
>> Svo það eru kostir og galli að það,
eins og einhver sem er unnið í JavaScript um stund gæti vita.
There ert sinnum hvenær þú gætir óvart
breyta gerð breytu og ekki séð að gerð breytast,
og þá þinn JavaScript getur crash-- eða undantekning
vera kastað, því þú munt hafa röng tegund þegar þú býst eina tegund.
Cool.
>> Svo, scoping-- sem er eins, ef við muna á fyrstu vikum í námskeiðinu,
vísar til þess að sýnilega breytu er og á hvaða sviði kóðann.
Allt sem lítur mjög svipað að því hvernig það lítur í C.
Svo breytur eru scoped almennt innan hrokkið axlabönd í falli,
og svo eru líka altækt scoped breytur sem
are-- ef þú skrifar breytu utan fall,
það mun vera sýnilegur í öllu texta.
>> Einn munur JavaScript og C í lagi,
er að ef þú lýsa alþjóðlegt breyta hvar í textaskrá
það er sýnilegt í öllum aðgerðum innan þess texta skrá.
Það er rétt, ekki satt?
>> HUGH Zabriskie: Já.
>> SAM GREEN: Svo er það líka svolítið bita Funky í samanburði við C,
þar sem við höfðum alltaf að hafa okkar breytilegum skilgreiningum hér að ofan þeim stöðum
þeir voru notaðir.
Það er ekki regla sem er framfylgt lengur til, svo, svolítið öðruvísi.
Og aftur bara til að reemphasize, alþjóðlegt móti sveitarfélaga variables--
mjög svipað C Þú gætir hafa tvær breytur með sama nafni,
og hafa einn af nöfnum þeirra að skuggi með staðbundnum breytu ef einn af þeim
var alþjóðlegt.
Svo, svipað góður af vandamál sem sumir af þú
kann að hafa keyrt inn í sumir á vanda þínum setur svo langt.
Cool, svo er það breytur.
>> Control flæði, sem þýðir eins, ef-else-- rökrétt stuff-- og lykkjur.
Svo til að byrja með, þetta er það sem if-else yfirlýsingar líta út eins og í JavaScript.
The staðsetning ýmsum hlutum á línum er ekki mikilvægt.
Þetta er bara eitt af samningunum fyrir því hvernig við uppbyggingu kóða.
Rétt eins og í C, höfum við "ef" a svigi yfirlýsingu.
Það er ekki það sem ég ætlaði að gera.
Ég gerði það aftur.
>> HUGH Zabriskie: Reynt að hætta?
SAM GREEN: Nei, ég er bara að reyna að stækka.
Það skiptir ekki máli.
>> Svo höfum við "ef" yfirlýsingu og við höfum ástand innan þess
sem metur að rétt eða rangt, og sem ákvarðar hvort
við inn að kóðanum.
Og sömuleiðis, við höfum annað, ef, og An annars, rétt eins og við erum að nota í C
>> Þú getur einnig ætti að vera nokkuð vel strax the kylfa með lykkjur,
vegna þess að þeir líta einnig a einhver fjöldi eins og C lítur út.
En þú munt taka aftur að við hafa, í stað þess að INT initializations,
við höfum VAR initializations.
Og ég held að þú ert að vera varkár að gera
viss um að þú breytir ekki gildi af I frá int í streng,
til dæmis vegna þess að er að fara að valdið skrýtið hegðun þú gætir ekki
búast.
En þetta ætti að líta frekar þekki, eins vel.
>> Svo er þetta þar sem hlutirnir byrja að fá smá klikk í JavaScript
fyrir einhvern sem er að fara frá a Forsaga C. Það eru aðgerðir
í JavaScript, og það er ein leið að lýsa því yfir fall sem lítur
konar svipað C, og þá er það annað sem
lítur konar öðruvísi.
>> Fyrsta útgáfa, sem við sjáum hér,
er góður af C-eins, þar við að segja, þetta er fall,
gefa það a nafn, gefa fjöldi rök,
og þá innihald virka fara inn þessara hrokkið axlabönd.
Við munum sjá dæmi um rök í bara annað.
>> En í næstu línu, sjáum við, ó, hér er breytilegt heitir "myFunction,"
og við jafnir það að þessu almenn thing-- function-- að
virðist ekki hafa neitt að fara á.
Ástæðan fyrir því að er öðruvísi en C er að JavaScript
er það sem er kallað hagnýtur tungumál, eða hefur hagnýtur þætti, sem þýðir
sem aðgerðir eru í raun gildi.
Og það þýðir að við getum sett breytu til að jafna aðgerð
og þá fara að virka kring, gefa það sem rök,
gera alls konar efni eins og að með aðgerðum.
>> Einn annar hlutur að note-- aðgerðir eru skrifaðar
með ákveðinn fjölda rök.
Við munum sjá dæmi um fall með rök á næstu glæru.
En JavaScript verður ekki æpa á þig ef þú reynir
að nota virka með rangt fjöldi viðfanga.
Það verður bara að gera sitt besta til að gera gera, sem þýðir að ef þú framhjá,
þú hringja í aðgerð sem gerir ráð fyrir að rifrildi við engin rök, allt sem
mun gerast er að það verður að gera sitt besta til að reyna að framkvæma þessi númer,
og ef það rennur að lokum í undanþágu eða villu,
það verður kasta að undantekning og bara halda going-- sem er bara ein af þeim leiðum
sem JavaScript virkar.
Já.
>> Áhorfendur: Hvað gerist ef það er of margir rök?
SAM GREEN: Svo Spurningin var, hvað gerist
ef það eru of margir rök?
Og svarið er að JavaScript verður bara
hunsa þau sem eru eftir þeim það ráð.
Það verður að reyna að framkvæma aðgerðina kalla eins og ef það var bara fyrstu tvær.
Ekki satt?
>> HUGH Zabriskie: Það er rétt, já.
Á sama hátt, ef það eru of fáir rök,
það gefur bara svona null til allra rök það hefur ekki nein gildi
fyrir.
>> SAM GREEN: Hvaða getur reyndar verið vel, ef þú
langar að skrifa fall sem tekur breytilegan fjölda rök.
Þú getur stillt sjálfgefið gildi í skilgreiningu á hlutverki,
og það er hægt að horfa framhjá því að inntak er ekki þar.
Svo ég vil tala svolítið meira um þetta síðasta bullet
lið, sem er virka eru gildi.
Þetta er dæmi sem er svolítið hugur-blása
ef þú lest bara það, og held ekki um hvað er að gerast fyrir a second.
Svo, við skulum líta bara á fyrsta línan hér.
Við höfum þessa breytu, F1, að við segjum er fall sem gerir þetta.
Og innihald virka eru console.log ('Halló').
Þú getur hugsað console.log sem er JavaScript jafnvirði printf.
Svo hvað mun gerast er, ef við keyra þennan kóða í vafranum okkar,
það mun prenta út streng.
Ég get sýnt fram á að.
Áhorfendur: By þig inn, þó, er að meina það er verið skráð einhvers staðar?
SAM GREEN: Já.
Svo ég ætla að sýna þér hvað er að fara að gerast.
Svo spurningin var, hvað þýðir Log meina?
>> HUGH Zabriskie: Svo console.log er eins og printf fyrir C
SAM GREEN: Svo console.log er eins printf,
svo ef ég hef þetta console.log ('Halló'), og ég kalla það, band "halló"
sé prentuð út í vélinni.
Þetta er að hugga.
Það er bara eins printf, þar það prentar við hefðbundna út.
Og við munum sjá í eina mínútu, en þetta er í raun og veru
vísa í vélinni hlut, og kalla aðferð á að mótmæla.
Sem mun gera meira vit í eina mínútu þegar við
fá að tala um hlutir í JavaScript,
en ég hélt að ég myndi bara nefna það.
HUGH Zabriskie: Við erum er notað til að í C, right--
við að skrifa venjulega stór forrit í helstu að gera neitt.
En hvað er flott í JavaScript er þú hafa svona túlkur sem
keyrir í rauntíma, svo það tekur bara línu fyrir línu,
það getur bara túlka það á staðnum.
Og það heldur utan um hlutir sem hafa keyrt áður,
svo það er nokkuð gagnlegt tól til nota console.log, eða hugga,
almennt, fyrir bara að spila kring með JavaScript.
>> SAM GREEN: Svo fara aftur á þessa example-- í annarri línu af kóða
hér er nokkuð hugur-boggling í höfðinu á mér.
Í fyrsta skipti sem ég las þetta, það var eins og, hvað er að gerast?
Svo er það sem er að gerast, þetta virka yfirlýsingu segir,
Ég er með virka kallast F2 sem á von á einn rök, f,
og þá kallar það að virka, F, sem
var samþykkt að það sem rök án rök sig.
Svo, sem gæti hafa verið ruglingslegt.
Ef við skiljum þetta eins f2 tekur f1 sem rök, og þá inni F2,
F fær called-- sem þýðir að þessari línu af kóða,
eftir þessum tveimur línum númer, úrslit í "halló"
að prenta á vélinni.
>> Sú staðreynd að við getum framhjá aðgerðir um sem gildi
endar að vera einn af the öflugur lögun af JavaScript
sem forritunarmál.
Utan af öllum hér að ógnvekjandi hlutur það getur gert,
bara eins og a lögun af tungumál í skilmálar af því hvernig
að það gerir það auðvelt að forrita og leyfa
fyrir hluti sem eru ekki sérstaklega vel til þess fallin að vefnum,
hagnýtur forritun og hagnýtur forritun þætti JavaScript
er eitt af mest öflugur hugtök sem
er í Javascript-- ef þú spyrð mig.
Cool.
>> Svo, næstur hlutur.
Auk þess að vera virk, það eru líka þættir JavaScript
sem eru hlutbundin, sem er eitt af mjög
Vinsælast suð orð í tölvunarfræði.
Hlutbundin forritun er mjög vinsæll hlutur.
JavaScript er útgáfa af því, þar sem ég tel hvert gildi einnig
hlut, sem þýðir að hverjum hlut hula saman nokkur fjöldi gildi.
Svo fyrir gildi sem eru einfaldar, eins og heiltala, eins varX er 5,
að mótmæla hula bara að eitt gildi.
>> En við getum líka ímynda sér aðstæður where-- við getum hugsað um aðstæður í C
þar sem við vildum gera eitthvað með structs,
til dæmis, sem hula nokkrir gildi saman og gerir
það mjög auðvelt að fara dæminu við.
Það er þegar hlutur er í JavaScript.
>> Það er mikilvægt að muna þegar ég segi að hlutir vafinn
sumir tala af gildum saman, sem aðgerðir eru einnig
gildi, sem þýðir að virka getur einnig að vera inni í JavaScript hlut.
Og ástæðan sem er mikilvægt er, til þess að vér oft
hugsa um að hringja í aðferð á hlut sem er
af vinsælustu tíma frá öðrum Vinsælast hlutbundin tungumál,
einn af the mismunur er hér að allt sem aðferð er í JavaScript
er gildi geymt inni hlut sem sinnir sumir aðgerð hugsanlega
nota önnur gildi sem eru inni af hlutnum, en ekki endilega.
Svo þú getur ímyndað sér aðstæður, ég giska á smá brjálaður hátt,
þar sem þú kallaðir aðferð einn mótmæla á annan hlut, til dæmis.
Svo, það er svolítið angurvær á þann hátt.
>> Og þú getur líka breytt aðferðum sem eru tengd við hlut
með því að fela það aðferð A nýtt hlutverk, sem er einnig
nokkuð frábrugðin öðrum hlutbundin tungumál, þar
þegar við lýsa hlut og ræst hana,
við getum ekki breytt þeim aðferðum sem eru tengslum við að mótmæla lengur.
Svo er það nokkuð öðruvísi.
Cool.
>> Svo er hér dæmi, fyrst, á hlut í aðgerð.
Þetta er það sem er kallað almenn hlut, sem
þýðir að það hjartarskinn ekki hafa allir Einkum nafn, er ekki með bekknum,
það er bara sumir umbúðir gilda.
Og hvernig sem útlit er, við höfum þessi ytri par af hrokkið axlabönd hér
sem gefa til kynna að JavaScript og segja, þetta er hlutur.
Gildin inni af því eru hvor gildi inni
um hlut sem ætti vera pakkað saman.
Og inni hlutnum, við höfum þá lykill gildi pör,
þar sem lykillinn er átt við heiti af verðmæti inni í hlut,
og hinn side-- gegnt ristill here--
er raunverulegt gildi sem ætti að geyma.
>> Svo þú sérð hér að við höfum Lykillinn heitir fn með gildi sam,
fylgt eftir með kommu, segja á næstu færslu.
Þá lykillinn heitir LN, með gildið grænn,
fylgt eftir með kommu, eftir "prenta"
sem er að fara að hafa virka gildi sem er að fara að gera þessa línu af kóða.
Við skulum taka skref til baka og taka upp það sem er að gerast hér.
Þannig að þetta er svolítið flókið, og við erum að sjá eitthvað nýtt
í fyrsta skipti.
The "þetta" keyword er nýr hlutur við erum að sjá hér, og hvað þetta gerir
er, vísar í gildandi mótmæla í umfangi, ekki satt?
Svo þegar við segjum, þetta bendir allt aftur
að þessu öllu object-- þegar við gerum this.fn,
við erum að fara að fara alla leið aftur að þessum hlut, fara á fn gildi
og fá sam, draga það alla leið aftur, standa hér, og þá hreyfa á.
>> Áhorfendur: Svo með sókn, er sem gert vegna breytu
skilgreining?
SAM GREEN: Svo spurningin var, er sókn gert vegna breytu
skilgreining?
Já, algerlega.
Hvað er að fara að gerast hér er, þetta punktur segir að JavaScript,
OK, ég er að fá einhverja gildi frá þessum hlut frá mér.
Og þá verður það að leita að færslu heitir fn, og ef það finnur það,
það verður aftur að value-- svo, það er Sam.
En ég gæti líka hafa slegið eitthvað sem ekki var skilgreint hér,
og þá myndi bara aftur undefined-- sem
er hlutur sem JavaScript getur gera, sem getur haft ávinning,
en það er also-- ef þú gerir innsláttarvillu, það getur valdið undarlegt villur.
Svo það verður bara að reyna að finna hvað þú segir það að finna
og það er ekki að fara að kvarta ef ekki finna það.
Það verður bara að segja, ég gerði ekki finna það, og þá fara.
Þannig að það myndi vera óskilgreint, plús auður, auk föðurnafn.
Já.
Og þá getum við séð að ef við gæti þá farið niður og access--
og við köllum tf.print () með sviga.
Það er að fara að kalla þessi prenta virka án rök, ekki satt?
En ef við sögðum bara tf.print () semíkommu, án sviga,
allt sem hefði gert er að draga út virka frá verðmæti,
en þó ekki kallað það.
Cool.
HUGH Zabriskie: Ætti við að gera hlut?
SAM GREEN: Jú, við skulum gera það.
Svo ég er að færa þetta dæmi til að hugga.
Við getum ímyndað mér að ég hef hlut.
Þannig að þetta er einfalt mótmæla.
Þetta er hlutur sem inniheldur tvo gildi með tveimur tökkum, tveir lykill gildi
pör.
Þannig að ég get þá nálgast gildi geymdar inni þessa hlut með því að gera x.x1,
til dæmis, og ég fæ 1 aftur.
Sömuleiðis x.x2, fá þessi gildi aftur.
>> Og nú er raunverulega kaldur hlutur, ég get reyndar bæta eitthvað við þennan hlut
eftir að ég hef búið það.
Svo þú getur ímyndað þér, við skulum segja að ég hef aðgerð.
>> HUGH Zabriskie: Þú þarft að gera Shift-Enter.
>> SAM GREEN: Ó, það er pirrandi.
Hvað gerði það ekki eins?
Oh.
Hér við fara.
Cool.
>> Þannig að ég hef bara búið þessi aðgerð, f, sem
er að fara að fara í núverandi Markmið og prenta this.x1.
Svo ef ég kalla bara f því sjálft, ekkert að fara
að gerast, rétt, því það er engin x1 sviði í hlut það er að vísa til.
En ef ég segi, x.f = F, og þá er ég kalla x.f (), ég ætla að fá aftur 1.
Að f virka er nú í tengslum við mótmæla x,
sem hefur lykil kallast x1 í tengslum við gildið 1,
svo þegar við köllum this.x1, það er fara að finna hvað það er að leita að
og vera fær um að prenta gildi út.
Svo er það bara eitt dæmi sinnar tegundar á brjálaður hlutur
þú getur gert með hluti í JavaScript.
>> Svo að útgáfa var almenn útgáfa, merking
sem við höfum búið til hlut með þetta sviga notation-- Brace merki,
rather-- og það er vel ef við viljum bara
eitt dæmi um ákveðna hlut, en hvað ef við viljum hafa fleiri en einn
af sama tagi?
Og svarið við því Spurningin er, það eru hlutir
heitir námskeið í JavaScript eins og heilbrigður.
Við getum búið til fall sem er einhvers konar frumstilling
fyrir aðskotahlutur, og við myndum segja, eins og,
class-- mitt svo nafni af einnota object--
jafngildir fall sem setur það upp.
Svo er það þetta væri jafngilt að er að búa til hlut sem
væri bara eins og, hrokkið Brace, str, ristill,
þetta er band, semíkommu, hrokkið Brace.
Það myndi vera almenn mótmæla við frumstilla,
með einn munurinn er á Næstu línur við að búa til frumgerð sem
þýðir að það er sjálfgefið lykillinn að við bætum við hlut okkar sem
hefur gildið skráð hér.
Sem þýðir að þegar ég bý til nýja dæmi um þetta MyClass hlut,
það er að fara að hafa pre-innbyggður inni það gildi sem heitir STR og annað gildi
kallast myPrint, sem er að fara til vera a virka.
Awesome.
>> Great.
Svo síðasta sem að segja um JavaScript
er að það er mjög gagnlegt fyrir hvað eru kallaðir ósamstilltur starfsemi.
Ósamstilltur þýðir að við getur beðið um nokkurt rekstri
til að ljúka áður en við fara á, en fara á meðan við bíðum
og þá hafa eitthvað gerast síðar.
Og það sem ég meina með því sem er, þú getur ímynda sér aðstæður þar
þú sendir beiðni til sumir vefur framreiðslumaður einhvers staðar,
og það er að fara að senda þér aftur nokkur stór klumpur af gögnum, ekki satt?
Og notandi getur beðið í millitíðinni fyrir það að gerast,
og ekkert gæti verið fara á á þeim tíma.
En það er ekki mikill hönnun, ekki satt?
Þú vilt ekki að vefsíðu til að frysta.
Hvað ef notandinn vill smelltu á fellilistanum?
Það er ekki mikill hönnun mynstur.
Þess í stað, í grundvallaratriðum hvað JavaScript er er segir,
OK, gera þessa aðgerð asynchronously.
Svo eins og, bíddu í bakgrunni, og síðan þegar rekstur er gert,
hringja í svarhringingu function-- kalla sumir virka,
gera sumir aðgerð til merki um að aðgerð við vorum að bíða eftir að enda
er búið.
Og ástæðan sem er frábær öflugur er, við getum gert eitthvað, fara að rífast,
gera eitthvað, og þá bíða fyrir eitthvað að gerast.
Þá, þegar að eitthvað lýkur, getum við kalla svarhringingu.
Það er mjög vel vegna þess að það leyfir okkur að gera hluti með vefnum Audio API,
Til dæmis, eins og hlaða hljóðskrá frá ytri miðlara
án þess að þurfa að bíða fyrir allt hljóðskrá til að vera hlaðið,
sem væri mjög slæmt fyrir reynslu notenda.
Cool.
>> Síðasta par bendir um kembiforrit, þar sem þetta
er hlutur sem þú ert að fara að þurfa að gera sem hluta af verkefninu, tryggingu.
Ég nefndi JavaScript vélinni.
Það er frábær gagnlegur lögun af öllum nútíma vöfrum,
Og við hvetjum virkilega að fá þægilegt að nota stjórnborðið,
ef þú vilt fá gott á JavaScript.
Það er frábær vel fyrir kembiforrit, en það er líka
mjög gagnlegt fyrir vangaveltur út hvernig á að nota API.
Það gerir ráð fyrir mjög auðvelt tilraunir
án þess að þurfa að gerð nokkur númer og síðan þýða það.
Þú þarft ekki að gera alla þá skrefum.
Þú getur bara skrifað sumir kóða í línu,
og þá fá tafarlausa endurgjöf á hvort þessi lína af kóða
worked-- mjög vel.
>> Og einnig, bara einn tæknilega note-- JavaScript vélinni er dæmi
af REPL-- svo sem er R-E-P-L, svar við, sem stendur fyrir að lesa, meta,
prenta lykkja.
Þú ert að fara að slá smá dót í, það verður að lesa það sem þú slóst inn,
það mun meta það, og það mun prenta framleiðsla, og þá er það mun byrja aftur.
Það gerir þér kleift að fljótt fara í hringi iterating, sem er mjög flott.
>> Ég giska alvöru Last note-- þetta er í raun síðasta huga, já.
Hvernig notum við í raun JavaScript?
Svo fyrst, getum við flutt það með handrit tag
efst eða neðst á HTML file-- hvar inni af HTML skrá,
í raun.
Og innan handrit tag, það eru tveir undir-leiðir flytja JavaScript.
Í fyrsta lagi er um að hafa Sérstakur JavaScript skrá
sem við flytjum í heild sinni, eða með því að hafa svæði kóða eins handriti
til að byrja, og þá sviga handrit til enda.
Og þá erum við að skrifa bara JavaScript inni í HTML skrá.
Þeir eru tvær leiðir.
Þú getur ekki hafa það inni í HTML.
Áhorfendur: Er einn betri en annar?
SAM GREEN: Spurningin var er einn betri en annar.
Svo, já, eins og erfðaskrá stíl reynd og einnig er það eins og hönnun starfi.
Það eru tvær ástæður hvers vegna það gæti verið betra.
Hið fyrra er, það gerir númer A miklu meira læsileg ef öllum HTML kóðanum
er á einum stað, öll CSS þinn er í annar staður, öll JavaScript
er í þriðja sæti.
Ekki satt?
Ég held að við ættum að hafa þegar talað um það í sections-- eins CSS-- það
að is-- og það fer oft í aðra skrá.
Svo, svipað góður af hugtak hér.
Þú getur einnig ímyndað sér að JavaScript yrði endurnýtt á fleiri en einn
HTML síðu, eða kannski Fjölmargir HTML síður,
og hafa að JavaScript refactored í einn
skrá sem þú getur flutt í fleiri en einum stað
Leyfir kóða til að vera vegur meira haldist.
Þú getur ímyndað þér að gera eitt breyting á JavaScript
og þurfa að breyta því 100 mismunandi skrár.
Og í staðinn getum við bara breytt því í einu, sem er leið öflugri.
Sagði ég svara spurningunni þinni?
Cool.
>> Við getum einnig slegið í vélinni, eins og við höfum áður.
Og aftur, eitt síðasta note-- Web Audio er byggð á,
þú þarft ekki að hlaða neitt.
Cool.
Eru einhverjar spurningar, þú hefur fleiri spurningar um JavaScript,
áður en við fara?
>> Áhorfendur: [inaudible]
SAM GREEN: Allt í lagi, flott.
Svo nú er hann að fara að tala um API.
>> HUGH Zabriskie: Cool.
Takk, Sam.
>> SAM GREEN: Jú.
HUGH Zabriskie: Awesome, svo við munum fara frá JavaScript.
Þannig að við höfum talað um tiltekin meginatriðum af JavaScript,
og þeir eru breytur, föll, hlutir, virka sem breytur,
ósamstilltur hleðsla.
Þetta eru allt hlutir sem þú munt sjá eins og þú nota netið Audio.
Þannig að við erum bara að fara að tala um það fyrst á háu stigi.
>> Það er API, svo það er eitthvað sem er byggð, sem Sam sagði,
rétt í JavaScript sem þú notar í vélinni.
Og það er í raun bara eins og C ++ kóða sem er í raun byggt inn Chrome
og Firefox, og öllum þessum vöfrum.
Svo helstu hugmynd með vefnum Audio er að þú þarft
svona leiðsla hljóð, ekki satt?
So hljóð gögn kemur í í einhverri mynd.
>> Það eru eins konar þremur helstu forms-- þú hefur oscillator, sem
skapar sínus bylgja, kósínus bylgja, við erum að fara að sjá hvernig það virkar.
Annar mjög algeng einn, auðvitað, er MP3.
Svo kannski þú byrjar með lag, og þá
vilja til gera sumir sía að því og framleiðsla
that-- sem gæti verið mögulegt uppspretta.
Og þá virkilega flott einn er á hljóðnemanum.
Svo er hægt að nota sumir mjög undirstöðu símtöl í JavaScript
til að fá aðgang að hljóðnema, og svo ef þú
langaði til að gera app eins og kasta skynjari,
Til dæmis, sem tekur í rödd þín og tölur út
sem pitch-- mjög einföld leið til að.
Þú getur bara svona að lesa það í, reikna út tíðni,
og þá framleiðsla númer.
Þannig að við munum sjá hvernig það virkar, eins og heilbrigður.
>> Áfangastaður er í grundvallaratriðum þar sem hljóð gögn er framleiðsla.
Svo almennt, það er eins og laptop ræðumaður.
Aðrir valkostir eru eins a ScriptProcessorNode--
við munum fá til hnúður í a second-- en í grundvallaratriðum,
hvort sem þú ert að setja hljóð á í gegnum tölvuna í gegnum hátalarana,
eða þú ert góður af upptöku þess, svo þú ætlar að geyma hana sem hljóð gögn.
Svo kannski ef einhver býr tónlist í app og þá
þú vilt taka það og kannski eins og flytja hana til SoundCloud, fyrir example--
það væri ein leið til að gera það.
Öll gaman efni, sem við munum tala um,
gerist milli þessara tveggja punkta, þar sem við hlaða í tónlist
og þá framleiðsla það.
>> Þannig að ég ætla að tala um fimm stigum hljóð framleiðslu í annað.
Við höfum þetta kallast An AudioContext, sem
er þetta litla umbúðir sem við sjáum hér.
Í grundvallaratriðum það AudioContext is-- ef við fara á Javascript vélinni núna,
við getum búið til einn núna.
Bara dæmi um svar við, ekki satt?
Við erum að lesa, meta, og það prentar.
>> AudioContext er alþjóðlegt ástand.
Það er struct, er það hlut hér, heldur og það upplýsingar
um hluti sem eru að fara á á skjánum sem tengjast hljóði.
Eitt dæmi er núverandi tími.
Þetta segir þér hversu sekúndum, mjög nákvæmlega,
frá vefsíðu hlaðinn.
Þannig að þetta er mjög gagnlegt lítið eign sem þú getur notað.
Það er að lesa only-- Ég held reyndar þú getur prófað að setja það a gildi.
Það verður að segja að þú setja það, og svo ef þú prenta það
again-- það gerði í raun ekki alveg að vinna.
Þannig að það eru að lesa-eini eignir í JavaScript.
Þetta er mjög gagnlegt ef þú ert góður af syncing
a einhver fjöldi af mismunandi upplýsingar, þegar þú ert
konar spila mismunandi hljóð.
>> Annar mjög gagnlegur einn er samhengi áfangastað.
Ákveðið, ef þú hefur áhuga, vera reyna þetta á eigin vélinni hægri hönd
núna.
Svo er þetta AudioDestinationNode.
Grundvallaratriðum hvað þetta segir er, hvar er framleiðsla að fara?
Þannig að það eru tveir alvöru valkosti hér.
Yfirleitt sjálfgefið er bara ræðumaður,
svo AudioDestinationNode í rauninni bara segir
það eru núll framleiðsla til hljóð koma í, sendir til hátalara.
Svo almennt, þú ert ekki að spila með það.
Ef þú hefur áhuga á því að hefja notkun sem ScriptProcessorNode fyrir upptöku,
örugglega skjóta mig með Netfangið síðar því það er
svolítið flóknara.
En almennt, þú ert bara svona af outputting hljóð í einhverri mynd.
Svo flott, munum við hoppa aftur hér.
Áhorfendur: Fyrirgefðu.
HUGH Zabriskie: Já.
Áhorfendur: Ég veit þú sagðir að tala þér síðar um upptöku.
Getur þú tengi sem við Pro Tools?
>> HUGH Zabriskie: Með Pro Tools?
Látum okkur sjá.
Ég held ekki.
Svo fara á milli viðskiptavinarins, sem er JavaScript
hugga og raunverulegan Computer, er yfirleitt
eitthvað sem er góður af á mörkum, ef þú
mun, góður af eðli the-- það er góður af hönnun hlutur,
en þú reynir að halda í vafranum sérstakt frá raunverulegum tölvu notandans.
Almennt, það eina sem þú ert fær um að aðgangur er á hljóðnemanum eða myndavél.
Þú ert ekki fær um að ég held ekki, nota Pro Tools.
Hins vegar, ef þú hefur búið lag í Pro Tools,
flutt að þú gætir hlaða sem í hér, sía það, til dæmis,
ferli sem, og taka það inn að Audio Destination-- eða no-- kúlu
Örgjörva Hnútur.
Og þá þaðan, þú gætir flytja það til SoundCloud, þér
gæti sent það í tölvupósti, eða hvað sem þú vilt þaðan.
>> En það er góður af lítilsháttar hindrun milli til að spila tónlist á tölvunni þinni
og gera tónlist á netinu.
>> SAM GREEN: Og það er ekki einstakt að þessu API.
Það er öryggisþáttur í Chrome, og Ég held að hver öðrum nútíma vafra.
Vafrinn er sjálf-gámur.
Svo til dæmis, a vefur blaðsíða geta ekki nota JavaScript til að snúa hljóð
á á hátalarana þína, til dæmis.
Eða það er ekki snúa tölvunni á.
Og það er ekkert millistig lið milli þessara tveggja hluta, rétt,
svo annað hvort þú ert með heill abstrakt,
eða þú opnar upp öryggi galli að láta
forritari með slæmur fyrirætlanir gera hvað sem þeir vilja með fartölvuna þína.
Og þess vegna Chrome er sjálf-gámur.
>> HUGH Zabriskie: Já.
Er að skynsamleg?
Cool, flott.
Ég var bara að fara að sýna dæmi um einn.
Þetta er ansi mikið eins langt og þú færð, í skilmálar
fá aðgang tölvu notandans.
Ef þú ert með USB lyklaborð tengt í, þú getur notað eitthvað sem kallast Web
MIDI API, sem við munum ekki raunverulega tala um hér,
en þetta er annað API sem er byggt í að minnsta kosti Chrome-- aftur,
þetta er hvers vegna við elskum Chrome-- Ég held Firefox eða Safari,
þetta er auðvelt að google-- mismunandi vafrar hafa
mismunandi stuðning sem API þeir hafa innleitt.
En ef þú vildir að stinga í lyklaborð og vinna með þeim upplýsingum,
konar senda lyklaborðið upplýsingar yfir til the tölva
og þá nota þessi á netinu, þetta API er þar sem þú vilt vera að vinna að.
>> Cool.
OK.
Svo, fljótt að flytja hér.
Hvernig eigum við að gera á réttum tíma?
>> Ræðumaður 1: Um 15.
>> HUGH Zabriskie: 15 mínútur eftir?
OK, flott.
Þannig að við munum keppa framundan hér.
>> Svo í rauninni, aðalatriðin hugsa um þetta sem leiðsla
er að hvert skref í pípunum er röð af hljómflutnings hnúður.
Uppspretta okkar, við skulum segja, er oscillator.
Við þurfum að búa til oscillator hnút.
Og það er bara svona litla function--
og þau eru öll byggð á af hljómflutnings samhengi hér.
>> Áhorfendur: Þegar það sagði oscillator, þýðir það
það er í raun bókstaflega að fara frá tvær mismunandi stangir og til baka?
>> HUGH Zabriskie: Nei, það er eins og stafræna framsetningu.
Það er í raun til framkvæmda í C ++.
Ég reyndar veit ekki sérstakur um hvernig það er í raun til framkvæmda,
en allt þetta er að vinna eins og tvöfaldur gögn.
Reyndar, já.
Það myndi vera að segja, ég gat reyndar, ef þú hefur áhuga,
Ég gæti sent þér smá meira upplýsingar um hvernig waveforms
er haldið með stafrænu formi.
OK, flott.
>> Þannig að við erum að búa til tóninn eins og sínus Wave eða eitthvað svoleiðis, kannski
440 Hertz.
Við munum búa til oscillator.
Ef við viljum að stilla hljóðstyrk, við tengja neitt við GainNode,
sem við gætum gert með .creategain.
Sem setur bindi.
Þú geta fara framhjá að á einhverju af öðrum options-- vel,
svo hljóð biðminni uppspretta hnútur er þar sem þú gætir
geyma MP3 sem þú hefur hlaðið inn í.
>> Biquad sía er fyrir síun ef þú vilt taka alla stöð út
af laginu, eða eitthvað svoleiðis.
Guð forði þú vilt taka stöð út af laginu.
Og AudioDestination hnút er, aftur, eins og hvar frágang okkar er.
Ef þú ert alltaf áhuga á að sjá allar mismunandi mögulegar,
bara fara á flipann og láta The sjálfvirkt farartæki-heill koma upp.
Og ef þú býrð, þú munt sjá allar mismunandi hlutir sem þú getur búið til.
Þú getur búið til dynamic handrit örgjörvum,
Ég veit ekki einu sinni hvað það er, að blanda rás samruna
og sund splitters og allt það.
Cool.
>> Svo er þetta bara Dæmi um leiðslum.
Þannig að við höfum þrjár uppsprettur koma í.
Kannski eru þetta waveforms, kannski eru þetta MP3s.
Eitt er að fara í gegnum a sía, annað er
fá brenglast annað klyfjakarfa manns til vinstri og hægri.
Þú getur gert alls konar hluti og þeir fá ruglað í kringum saman,
og þá út kemur hljóð í lok, sem áfangastað.
Þetta er dæmi um það sem meira flókið Web Audio póstnúmer lítur út.
Þú ert að búa allt þetta mismunandi hlutum rétt here--
Ég er ekki viss um þetta.
Nei, það er ekki stækka.
OK.
>> SAM GREEN: þú stjórna, skrunað upp.
HUGH Zabriskie: Control Scroll--
SAM GREEN: Nei, nei.
Control--
>> HUGH Zabriskie: Oh, Control, Flettu?
Oh, Gotcha.
Já.
Vá, nei, nei.
OK.
Ég mun ekki gera það.
>> Svo já, í þetta fyrst kafla hér, þú sérð
við erum að búa allt þetta öðruvísi hnúður út úr samhengi.
Við erum bara piecing þá saman í seinni hluta
eftir þessa aðgerð sem kallast Connect.
Það er í raun lykillinn virka í Vefur Audio.
Það þýðir bara þegar þú hefur gert eitthvað með hljóðið í einum hnút,
gefa það til næsta hnút.
Þannig að við höfum fengið, það tengir til greina,
greiningartækið er eitthvað við það, það fer að röskun, og svo framvegis,
og á áfangastað neðst til hægri hér.
Cool.
OK, þannig að við munum halda áfram á.
>> The pipeline-- aftur, þær eru algengustu leiðslur,
svo við tölum um allt þetta eins röskun, hliðrunar, allt þetta dót.
Ef þú ert virkilega áhuga í notkun hlutina Pro Tools,
þá sennilega þú hefur áhuga.
Ef ekki, kannski þú bara langar að spila hljóð,
eða kannski þú vilt bara að stilla hljóðstyrk á hljóð.
Þeir eru tveir algengustu tegund leiðslur í hljóð framleiðslu.
>> Aftur, leiðir sem þú getur tekið hana inn sem oscillator-- Svo skulum
gera a kynningu um það hérna.
Þannig að við erum að fara að búa til einföld hljóð samhengi hér,
og frá því að við erum að fara til að búa til oscillator okkar.
Svo það er, aftur, við erum bara að fara að hringja Búa Oscillator.
Við erum að fara að stilla tíðni á að 440 Hertz, hvers manns hugljúfi.
Þá erum við að tengja það á áfangastað point-- sem er ræðumaður, svo
samhengi áfangastað.
Að lokum, við segjum bara, byrja núll sekúndur frá nú, og höfum við hljóð?
>> [Ringing]
>> HUGH Zabriskie: Hér við fara.
Það er bara sínus bylgja.
OK, flott.
Og þá munum við stöðva það.
>> Áhorfendur: Hvaðan sem viðbrögð koma frá?
>> HUGH Zabriskie: The viðbrögð?
Oh, sennilega hljóðnemum okkar.
Svo, það er já hvernig þú gerir það.
Og í raun, ef ég hefði haldið það í gangi, þú
gæti hafa tíðnina gildi eins og það er í gangi,
svo það er skemmtilegur hlutur að leika í kring.
Cool.
Það er alltaf yndislegt einn til kynna.
>> SAM GREEN: Við gerðum ekki hugsa um það, gerði við?
HUGH Zabriskie: Já, það er viðbjóðslegur einn.
Svo, biðminni loading-- Ég skal sýna að dæmi um það á enda.
Það er að hlaða MP3.
Og hljóðnema, þú notar bara virka heitir Navigator.getUserMedia ()
að biðja um aðgang að notandi er hljóðnema fyrir þær upplýsingar.
>> Hér er sía, ég bara halda áfram frá þessu.
Þetta er nokkuð mikil, en síur bara leyfa þér að
>> [Bíphljóð]
Sía gerir þér einnig til að búa til hluti eins og bleikur
hávaða, brúnn hávaða, hvítur hávaði.
Ef þú vilt búa til hreint hávaða, sem Sumir elska að skipta um með,
þú getur notað Web Audio sía til að gera það.
>> Audio Panning-- svo ímyndað ef þú ert að skrifa leik
og þú vilt hljóð til hljóma það kemur, eins og,
skjóta yfir skjáinn, þú Hægt er að nota klyfjakarfa á hljóð
til að búa til þessa tegund af keilu, sem like-- það er nokkuð Mathy,
en það er í raun mjög flott ef þú færð það vinna,
og það eru góðar námskeið á það sem ég get sent þér.
Í grundvallaratriðum, getur þú góður um að búa hljóð
eitthvað að fara eftir í 3D hátt.
Og ef þú ert með DJ áhuga, þú getur byrja að blanda og yfir fading lög.
>> Þetta er bara mjög einfalt númer, í grundvallaratriðum það sem ég gerði áður.
Þetta setur rúmmál af oscillator, svo við búa oscillator okkar
sem skapar bylgjuform.
Við munum búa GainNode okkar, stilltu tíðnina okkar,
og þá tengja oscillator til að GainNode, sem þá í rauninni breytist
hversu mikið merki er hleypt í gegnum.
En í raun, það er á stafræna hlutur, svo það er meira just-- já.
Það er ekki hvað er í raun að gerast, en það er það sem gerist í raunveruleikanum
með hagnað.
>> Áhorfendur: --quantization af rúmmáli breytu?
HUGH Zabriskie miður?
Áhorfendur: Er það a skammtaður bindi breytu?
HUGH Zabriskie: Já.
Og þetta er eitt sem ég er virkilega vantandi á í þekkingu mína,
hvernig hagnaður virkar á stafrænu vettvangi.
Ég veit með raunverulegum merki, það er í rauninni
stjórna hversu mikið þú ert magna merki.
Svo, já.
Ég skal senda þér nánari upplýsingar um að vegna þess að ég vil vera forvitinn raun
að vita meira um það.
En í grundvallaratriðum breytur eru, er einn fold--
því meir signal-- og núll er engin merki, eða þú munt ekki heyra ekkert hljóð.
Við munum sleppa demo tíma fyrir það vegna þess að það er í rauninni það sem ég gerði áður.
Og aftur, Context.Destination er hljóð áfangastað hnút.
Awesome, OK.
>> Þannig að ég ætla að gera a fljótur tvær demo.
Hvernig eigum við að gera á réttum tíma?
>> Ræðumaður 1: Um 10 mínútur.
>> HUGH Zabriskie: 10 mínútur?
Great!
Awesome.
>> Svo fyrsta sem ég ætla að ekki, það er kallað Uppáhalds Song My.
Svo er þetta bara lítið HTML JavaScript.
Við erum að fara að hafa tvo hnappa á síðunni spila uppáhalds lagið mitt
og hætta uppáhalds lagið mitt.
Ég breyti þessu.
>> Áhorfendur: Cover hljóðnema.
>> HUGH Zabriskie: Já.
Og ég hef hlaðið inn hér handrit að basically--
og þetta er mjög gagnlegt fyrir að hlaða MP3,
þannig að þetta bara gerir hleðsla mp3s leið hraðar.
Það er í rauninni bara umbúðir.
Það gerir bara ferli hleðsla í MP3s miklu hraðar,
annars sem þú ert að nota HTTP beiðni, svona eins og það sem við vorum að gera
á núverandi stykki sett með Server.
Það er virkilega ljót, þú vil ekki að gera það.
>> Þannig að þetta strákur, Boris Smus, skrifaði mjög gagnlegur lítill tól sem heitir BufferLoader.
Allt sem þú gera er einfaldlega að gefa það í samhengi, framhjá þér það list--
eða, já, það er listi JavaScript?
SAM GREEN: An array.
HUGH Zabriskie: Oh, það er fylki, það er rétt.
Það er fylki af leiðum að mismunandi skrár.
Og þá þú gefa það a virka.
Þetta er svarhringingu við vorum að tala um með ósamstilltur hleðsla.
Sem verður kallað þegar skrá hlaðinn.
Og það fall sem er kallað þegar skráin er hlaðinn tekur sem jaðar
fjölbreytta hlaðinn biðminnin.
Svo gerist það hér.
Í grundvallaratriðum, BufferList er að fara að vera einn value--
eða það er að fara að vera array af lengd einn, sem hefur í það í skránni
núll allt hlaðinn skrá á MP3.
Svo það sem ég geri þegar ég klára hleðsla er, ég einfaldlega
búa til biðminni uppspretta, sem er hljóð biðminni uppspretta hnút.
Næsta skref er ég hlaða í source.buffer og fullt hlaðinni biðminni
frá BufferList-- það er mikið af buffers--
og þá að tengja þessi hljóð biðminni á áfangastað.
Svo hvað það er að fara að gera er bara einfaldlega að setja MP3
beint í gegnum til the framleiðsla, og hefja það strax
á að fá þetta símtal.
>> Cool, þannig að við skulum sjá þetta gerast í aðgerð.
My [inaudible] hér, við skulum sjá.
Þannig að ég ætla bara að fara að hefja undirstöðu miðlara.
Það er eitthvað sem þú þarft að gera ef þú ert
gera beiðnir um hleðsla skrár.
Ég ætla að byrja á undirstöðu miðlara.
Þetta er í grundvallaratriðum allt þitt Pset núna í einni línu,
en það er bara að byrja miðlara á gátt 80/80.
Svo við förum hérna, við að fara að hlaða 80/80,
við erum að fara að fara á uppáhalds lagið mitt.
Svo ef ég högg "Play minn Uppáhalds lagið "núna,
það er að fara að hlaða minn Uppáhalds lagið og spila it--
[TÓNLIST - THE EAGLES, "LIFE IN THE FAST LANE "]
--which gerist að vera "Lífið í Fast Lane "af The Eagles.
Nú gæti ég högg "Stop minn Uppáhalds lagið "og aukaleikur það.
>> [TÓNLIST - THE EAGLES, "LIFE IN THE FAST LANE "]
>> Og ef ég fer yfir til að hugga, því Ég notaði global breyta hérna
til að halda utan um þetta gildi, það í raun mun nú vera viðurkennd í vélinni.
Svo það sjálfvirkt farartæki-skapar fyrir mig.
Svo er það sem er að spila núna, og ég get einfaldlega kalla source.stop ()
á það.
Jæja, þú veist hvað?
Bara svo þið hafið heyrt þetta song-- þú gætir kannast við þetta lag.
>> [TÓNLIST - Rick Astley, "ALDREI ætla að gefa YOU UP "]
[TÓNLIST - THE EAGLES, "LIFE IN THE FAST LANE "]
Við höfum nú öll verið Rickrolled.
OK, frábært, færa á.
Cool.
Svo er þetta í rauninni dæmi um bara hvernig þú getur hlaða MP3 file--
[TÓNLIST - THE EAGLES, "LIFE IN THE FAST LANE "]
--and spila það, og hætta og byrja það.
Ég hefði getað gert mikið meira [inaudible]
>> Sú síðasta sem ég ætla að gera er að, Ég skal sýna þér [inaudible].
>> [TÓNLIST spila]
>> Það er eins og ogg.wave.mp3.
Ég held, ef ég man rétt, Ég hef keyrt í sumum málum með .m4a,
en ég er ekki viss um það.
Ég held mp3.wave--
>> [TÓNLIST - Rick Astley, "ALDREI ætla að gefa YOU UP "]
>> OK, frábært.
Ég ætti ekki að hafa sagt það.
Engu að síður, halló.
Þannig að við höfum þetta opið.
Svo nú er allt sem ég geri, ég búin í grundvallaratriðum a undirstöðu setningafræði fyrir að búa til tónlist.
Svo ef ég geri eitthvað eins og, bæta G4 1. 2, hvað það þýðir að,
bæta píanó huga, G4, sem er fjórða G
upp á píanó frá botni.
Svo er þetta eins konar MIDI tala, svo fyrir þá sem eru tónlist byggt,
þetta er bara MIDI skýringum.
>> Áhorfendur: Það er G í Mið-C, ekki satt?
>> HUGH Zabriskie: Þetta er G ofan Mið C, það er rétt.
>> Áhorfendur: Above Middle C.
>> HUGH Zabriskie: Já.
Reyndar já.
Ég held ég hafi í raun það einn [inaudible]
þannig að þetta gæti verið áttund fyrir ofan það.
Svo skulum sjá.
Ef ég högg Play--
[Endurteknar PIANO ATH]
--we're fara að heyra það.
Hugmyndin er sú að það starfar bara eins og a stjórn lína myndi,
þannig að ef ég fer upp og niður á lyklaborðinu mínu, þú
geta farið aftur til fyrri skipanir, sem er nokkuð gagnlegt.
Og hér er minn listi af lögum, sem öll eru í gangi á lykkju.
>> Áhorfendur: Þú varst að því gefnu að 88-lykill hljómborð á það, ekki satt?
>> HUGH Zabriskie: Spurningin var ég miðað við að 88-lykill hljómborð,
og já, ég er.
Það sem ég gerði er að ég grundvallaratriðum tók 88 sýni
á píanó, einn fyrir hvern huga.
Og svo í hvert skipti sem þú heyra minnismiða héðan í frá,
sem er í raun lykkja sem lítur like-- þetta er að fá að spila á lykkju,
svo fyrir hverja athugasemd, þetta er í gangi.
Hvað sem gerist er, ég búa til biðminni aftur,
Ég skapa öðlast hnút til að stilla hljóðstyrkinn.
Þetta bara mjög flókið leið til að segja ég
geyma biðminni í source.buffer.
Ég gef honum ávinning, ég tengja það við fá,
að ofan færður er tengdur við framleiðsla, og þá er ég að spila það.
Svo er þessi góður af ferlinu að taka í biðminni uppspretta.
>> Áhorfendur: Getur þú raunverulega taka að þurr hljóð og gera það blautur [inaudible]?
>> HUGH Zabriskie: Þú getur, já.
Það er aftur sögn, það er töf, röskun.
Þú getur í rauninni sett neitt í milli í þeirri samloku of-- vel,
leiðsla er betri samlíking, en þú getur bætt neitt í því.
Cool.
>> Svo ég ætla að klára kynningu hér að gefa þér tilfinningu
af bara hreinn tala af sinnum þú getur keyrt að virka allt í einu.
Þannig að ég ætla að fjarlægja þetta.
Ég ætla að búa til rafall that-- grundvallaratriðum hvað does-- þetta er í raun
konar flókið syntax-- en það er fara að búa athugasemdum á flugu,
og bara byrja að spila þá eins og það metur þá.
[Interposing PIANO]
>> Svo við getum bara gera smá tónlist hér.
[Interposing PIANO]
>> Svo er það þetta skipun er, til dæmis, er
það tekur þá þrjá minnismiða píanó og setur þá þá á B3.
Þetta setningafræði gæti gert smá meira vit
að þeir sem hafa tónlist bakgrunnur hér.
>> Ég get bætt sparka tromma.
Ég get--
>> [Interposing Hljóðfæri]
>> --just leika í kring með það.
>> Svo þú getur make--
[Interposing Hljóðfæri]
Það eitt er svolítið meira pirrandi.
[Interposing Hljóðfæri]
>> Svo að handahófi bætir þurra bjalla á hverjum 16 huga, með 16%
[Inaudible].
>> [Interposing Hljóðfæri]
>> Já, svo hvernig þetta works-- það er alltaf í 4: 4.
[Interposing Hljóðfæri]
>> Já, þannig að fjóra ársfjórðunga, og 16/8.
[Interposing Hljóðfæri]
>> Svo að meðaltali, þú færð 60% af hits á 16. skýringum.
>> Allavega, þetta var bara konar að sýna burt
sumir af þeim hlutum sem þú gætir byggja með vefnum Audio API.
Það er mjög öflugur, það er mjög hratt, og þú getur gert mikið af flottum hlutum
með því.
Svo aftur, einhverjar spurningar sem þú hefur, Netfangið myself-- Hugh-- eða Sam,
og heiðarlega, Google hefur tonn af góðum úrræðum.
Einhverjar Síðustu spurningarnar?
Já.
>> Áhorfendur: Svo þú getur fengið aðgang að innbyggða hljóðnema.
Hvað ef þú vildir nota betri hljóðnema?
HUGH Zabriskie: Ef þú vildir að nota betri hljóðnema?
Svo aftur, þetta er hluti af abstrakt milli Chrome
og restin af tölvunni þinni.
Nema það er í boði í gegnum API, eins Web MIDI API,
þú gætir sennilega finna nokkrar járnsög, en yfirleitt ekki eins gerlegt.
>> SAM GREEN: Þú getur also-- allt Chrome veit
er það sjálfgefið Hljóðneminn er, og það notar það.
Svo ef þú hefðir hljóðnema þú gætir sjálfvalin hljóðnema tölvunnar,
þú gætir nálgast það þannig og það myndi líklega vinna.
HUGH Zabriskie: Það er góður punktur.
Ég hef aldrei reynt það, en þú might vera fær til tegund
of-- ef þú beina inntak ræðumaður, þú might vera fær til gera það, já.
>> Einhverjar Síðustu spurningarnar?
Cool.
Jæja þakka ykkur svo mikið fyrir að horfa á.
Ég er Hugh.
SAM GREEN: Ég er Sam.
HUGH Zabriskie: Og þetta er CS50.