>> SAM GREEN: Kaixo, denek.
Ongi etorri gure mintegi izateko.
Nire izena Sam da.
HUGH Zabriskie: naiz Hugh.
SAM GREEN: Eta ari gara gaur hitz egin dugu Ikusteko Javascript-a eta Web Audio API buruz.
Just hasteko, hau eskema bat da Gure Mintegian agenda.
Buruz hitz egiten hasiko gara zergatik webean interesa behar duzu
Audio API, zergatik da JavaScript Hizkuntzaren lortu behar duzu,
eta orduan JavaScript buruz hitz egin essentials-- orain bezala,
Oinez duzun batzuen bidez hizkuntzaren oinarriak,
eta, ondoren, buruz hitz egin goi-mailan audio API.
Ondoren, Hugh batzuei buruz hitz egingo du audio ekoizpen fase
eta, ondoren, demo awesome sequencer honetan Proiektu eta eraiki zuen erakusten duzun kodea.
Eta gero, eta denborarekin ikusiko dugu for Pertsona bakoitzeko amaieran galderak
bizi diren hemen dira.
>> HUGH Zabriskie: Cool.
>> SAM GREEN: Cool.
>> HUGH Zabriskie: Cool.
Babeskopia egin beharko dut.
>> SAM GREEN: Beraz, lehenengo gauza.
Beraz, gauza handia the Web Audio API buruz
da, ez dagoela set up beharrezkoa.
Eraiki-en dator Nabigatzaile moderno gehienetan,
Chrome, Edge, osotasunean barne others-- direnak guztiak mordo
zatiak handiak Jende gaur erabiliz.
Beraz, ez dago martxan, Alde batera besterik ez lortzean
web zerbitzari bat, joan Hasteko duzu lan
Zure proiektua, eta hori handia orrian.
>> Nahiko gomendatzen dugu hein handi batean, kontuan hartu behar duzu
Chrome erabiliz Ikusteko Javascript-a web garapenerako,
besterik bere sustatzailearen delako Tresna benetan indartsuak dira.
Horixe esan nahi dugu, adibide gisa esanez ireki zure Javascript
console-- joan Chrome sartu bada eta begiratu web orri bat duzu,
eta klikatu ezkerreko duzu Inspect Element, eta, ondoren,
go txiki honetan goitibeherako nahi duzu hementxe eta Kontsola batean klik egiten baduzu,
zer bide berriak irekitzen ditu itxura bat ikusiko duzu komando-gonbit bat bezala asko duzula
baliteke zure Mac on ikusteko, edo NAN edo.
Eta besterik gabe, ahal dugun motako komandoak hemen, Garbitu bezala,
eta beste komando horrelako.
Aldagai sortu ahal izango dugu, bezala Javascript geroago ikusiko dugu.
Eta beraz, ezer egin ahal izango dugu ere Ikusteko Javascript-a, kontsola batera egin ahal izango dugu,
eta hori modu super erabilgarri bat hasteko inguruan jolasten APIak
eta eroso lortzean Javascript eskuinera itzali.
Ez set up beharrezkoa, hau da, benetan polita.
Cool.
Awesome.
>> Beraz, gauza bakar bat gehiago gehitu.
Baduzu edozein questions-- daude Zuetako askok ez dira hemen bizi,
Sentitzen us-- horiek elektronikoetan gehi doan gure helbide elektronikoak dira.
Zalantzarik baduzu Ez duzu nahi digu galdetzeko,
bezala, oh bug bat dut nire kodea, edo zerbait
apur bat gehiago zehatz da, agian, Google da lehenengo.
Badira baliabide interesgarri ugari the Web Audio API han buruz.
Benetan ondo dokumentatu eta nik izatea da
Jende tona bat erabiltzen dute industrian, eta pertsona batek besterik ez dira
fun stuff eraikitzeko beraiek.
Beraz, ez dira asko izan behar du han baliabideen.
Awesome.
>> Cool, beraz, zergatik Web Audio API?
Diagrama honetan pixka bat da bidea, bilakaera bat
soinu webean denboran zehar hazi.
Bgsound jatorrizko HTML etiketa bezalakoa zen Hori onartzen erabili Internet Explorer.
Nahiko oinarrizko soinuak baino ez ditu onartzen, funtzionalitate ez zen oso sendoa,
eta ezin duzu sekuentziazioa konplikatuak,
edo kontrolatzeko soinu abiatzean eta gelditu oso sendo.
Beraz, ez zen bereziki ondo garatu.
Ondoren, horren ondoren, Flash along-- zein izan zen,
Ziur duzula mutil guztiek ezagutzen duten nago Flash-- agian ez nola funtzionatzen duen,
baina, zalantzarik gabe ikusi duzun da.
Lortu duzu zure Flash eguneratzeko Plug-in, gauza mota hori guztia,
eta hori, zalantzarik gabe barrutia luzatu funtzionaltasunari zela eskuragarri.
Baina erabiltzaileak egiteko instalatu plug-in bat da, behin betiko
Flash barne eragozpen bat Zure aplikazioa da, ezta?
Ondoren, zeren Oraindik menpe Erabiltzaile joan eta plug-in hau aurkitzeko,
eta ziurrenik ari aktibatuta aparteko urrats honek egindako off
zure aplikazioa erabiltzeko hartu behar dute.
Eta gero ez dago beste sarrera bat izan daiteke zure aplikazioak osoak hautsi egingo,
eta bukatzen amesgaizto bat izateaz sortu da sustatzailearen, too da.
Beraz, hori barrikada bat izan zen.
>> Eta gero, hori izan zen batera ondoren, HTML audio etiketa, bertan
Gehiago HTML modernoaren ezaugarrietako bat da eta bertan Zalantzarik gabe gauza asko gehiago onartzen,
baina, nahiz eta gauzak egin ahal izango duzu ez ziren bakarrik pixka bat mugatua
Gauzak baten ondorioz HTML duten gai izan zen.
Beraz, noiz Javascript du API, Web Audio API,
estandar bat bihurtu nabigatzaile zehar landu,
benetan zabaldu multzoa sustatzaileei aukerak
Benetan eraikinean sartu Web for cool gauza.
Denbora luzez han izan egon tresnak benetan sendoa
jaiotzez audio aplikazioetan, antzekoak denek daki GarageBand,
eta orduan, jakina, ez dira gehiago audio nahastuz aplikazio profesionala,
eta gauza mota hori.
Baina ez zen bat Cloud-- benetan ona ez
Cloud, bai, asmatu dut Cloud-- web bidezko plataforma
garatzaileei aukera litzateke Jende aplikazioak eraikitzeko
audio nahasketa egiteko.
Eta gisa erakutsiko dizu zuen geroago, Web Audio API
benetan indartsua egiteko aukera ematen du benetan gauza besterik gertatuko den,
hau da, nahiko cool.
Beraz, hori zergatik zuk agindua da Mintegian zehar ikusi behar,
funtsean.
>> Eta orain, ez dut hitz buruz Javascript batzuk besterik oinarrizko elementuak
hizkuntzaren, beraz orri berean, ezin dugu izan
denean buruz hitz egiten dugunean API pixka bat beranduago.
Cool.
>> Beraz, honen laburpen bat da.
Ahaztu egin zait hau izan zen hemen.
Bai.
>> HUGH Zabriskie: Ez da bi diapositibak hemen.
>> SAM GREEN: This laburpena da mugak batzuen
Beste loteslea, metodo zaharrak.
Eta gero, orain, gauza horiek ditugu.
Cool.
Awesome.
>> Beraz, Javascript beharrekoak.
Lehen gauzak lehen, ez da bat aldea nahiko esanguratsua
Ikusteko Javascript-a versus in a C bezalako hizkuntza, bidean
aldagai hori sortzen dira.
Beraz, C, erabiltzen ditugun izatea ditut Gure aldagai idatzi behar da, ezta?
Eta ez dut atsegin mota esan tekleatu, esan nahi mota I
atsegin type-- esanahi bat esleitu bezala, int bat, mugikor bat, char bat.
C, guk benetan erabili ziren aldagai bat sortu beharrik
eta, ondoren, mota hori makila aldagai hori erabiltzen dugun denbora osoan.
Eta hori ez da nahitaez okerrago, baina seguruenik gogorragoa erabili da.
Cool ezaugarri bat ren Javascript da
aldagai hori zer deitzen dira "Dinamikoki idatzi," horrek
esan nahi dut, bat sor dezakezu sintaxia aldagai,
varX berdin 5, adibidez.
Jatorriz sortzen Zenbaki oso bat aldagai
eskubidea azpian kanpaia somewhere-- baina I
aldagai hori aldatu ahal Kate bat erreferentzia
bezalako ezer egin gabe aldagai berri bat sortzeko.
Ez dut kezkatu beharrik mota aldatzen ari buruz.
Javascript daki motaren horren aldatu, eta hori dinamikoki gertatzen.
>> Beraz, ez dira onurak eta hori desabantaila,
nor ere lan egin zuen bezala, edonork Pixka batean Javascript jakin liteke.
Badira aldiz ustekabean agian,
aldagai bat mota aldatu eta Ez kudeatu mota aldatzen ari dela,
eta, ondoren, zure Javascript crash-- daiteke edo salbuespena
bota behar, zuk behar delako izango Oker denean motaren bat espero duzu.
Cool.
>> Beraz, scoping-- bertan bezalakoa da, badugu aste hasieran gogoratu zehar,
nola ikusgai aldagai bat aipatzen da eta zer kodearen inguruan.
Hori guztia oso antzekoa modu itxura C. da
Beraz, aldagai oro har scoped dira Funtzio baten barruan kizkur giltza barruan,
eta orduan ere badaude aldagai global scoped dela
are-- aldagai bat idatzi baduzu Funtzio baten kanpoaldean,
testu osoa ere ikusgai izango da.
>> Arteko aldea One Ikusteko Javascript-a eta C bereziki,
dela deklaratu global baduzu Testu fitxategi bat edozein lekutan aldakorra
edozein funtzio ere ikusgai da Testu fitxategi horren barruan.
Hori da zuzena, ezta?
>> HUGH Zabriskie: Bai.
>> SAM GREEN: Beraz, hori da apur bat ere Pixka C alderatuta funky,
non beti izan dugu behar gure definizioak aldakorra lekuak gainetik
erabiltzen ziren.
Hori ez da hori behartuta arau bat jada, beraz, apur bat desberdinak.
Eta berriro ere, besterik gabe, reemphasize den global tokiko aldagai versus
Oso C. antzekoa izan duzu izen bereko bi aldagai,
eta euren izenak bat egon itzalperatzen Tokiko aldagai batek horietako bat bada
global zen.
Beraz, antzeko mota arazoak izango dituzu batzuk direla
Baliteke sartu exekutatu batzuetan zure arazoa ezartzen orain arte.
Cool, beraz, aldagai da.
>> Kontrol-fluxua, bezalako esanahia, bada-Bestela stuff-- eta loops logikoa.
Beraz, hasteko, hau da, zer bada bestela adierazpenak Javascript itxurarik.
Hainbat gauza jartzea lerroetan, ez da garrantzitsua.
Hau da, besterik gabe konbentzio bat Era dugu egitura kodea da.
Just C bezala, bat dugu ", Bada" parentesi adierazpen bat.
Hori ez da zer egin esan nion.
Da berriro egin nuen.
>> HUGH Zabriskie: Trying irteteko?
SAM GREEN: Ez, ez naiz besterik dezakezu gerturatu nahian.
Ez du axola.
>> Beraz, "bada" adierazpen bat daukagu ​​eta horren barruan, egoera bat dugu
hori egia edo gezurra ebaluatzen, eta hori, ala ez zehazten du
kode-bloke hori sartuko gara.
Eta, era berean, ez dugu bat, bestela-bada, eta beste bat, erabiltzen ari bezala besterik ez dugu nahi C.
>> Ere nahiko erosoa izan behar duzu eskubidea loops bat itzali,
ere begiratzen dutelako C antzekoa dirudi.
Baina nabarituko duzu berriro garela izan beharrean, initializations INT,
var initializations ditugu.
Eta uste dut egin behar duzu kontuz egin izan den
Ziur ez duzula balioa aldatzeko I int bat kate bat,
adibidez, hori delako joan portaera bitxi sor agian ez duzu
Espero.
Baina hau begiratzen nahiko ezaguna da, bai.
>> Beraz, hau da, non gauzak hasteko pixka bat ero JavaScript
Norbait da batetik joan C. atzeko Badira funtzio
Ikusteko Javascript-a ere, eta ez dago modu bat da itxura funtzio bat aldarrikatu
moduko C antzekoa, eta Gero beste bat dela
itxura mota desberdinak.
>> Lehenengo bertsioa, bertan hemen ikusi ahal izango dugu,
da mota C-bezala, non , esaten dugu hau funtzio bat da,
izen bat eman, eman argumentu kopurua,
eta, ondoren, funtzio-aren edukia horiek kizkur giltza barruan joan.
Adibide bat ikusiko dugu bigarren batean argudioak.
>> Hurrengo lerroan Berriz, ikusiko dugu oh, Hemen izeneko aldagai bat da "myFunction,"
eta berdina dugu honetarako generic gauza funtzio hori
ez dirudi ezer gertatzen baimena izan behar du.
Arrazoia, hori da desberdina baino C dela Javascript
Zer da hizkuntza funtzional bat deitzen da, edo elementu funtzionalak ditu, eta horrek esan nahi du
funtzioak balioen, egia esan.
Eta horrek esan nahi du ezarri ahal izango ditugu funtzio bat berdinak aldagai bat
eta, ondoren, funtzio hori mugitu Inguruan, pasa ezazu argudio gisa,
gauza mota guztiak egin duten funtzio bezala.
>> Beste gauza bat note-- funtzio idazten dira
argumentuak kopuru jakin batekin.
Funtzio baten adibidea ikusiko dugu hurrengo irudian argumentu batekin.
Baina Javascript borondatea ez duzu Yell saiatu baduzu
funtzioa erabili Oker argumentu kopurua.
Besterik ez da egingo bere onena egin ez, gainditu baduzu, esanahia,
Hori bat espero funtzio bat deitu argumentua ez, guztiak batera, argumentu
gertatuko den da zerbait izango da bere onena saiatu eta kode hori gauzatzeko,
eta azkenerako agortu bada salbuespen bat edo Akats baten sartu,
bota egingo da salbuespena dela eta besterik gabe, gorde va besterik ez da modu bat
Ikusteko Javascript-a egiten du lan hori.
Bai.
>> Ikusleak: Zer gertatzen da argumentuak ez da gehiegi?
SAM Berdea: So Galdera zen, zer gertatzen
argumentu gehiegi badaude?
Eta erantzuna da Ikusteko Javascript-a izango da besterik
direnak direla alde batetara Direnak espero da ondoren.
Saiatuko funtzioa exekutatu deitu balitz bezala besterik ez da lehen bi izan zen.
Eskuin?
>> HUGH Zabriskie: Hori da, bai.
Era berean, ez bada argumentu gutxiegi dira,
Mota besterik ez da ematen guztietara nulua argudioak ez du balio edozein
da.
>> SAM GREEN: ezin diren benetan izan handy, baduzu
funtzio bat idatzi nahi duten a aldakorra zenbakia argumentu hartzen.
Balio lehenetsiak ezarri ahal izango duzu funtzioaren definizioa,
eta hain zuzen, ez ikusi ahal izango da sarrera ez da han.
Beraz, pixka bat hitz egin nahi dut Azken bala honi buruz informazio gehiago
puntuan, funtzio da balioak dira.
Hau adibide bat dela da Pixka Haluzinatzeko bat
zuk besterik irakurri zuen, eta ez dut uste badu zer gertatzen den bigarren bat buruz.
Beraz, dezagun besterik at Lehen lerroan hemen.
Aldagai hau, f1 daukagu, esan dugun hori gauza hau ez funtzio bat da.
Eta funtzioaren edukiak console.log dira ('kaixo').
You console.log gisa pentsa dezakezu Javascript printf baliokidea.
Beraz, zer gertatuko da, badugu kode hau exekutatzen gure nabigatzailean,
out inprimatu izango da kate bat.
Dut hori frogatu ahal.
Ikusleak: log, ordea, ez du hori esan nahi da nonbait grabatzen ari?
SAM GREEN: Bai.
Beraz, erakutsi dut zer gertatuko.
Beraz, galdera zen, zer esan log esan nahi?
>> HUGH Zabriskie: Beraz console.log C. for printf bezalakoa da
SAM GREEN: Beraz console.log printf bezalakoa da,
beraz console.log hau badut ('kaixo'), eta I deitu duten, kate "kaixo"
lortzen inprimatutako kontsola.
Hau kontsola da.
Besterik ez da printf, non bezalakoa da inprimatzen estandarra da.
Eta minutu bat ikusi dugu, baina hau da, benetan
kontsola objektu aipatuz, eta objektu hori metodo bat deituz.
Hori zentzu gehiago egin beharko Minutu batean dugunean
buruz hitz egitera zaitez Ikusteko Javascript-a objektuak,
baina besterik ez nuke aipatu dela pentsatu dut.
HUGH Zabriskie: Gara erabilitako C, eskuinera
programa handi bat idatzi ohi dugu nagusian ezer egin.
Baina zer da cool Javascript egoeran dagoenean interpreter mota hau izan dela
eskailerak denbora errealean, hain lerro hartzen lerroz,
besterik ez da interpretatu ahal duten lekuan bertan.
Eta pista mantentzen aurretik duten exekutatu gauzak,
beraz, tresna nahiko erabilgarria da console.log, edo kontsola erabili,
oro har, besterik jolasten Inguruan Javascript batera.
>> SAM GREEN: Beraz, atzera joan honetarako Esate kodea bigarren lerroa
Hemen nahiko nire buruan mind-boggling da.
Lehen aldiz, hau irakurri nuen, zen bezala, zer gertatzen da?
Beraz, zer gertatzen da, hau funtzioa adierazpena dio,
Izeneko funtzio f2 bat dut f-en argumentu bat espero da,,
eta gero deitzen dela funtzioa, f, eta horrek
zen argumentu gisa pasa da no argumentuak bera.
Beraz, hori nahasgarria izan liteke.
Hau ulertzen dugun f2 f1 gisa hartzen bada Argumentu bezala, eta, ondoren, f2 barruan,
f lortzen called-- bertan bitartekoak kode-lerro hori,
bi lerro hauek ondoren kodea, "kaixo" emaitzak
ari kontsola inprimatuta.
>> Izan ere, gainditu ahal izango dugu funtzio inguruan balioak gisa
ondorioz sortu gehien bat izateaz Javascript ezaugarri indartsua
programazio hizkuntza gisa.
Guztien kanpoaldean awesome gauza egin daiteke,
Besterik ezaugarrietako bat bezala Bide dagokionez hizkuntza
gauzak erraz egiten dela programatu eta aukera ematen du
ez direla bereziki gauzak egiteko Sarean ondo egokitzen,
programazio funtzionala eta funtzionala programazio Javascript alderdi
da gehien bat kontzeptu indartsu dagoela
galdetu didazu Javascript existitzen.
Cool.
>> Beraz, hurrengo gauza.
Funtzionalak izateaz gain, Javascript elementu ere badaude
objektuetara bideratutako direla, hau da, oso bat
buzz informatikako hitz popular.
Objektuetara bideratutako programazioa benetan popular gauza bat da.
Ikusteko Javascript-a horren bertsio bat du, nik uste dut hor balio bakoitza, halaber,
objektu bat, eta horrek esan nahi objektu bakoitza Balio kopurua batzuk biltzen ditu.
Horrela erraz balioak, antzerako zenbaki oso bat, varX bezalako berdin 5,
Objektu hori besterik biltzen balio bat dela.
>> Baina, era berean, egoera bat irudika dezakegu where-- C egoerak pentsatu ere
non egin nahi dugu structs zerbait,
adibidez, zenbait biltzen balioak elkarrekin eta egiten
Oso erraza gauzak inguruan pasatzeko.
Orduan objektu bat Javascript dago.
>> Garrantzitsua da gogoratzea objektuak bilduta esaten dut
Balio kopurua batzuk elkarrekin, funtzio dira, halaber,
balioak, eta horrek esan nahi du funtzio hori halaber Javascript objektu baten barruan egon.
Eta horregatik da garrantzitsua da hau, guk berriz sarritan
metodo bat deituz pentsatzea Objektu bat hori da on
beste termino ezagun baten objektuetara bideratutako popular hizkuntzetan,
ezberdintasun bat hemen da, metodo bat hori guztia Javascript da
balio bat da objektu baten barruan gordeta Hori action-- batzuk seguru burutzen
direla barruan beste balioak erabiliz objektu horren, baina ez du zertan.
Beraz, egoera bat imajinatu dezakezu, I zoro bat pixka bat asmatzen,
non inork metodo bat izeneko duzu objektu beste on oposiziorako, adibidez.
Beraz, pixka bat horrela funky da.
>> Eta metodoak ere alda dezakezu diren objektu batekin lotuta
Metodo hori esleitu Funtzio berria, eta hori ere
Nahiko ezberdinak objektuetara bideratutako hizkuntzetan, non
behin objektu bat aldarrikatzen dugu eta instantziatu da,
ezin dugula dira metodoak aldatu objektu horrekin lotutako jada.
Beraz, nahiko desberdina da.
Cool.
>> Beraz, hona hemen adibide bat, lehenik eta behin, ekintzan objektu baten.
Hau da, zer deitzen objektu soil bat izango da, eta horrek
esan nahi du ez duela inolako izen jakin, ez du klase bat izan,
besterik balioen egokitzerik batzuk da.
Eta hori itxura modu da, daukagun kanpoaldeko kizkur pare honi giltza hemen
JavaScript den adierazteko eta esan, hau objektu bat da.
Haren barruan balioak Barruan balioak bakoitzeko dira
objektu duten egin beharko lukete bilduta elkarrekin egon.
Eta objektu horren barruan, orduan dugun gako bikote,
non gakoa izenari dagokionean objektuaren barruan balio du,
eta beste side-- colon hemen kontrako
benetako balioa da Hori gorde behar.
>> Beraz, hemen ikusten duzu bat dugula balio Sam FN izeneko gakoa,
Koma bat, eta jarraian, hurrengo sarrera kalera esanez.
Ondoren ln izeneko gako bat, berdea balioa duten,
Koma bat, eta jarraian, jarraian "inprimatu"
hau da, funtzio balio bat izan da joan hori kode lerro hau egin behar zuen.
Dezagun urrats bat atzera eta deskonprima zer gertatzen da hemen.
Beraz, hau da, pixka bat zaila, eta zerbait berria ikusten ari gara
lehen aldiz.
The keyword "hau" gauza berria da Hemen ikusten ari gara, eta zer honek
da, gaur egungo aipatzen du esparrua oposiziorako, ezta?
Beraz, esan, hau dugu modu guztiak atzera seinalatzen
object-- osoan honetarako denean this.fn egiten dugu,
modu guztiak joan atzera goaz Objektu hau, joan fn balioa emateko
eta Sam, tira modu guztiak Atzera, makila hemen, eta ondoren, aurrera egiteko.
>> IKUSLEEN: Recuperación batera, da hori delako parametroa egin
definizio?
SAM GREEN: Beraz, galdera zen, da berreskuratze delako parametroa egin
definizio?
Bai, erabat.
Zer gertatuko da joan, dot honek JavaScript behar dio,
Ados, naiz balio batzuk lortzen dut Neure burua objektu honetatik.
Eta gero, begiratu egingo da, sarrera bat egiteko fn deitzen, eta bertan aurkitzen badio,
Gaur bertan itzuliko da egingo balioa beraz, ez da Sam.
Baina, gainera, ezin idatzi dut Hori ez zen, hemen zehaztutako zerbait,
eta, ondoren, besterik ez litzateke itzultzeko undefined-- bertan
Gauza bat da JavaScript dezake egiten da, eta horrek abantaila izan ditzake,
baina also-- da typo bat izanez gero, errore bitxi eragin dezake.
Beraz, besterik ez da saiatu aurkitu edozein dela ere esan nahi duzun aurkitzeko
eta nik ez joan kexatu izango ez balitz aurkitu.
Besterik ez dugu esan, ez nuen aurkitu da, eta ondoren, aurrera egiteko.
Beraz, zehaztugabea izango litzateke, plus hutsik, plus abizena.
Bai.
Eta gero, ikus dezakegu hori badugu zitekeen gero, behera eta access--
eta tf.print () parentesiekin deitzen duguna.
Honez inprimatu deitzen dugu argumenturik funtzioa, ezta?
Baina esan dugu, besterik ez bada tf.print () puntu eta koma, parentesi gabe,
Hori egingo zukeen guztia tira balioa funtzioa,
baina ez benetan deitu zion.
Cool.
HUGH Zabriskie: Beharrezkoa objektu bat egin dugu?
SAM GREEN: Noski, utzi egin dutela.
Beraz, hau mugitu ahal izango dut kontsolara adibide.
Objektu bat izan dudala hura.
Beraz, hau objektu sinple bat da.
Hau bi dituen objektu bat da Bi gakoei balioak, bi gako balioa
bikote.
Beraz, ondoren I gordetako balioa sartzeko x.x1 eginez objektu honen barruan,
adibidez, eta 1 itzuli dut.
Halaber, x.x2, eskuratu balio bat atzera.
>> Eta orain benetan cool gauza da, ahal dudan benetan zerbait gehitu objektu honi
I sortu ondoren Nik da.
Beraz, imajina dezakezu, dezagun esan funtzio bat daukat.
>> HUGH Zabriskie: You egiten filmea idatzi dute.
>> SAM GREEN: Oh, hori da gogaikarriak.
Zer dut gogoko zuen?
Oh.
Hemen gara.
Cool.
>> Beraz, besterik ez oraindik honen funtzioa, f, hori
hau da, gaur egungo joango Objektu eta inprimatu this.x1.
Beraz, nik deitu f besterik ez balitz moduan berez, ez da ezer gertatzen
, gertatuko den eskubidea, ez dago x1 ez dagoelako objektuaren nik aipatuz eremuan.
Baina, x.f = f, eta, ondoren, esan nahi nizuke dut deitu x.f (), naiz atzera 1 lortu nahi dut.
F funtzioa dela orain Objektu x lotutako,
izeneko gakoa x1 ditu balioa 1 lotutako,
beraz, this.x1 deitzen duguna, da zer da bilatzen aurkituko joan
eta izan balio bat inprimatzeko gai.
Beraz, adibide bat besterik ez da ero gauza motatako
Ikusteko Javascript-a objektuekin egin dezakezu.
>> Beraz bertsioa izan zela Bertsio orokorra, esanahia
objektu bat hau erabiliz sortu dugu parentesi notation-- giltza idazkera,
rather-- eta hori da erabilgarri badago besterik ez dugu
Objektu jakin baten adibide bat, baina zer bat baino gehiago izatea nahi badugu
Mota berekoak?
Eta horri erantzuna Galdera da, ez dira gauza
Klase baita izeneko JavaScript.
Funtzio bat sortu ahal izango dugu, initialization nolabaiteko egiten
atzerriko objektu bat, eta esango dugu, bezala,
Nire klase beraz izenean berrerabilgarriak object-- of
berdinen funtzio hori ezartzen duen gora.
Beraz, zer parekoa izango litzateke objektu bat sortzen ari da hori
Besterik ez litzateke, kizkur giltza, str, bi puntu,
Hau kate bat, puntu eta koma, kizkur.
Hori generikoa izango litzateke Objektu abiarazi dugu,
Bat aldea on izanik hurrengo lerroak prototipoa bat sortzen dugu, eta horrek
esan gako lehenetsi bat da, gehitzeko gure objektu dugula
Hemen azaltzen diren balio ditu.
Zentzua, hori denean berri bat sortu dut MyClass objektu honen instantzia,
nik nahi izan du barruan aurrez eraikitako joan Balio bat str izeneko eta balio bestera
myPrint deitzen zaio, hau da, joan funtzio bat izan.
Awesome.
>> Great.
Beraz, azken gauza Javascript buruz esan
benetan zer baliagarria dela eragiketak asynchronous deitzen dira.
Asynchronous bitartekoak da dugun eragiketa batzuk itxaron
mugitzen dugu aurretik osatzeko an, baina, aurrera egiteko zain gauden bitartean
eta, ondoren, zerbait gertatuko geroago.
Eta zer esan nahi dudana da, zuk egoera bat non irudika dezake
eskaera bat bidali behar dituzu Web zerbitzari batzuk nonbait,
eta nik itzuli nahi baduzu bidali joan Datu zati handi batzuk, ezta?
Eta zure erabiltzaile ezin itxaron Bitartean hori dela-eta,
eta ez da ezer izan zitekeen garai hartan joan.
Baina hori ez da diseinu handia, ezta?
Ez duzu nahi web orriaren izoztu.
Erabiltzaileak zer nahi baldin bada klik goitibeherako menu bat?
Ez da diseinu patroi handi bat.
Horren ordez, funtsean, zer Ikusteko Javascript-a duela dio,
Ados, egin eragiketa hau asinkronikoki.
Beraz bezala, atzealdean itxaron, eta orduan, eragiketa egiten da,
callback deitu funtzio funtzio batzuk deitu,
ez den seinalerik action-- batzuk Eragiketa dugu amaituko zain ziren
egingo da.
Eta arrazoia hori da super indartsua da, Zerbait egin dezakegu, argudio bat pasatzeko,
Zerbait egin, eta ondoren itxaron zerbait gertatuko.
Ondoren, zerbait hori behin osatzen du, callback bat deitu ahal izango dugu.
Hori da benetan erabilgarri uzten duelako Web Audio API dituzten gauzak egiten digu,
adibidez, bezalako karga batekin urruneko zerbitzari batetik audio fitxategia
to itxaron beharrik gabe audio fitxategi osoa kargatzen den,
horrek benetan izango litzateke erabiltzaile esperientzia txarra.
Cool.
>> Azken pare buruzko oharrak arazketa, hau geroztik
Gauza bat egin behar joan zaren da Zure proiektuaren baitan, bermatuta.
JavaScript kontsola aipatu dut.
Ezaugarri super erabilgarria da Nabigatzaile moderno guztien,
Eta benetan lortu animatzen dugu erosoa kontsola erabiliz,
ona lortzeko Javascript nahi baduzu.
Da super erabilgarri arazketa, baina, aldi berean da
benetan kalkulatzen baliagarriak out nola API bat erabili da.
Benetan aukera ematen du esperimentazioa erraza
batzuk idatzi behar izan gabe kodea, eta, ondoren, konpilatu.
Ez duzu urrats horiek guztiak egiteko.
Zuk besterik idatzi daiteke kode batzuk lerro bat sartu,
eta, ondoren, berehalako feedback lortu kode lerro bat ala ez
worked-- oso praktikoa.
>> Eta, gainera, note-- tekniko bat besterik ez JavaScript kontsola adibidea da
REPL-- bat beraz, R-E-P-L da, REPL of, irakurri dago, ebaluatu,
inprimatu amaitzen da.
Gauza batzuk idatzi behar duzu irakurri beharko da zer idatzi duzula,
ebaluatu egingo da, eta inprimatu izango da etorri irteera, eta, ondoren, berriro hasi beharko da.
Hori aukera ematen dizu azkar joan zirkuluak errepikatzean, hau da, benetan cool.
>> Azken benetako honetan note-- asmatu dut benetako azken nota da, bai.
Nola erabiltzen dugu Javascript?
Beraz, lehenik eta behin, inportatu ahal izango dugu Script etiketa bat erabiliz
goiko edo beheko HTML baten at fitxategia edonon HTML fitxategi baten barruan,
benetan.
Eta gidoi etiketa bat barruan daude bi azpi-modu Javascript inporta.
Izatea Lehenengoa da Aparteko Javascript fitxategia
inportatu dugu bere osotasunean dela, edo gidoi bezala kodea azalera dauka edukitzea
, hasteko, eta ondoren backslash gidoi amaierara.
Eta gero, idatzi besterik ez dugu HTML fitxategia barruan Javascript.
Horiek bi modu daude.
Ezin duzu hura HTML barruan.
Ikusleak: bestea baino hobea al da?
SAM GREEN: Galdera izan zen, da bestea baino hobea.
Beraz, bai, Kodetze praktika gisa, eta, gainera, diseinu praktika bat bezalakoa da.
Bi arrazoi daude Horregatik, hobe izango da agian.
Lehenengoa da, zure kodea bat egiten du asko gehiago irakurgarria zure HTML guztiak galtzen
da leku batean, zure CSS guztietan da beste leku, zure Javascript guztia
hirugarren tokian dago.
Eskuin?
Uste dut dagoeneko hitz egin behar dugu Horri buruz sections-- bezalako CSS zer
Hori is-- eta doa beste fitxategi batean askotan.
Beraz, antzeko kontzeptu-mota hemen.
Zuk ere, pentsa dezakegu Javascript baino gehiagotan berrerabili beharko litzateke
HTML orria, edo agian bat HTML orrien franko,
eta Javascript izatea bat sartu refactored
fitxategia inportatu dezakezu leku bat baino gehiago sartu
ahalbideratzen kodearen izan Modu mantengarriak.
Bat egiteko imajinatu dezakezu Ikusteko Javascript-a aldatu
eta hori aldatzeko beharrik 100 fitxategi desberdinetan.
Eta horren ordez, besterik ezin dugu aldatu da bat, hau da, modu ahaltsuagoa ere.
Ba zure galdera erantzun dut?
Cool.
>> Era berean, ezin dugu kontsola batean idazten, Aurretik aipatu dugun bezala.
Eta berriro ere, azken note-- bat Web Audio eraikita dago,
ez duzu ezer kargatu.
Cool.
Ba al dago edozein galdera, egin behar duzun Javascript buruzko edozein galdera gehiago,
Aurretik mugitzen?
>> Ikusleak: [INAUDIBLE]
SAM GREEN: Ondo da, cool.
Beraz, gaur egun, baina behar API buruz hitz egingo da.
>> HUGH Zabriskie: Cool.
Mila esker, Sam.
>> SAM GREEN: Dudarik gabe.
HUGH Zabriskie: Awesome, beraz, mugitu on dugu Javascript from.
Beraz batzuk buruz hitz egin dugu Ikusteko Javascript-a funtsezko elementua,
eta horiek aldagaiak funtzioak dira, objektuak, aldagai gisa funtzioak,
loading asinkronoak.
Hauek dira gauza guztiak egingo duzun ikusi Audio Web erabili ahala.
Beraz, ari gara hitz egin da lehen buruzko goi-mailan.
>> API bat da, beraz, zerbait eraikitzen ari den, Sam esan bezala,
eskubidea Javascript sartu kontsolan erabili duzula.
Eta, egia esan, besterik C bezala ++ kodea hori benetan Chrome txertatua
eta Firefox, eta nabigatzaile hauek guztiak.
Beraz Web ideia nagusiak Audio da behar duzula
audio gasbide-mota hau, ezta?
Beraz, zure audio datuak datorren inprimaki batzuk.
>> Badira hiru forms-- nagusiak mota osziladore, duzu bertan
sine olatu bat sortzen du, kosinua olatu, nola funtzionatzen duten ikusteko goaz.
Beste bat oso ohikoa, noski, MP3 bat da.
Beraz, agian hasten zara Abesti bat, eta, ondoren,
iragazle batzuk egin nahi Hori eta irteera
hori -bere iturri posible bat izan daiteke.
Eta gero, benetan cool bat Bat mikrofonoa da.
Beraz, batzuk oso erabili ahal izango duzu Javascript oinarrizko deiak
sarbidea izateko mikrofonoa, eta beraz baduzu
Aplikazio bat egin nahi zelaia detektagailu bat bezala,
adibidez, hori ere hartzen du Zure ahotsa eta zifrak egindako
the pitch-- duten bidea oso erraza.
Mota besterik ez duzu irakurri da ere, irudikatu maiztasuna,
eta, ondoren, zenbaki bat irteera.
Beraz, nola lan egiten duten ikusi dugu, baita.
>> Helmuga izango da gehien bat non audio datuen irteera da.
Beraz, oro har, honelakoxea Zure ordenagailu eramangarria hiztun.
Beste aukera bezalakoak dira ScriptProcessorNode-- bat
batean nodo lortu dugu segundo baina funtsean,
bai soinu ari zara jartzen egindako Zure ordenagailuaren bidez hiztun bidez,
edo ari da mota grabatzen duzu, beraz, hura gordetzeko zaren audio datu gisa.
Beraz, agian norbaitek sortzen bada musika zure aplikazioa eta gero
Hori grabatu eta agian like nahi duzun esportatu SoundCloud den, adibide erabiliz
Hori dela egiteko modu bat izango litzateke.
Fun stuff guztiak, bertan buruz hitz egingo dugu,
bi puntu horien arteko gertatzen, non kargatu dugu musika
eta, ondoren, irteera da.
>> Beraz, ez dut bost buruz hitz egingo Bigarren batean audio ekoizpen fase.
Izeneko gauza daukagu AudioContext bat, eta horrek
Wrapper txiki honetan hemen ikusten dugu.
Funtsean zer AudioContext is-- bagenu JavaScript kontsola joan oraintxe,
bat sortu ahal izango dugu oraintxe.
Just REPL adibide bat, ezta?
Irakurtzen ari gara, , ebaluatzeko eta bistaratzen.
>> AudioContext egoera global bat da.
Honez egitura bat, objektu bat da Hemen, informazio mantentzen eta hura
Gauzak buruz ari da audio lotutako pantailan.
Adibide bat uneko ordua da.
Hau da zenbakia kontatzen segundo, oso, hain zuzen,
Web orrialde geroztik kargatu.
Beraz, hau da, benetan erabilgarria erabili ditzakezun jabetza gutxi.
Honez irakurri sor baitezakete benetan uste dut Balio ezartzen saiatuko dezakezu.
Ezarri esango du, eta, ondoren, inprimatu baduzu
, berriro ez egin benetan da nahiko lan.
Beraz, ez da irakurri-bakarrik modukoak dira Ikusteko Javascript-a lortzeko zailtasuna.
Hau da, benetan erabilgarria bada motatako sinkronizatzen ari zarela
desberdinak asko Informazio, zaudenean
nolako musika desberdinak jolasten.
>> Inork benetan erabilgarria Another Testuinguru helmuga.
Zalantzarik gabe, nahi izanez gero, izan hau zeure kontsola eskuineko ari da
orain.
Beraz, hau AudioDestinationNode da.
Funtsean, zer dio honen da, Irteerako joan da?
Beraz, ez da benetako bi aukera daude hemen.
Normalean, lehenetsiak, besterik zure hiztun da,
beraz AudioDestinationNode funtsean, dio
daude zero soinua irteerak datozen, bidaliko hizlari.
Beraz, oro har, ez duzu horrekin jolasteko aukera.
Oraindik benetan erabiliz interesa baduzu ScriptProcessorNode grabatzeko,
betiko tiro me an email geroago delako hori
apur bat zailagoa da.
Baina, oro har, Oraindik besterik mota Soinu-irteera inprimaki batzuk ere.
Beraz, cool, hemen salto egingo dugu atzera.
Ikusleak: sentitzen dut.
HUGH Zabriskie: Bai.
Ikusleak: hitz egin esan duzu, ez dakit you aurrerago buruz.
Ezin hori komunika duzu Pro Tools-ekin?
>> HUGH Zabriskie: Pro Tools With?
Ikus dezagun.
Ez dut uste.
Beraz, bezeroak artean gertatzen da, Ikusteko Javascript-a da
kontsola, eta zure benetako ordenagailua, da, oro har,
hori da mota zerbait mugen gainetik, baduzu
Izango da, mota the-- izaeraren arabera diseinu gauza baten antzeko zerbait da,
baina nabigatzailea bereizi mantentzeko saiatzen zara erabiltzailearen benetako ordenagailutik.
Oro har, gauza bakarra Oraindik ahal izateko sarbide mikrofonoa edo kamera da.
To Oraindik ez duzu gai, I ez dut uste, erabili Pro tresnak.
Hala eta guztiz ere, sortu baduzu Pro Tools pista batean,
esportatutako, hori kargatu ahal duzu Hemen ere, iragazi, adibidez,
Prozesu hori, eta erregistro bat sartu dela Audio helmuga edo, no-- esfera bat
Processor Nodoa.
Eta gero, hortik aurrera, ezin duzu esportatzen dituzten SoundCloud den, zuk
bidal zezakeen email bat, edo zuk nahi ez duzun.
>> Baina ez oztopo arin baten antzeko zerbait da Zure ordenagailuan musika egiten arteko
eta musika-line egiteko.
>> SAM GREEN: Eta hori da Ez API hau berezia.
Segurtasun Chrome ezaugarrietako bat da, eta Beste nabigatzaile moderno guztietan uste dut.
Nabigatzaileak burujabe bizi den.
Beraz, adibidez, web orri bat ezin Ikusteko Javascript-a erabili soinua piztu
Zure hiztunek, adibidez gainean.
Edo, ezin da itzali ordenagailua.
Eta ez dago tarteko puntua da Bi gauza horiek artean, eskuinetik,
beraz, bai bat behar duzu abstrakzioaren,
edo ireki zabaltzean segurtasun uzteko akats
asmo txarra programatzailea egin edozein dela ere nahi zure ordenagailu eramangarria dute.
Eta horregatik Chrome burujabe bizi den.
>> HUGH Zabriskie: Bai.
Ez duela zentzurik?
Cool, cool.
Besterik ez nintzen joan adibide bat erakutsi.
Hau da, nahiko askoz gisa urrun, lortu duzun bezala terminoetan
ren erabiltzailearen ordenagailuan sartzen ari da.
Baduzu USB teklatu bat konektatzean, zerbait erabili ahal izango dituzu webean izeneko
MIDI API, ez dugu benetan hemen mintzagai,
baina hori da beste API da gutxienez Chrome-- sartu berriro eraiki,
hau da, zergatik maite dugun Chrome-- Uste dut Firefox edo Safari,
hau gauza erraza da google-- nabigatzaile ezberdinak dituzte
bertan euskarri ezberdinak APIak ezarri dituzte dute.
Baina teklatu bat konektatu nahi baduzu eta informazio horrekin lan egiteko,
motatako teklatuak bidaltzen Ordenagailua den informazioa
eta gero online hori erabili, API hau Hor duzula litzaidake lanean.
>> Cool.
ONDO DA.
Beraz, azkar mugitzea hemen.
Nola ari gara denbora?
>> HIZLARIA 1: 15 buruz.
>> HUGH Zabriskie: 15 minutu geratzen?
Ados, cool.
Beraz, hemen lasterketa egingo dugu aurrerago.
>> Beraz, funtsean, puntu nagusiak gasbide gisa honetako pentsatzen
dela gasbide-urrats bakoitza audio nodo multzo bat da.
Gure iturburu, demagun, oszilatzaile bat da.
Osziladore nodo bat sortu behar dugu.
Eta besterik ez da mota du funtzio txikiaren
eta guztiak ari dira oinarritutako egindako Audioaren testuinguruan hemen.
>> Ikusleak: When, esan du osziladore, esan nahi du horrek
egia esan, literalki joan bi polo desberdinak atzera eta aurrera?
>> HUGH Zabriskie: Ez, dirudienez irudikapen digital bat.
Benetan C ++ ezarri.
I benetan ez specs ezagutu benetan nola ezarri,
baina hori guztia, datu bitarrak bezala lanean.
Egia esan, bai.
Hori esanez egingo litzateke, eta ahal nuen benetan, nahi izanez gero,
You more apur bat bidali izan dut nola uhin buruzko informaziorik
formatu digitalean izatea mantentzen dira.
Ados, cool.
>> Beraz sine bat bezala tonu bat sortzen ari garen olatuen edo horrelako zerbait, agian,
440 Hertz.
Oszilatzaile bat sortu dugu.
Bolumena ezarri nahi badugu, ezer konektatu GainNode batera,
bertan .creategain egin ahal izan genuen.
Hori da zure bolumena ezartzen du.
Edozein kalera pasatu ahal izango duzu options-- bai bestearen,
beraz, audio buffer-iturria nodo da non agian,
hasi zaren kargatuta MP3 bat gordetzeko.
>> Biquad iragazkia iragazpenaren da Oinarrian guztiak hartu nahi duzu
Abesti bat, edo horrelako zerbait.
Jainkoa debekatzeko hartu nahi duzun oinarrian abesti bat.
Eta AudioDestination nodoa da, berriz ere, atsegin non gure amaitu da.
Oraindik ikusten inoiz interesa baduzu ahalik eta hainbat aukera guztiak,
besterik fitxan joan eta utzi auto-osoa etorri.
Eta zuk sortu ez bada, ikusiko duzu etorri Hori sor dezakezu gauza desberdinak.
Dinamikoak sor ditzakezu gidoi prozesadoreak,
I ez dakite zer dela da, kanal fusioak nahasteko
eta kanal splitters eta hori guztia.
Cool.
>> Beraz, hau da, besterik gabe, gasbide baten adibidea.
Beraz, hiru iturri buruturiko ditugu.
Agian hauek uhin dira, Agian hauek MP3s dira.
Norberaren igaro iragazkia, horrek beste bat
ohitu desitxuratu beste Norberaren panoramikoaren ezker eta eskuin.
Gauza mota guztiak egin ahal izango duzu, eta ezagutu dute mistoak inguru elkarrekin,
eta, ondoren, egindako audio datorrenean Amaieran, helmuga gisa.
Hau zer gehiago adibidea da konplikatua Web Audio kodea itxura.
Horiek guztiak sortzen ari zara hainbat objektu hementxe
Ez nago horren ziur.
Ez, ez du handitzeko.
ONDO DA.
>> SAM GREEN: ez duzu Control, Scroll-Up.
HUGH Zabriskie: Kontrol Scroll--
SAM GREEN: Ez, ez.
Control--
>> HUGH Zabriskie: Oh, Control, Zoaz?
Oh, gotcha.
Bai.
Wow, Laguia, Laguia.
ONDO DA.
Ez dut egin dela.
>> Beraz, bai, hau ere lehen Hemen atalean, ikusiko duzu
horiek guztiak sortzen ari gara Testuinguru kanpo nodoak.
Besterik ari gara piecing elkarrekin, bigarren zati batean
Connect izeneko funtzio honen bidez.
Hori da benetan gako bat Web Audio funtzioa.
Besterik ez du esan Behin hori egin Nodo bat soinuarekin batera zerbait,
pasa ezazu hurrengo nodo.
Beraz iturri izan dugu, Analizatzaile konektatuko da,
analizatzailearen zerbait egiten, doa distortsio da, eta, beraz,
eta helmuga hementxe behealdean.
Cool.
Ados, beraz, jarraituko dugu, aurrera jarraituz.
>> Pipeline-- du berriro ere, horiek the oliobideak ohikoena dira,
beraz, atsegin gauza horiek guztiak buruz hitz egiten dugu distortsio, okertu, guzti hau.
Oraindik benetan interesa baduzu Gauzak Pro tresnak erabiliz,
horiek ziurrenik interesatzen.
Hala ez bada, agian, besterik ez duzu soinua jolastu nahi,
edo, agian, besterik nahi ez soinua bolumena ezartzeko.
Horiek bi moduko ohikoenak dira audio produkzioan hodiak.
>> Berriz ere, modu hori hartu ahal izango duzu bezala oscillator-- bat beraz, dezagun
egiten duten demo hementxe.
Beraz, goazen bat sortu nahi du simple audio testuinguru hemen,
eta goazen horren Gure osziladore sortzeko.
Beraz, hori da, berriro ere, besterik ez gara deitzeko Sortu osziladore joan.
Frekuentzia bat ezarri goaz , hori 440 Hertz, guztion gogoko.
Gero lotzen dugu Helmugara point-- bertan hiztuna da, eta beraz,
Testuinguru helmuga.
Azkenik, esan besterik ez dugu, hasteko zero Hemendik aurrera segundo, eta ez du soinua izan dugu?
>> [Dei-]
>> HUGH Zabriskie: Hemen gara.
Sine olatu bat besterik ez da.
Ados, cool.
Eta gero, hori uzteko dugu.
>> Ikusleak: Non egin iritziei datoz?
>> HUGH Zabriskie: Atzeraelikadura?
Oh, seguruenik gure mikrofonoak.
Beraz, bai, hori nola egin behar duzun da.
Eta egia esan, izan badut mantendu martxan da, zuk
maiztasuna izan dezake exekutatzen ari den bezala balio,
beraz, gauza dibertigarria inguruan play da.
Cool.
Hori da beti eder bat aurkeztu.
>> SAM GREEN: Ez dugu hori pentsatzen, ba al dugu?
HUGH Zabriskie: Bai, gaizto bat da hori.
Beraz, buffer loading-- bat erakutsi dut oso amaieran horren adibide.
Hori da, MP3 batekin kargatzen.
Eta mikrofonoa, funtzio bat besterik ez duzu erabili Navigator.getUserMedia izeneko ()
Erabiltzaile sarbidea eskatzeko Informazio hori egiteko mikrofonoa.
>> Hemen iragazteko Nik besterik mantentzeko honetan mugitzen.
Hau maila nahiko altua da, baina iragazkiak besterik uzten dizu
>> [Beeping]
Iragazketa ere ahalbidetzen duzu arrosa bezalako gauzak sortzeko
zarata, zarata marroia, zarata zuri.
Zarata hutsa, sortu nahi baduzu bertan pertsona batzuk nahastea maite dituzten inguruan,
Web Audio erabili ahal izango duzu iragazketa ez da egin behar.
>> Audio Panning-- beraz imajinatu duzu joko bat idazten ari bada
eta soinua nahi duzu soinua bezalakoa da da, datozen bezala,
pantailan zehar tiro, zuk Audioaren panoramikoa erabil daiteke
Kono mota hau sortzeko, bertan antzekoak nahiko mathy da,
baina, egia esan, oso cool da lanera baduzu,
eta ez da ona batzuk tutoretzak Gainean bidali nahi dut bat.
Funtsean, mota egin ahal izango dituzu soinua sortu
zerbaitek joan 3D modu batean.
Eta DJ interes badaukazu, ahal duzun hasteko nahastuz eta abestiak lausotzen zeharkatzeko.
>> Hau besterik ez da batzuk oso oinarrizko kodea, aurretik, funtsean, zer egin nuen.
Hau bolumena ezartzen osziladore, beraz, gure osziladore sortzen dugu
bertan uhin sortzen.
Gure GainNode sortu dugu Gure maiztasuna ezarri,
eta ondoren etorri den osziladore konektatu GainNode, eta gero, funtsean aldatzen
zenbat seinale da onartzen bidez.
Baina benetan, digital bat da gauza, beraz, gehiago just da bai.
Hori ez da zer benetan gertatzen ari dena, baina hori da bizitza errealean zer gertatzen den
irabazia batekin.
>> Ikusleak: --quantization bolumen parametro baten?
HUGH Zabriskie: Barkatu?
Ikusleak: Da bat kuantizaturikoa bolumena parametroa?
HUGH Zabriskie: Bai.
Eta hau da gauza bat benetan naiz da zaien nire ezagutza ere,
nola irabazia Maila digital batean egiten du lan.
Badakizu benetako dut seinaleak, da, funtsean,
kontrolatzea, zenbat Oraindik seinalea zabalduz.
Beraz, bai.
Bidali dizut buruz informazio gehiago nahi dut, bitxia izan delako litzaidake benetan
Horri buruz gehiago jakin nahi.
Baina funtsean parametroak dira, bata fold-- da
ozenago signal-- eta zero da ez seinalea, edo ez duzu edozein soinu entzuteko.
Albo batera egingo dugu demo denbora delako horretarako aurretik, funtsean, zer egin nuen.
Eta berriro ere, Context.Destination du Audioaren helmuga nodo da.
Awesome, OK.
>> Beraz, ez dut azkar bat bi demoak egin.
Nola ari gara denbora?
>> HIZLARIA 1: 10 minutu.
>> HUGH Zabriskie: 10 minutu?
Great!
Awesome.
>> Beraz lehenengoa noa ez, nik nire gogokoenak Song deitzen.
Beraz, ez da gutxi HTML Javascript.
Bi botoiak goaz orrialdean nire abesti gogokoena erreproduzitu
eta gelditu nire abesti gogokoena.
Aldatu dut hau.
>> Ikusleak: Estali mikrofonoa.
>> HUGH Zabriskie: Bai.
Eta hemen ere ez dut kargaturik funtsean hori gidoi bat
eta hau erabilgarria MP3 bat kargatzeko
beraz, hau bakarrik egiten MP3s bide azkarrago kargatzen.
Funtsean da wrapper bat besterik ez.
Besterik prozesua Egiten MP3s askoz azkarrago kargatzen,
Besterik HTTP eskaera erabiltzen ari zarela, motatako zer egiten genuen bezala
Zerbitzariarekin ezarri uneko pieza on.
Benetan itsusia, zuk ez nahi da egin behar.
>> Beraz, tipo hau, Boris Smus, idatzi zuen benetan bat BufferLoader izeneko tresna erabilgarria gutxi.
Egiten den guztia igaro besterik egiten du testuingurua, hura list-- bat pasatzen duzu
edo, bai, ez da Javascript-a zerrendan egiteko?
SAM GREEN: Array bat.
HUGH Zabriskie: Oh, it da sorta bat, hori da.
Bideak array bat da fitxategiak ezberdinetara.
Eta, ondoren, funtzio bat pasatzen duzu.
Hau atzeradei hitz egin genuen dago loading asynchronous buruz.
Hori deitu egingo kargatutako fitxategiak behin.
Eta funtzio hori deitzen duzunean du fitxategia kargatu perimetro bat bezala hartzen du
kargatutako bufferrak array bat.
Beraz, hori gertatzen da hemen.
Funtsean, BufferList da balioa bat izango da
edo nik array bat izango da luzera bata, bertan ditu indizea
kargatutako MP3 fitxategi osoa zero.
Beraz, zer egin dut amaitzeko da kargatzeko, besterik ez dut
buffer iturri bat sortzea, eta horrek audio buffer source nodo bat da.
Hurrengo pausoa da kargatu dut batean source.buffer kargatutako buffer osoa bezala
BufferList-- batetik buffers-- asko da
eta, ondoren, audio konektatu duzu Helmugara buffer.
Beraz, zer da egin egingo besterik ez da, besterik gabe, jarri MP3 du
zuzen irteera bidez, eta hasi da berehala
dei hau lortzeko gainean.
>> Cool, beraz, ikus dezagun hau gerta ekintzan.
My [INAUDIBLE] hemen, ikus dezagun.
Beraz, ez dut besterik joan Oinarrizko zerbitzari bat hasteko.
Hori da, zerbait Oraindik baduzu, egin behar duzun
fitxategiak kargatzeko eskaerak egiteko.
Oinarrizko zerbitzari bat hasteko noa.
Hau da, funtsean, zure osoa Pset oraintxe lerro bat,
baina besterik hasita 80/80 atakan zerbitzari bat.
Beraz errepasatuko ditugu hemen, dugun 80/80 kargatu joan,
My Favorite Song joan goaz.
Beraz, I hit bada "Play my abesti gogokoena "oraintxe,
nik kargatu joan nire gogoko abestia eta play it
[MUSIKA - Eagles, "LIFE azkar IN LANE "]
--which gertatzen "Life izateko Fast Lane "Eagles arabera.
Orain, hit izan dut "Gelditu nire abesti gogokoena "eta errepikatzea da.
>> [MUSIKA - Eagles, "LIFE azkar IN LANE "]
>> Eta gehiago joan nintzen, zeren kontsolara bada Aldagai global bat erabili hemen baino gehiago I
Pista benetan mantentzeko balio du hori, hura egingo kontsola izango orain aitortzen.
Beraz, niretzat auto-sortzen.
Beraz, zer oraintxe jolasten, eta besterik ez dut deitu ahal source.stop ()
horretan.
Beno, zer ezagutzen duzu?
Just beraz, you guys entzun dute hau song-- abesti hau ezagutzen duzu agian.
>> [MUSIKA - Rick Astley, "Inoiz ez asmorik GIVE YOU arriba "]
[MUSIKA - Eagles, "LIFE azkar IN LANE "]
Nik jada Rickrolled Denok.
Ados, handia, mugitzea.
Cool.
Beraz, hau da, funtsean, adibide bat besterik nola MP3 bat kargatu ahal duzu fitxategi
[MUSIKA - Eagles, "LIFE azkar IN LANE "]
--and jokatuko da, eta gelditzeko eta hasi da.
Dut asko egin izan gehiago [INAUDIBLE]
>> Bat egin dut azken da, Erakutsi dut bat [INAUDIBLE].
>> [Musika jotzen]
>> Da bezala, ogg.wave.mp3.
, Uste dut ondo gogoratzen dut, Gai batzuk sartu dut exekutatu .m4a batera,
baina ez nago ziur.
Uste dut mp3.wave--
>> [MUSIKA - Rick Astley, "Inoiz ez asmorik GIVE YOU arriba "]
>> Ados, handia.
Ez nian esan duenez.
Dena den, kaixo.
Beraz open hau dugu.
Beraz, orain ez dut da, sortu funtsean I musika sortzeko oinarrizko sintaxia.
Beraz, zerbait egin nuen bezala bada, gehitu G4 1 2an, zer esan nahi duen,
gehitu piano ohar, G4, den laugarren G da
behetik pianoan eman.
Beraz, hau MIDI mota da hitz egin, beraz direnek musika oinarri,
hau besterik MIDI notak da.
>> Ikusleak: Hori da, G Erdi C, ezta?
>> HUGH Zabriskie: Hau da G Erdi C gainetik, hori da.
>> Ikusleak: Above Erdi C.
>> HUGH Zabriskie: Bai.
Bai, egia esan.
Nik uste dut benetan egin nuen bat [INAUDIBLE] da,
beraz, hori gainetik zortzidun bat izan liteke.
Beraz, ikus dezagun.
Play-- hit I bada
[Errepikakorra PIANO OHARRA]
--we're hori entzungo.
Ideia da funtzionatzen duten besterik komando-lerro bat litzateke,
beraz, gora eta behera joaten naizen nire teklatuan, zuk
itzuli ahal izateko aurreko komandoak, hau da, nahiko erabilgarria.
Eta beherago nire ibilbideak zerrenda da, diren guztiak begizta exekutatzen.
>> Ikusleak: suposatuz zinen du 88-giltza teklatua horretan, ezta?
>> HUGH Zabriskie: Galdera izan zen, Nago 88-tekla bat suposatuz,
eta bai, ni naiz.
Zer egin nuen da I funtsean hartu zuten 88 laginak
pianoa, ohar bakoitzeko bana.
Eta beraz, aldi bakoitzean hemendik aurrera ohar bat entzuteko,
Hori da benetan itxura begizta batean antzekoak hau ohitu da begizta batean jokatzen da,
beraz Ohar bakoitzean, martxan da hau.
Zer gertatzen da, I buffer bat sortuko da berriro,
Gain nodo baten bolumena ezartzeko sortu dut.
Benetan hau besterik ez da I esateko modu korapilatsu
source.buffer batean buffer gordetzeko.
Irabazia ematen dut, nik konektatu irabazia den,
irabazia da konektatutako irteera, eta gero jolastu dut.
Beraz, hori prozesua antzeko zerbait da buffer iturri bat ere hartzeko.
>> Publikoa: Ezin duzu benetan hartu duten soinu lehor eta gustora hezea [INAUDIBLE]?
>> HUGH Zabriskie: You can, bai.
Ez da, ber-aditza, ez da atzerapena, distortsio.
Funtsean, jarri ahal izango duzu ezer ere ogitarteko horretan of-- ondo artean,
gasbide metafora bat hobea da, baina hori ere ezer gehitu ditzakezu.
Cool.
>> Beraz demo amaitu dut Hemen duzu zentzu bat emateko
ren besterik sheer zenbat aldiz dituzu Funtzio hori guztia aldi berean exekutatu daiteke.
Beraz, ez dut hori kendu egingo da.
Sorgailu bat sortzeko noa -bere funtsean, zer honek hau benetan
sintaxia korapilatsu baten antzeko zerbait baina da unean ohar sortzen joan,
eta bakarrik hasi jolasten haiek ebaluatzen da.
[INTERPOSING PIANO]
>> Beraz, ezin dugu egin musika apur bat hemen.
[INTERPOSING PIANO]
>> Beraz, zer komando hau du, adibidez, ez da
hiru ohar horiek hartzen du piano eta gero jartzen B3 gunean.
Sintaxia hau egin liteke a little more zentzu
dutenek bati musika hondo hemen.
>> Falta danbor bat gehitu ahal izango dut.
I can--
>> [INTERPOSING INSTRUMENTUAK]
>> --just play inguruan horrekin.
>> Beraz make-- ditzakezu
[INTERPOSING INSTRUMENTUAK]
Bat hori da apur bat gehiago gogaikarriak.
[INTERPOSING INSTRUMENTUAK]
>> Beraz, hori ausaz cymbal lehor bat gehitzen 16an ohar guztietan,% 16 batekin
[INAUDIBLE].
>> [INTERPOSING INSTRUMENTUAK]
>> Bai, beraz, modu honetan works-- da beti 4: 4.
[INTERPOSING INSTRUMENTUAK]
>> Bai, beraz, lau hiruhilekoetan, eta 16/8.
[INTERPOSING INSTRUMENTUAK]
>> Beraz, batez beste,% 60 lortuko duzu ren 16an ohar hits.
>> Anyways, hau besterik ez zen motatako off erakusteko
gauzak Could batzuk the Web Audio API batera eraikitzeko.
Benetan indartsua da, benetan azkarra da, eta cool gauza asko egin dezakezu
berarekin.
Beraz, berriro ere, edozein galdera, email myself-- Hugh-- edo Sam,
eta zintzotasunez, Google ditu baliabide ona tona bat.
Edozein azken galdera?
Bai.
>> IKUSLEEN: dezakezu sarbidea du mikrofonoa.
Zer nahi izanez gero erabili mikrofono hobea?
HUGH Zabriskie: nahi baduzu Mikrofono hobeto erabili ahal izateko?
Beraz, berriro ere, hau parte da Chrome arteko abstrakzioa
eta zure ordenagailuaren gainerako.
Bitartez eskuragarri ezean API bat, Web MIDI API bezala,
Ziurrenik ezin duzu hack batzuk aurkitu, baina, oro har, ez baita bideragarria.
>> SAM GREEN: also-- dezakezu Chrome daki guztiak
zer da zure mikrofonoa lehenetsia da, eta sartzen da.
Beraz, mikrofono bat izan baduzu, ezin duzu ordenagailuaren lehenetsia mikrofono gisa ezartzeko,
Bera eskuratzeko ezin duzu horrela pentsatzen eta ziurrenik lan litzateke.
HUGH Zabriskie: That puntu ona da.
Ez naiz inoiz saiatu dela, baina nolako gauza egin ditzakezu
of-- sarrerako hiztunaren redirect baduzu, hori egin ahal izatea, bai.
>> Edozein azken galdera?
Cool.
Beno, eskerrik asko guys beraz, behaketa askoz.
Hugh naiz.
SAM GREEN: naiz Sam.
HUGH Zabriskie: Eta hau CS50 da.