>> SAM GREEN: Hi, hər kəs.
Bizim seminarda xoş gəlmisiniz.
My name Sam edir.
HUGH Zabriskie: Mən Hugh edirəm.
SAM GREEN: Və biz bu gün danışmaq olacaq JavaScript və Web Audio API haqqında.
Yalnız həyata başlamaq üçün, bu bir kontur edir Seminarda üçün gündəmə.
Biz söhbət başlamaq olacaq niyə Web maraqlı olmalıdır
Audio API, niyə JavaScript edir Bunun üçün lazım olan dili,
və sonra JavaScript haqqında danışmaq kimi belə essentials--
bəzi vasitəsilə gəzmək dil əsasları,
və sonra haqqında danışmaq yüksək səviyyədə audio API.
Sonra, Hugh bəzi danışacaqlar audio istehsal mərhələləri
və sonra bu zəhmli sequencer demo Layihə o inşa və kodu göstərir.
Və sonra, biz üçün vaxt lazımdır insanlar üçün sonunda suallar
burada yaşayan.
>> HUGH Zabriskie: Cool.
>> SAM GREEN: Cool.
>> HUGH Zabriskie: Cool.
Mən geri olacaq.
>> SAM GREEN: Belə ki, ilk şey.
Böyük şeyi biri So Web Audio API haqqında
tələb olunan heç bir set up var ki.
Bu daxili gəlir ən müasir brauzerlərdə,
Chrome, Edge, bütövlükdə, o cümlədən others-- bütün olanları dəstə
ki, böyük hissəsi insanlar bu gün istifadə olunur.
Belə ki, heç orada müəyyən oldu kənara yalnız əldə
bir web server üçün gedir Siz iş başlamaq üçün
böyük layihə üzrə.
>> Biz olduqca gəlir ağır hesab ki,
üçün Chrome istifadə JavaScript web inkişaf,
yalnız onun geliştirici çünki tools həqiqətən güclüdür.
Biz demək yalnız nə bir nümunə kimi deyərək JavaScript açmaq
Siz Chrome getmək əgər console-- və hər hansı bir web page baxmaq,
və basın tərk Sonra Element Inspect, və
Bu kiçik açılan getmək burada və Console basın
Siz bir görünür açılır görürsünüz bir skript istemi kimi çox ki,
Mac, və ya ID bilər.
Yalnız kimi və biz növü, Clear kimi, burada əmrləri
və bu kimi digər əmrləri.
Biz, dəyişənlər yaratmaq bilər biz JavaScript sonra görəcəksiniz.
Və belə bir şey biz nə edə bilər JavaScript, biz konsol ilə edə bilərsiniz
ki, bir super lazımlı bir yoldur API ilə ətrafında oynayan başlamaq
və rahat əldə Hüququ yarasa off JavaScript.
No set up tələb, həqiqətən gözəldir.
Cool.
Awesome.
>> Belə ki, yalnız bir şey daha əlavə edin.
Əgər hər hansı bir var Suallar , burada deyil yaşayan bir çox
us-- bu e-poçt çekinmeyin Bizim e-poçt ünvanlarını var.
Əgər suallarınız varsa Bizə soruşmaq istəmirəm,
kimi, oh mən səhv var mənim kodu, və ya bir şey
ki, bir az daha xüsusi var bəlkə ilk Google.
Böyük ehtiyatları var Orada Web Audio API haqqında.
Bu, həqiqətən də var sənədləşdirilmiş və olan oldu
insanların bir ton istifadə ədalətli sənaye və insanlar
özləri üçün fun stuff bina.
Belə ki, bir çox olmalıdır Orada resurslarının.
Awesome.
>> Cool, belə ki, niyə Web Audio API?
Bu diaqram bir az yolu bir təkamül
web səs zamanla artmışdır.
Bgsound orijinal HTML tag kimi idi Internet Explorer dəstəkləmək üçün istifadə edir.
Bu, yalnız olduqca əsas səslər üçün icazə funksionallığı, çox möhkəm idi
Siz edə bilmədim mürəkkəb sequencing,
səs başladığı və ya nəzarət və çox sağlam dayandırdı.
Belə ki, xüsusilə deyil inkişaf.
Sonra sonra, Flash , along-- olan gəldi
Mən sizə uşaqlar bütün tanış əmin deyiləm Flash-- bəlkə bu işləri necə ilə,
lakin əlbəttə onu gördüm.
Siz Flash yeniləmə var Plug-in, məhsullarının bütün bu cür,
və əlbəttə ki, çeşidini genişləndirib funksionallığı mövcud idi.
Lakin istifadəçi edilməsi yüklemek bir plug-in mütləq deyil
o cümlədən Flash bir günah Sizin tətbiqi, sağ?
Sonra Çünki asılı deyilik istifadəçi gedir və bu plug-in tapmaq,
və yəqin ki, çıxdı olunur bu əlavə addım off
Onlar sizin app istifadə etmək lazımdır.
Və sonra bir yeniləmə ola bilər ki, bütün proqram qırmaq lazımdır,
və bir kabus olan qədər başa çox geliştirici üçün.
Belə ki, bir barrikada idi.
>> Və o, birlikdə gəldi HTML audio tag olan
daha müasir dilidir HTML bir xüsusiyyət olan əlbəttə ki, bir çox heyəti üçün icazə,
hətta şeyi edə bilər bir az orada məhdud idi
şeyi nəticəsində ki, HTML qadir idi.
Belə ki, JavaScript API, Web Audio API,
standart oldu brauzerlərdə arasında təcrübə,
ki, həqiqətən dəsti genişləndirmişdir developers üçün imkanlar
həqiqətən binaya almaq web cool stuff.
Uzun müddət var idi olmuşdur həqiqətən güclü alətləri
doğma audio applications üçün, hər kəs GarageBand bilir like--,
və sonra açıq-aydın daha çox var professional audio mixing applications,
və stuff ki cür.
Amma yox idi bir həqiqətən yaxşı bulud deyil
Cloud, evet, hərhalda Bulud web-based platform
ki, developers imkan verir insanlar üçün applications yaratmaq
audio mixing etmək.
O sizə göstərəcək kimi sonra, Web Audio API
həqiqətən güclü imkan verir stuff, həqiqətən sadəcə baş
olan olduqca sərin.
Belə ki, siz nə üçün təlimat var Seminarın qalan etsinlər,
əsasən.
>> Və indi mən haqqında danışmaq gedirəm Bəzi JavaScript yalnız əsas elementləri
dil, belə ki, biz eyni səhifə ola bilər
Biz haqqında danışmaq zaman API bir az sonra.
Cool.
>> Belə ki, bu bir xülasə edir.
Mən burada idi unuttum.
Bəli.
>> HUGH Zabriskie: Burada iki slaydlar var.
>> SAM GREEN: Bu xülasə edir məhdudiyyətlər bəzi
digər məcburi, köhnə üsulları.
Və sonra, indi biz bu şeylər var.
Cool.
Awesome.
>> Belə ki, JavaScript essentials.
Ilk ilk şey var bir olduqca əhəmiyyətli fərq
JavaScript qarşı bir şəkildə C kimi dil,
ki, dəyişənlərin yaradılmışdır.
C Beləliklə, biz olan üçün istifadə etdiyiniz Bizim dəyişənlərin yazın, sağ?
Mən kimi növü demək deyil onları yazın, mən növü demək
kimi onlara tipli mənası təyin kimi, bir int bir float, bir char.
C, biz, həqiqətən, üçün istifadə edilmişdir bir dəyişən yaratmaq üçün olan
və sonra ki növü qalmaq ki, dəyişən istifadə bütün vaxt.
Və mütləq pis deyil lakin istifadə etmək yəqin ki, çətindir.
Cool xüsusiyyətlərindən biri JavaScript edir
dəyişənlər deyirlər nə var ki, "Dinamik tipli" olan
Mən yarada o deməkdir ki, ki, sintaksis ilə dəyişən,
varX məsələn, 5 bərabərdir.
Bu ilk yaradır tam dəyişən
Sağ altında başlıq somewhere-- amma
ki, dəyişən dəyişə bilərsiniz simli müraciət
kimi bir şey etmədən yeni bir dəyişən yaratmaq.
Mən narahat ehtiyac yoxdur növü dəyişdirilməsi haqqında.
JavaScript ki növü var bilir dəyişdi, və dinamik olur.
>> Belə ki, fayda var və ki, çatışmazlıqlar,
işləmiş kimi hər kəs Bir müddət JavaScript bilirik bilər.
Dəfə zaman var Siz təsadüfən bilər
dəyişən növü dəyişdirmək və ki növü dəyişən idarə,
və sonra JavaScript crash-- və ya istisna edə bilər
Siz lazımdır, çünki, atılan yanlış növü bir növü gözləmək zaman.
Cool.
>> Belə ki, scoping-- əgər kimi biz Əlbəttə erkən həftə xatırlayıram,
necə görünən dəyişən aiddir və kodu nə sahəsində.
Ki, bütün çox oxşar görünür Bu C. görünür yolu
Belə ki, dəyişənlərin ümumiyyətlə scoped olunur funksiyası ərzində qıvrım aşırma ərzində
və sonra da var qlobal-Scoped dəyişənlərin ki,
Bir dəyişən yazmaq əgər are-- bir funksiyası xaricində,
Bu bütün mətn görünür.
>> Arasında bir fərq Xüsusilə JavaScript və C,
Bir qlobal elan əgər ki, mətn faylı dəyişən hər hansı
hər hansı bir funksiyası görünən mətn fayl ərzində.
Bu doğru, düzgün deyil?
>> HUGH Zabriskie: Yep.
>> SAM GREEN: Belə ki, bir az var C müqayisədə funky az,
biz həmişə var idi harada bizim yerlərdə yuxarıda dəyişən anlayışlar
onlar istifadə edilmişdir.
Ki, icra etdiyi bir qayda deyil artıq, belə ki, bir az fərqli.
Və yenə yalnız reemphasize üçün, yerli dəyişənlərin qarşı qlobal
C. çox oxşar Siz ola bilər Eyni adı ilə iki dəyişənlər,
və onların adları biri kölgə edilə var yerli dəyişən ilə onlardan biri varsa
qlobal idi.
Belə ki, oxşar cür problemlər bəzi ki,
bəzi daxil ola bilər Sizin problem bu günə qədər müəyyən edir.
Cool, belə ki, dəyişənlərin var.
>> Control axını kimi, yəni if-else-- məntiqi stuff-- və loops.
Belə ki, başlamaq üçün, bu nə if-else şərhlərdə JavaScript kimi görünür.
müxtəlif şeyi yerləşdirilməsi xətləri üzrə əhəmiyyətli deyil.
Bu yalnız konvensiyaların biridir Yolumuz strukturu kodu.
Just C kimi, biz bir var Bir mötərizə şərhdə ", əgər".
Mən bunu demək nə deyil.
Mən bir daha bunu.
>> HUGH Zabriskie: çıxmaq çalışırsınız?
SAM GREEN: Xeyr, mən yalnız zoom üçün çalışırıq.
Fərqi yoxdur.
>> Belə ki, biz bir "əgər" bəyanat və bunun daxilində vəziyyət var
ki, doğru və ya yalan üçün qiymətləndirir və ya müəyyən
biz kodu ki, blok daxil edin.
Və beləcə, biz bir başqa əgər, və biz C. istifadə etdiyiniz kimi bir başqa,
>> Siz həmçinin olduqca rahat olmalıdır sağ loops ilə yarasa off,
onlar da baxmaq, çünki C kimi bir çox görünür.
Amma siz yenə qeyd ki, lazımdır, biz əvəzinə initializations int ki, var,
biz var initializations var.
Mən var danışarlar etmək üçün diqqətli olmaq
Siz dəyəri dəyişdirmək deyil I int bir simli,
Məsələn, çünki olacaq qəribə davranış səbəb deyil bilər
gözləyirik.
Amma bu baxmaq lazımdır olduqca tanış, həm də.
>> Hər şeyi başlamaq harada bu belədir JavaScript bir az dəli almaq
kimsə üçün olan bir doğru gedir C. fon funksiyaları var
JavaScript, bir yol var görünür ki, bir funksiyası elan
C oxşar sort və sonra başqa bir var ki,
cür fərqli görünür.
>> ilk versiyası, biz burada görə bilərsiniz ki,
, burada cür C-kimi biz bu bir funksiyası var, demək
bir ad vermək vermək dəlilləri sayı
funksiyası və sonra məzmunu bu qıvrım aşırma daxilində gedin.
Biz nümunə görəcəksiniz yalnız ikinci dəlilləri.
>> Növbəti xəttində Halbuki, biz oh, bax, Burada adlı dəyişən "myFunction," var
və biz bu üçün bərabər generic şey edir funksiyası ki,
bir şey gedən görünmür.
müxtəlif səbəb daha C ki, JavaScript
funksional dil deyirlər nə, və ya deməkdir funksional elementlər vardır
funksiyaları həqiqətən dəyərlər var ki,.
Və biz müəyyən edə bilərsiniz o deməkdir ki, dəyişən bir funksiyası bərabər
və sonra funksiyası hərəkət ətrafında bir arqument kimi keçir,
məhsullarının bütün növ etmək funksiyaları ilə kimi.
>> Bir başqa şey note-- üçün funksiyaları yazılır
dəlilləri bir sıra ilə.
Biz funksiyası nümunə görəcəksiniz növbəti slayd bir arqumenti ilə.
Amma JavaScript olmayacaq Siz cəhd əgər fəğan
ilə funksiyadan istifadə etmək dəlilləri səhv nömrəsi.
Bu, yalnız etmək üçün əlindən gələni edəcəyik Siz keçmək əgər o deməkdir ki, nə,
Bir gözləyir bir funksiyası zəng heç bir dəlil, bütün dəlil ki,
onun gələni edəcəyik ki, baş verəcək cəhd və kodu yerinə,
və nəticədə çalışır əgər İstisna və ya bir səhv daxil,
ki, istisna atmaq və yalnız saxlamaq lazımdır going-- yalnız yollarından biri olan
JavaScript işləyir.
Bəli.
>> Auditoriya: Nə olur çox dəlilləri var?
SAM GREEN: Belə ki, sual nə olar, oldu
çox arqumentlər var, əgər?
Və cavab ki, JavaScript yalnız olacaq
olanları görməməzlikdən gözlədiyini olanları sonra.
Bu funksiyanı yerinə çalışacağıq yalnız ilk iki sanki zəng.
Sağ?
>> HUGH Zabriskie: Bu Bəli, doğru.
Eynilə, əgər var çox az dəlillər var,
yalnız cür bütün null verir arqumentlər hər hansı bir dəyərlər yoxdur
üçün.
>> SAM GREEN: can həqiqətən, lazımlı ola əgər
bir funksiyası yazmaq istəyirəm ki, dəyişən sıra arqumentlər edir.
Siz default dəyərlər bilərsiniz funksiyası müəyyən
və bu fakt iqnor edə bilər giriş yoxdur.
Mən bir az danışmaq istəyirəm Bu son güllə haqqında daha çox
funksiyaları point, dəyərlərdir.
Bu bir nümunəsidir bir az mind-əsən
Yalnız oxumaq və düşünmürəm ikinci neler haqqında.
Belə ki, yalnız baxaq Burada ilk line.
Biz deyirik ki, bu dəyişən, F1 var Bu şey yoxdur bir funksiyası var.
Və funksiyası məzmunu ('salam') console.log olunur.
Siz console.log hesab edə bilər Printf JavaScript bərabərdir.
Belə ki, nə olacaq, əgər biz bizim browser bu kodu run,
Bu bir string çap edəcəyik.
Hesab edirəm ki, nümayiş edə bilər.
Auditoriya: Giriş, baxmayaraq ki, ki, yoxdur Bu yerdə qeyd olunur deməkdir?
SAM GREEN: Bəli.
Belə ki, nə olacaq nə sizə göstərmək lazımdır.
Belə ki, sual nə deməkdir log ki, idi?
>> HUGH Zabriskie: Belə console.log C. üçün printf kimi
SAM GREEN: Belə console.log , printf kimi
mən ('salam') bu console.log varsa, Mən zəng ki, string "salam"
konsol çap olur.
Bu konsol edir.
Bu, yalnız printf, kimi Bu standart out görüntüler.
Və biz bir dəqiqə görürsünüz, lakin bu, həqiqətən,
console obyekt toxunaraq, ki, obyekt bir üsul zəng.
Daha mənada etmək lazımdır bir dəqiqədə biz
söhbət almaq JavaScript obyektləri,
lakin mən yalnız qeyd düşündüm.
HUGH Zabriskie: Biz C üçün istifadə right--
biz adətən böyük proqram yazmaq əsas şey etmək.
Amma nə JavaScript sərin var siz tərcüməçinin bu cür ki,
çalışır real vaxt, belə ki xətti ilə yalnız xətt çəkir,
yalnız yerində ki, şərh edə bilər.
Və bu tutar əvvəl run şeylər,
belə ki, olduqca faydalı aracıdır , console.log, və ya konsol istifadə
ümumiyyətlə, yalnız oynayan üçün ətrafında JavaScript.
>> SAM GREEN: Belə ki, bu geri gedir kod ikinci xətt misal
burada mənim rəhbəri olduqca mind-boggling edir.
ilk dəfə bu oxumaq, bu kimi, nə olub idi?
Belə ki, nə bu, funksiyası bəyannamə deyir
Mən bir funksiyası adlanır F2 var ki, f bir arqument gözləyirik ki,
və sonra bu çağırır funksiyası, f, olan
bir arqument kimi keçildi heç bir dəlilləri özü ilə.
Belə ki, confusing ola bilər.
F2 F1 edir kimi, biz bu anlamaq bir arqument kimi, sonra F2 daxilində,
f Çağırış deməkdir olur kodu bu xətt ki,
bu iki xətləri sonra indeksi, "salam" nəticələr
konsol çap olunur.
>> biz keçə bilər ki, ətrafında funksiyaları dəyərlər
ən biri olan qədər başa JavaScript güclü xüsusiyyətləri
bir proqramlaşdırma dili kimi.
Bütün Outside bunu edə bilər, zəhmli şeyi,
yalnız bir xüsusiyyət kimi yol baxımından dili
bu şeyi asan edir ki, proqram və imkan verir
xüsusilə olmayan şeylər üçün web yaxşı uyğun,
funksional proqramlaşdırma və funksional JavaScript proqramlaşdırma aspektləri
ən biridir güclü anlayışlar ki,
Mənə soruşsanız JavaScript mövcuddur.
Cool.
>> Belə ki, növbəti şey.
Funksional olmaqla yanaşı, JavaScript elementləri də var
obyekt-yönümlü ki, olan çox biri
kompüter məşhur buzz söz.
Obyekt-yönümlü proqramlaşdırma həqiqətən məşhur bir şeydir.
JavaScript ki, bir versiyası var, Mən hər dəyəri də hesab olduğu
hər bir obyekt deməkdir bir obyekt, dəyərlər bəzi sayını birlikdə wraps.
Sadə dəyərlər kimi Belə ki , varX kimi bir tam, 5 bərabərdir
ki, obyekt yalnız bir dəyər wraps.
>> Amma biz də bir vəziyyət təsəvvür edə bilərsiniz biz C hallar hesab edə bilər oxlar
Biz nə istədi structs ilə bir şey,
Məsələn, bir neçə wraps birlikdə dəyərlər və markalar
həqiqətən asan ətrafında şeyi keçmək.
Bir obyekt JavaScript zaman var.
>> Bu xatırlamaq vacibdir Mən obyektləri bükülmüş ki, zaman
birlikdə dəyərlərin bəzi sayı, funksiyaları da var ki,
funksiyaları bilər o deməkdir ki dəyərləri, həmçinin JavaScript obyekt daxilində ola bilər.
Və vacibdir səbəbi ki, tez-tez biz isə
bir üsul zəng edirəm ki, bir obyekt
digər bir məşhur müddət Məşhur obyekt-yönümlü dil,
fərqlər burada ki, bir üsuldur JavaScript ki, bütün
dəyəri bir obyekt daxilində saxlanılır ki, bəlkə bəzi action-- həyata keçirir
daxili digər dəyərləri istifadə edərək, obyekt, lakin mütləq.
Belə ki, mən bir vəziyyət təsəvvür edə bilərsiniz bir crazy yol bir az tapmaq,
Siz bir metodu adlanır harada Məsələn, bir obyekt obyekt.
Belə ki, yol funky bir az var.
>> Və siz də üsulları dəyişə bilərsiniz bir obyekt ilə bağlı ki,
ki, üsul a təyin da yeni funksiya,
digər olduqca müxtəlif obyekt-yönümlü dil,
biz bir obyekt bəyan dəfə və instantiate,
biz üsulları dəyişə bilməz Artıq obyekt ilə bağlı.
Belə ki, olduqca fərqli.
Cool.
>> Belə ki, burada ilk bir misal var, fəaliyyət bir obyekt.
Bu deyirlər nə ümumi obyekt olan
hər hansı bir yoxdur o deməkdir ki, xüsusi adı, bir sinif yoxdur
Bu dəyərlərin bəzi wrapping var.
Və görünür yolu var, var buruq bu xarici cüt burada aşırma
JavaScript göstərir ki, bu bir obyekt deyil, deyirlər.
onun daxilində dəyərləri Hər dəyərlər daxilində
obyekt lazımdır ki, birlikdə bükülmüş.
Və obyekt daxilində, biz sonra, əsas dəyər cüt var
əsas adı aiddir harada obyekt daxilində dəyərinin,
və digər tərəfə colon buradan qarşı
faktiki dəyəri ki, saxlanılır olmalıdır.
>> Belə ki, biz bir var ki, burada baxın əsas dəyəri Sam ilə FN adlı,
bir vergül sonra, növbəti giriş üzərində etdi.
Sonra ln adlı əsas, yaşıl bir dəyəri,
bir vergül sonra, "çap" izlədi
bir funksiyası dəyər gedir ki, ki, kodu bu xətt nə gedir.
Bir addım geri almaq imkan və burada neler açmaq.
Belə ki, bu, bir az mürəkkəbdir və biz yeni bir şey gördükdə
ilk dəfə.
"Bu" söz yeni bir şey deyil Biz burada görən, və bu nə edirik
edir cari aiddir sağ, əhatə dairəsi etiraz?
Beləliklə, biz bu deyəndə geri bütün yol göstərir
bütün bu obyekt üçün biz this.fn nə zaman,
Biz geri bütün yol getmək olacaq bu obyekt üçün, FN dəyəri getmək
və Sam almaq, bu bütün yol çəkmək geri, burada qalmaq, sonra hərəkət.
>> Auditoriya: axtarış Belə ki, var çünki parametri həyata
müəyyən?
SAM GREEN: sual idi ki, var axtarış çünki parametri həyata
müəyyən?
Bəli, tamamilə.
Bundan əlavə, burada nə olacaq Bu dot, JavaScript deyir
OK, mən bir dəyər alıram özüm bu obyekt.
Və sonra bir giriş üçün baxmaq lazımdır FN adlanır və onu aşkar etdikdə,
bu sam var, belə ki, dəyər qayıtmaq lazımdır.
Amma mən də yazdığınız bilər burada müəyyən deyil ki, bir şey,
və o, yalnız ki undefined-- qayıtmaq hansı
bir şey JavaScript bilər fayda ola bilər ki, yoxdur,
bir typo etmək, lakin bu, also-- var Bu qəribə səhvlər ilə nəticələnə bilər.
Belə ki, yalnız tapmaq üçün çalışacağıq Siz tapmaq üçün demək nə
və niyyətində deyil tapa olmadıqda şikayət.
Bu, sadəcə yox idi, demək lazımdır tapmaq, və sonra hərəkət.
Belə ki, undefined olunacaq plus boş, plus son ad.
Bəli.
Və sonra biz görə bilərsiniz, əgər biz sonra aşağı getmək və access-- bilər
və biz parantez ilə tf.print () zəng.
Bu çap zəng edəcək heç bir dəlilləri ilə funksiyası, sağ?
Amma əgər biz yalnız bildirib tf.print () nöqtəli vergül, parantez olmadan,
edərdi ki, bütün çəkin dəyəri funksiyası həyata,
lakin həqiqətən adlandırıb deyil.
Cool.
HUGH Zabriskie: lazımdır biz bir obyekt etmək?
SAM GREEN: Əlbəttə, ki, nə edək.
Mən bu hərəkət edə bilər konsol nümunəsidir.
Biz bir obyekt var ki, təsəvvür edə bilərsiniz.
Belə ki, bu sadə bir obyekt deyil.
Bu iki olan bir obyekt iki düymələri ilə dəyərlər, iki əsas dəyəri
cüt.
Mən sonra saxlanılır dəyəri əldə edə bilərsiniz x.x1 etməklə bu obyekt daxilində,
Məsələn, mən 1 geri almaq.
Eyni zamanda, x.x2 ki, dəyəri geri almaq.
>> İndi həqiqətən sərin şey mən, var həqiqətən, bu obyekt üçün bir şey əlavə
Mən bunu yaratdıq sonra.
Belə ki, edək, təsəvvür edə bilərsiniz Mən bir funksiyası var deyirlər.
>> HUGH Zabriskie: Siz -daxil Shift var.
>> SAM GREEN: Oh, ki, annoying var.
Nə kimi deyil?
Oh.
Burada getmək.
Cool.
>> Mən yalnız yaratdığınız bu funksiya, f ki,
cari getmək üçün gedir object və çap this.x1.
Mən yalnız ilə f zəng əgər özü heç bir şey olacaq
heç bir x1 var, çünki, sağ, baş Bu istinad edir obyekt sahəsində.
Amma sonra, x.f = f, və demək, əgər mən x.f () zəng, mən 1 almaq üçün gedirəm.
Ki, f funksiyası indi object x ilə bağlı,
əsas adlı X1 olan dəyəri 1 ilə bağlı,
biz this.x1 zəng zaman, belə ki, bu üçün axtarır nə tapmaq üçün gedir
və bir dəyər çap edə bilərsiniz.
Belə ki, yalnız bir misal var crazy şeyi növ
Siz JavaScript obyektləri ilə edə bilərsiniz.
>> Belə ki, versiyası idi ümumi versiyası, mənası
Biz bu istifadə edərək obyekt yaratdıq ki, , notation-- brace notation parantez
rather-- və ki Lazımlı biz yalnız istəyirsinizsə
xüsusi obyektin bir misal, lakin biz daha çox etmək istəyirsinizsə
eyni cür?
Və cavab sual şeylər var
həmçinin JavaScript dərsləri çağırıb.
Biz bir funksiyası yaratmaq bilər ki, başlatma bir növ edir
xarici obyekt üçün, və biz kimi, demək istədiyiniz
adı mənim sinif reusable obyekt of
onu müəyyən funksiyası bərabərdir.
Belə ki, bu ekvivalent olacaq nə bir obyekt yaradır ki,
kimi yalnız olacaq, buruq brace, str, kolon,
bu bir simli, nöqtəli vergül, buruq brace.
Ki generic olardı biz başlamaq obyekt,
bir fərq ilə bağlı olan növbəti xətləri biz bir prototip yaradan
bu bir default əsas var o deməkdir ki, Biz obyekt əlavə
burada verilmişdir dəyəri var.
, Yəni ki, mən yeni bir yaratmaq zaman bu MyClass obyekt instansiya,
Bu daxilində pre-inşa olacaq Bu dəyəri küç adlanır və bir dəyəri
adlı myPrint, gedən bir funksiyası olacaq.
Awesome.
>> Great.
Belə ki, son şey üçün JavaScript haqqında demək
Bu nə üçün həqiqətən faydalı var ki asinxron əməliyyatları deyilir.
Asynchronous vasitədir ki, biz bir əməliyyat üçün gözləmək bilər
biz hərəkət əvvəl başa çatdırmaq üçün biz gözləmək isə, həm hərəkət
və sonra bir şey sonra baş var.
Və nə ki, demək, siz var bir vəziyyət olduğu təsəvvür edə bilərsiniz
Bir sorğu göndər haradasa bir web server,
və geri göndərmək olacaq məlumatların bəzi böyük bir yığın, sağ?
Və istifadəçi gözləyin bilər Bu vaxt baş üçün,
və heç bir şey ola bilər o zaman olur.
Amma ki, böyük bir dizayn, sağ deyil?
Siz web page dondurmaq istəmirəm.
Nə istifadəçi istəyirsə açılan menüsünü basın?
Bu, böyük bir dizayn model deyil.
Əksinə, əsasən nə JavaScript, deyir etmir
OK, asynchronously bu əməliyyatı etmək.
Belə ki, kimi fonunda gözləyin və sonra əməliyyat görülən zaman
callback zəng funksiyası bir funksiyası zəng,
ki, bəzi action-- siqnal yoxdur biz son gözləyir əməliyyat
bitdi.
Və super güclü səbəbi, biz bir şey mübahisə keçə bilər,
bir şey, sonra gözləyin bir şey baş üçün.
Sonra ki, bir şey bir dəfə bir callback zəng edə bilərsiniz tamamlayır.
Bu imkan verir, çünki ki, həqiqətən lazımlı deyil us, Web Audio API ilə şeyi
Məsələn, yük an kimi bir uzaq server audio fayl
gözləyin olmadan Bütün audio fayl yüklənəcək,
həqiqətən olacaq istifadəçi experience üçün pis.
Cool.
>> Son bir neçə haqqında qeydlər ayıklama, bu ildən bəri
Siz var olacaq bir şeydir Sizin layihənin bir hissəsi kimi, zəmanət.
Mən JavaScript konsol qeyd edib.
Bu super faydalı xüsusiyyət var bütün müasir brauzerlərdə,
Və biz, həqiqətən almaq üçün təşviq Sizin konsol istifadə rahat,
JavaScript yaxşı almaq istəyirsinizsə.
Bu, super lazımlı ayıklama, həm də var
figuring üçün həqiqətən faydalı həyata necə API istifadə üçün.
Bu, həqiqətən üçün imkan verir asan təcrübə
Bəzi yazın olmadan indeksi, və sonra tərtib edir.
Siz bütün bu addımlar yoxdur.
Siz yalnız yaza bilərsiniz bir xətt bəzi indeksi,
və sonra dərhal geribildirim almaq kodu ki, xətt və ya
çox lazımlı işləyib.
>> Və həmçinin, yalnız bir texniki note-- JavaScript konsol bir nümunəsidir
ki, REPL R-E-P-L belə bir REPL-- ki, oxumaq üçün dayanır, qiymətləndirmək
print loop.
Siz bəzi məhsulları yazın olacaq , bu Yığdığınız nə oxumaq lazımdır,
bu qiymətləndirmək lazımdır və bu, çap edəcəyik çıxış, və sonra yenidən başlamaq lazımdır.
Bu, sürətlə getmək üçün imkan verir dairələr həqiqətən sərin olan iterating.
>> Mən bu note-- real Son tapmaq Bəli, faktiki son qeyd edir.
Necə ki, biz, həqiqətən, JavaScript istifadə edirsiniz?
Belə ki, ilk, biz idxal edə bilər bir script tag istifadə
HTML üst və ya alt fayl hər hansı bir HTML fayl daxilində,
həqiqətən.
Və script tag ərzində var JavaScript idxal iki alt yolları.
ilk etməkdir ayrı-ayrı JavaScript fayl
biz bütövlükdə idxal və ya script kimi kod sahəsi olan
sonra başlamaq, və backslash script son.
Və sonra biz yalnız yazmaq HTML fayl daxilində JavaScript.
Bu iki yol var.
HTML daxilində ola bilməz.
Auditoriya: başqa bir yaxşı deyilmi?
SAM GREEN: sual idi, başqa bir yaxşıdır.
Belə ki, bəli, bir kodlaşdırma stil təcrübə kimi, və həmçinin bir dizayn təcrübə kimi.
Iki səbəbi var niyə daha yaxşı ola bilər.
ilk sizin kodu edir, edir daha çox oxunaqlı HTML bütün əgər
bir yerdə, sizin CSS bütün edir başqa bir yerdə, sizin JavaScript bütün
üçüncü yerdədir.
Sağ?
Düşünürəm ki, biz artıq danışmışıq etməlidir sections-- kimi bu barədə CSS nə
ki is-- və gedir tez-tez bir fayl.
Belə ki, burada konsepsiyası oxşar cür.
Siz həmçinin təsəvvür edə bilərsiniz JavaScript çox bir yeniden olunacaq
HTML səhifə, və ya bəlkə bir çox HTML pages,
ki, JavaScript olan birinə refactored
Siz idxal edə bilər ki, fayl daha çox bir yerdə
code imkan verir yol daha maintainable.
Siz bir edilməsi təsəvvür edə bilərsiniz JavaScript dəyişdirmək
və olan dəyişdirmək üçün 100 müxtəlif faylları.
Əvəzinə biz yalnız dəyişə bilərsiniz yol daha güclü biri ilə.
Mən sizin suala cavab mi?
Cool.
>> Biz də konsol daxil edə bilərsiniz Biz əvvəl qeyd etdiyiniz kimi.
Və yenə son bir note-- Audio inşa Web,
Bir şey yüklemek üçün ehtiyac yoxdur.
Cool.
Hər hansı bir sualınız var siz var JavaScript haqqında bir daha suallar,
Biz hərəkət əvvəl?
>> Auditoriya: [işitilemez]
SAM GREEN: Bütün sağ, sərin.
Belə ki, indi o API haqqında danışmaq olacaq.
>> HUGH Zabriskie: Cool.
Thanks, Sam.
>> SAM GREEN: Sure.
HUGH Zabriskie: Awesome, belə ki, biz JavaScript hərəkət edəcəyik.
Beləliklə, biz bəzi haqqında söhbət etdik JavaScript essentials,
və o dəyişənlər, funksiyaları, obyektləri, dəyişənlərin kimi funksiyaları,
asynchronous loading.
Bu ki, siz lazımdır hər şeyi var Web Audio istifadə bax.
Belə ki, biz yalnız danışmaq olacaq yüksək səviyyədə ilk bu barədə.
>> Bu API var, belə ki, bir şey Sam bildirib ki, inşa,
sağ JavaScript daxil Siz konsol istifadə edir.
Və yalnız C kimi ++ code həqiqətən ki, həqiqətən Chrome daxil edilir
və Firefox, və bu brauzerlərdə bütün.
Web ilə əsas fikir belə Audio var ki,
audio boru kəmərinin bu cür, sağ?
Belə ki, audio data bəzi formada gəlir.
>> Üç əsas forms-- növü var Siz oscillator, olan
bir sine dalğa yaradır, kosinus dalğa, ki, necə işlədiyini görmək olacaq.
Bir çox ümumi bir, əlbəttə, bir MP3 edir.
Belə ki, bəlkə ilə başlamaq bir mahnı, sonra
bəzi filtreleme etmək istəyirəm ki, çıxış
ki that-- mümkün mənbə ola bilər.
Və sonra, həqiqətən, sərin bir mikrofon var.
Belə ki, bir çox istifadə edə bilərsiniz JavaScript əsas zənglər
əldə etmək üçün mikrofon və əgər belə
bir app etmək istədi bir meydança detector kimi,
Məsələn, ki, edir Səs və rəqəmlər
ki, pitch-- çox asan bir yoldur.
Siz yalnız növ oxuya bilərsiniz da, tezliyi anlamaq,
və sonra çıxış nömrəsi.
Belə ki, necə işlədiyini görmək, həm də lazımdır.
>> təyinat əsasən harada audio data çıxış edir.
Belə ki, ümumiyyətlə, bu kimi Sizin laptop speakers.
Digər seçimlər kimi bir ScriptProcessorNode--
biz qovşaqlarının almaq lazımdır second-- lakin əsasən,
Ya səs qoyulması edirik Sizin kompüter vasitəsilə speakers vasitəsilə,
və ya cür, belə ki, onu qeyd edirik Siz audio data kimi saxlanılması edirik.
Belə ki, bəlkə kimsə yaradır əgər musiqi app və sonra
Siz və bəlkə kimi ki qeyd etmək istəyirəm misal üçün, SoundCloud ixrac
ki, bunu bir yol ola bilər.
Bütün fun stuff, biz haqqında danışmaq lazımdır ki,
Bu iki xal arasında olur, biz musiqi yük harada
və sonra çıxdı.
>> Beləliklə, mən beş haqqında danışmaq üçün gedirəm ikinci audio istehsal mərhələləri.
Biz adlanan bu şey var bir AudioContext olan
Biz burada bu kiçik banderol edir.
Biz, əgər əsasən nə is-- AudioContext İndi JavaScript konsol getmək,
biz indi bir yarada bilərsiniz.
REPL yalnız bir nümunəsidir, sağ?
Biz oxuyursunuz, qiymətləndirilməsi və bu görüntüler.
>> AudioContext qlobal dövlətdir.
Bu, bir obyekt bir struct var var burada, bu və məlumat saxlayır
şeylər haqqında gedir ki, audio ilə bağlı ekranda.
Məsələn, cari vaxt.
Bu sayı deyir saniyə, çox dəqiq,
web page-ci ildən dolu.
Belə ki, bu, həqiqətən faydalı istifadə edə bilərsiniz az əmlak.
Bu only-- oxumaq Mən, həqiqətən, hesab edirəm ki, Siz bir dəyər təyin etmək üçün cəhd edə bilərsiniz.
Bu müəyyən demək lazımdır, və sonra onu çap əgər
again-- həqiqətən çox iş olmadı.
Belə ki, orada yalnız oxumaq olunur JavaScript xassələri.
Bu, həqiqətən faydalıdır cür senkronizasyonu edirik
müxtəlif bir çox məlumat zaman etdiyiniz
cür müxtəlif səslər oynayır.
>> Digər həqiqətən faydalı bir kontekstində yerdir.
Əgər istəyirsinizsə mütləq ola Öz konsol sağ bu çalışır
indi.
Belə ki, bu AudioDestinationNode edir.
Əsasən bu nə deyir, çıxış hara gedir?
Belə ki, burada iki real variantları var.
Adətən default yalnız anadil edir
belə AudioDestinationNode əsasən yalnız deyir
səs sıfır nəticələr var gələn, natiq göndərildi.
Belə ki, ümumiyyətlə, siz deyil ki, oynamaq lazımdır.
Siz, həqiqətən, istifadə istəyirsinizsə Qeyd ScriptProcessorNode,
mütləq mənə bir atmaq e-poçt ki, sonra, çünki
bir az daha mürəkkəb.
Amma, ümumiyyətlə, yalnız gözləyirik hansı formada səs tipi.
Belə ki, sərin, biz burada geri jump lazımdır.
Auditoriya: Mən təəssüf edirəm.
HUGH Zabriskie: Bəli.
Auditoriya: Mən sizə danışmaq bildirib bilirik Sizə daha sonra qeyd edir.
Ki, Pro Tools ilə interface bilər?
>> HUGH Zabriskie: Pro Tools ilə?
Görək.
Mən belə düşünmürəm.
Belə ki, müştəri arasında gedir, olan JavaScript edir
konsol, və faktiki kompüter, ümumiyyətlə
cür bir şey məhdudiyyətlər off, əgər
cür the-- xarakteri ilə, iradə bu bir dizayn şey növü var
ancaq ayrı-ayrı brauzer saxlamaq üçün cəhd edin istifadəçi faktiki kompüter.
Ümumiyyətlə, yalnız şey edə istəyirik giriş mikrofon və ya kamera.
Siz edə deyilik, mən düşünmürəm, Pro Tools istifadə edin.
Lakin, yaratdığınız əgər Pro Tools bir track,
ki, yükləyə bilər ki, ixrac burada, məsələn, bu filtrelemek,
proses olduğunu və o qeyd Audio hedef və ya bir sahəsi no--
Processor Node.
Oradan Və sonra, siz bilər , SoundCloud siz ki, ixrac
bir e-poçt göndərmək, və ya edə bilər hər hansı oradan istəyirəm.
>> Amma kiçik bir maneə növ var Sizin kompüter musiqi edilməsi arasında
və online musiqi edilməsi.
>> SAM GREEN: ki, var Bu API xas deyil.
Bu Chrome təhlükəsizlik xüsusiyyət var və Mən hər digər müasir browser edirəm.
browser müstakil.
Belə ki, məsələn, bir web səhifə bilməz səs çevirmək üçün JavaScript istifadə
misal üçün natiqlər, haqqında.
Yoxsa sizin kompüter söndürmək bilməz.
Və heç bir aralıq məqam var bu iki şey arasında, sağ,
belə ya bir var tam abstraksiya,
və ya açmaq imkan təhlükəsizlik qüsur
pis niyyətləri ilə bir proqramçı yoxdur nə onlar dizüstü ilə istədiyiniz.
Chrome müstakil ki, var.
>> HUGH Zabriskie: Bəli.
Ki, hissi edirmi?
Cool, sərin.
Mən yalnız gedirdi bir nümunə göstərir.
Bu kimi olduqca çox qədər baxımından, almaq kimi
istifadəçi kompüter daxil.
Əgər bir USB klaviatura, takıldığından Web deyilən bir şey istifadə edə bilərsiniz
MIDI API olan biz deyil həqiqətən, burada haqqında danışmaq,
lakin bu, başqa API yenidən ən azı Chrome-- daxil,
biz Chrome-- sevgi niyə bu Mən Firefox və ya Safari edirəm
bu asan bir şey deyil google-- müxtəlif brauzerlərdə var
üçün müxtəlif dəstək API onlar həyata keçirdik.
Siz istəyirdi əgər Amma klaviatura plug və ki, informasiya ilə işləmək,
cür klaviatura göndərmək kompüter üzərində məlumat
və sonra, bu API ki online istifadə ki, iş olarıq yerdir.
>> Cool.
OLDU.
Belə ki, tez burada hərəkət.
Necə ki, biz vaxtında edirik?
>> HOPARLÖR 1: 15.
>> HUGH Zabriskie: 15 dəqiqə sol?
Sərin, OK.
Beləliklə, biz burada qabaqda irqi lazımdır.
>> Belə ki, əsasən, əsas nöqtə boru kəməri kimi bu düşüncə
ki, boru kəməri hər bir addım audio qovşaqlarının bir sıra.
Bizim mənbə, deyək, bir oscillator edir.
Biz oscillator node yaratmaq lazımdır.
Və yalnız növüdür az funksiya
və onlar bütün həyata əsasında edirik Burada audio kontekstində.
>> Auditoriya: dedi oscillator, deməkdir
Bu, həqiqətən sözün olacaq geri və irəli iki müxtəlif dirəkləri?
>> HUGH Zabriskie: Xeyr, bu kimi bir digital nümayəndəliyi.
Bu, faktiki olaraq C ++ tətbiq edir.
Mən, həqiqətən, specs bilmirəm bu, həqiqətən həyata necə ki,
lakin bütün bu ikili data kimi işləyir.
Əslində, evet.
Mən ola bilər deyərək olunacaq həqiqətən, siz maraqlı olduğunuz halda,
Mən sizə bir az daha göndərmək bilər necə waveforms haqqında məlumat
Bir digital format olan saxlanılır.
Sərin, OK.
>> Beləliklə, biz bir sine kimi bir ton yaradan edirik bəlkə, dalğa və ya kimi bir şey
440 Hertz.
Biz oscillator yaradır.
Biz həcmi müəyyən etmək istəyirsinizsə, biz bir GainNode bir şey əlaqə
Hansı .creategain ilə edə bilər.
Ki, həcmi müəyyən edir.
Siz hər hansı bir daxil ki, keçə bilər Seçimlər yaxşı digər,
belə bir audio bufer mənbə node harada bilər deyil
Siz yüklü sonra bir MP3 saxlamayın.
>> Biquad filter filtreleme əgər üçün Siz bütün baza etmək istəyirəm
kimi bir mahnı, və ya bir şey.
Allah etmək istəyirəm qadağan bir mahnı həyata bazası.
Və AudioDestination node, təkrar edir kimi dəqiqləşməsi olduğu.
Siz görən heç istəyirsinizsə bütün müxtəlif mümkün variantları,
yalnız nişanı getmək və imkan avtomatik tamamlama gəlib.
Yaratmaq əgər, siz bütün görürsünüz Siz yarada fərqli şeylər.
Siz dinamik yarada script prosessorları,
Mən hətta nə bilmirəm kanal birləşmə qarışdırma üçün,
və kanal splitters və bütün.
Cool.
>> Belə ki, bu yalnız bir deyil boru kəmərinin nümunəsidir.
Beləliklə, biz üç mənbələri gələn var.
Bəlkə bu waveforms var, bəlkə bu MP3s var.
Bir keçir filter, başqa biri
təhrif olmaq başqa bir turning sol və sağ.
Siz şeyi bütün növ edə bilərsiniz və onlar bütün birlikdə ətrafında qarışıq almaq
və sonra audio gəlir hedef olaraq sonunda.
Bu nə daha bir nümunəsidir mürəkkəb Web Audio kodu kimi görünür.
Siz bütün bu oluşturuyorsanız müxtəlif obyektlərin sağ burada
Mən bu əmin deyiləm.
Xeyr, bu, zoom deyil.
OLDU.
>> SAM GREEN: Siz nəzarət, gedin-Up yoxdur.
HUGH Zabriskie: Control Scroll--
SAM GREEN: Yox, yox.
Control--
>> HUGH Zabriskie: Oh, Control, gedin?
Gotcha, Oh.
Bəli.
Xeyr, Xeyr, Wow.
OLDU.
Hesab edirəm ki, deyil.
>> Belə ki, Bəli, bu ilk burada ikibölməli, görmək
Biz bütün bu müxtəlif yaratmaq edirik kontekstində həyata qovşaqlarının.
Biz yalnız onlara durub edirik birlikdə ikinci hissəsində
Connect adlanan bu funksiya.
Bu həqiqətən əsas var Web Audio funksiyası.
Siz etdiyiniz bir dəfə yalnız deməkdir bir node səs ilə bir şey,
növbəti node onu keçir.
Beləliklə, biz mənbə var, onu analizator bağlanır,
analizator, onunla bir şey yoxdur Bu, belə təhrif gedir və
və təyinat burada altındakı.
Cool.
OK, belə ki, biz hərəkət saxlamaq lazımdır.
>> pipeline-- yenə bu ən ümumi boru kəmərləri var,
belə ki, biz kimi bütün bu şeylər haqqında danışmaq təhrif, turning, bütün bu stuff.
Siz, həqiqətən, istəyirsinizsə şeyi Pro Tools istifadə,
o, yəqin ki, maraq.
Əgər, bəlkə siz yalnız səs oynamaq istəyirəm,
və ya bəlkə yalnız istəyirəm səs həcmi seçin.
Bu iki ən ümumi sort var audio istehsal boru kəmərləri.
>> Yenə yolları bunu edə bilər bir oscillator--, belə ki, edək kimi
bir burada ki, demo yoxdur.
Beləliklə, biz bir yaratmaq olacaq Burada sadə audio kontekstində,
və biz olacaq Bizim oscillator yaratmaq.
Ki Belə ki, daha, biz yalnız istəyirik osilatör yarat zəng etmək üçün gedir.
Biz tezlik müəyyən olacaq 440 Hertz, hər kəsin sevimli ki,.
Sonra biz təyinat olduğunu əlaqə point spikeri, belə ki, olan
kontekstində təyinat.
Nəhayət, biz yalnız demək, sıfır başlamaq İndi saniyə, biz səs var?
>> [Zəng]
>> HUGH Zabriskie: Burada getmək.
Bu, sadəcə bir sine dalğa var.
Sərin, OK.
Və sonra biz bu dayandırmaq lazımdır.
>> Auditoriya: etdi ki, Əlaqə gəlir?
>> HUGH Zabriskie: Əlaqə?
Oh, yəqin ki, bizim mikrofonlar.
Siz bunu necə Belə ki, Bəli, ki, var.
Və həqiqətən, Mən, əgər Bu, saxlanılır çalışan
tezliyi ola bilər çalışan kimi dəyəri,
belə ki, ətrafında oynamaq üçün fun bir şey.
Cool.
Həmişə təqdim bir sevimli biri.
>> SAM GREEN: Biz etdi Biz bu barədə idi mi?
HUGH Zabriskie: Bəli, ki, bir murdar biri.
Belə ki, bufer loading-- Mən göstərmək lazımdır çox sonunda nümunə.
Ki, bir MP3 yükləmə oldu.
Və mikrofon, yalnız bir funksiyasından istifadə ) (Navigator.getUserMedia adlı
istifadəçi girişi tələb etmək ki, məlumat üçün mikrofon.
>> Burada filtreleme, mən lazımdır yalnız bu hərəkət saxlamaq.
Bu, olduqca yüksək səviyyədə lakin filtreler yalnız sizə imkan verir
>> [Səs siqnalı]
Filtering də sizə imkan verir çəhrayı kimi şeylər yaratmaq
səs-küy, qəhvəyi səs-küy, ağ küy.
Siz təmiz səs-küy, yaratmaq istəyirsinizsə hansı bəzi insanlar ilə ətrafında mess üçün sevirəm
Web Audio istifadə edə bilərsiniz filtreleme bunu.
>> Audio Panning-- belə təsəvvür Bir oyun yazılı edirsinizsə
və səs istəyirəm bu kimi, gələn kimi səs,
ekran arasında atəş, audio turning istifadə edə bilərsiniz
konus bu cür yaratmaq, olan olduqca mathy var like--,
lakin bu, həqiqətən, həqiqətən, var cool bu iş almaq,
və yaxşı var bu barədə Dərsliklər mən sizə göndərə bilərsiniz.
Ümumiyyətlə, siz cür bilərsiniz səs yaratmaq
3D şəkildə gedən bir şey.
Bir DJ maraq varsa, siz qarışdırma başlamaq və fading mahnılar keçir.
>> Bu yalnız bir çox əsas indeksi, mən əvvəl idi əsasən nə.
Bu həcmi müəyyən oscillator, belə ki, biz oscillator yaratmaq
olan waveform yaradır.
Biz GainNode yaratmaq Bizim tezliyi,
və sonra oscillator əlaqə Sonra əsasən dəyişikliklər GainNode,
nə qədər siqnal vasitəsilə yol verilir.
Lakin, həqiqətən, bir digital var şey, yeah izlersin daha belə.
Bu, həqiqətən neler deyil, lakin real həyatda olur
bir mənfəət ilə.
>> Auditoriya: --quantization həcmi parametri?
HUGH Zabriskie: Bağışlayın?
Auditoriya: A quantized həcmi parametri?
HUGH Zabriskie: Bəli.
Və bu mən həqiqətən deyiləm bir şey mənim bilik də əskik,
necə gəlir bir digital səviyyədə işləyir.
Mən faktiki bilirik siqnalları, bu əsasən
nəzarət nə qədər siz etdiyiniz siqnal qüvvətləndirici.
Belə ki, Bəli.
Mən sizə haqqında daha ətraflı məlumat göndərmək lazımdır Mən, həqiqətən, maraqlı olardı, çünki
ki, haqqında daha çox bilmək.
Lakin əsasən parametrləri bir fold-- ki, var
Qaraçuxurlu signal-- və sıfır heç bir siqnal, və ya hər hansı bir səs eşitmək deyil.
Biz ki, çünki demo vaxt keçmək lazımdır Mən əvvəl idi əsasən budur.
Və yenə, Context.Destination audio təyinat node edir.
Awesome, OK.
>> Beləliklə, mən tez iki demoları gedirəm.
Necə ki, biz vaxtında edirik?
>> HOPARLÖR 1: 10 dəqiqə.
>> HUGH Zabriskie: 10 dəqiqə?
Great!
Awesome.
>> Beləliklə, mən gedirəm birinci ki, My Favorite Song deyirlər yoxdur.
Belə ki, bu yalnız bir deyil az HTML JavaScript.
Biz iki düymələri olacaq səhifə mənim sevimli mahnı oynamaq
və mənim sevimli mahnı dayandırmaq.
Mən bu dəyişdirmək lazımdır.
>> Auditoriya: mikrofon əhatə edir.
>> HUGH Zabriskie: Bəli.
Mən burada yüklü sonra, basically-- bir script
və bu, həqiqətən faydalı bir MP3 yüklənməsi üçün,
belə ki, bu, yalnız edir Daha sürətli MP3s yol loading.
Bu əsasən yalnız bir banderol var.
Bu, sadəcə prosesi edir daha sürətli MP3s yükləmə,
başqa, HTTP sorğu istifadə etdiyiniz cür biz nə etdiklərinizi kimi
Server ilə müəyyən cari parça.
Bu, həqiqətən çirkin siz bunu istəmirəm.
>> Belə ki, bu oğlan, Boris SMUs, həqiqətən yazdı BufferLoader adlı faydalı kiçik vasitədir.
Siz bütün keçmək sadəcə kontekstində, siz bir list-- keçmək
və ya, Bəli, JavaScript siyahısı?
SAM GREEN: bir sıra.
HUGH Zabriskie: Oh, o, bir sıra, doğru.
Bu yolları bir sıra var müxtəlif faylları.
Və sonra bir funksiyası keçir.
Bu söhbət callback edir asynchronous loading haqqında.
Ki adlanacaq dolu faylları bir dəfə.
Və funksiyası deyilir ki, fayl dolu bir perimetri kimi görür
dolu arabellekleri bir sıra.
Belə ki, burada baş verir.
Əsasən, BufferList edir bir dəyər olacaq
və ya bir sıra olacaq indeksi bu var uzunluğu bir,
MP3 bütün yüklənmiş fayl sıfır.
Beləliklə, mən başa zaman mən nə loading Mən sadəcə edir
, bufer mənbəyi yaratmaq audio bufer mənbəyidir node edir.
Növbəti addım I yük deyil tam dolu bufer kimi source.buffer
BufferList-- olan Bu buffers-- bir çox var
və sonra ki, audio qoşulmaq təyinat bufer.
Belə ki, nə bu nə olacaq sadəcə MP3 qoyulur
düz çıxdı vasitəsilə, və dərhal başlamaq
Bu zəng əldə sonra.
>> Cool, belə ki, görək bu hərəkətə baş verir.
My [işitilemez] Burada görək.
Mən yalnız gedirəm əsas server başlamaq.
Ki, bir şey var ki, Siz əgər nə etmək lazımdır
loading faylları üçün sorğu edilməsi.
Mən əsas server başlamaq üçün gedirəm.
Bu əsasən bütün edir İndi bir xətt pset,
lakin bu, yalnız başlayan port 80/80 bir server.
Beləliklə, biz burada artıq getmək, biz 80/80 yüklemek üçün gedir,
biz mənim sevimli mahnı getmək olacaq.
Mən hit əgər Belə ki, "Play my İndi sevimli mahnı ",
yüklemek olacaq mənim Sevimli mahnı və pseudocode oynamaq
FAST IN EAGLES, "HƏYAT - [MUSIC LANE "]
Hansı ildə "Life olmaq olur Eagles tərəfindən Fast Lane ".
İndi Stop "hit bilər mənim Sevimli mahnı "və replay.
>> FAST IN EAGLES, "HƏYAT - [MUSIC LANE "]
>> Mən, çünki təsəlli üzərində getmək əgər Mən burada qlobal dəyişən istifadə
həqiqətən, bu dəyər onu takip İndi konsolda tanınır.
Belə ki, bu, mənim üçün avtomatik yaradır.
Belə ki, indi oynayan nə var, və mən sadəcə) (source.stop zəng edə bilərsiniz
ki,.
Yaxşı, siz nə bilirik?
Məhz belə uşaqlar eşitmişəm bu song-- bu mahnı tanımaq bilər.
>> [MUSIC - Rick Astley, "Never Gonna VERİR YOU UP "]
FAST IN EAGLES, "HƏYAT - [MUSIC LANE "]
Biz indi bütün Rickrolled etdik.
OK, böyük, hərəkət.
Cool.
Belə ki, bu əsasən bir nümunəsidir yalnız bir MP3 yükləyə bilər necə fayl
FAST IN EAGLES, "HƏYAT - [MUSIC LANE "]
--and oynamaq və dayandırmaq və başlamaq.
Mən daha çox edə bilərdi [işitilemez]
>> Mən edəcəyik son biridir Mən [işitilemez] sizə göstərmək lazımdır.
>> [MUSIC PLAYING]
>> Bu kimi ogg.wave.mp3 var.
Mən düzgün yadda əgər mən hesab edirəm ki, Mən M4A bəzi məsələlər daxil etdik
lakin mən bu barədə əmin deyiləm.
Mən hesab edirəm ki, mp3.wave--
>> [MUSIC - Rick Astley, "Never Gonna VERİR YOU UP "]
>> OK, böyük.
Mən demişəm ki, lazım deyil.
Salam, hər halda.
Beləliklə, biz bu açıq.
Belə ki, indi mən bütün Mən əsasən yaradılmış deyil musiqi yaratmaq üçün əsas syntax.
Mən kimi bir şey Belə ki, G4 əlavə 1 2 ki, nə o deməkdir ki,
, piano qeyd G4 əlavə olan dördüncü G
alt fortepiano up.
Belə ki, bu MIDI cür danışıram, belə musiqi based olanlar üçün,
Bu yalnız MIDI qeydlər.
>> Auditoriya: Bu G var Middle C, sağ?
>> HUGH Zabriskie: Bu G deyil Middle C yuxarıda, doğru.
>> Auditoriya: Above Middle C.
>> HUGH Zabriskie: Bəli.
Əslində, bəli.
Mən, həqiqətən, qəbul edirəm bir [işitilemez],
bu ki, yuxarıda bir oktava ola bilər.
Belə ki, görək.
Mən Play-- hit əgər
[Təkrar PIANO Qeyd]
ki, eşitmək gedir --we're.
fikir fəaliyyət ki, yalnız bir command line olduğu kimi
mən və aşağı getmək əgər mənim klaviatura, siz
Əvvəlki geri bilərsiniz olduqca faydalı olan əmr edir.
Və aşağıdakı musiqi mənim siyahısı, olan bütün loop çalışan.
>> Auditoriya: Siz fərz edilmişdir Ki, klaviatura 88-key, sağ?
>> HUGH Zabriskie: sual idi, Mən 88-key klaviatura fərz edirəm,
və bəli, mən.
Nə etdim mən əsasən 88 nümunə aldı
fortepiano, hər bir qeyd üçün bir.
Və belə ki, hər dəfə sizə İndi bir qeyd eşitmək,
həqiqətən görünür ki, bir loop var bu loop ifa olur like--
belə ki, hər qeyd üçün bu çalışır.
Nə olar, mən var daha bufer yaratmaq
Mən həcmi müəyyən bir qazanc node yaratmaq.
Bu yalnız bir həqiqətən deyərək mürəkkəb yol
bir source.buffer da bufer saxlamayın.
Mən mənfəət vermək, mən mənfəət qoşulmaq,
mənfəət bağlıdır çıxış, və sonra mən oynamaq.
Belə ki, proses növüdür bufer mənbə alaraq.
>> Auditoriya: Əgər həqiqətən bilər quru səs və nəm [Işitilemez] etmək?
>> HUGH Zabriskie: Siz, evet.
Yenidən verb var var gecikmə, təhrif.
Siz əsasən bir şey qoya bilər of-- yaxşı sendviç arasında,
boru kəməri, daha yaxşı bir məcaz var ancaq heç bir şey əlavə edə bilərsiniz.
Cool.
>> Belə ki, demo bitirmək lazımdır burada hissi vermək
dəfə yalnız şəffaf sayı bütün bir dəfə funksiyası çalıştırabilirsiniz.
Mən bu aradan qaldırılması üçün gedirəm.
Mən bir generator yaratmaq üçün gedirəm əsasən bu həqiqətən does-- nə
mürəkkəb sintaksis cür, lakin bu Tez qeydlər yaratmaq üçün gedir,
və yalnız oynayan başlamaq Onlara onlara qiymətləndirir kimi.
[Interposing PIANO]
>> Beləliklə, biz yalnız burada bir az musiqi edə bilərsiniz.
[Interposing PIANO]
>> Belə ki, nə bu komanda məsələn, yoxdur
Bu həmin üç qeyd edir piano və sonra B3 onları qoyur.
Bu syntax edə bilər bir az daha mənada
bir olanlar Burada musiqi fon.
>> Mən bir zərbə nağara əlavə edə bilərsiniz.
Bacararam--
>> [Interposing INSTRUMENTS]
>> --just ilə ətrafında oynamaq.
>> Belə ki, make-- bilər
[Interposing INSTRUMENTS]
Ki, bir az daha annoying var.
[Interposing INSTRUMENTS]
>> Ki, təsadüfi bir quru cymbal edir, belə ki, 16% ilə hər 16 qeyd haqqında
[Işitilemez].
>> [Interposing INSTRUMENTS]
>> Bəli, belə bir şəkildə bu Bu 4 həmişə çalışır ki: 4.
[Interposing INSTRUMENTS]
>> Bəli, dörd, və 16/8 belə.
[Interposing INSTRUMENTS]
>> Belə ki, orta hesabla, 60% almaq 16-cı qeydlər edib.
>> Zaten, bu, yalnız idi növ off göstərmək üçün
Siz ola bilər bəzi şeyləri Web Audio API ilə qurmaq.
Bu, həqiqətən, sürətli, həqiqətən güclü və sərin şeyi bir çox edə bilərsiniz
bu.
Belə ki, yenə, siz hər hansı bir sualınız, E-poçt özüm Hugh-- və ya Sam,
və vicdanla, Google var yaxşı resursları bir ton.
Hər hansı bir son suallar?
Bəli.
>> Auditoriya: Belə ki, əldə edə bilərsiniz mikrofon.
Siz istəyirdi əgər nə Daha yaxşı mikrofon istifadə?
HUGH Zabriskie: Siz istəyirdi daha yaxşı mikrofon istifadə etmək olar?
Belə ki, yenə bu hissəsi Chrome arasında abstraksiya
və kompüter istirahət.
Onun vasitəsilə mövcud halda bir API, Web MIDI API kimi,
Siz yəqin ki, bəzi hacks tapa bilər, lakin ümumiyyətlə kimi mümkün deyil.
>> SAM GREEN: Siz also-- bilər bütün Chrome bilir
nə u mənim mikrofon və bu çatmaz.
Bir mikrofon əgər siz ola bilər, belə ki, kompüter default mikrofon kimi müəyyən,
Siz bu yolu gedə bilər və yəqin ki, iş olardı.
HUGH Zabriskie: Bu yaxşı bir nöqtə var.
Hesab edirəm ki, cəhd, lakin heç etdik Siz cür edə bilər
of-- giriş natiq yönlendirme əgər, Bəli, bunu edə bilər.
>> Hər hansı bir son suallar?
Cool.
Yaxşı uşaqlar təşəkkür edirəm izləmək üçün bu qədər.
Mən Hugh edirəm.
SAM GREEN: I Sam edirəm.
HUGH Zabriskie: Bu CS50 edir.