SAM GREEN: హాయ్, ప్రతి ఒక్కరూ. మా సదస్సు స్వాగతం. నా పేరు సామ్ ఉంది. HUGH జాబ్రిస్కీ: నేను హ్యూ ఉన్నాను. SAM GREEN: మనం నేడు చర్చ చూడాలని జావాస్క్రిప్ట్ మరియు వెబ్ ఆడియో API గురించి. కేవలం ప్రారంభించాలని, ఈ ఒక ఆకారం సదస్సు కోసం మా ఎజెండా. మేము గురించి మాట్లాడుకుంటున్నారో ద్వారా ఆరంభమవుతుంది చేస్తున్నారు ఎందుకు మీరు వెబ్ ఆసక్తి ఉండాలి ఆడియో API, ఎందుకు జావాస్క్రిప్ట్ మీరు దాని కోసం అవసరం భాష, ఆపై JavaScript గురించి మాట్లాడటానికి కాబట్టి వంటి essentials-- కొన్ని ద్వారా మీరు నడిచే భాష యొక్క ప్రాథమికాలను, ఆపై గురించి మాట్లాడటానికి అధిక స్థాయిలో ఆడియో API ని ప్రారంభిస్తుంది. అప్పుడు, హ్యూ కొన్ని గురించి చర్చ ఉంటుంది ఆడియో ఉత్పత్తి దశల్లో ఆపై ఈ విస్మయపరిచే సీక్వెన్సర్ డెమో ప్రాజెక్టు అతను నిర్మించిన మరియు మీరు కోడ్ చూపించు. ఆపై, మేము కోసం సమయం ఉంటుంది ప్రజలకు చివరిలో ప్రశ్నలు ఇక్కడ ఉన్నారు నివసించే. HUGH జాబ్రిస్కీ: కూల్. SAM GREEN: కూల్. HUGH జాబ్రిస్కీ: కూల్. నేను బ్యాకప్ చేస్తుంది. SAM GREEN: సో, మొదటి మొదటి విషయాలు. గొప్ప విషయాలు ఒకటి కాబట్టి వెబ్ ఆడియో API గురించి అవసరమైన సెట్ అప్ అక్కడ ఉంది. ఇది అంతర్నిర్మిత వస్తుంది అత్యంత ఆధునిక బ్రౌజర్లలో, Chrome, ఎడ్జ్ ఒక మొత్తంతో కలుపుకుని others-- అన్ని వాటిని కొంత ఆ పెద్ద భాగాలు ప్రజలు నేడు ఉపయోగిస్తున్నారు. అందువలన, అక్కడ ఏర్పాటు పక్కన కేవలం పొందకుండా వెబ్ సర్వర్, వెళ్ళి మీరు పని ప్రారంభించడానికి గొప్ప ఇది మీ ప్రాజెక్ట్ మీద. మేము చాలా సిఫార్సు భారీగా మీరు భావించే కోసం Chrome ఉపయోగించి జావాస్క్రిప్ట్ వెబ్ అభివృద్ధి, కేవలం దాని డెవలపర్ ఎందుకంటే టూల్స్ నిజంగా బలమైన ఉన్నాయి. మేము అర్థమేమిటో ఒక ఉదాహరణగా చెప్పి మీ జావాస్క్రిప్ట్ తెరుచుకుంటుంది మీరు Chrome లోకి వెళ్ళి ఉంటే console-- మరియు మీరు ఏ వెబ్ పేజీ చూడండి ఉంటే, మరియు మీరు క్లిక్ వదిలి అప్పుడు ఎలిమెంట్ ను పరిశీలించు, మరియు మీరు ఈ చిన్న డ్రాప్-డౌన్ వెళ్ళండి ఇక్కడే మరియు మీరు కన్సోల్ పై క్లిక్ చేయండి మీరు అప్ ఒక కనిపిస్తుంది ఏమి తెరుస్తుంది చూస్తారు ఒక కమాండ్ ప్రాంప్ట్ వంటి చాలా మీరు మీ Mac లో చూడండి, లేదా ID గురించి ఉంటుంది. కేవలం ఆ వంటి, మేము చెయ్యవచ్చు రకం, ప్రశాంతంగా వంటి, ఇక్కడ ఆదేశాలను మరియు ఆ వంటి ఇతర ఆదేశాలు. మేము, వేరియబుల్స్ సృష్టించవచ్చు మేము జావాస్క్రిప్ట్ తర్వాత చూస్తారు. కాబట్టి ఏదైనా మేము చేయవచ్చు జావాస్క్రిప్ట్, మేము, కన్సోల్ తో చేయవచ్చు మరియు ఆ ఒక సూపర్ సులభ మార్గం API లు తో చుట్టూ ప్లే మొదలు మరియు సౌకర్యవంతంగా పొందడానికి కుడి బ్యాట్ ఆఫ్ జావాస్క్రిప్ట్. ఎటువంటి సెట్ అప్ అవసరం, ఇది నిజంగా nice ఉంది. కూల్. ఆసమ్. కాబట్టి కేవలం ఒక మరింత విషయం జోడించడానికి. మీరు కలిగి ఉంటే ఏ ఉన్నాయి questions-- ఇక్కడ కాదు నివసించే మీరు అనేక us-- ఈ ఇమెయిల్ సంకోచించకండి మా ఇమెయిల్ చిరునామాలు. మీరు ప్రశ్నలు ఉంటే మీరు మాకు కోరవలసి లేదు, వంటి, ఓహ్ నేను ఒక బగ్ కలిగి నా కోడ్ లో, లేదా ఏదో ఆ, కొద్దిగా ఎక్కువ నిర్దిష్ట బహుశా మొదటి అది గూగుల్. గొప్ప వనరులు చాలా ఉన్నాయి అక్కడ వెబ్ ఆడియో API గురించి. ఇది నిజంగా బాగా డాక్యుమెంట్ మరియు అది జీవి ప్రజలు ఒక టన్ను లో ఉపయోగిస్తారు కేవలం ఎవరు పరిశ్రమ, మరియు ప్రజలు తాము సరదాగా stuff నిర్మిస్తున్నారు. కాబట్టి చాలా అక్కడ ఉండాలి అక్కడ వనరుల. ఆసమ్. కూల్, కాబట్టి ఎందుకు వెబ్ ఆడియో API? ఈ రేఖాచిత్రం కొద్దిగా ఉంది మార్గం ఒక పరిణామ వెబ్లో ధ్వని కాలక్రమేణా పెరిగింది. Bgsound అసలు HTML టాగ్ వంటిది ఇంటర్నెట్ ఎక్స్ప్లోరర్ మద్దతు ఉపయోగించిన. ఇది మాత్రమే అందంగా ప్రాథమిక శబ్దాలకు అనుమతి కార్యాచరణ, చాలా బలమైన కాదు మరియు మీరు ఏమి కాలేదు సంక్లిష్టమైన క్రమఅమరిక, ధ్వని మొదలు లేదా నియంత్రించడానికి మరియు చాలా లభిస్తాయి ఆగిపోయింది. కాబట్టి, ఇది ముఖ్యంగా కాదు బాగా అభివృద్ధి చేశారు. ఆ తర్వాత, ఫ్లాష్ , along-- ఇది వచ్చింది నేను మీరు అబ్బాయిలు అన్ని తెలుసో లేదో రెడీ Flash-- దీనికి ఎలా పని కాదు తో, కానీ మీరు ఖచ్చితంగా అది చూసిన. మీ ఫ్లాష్ అప్డేట్ పొందారు ప్లగ్-ఇన్ అంశాన్ని అన్ని ఆ రకమైన, మరియు ఖచ్చితంగా పరిధి విస్తరించబడింది కార్యాచరణ యొక్క అందుబాటులో అని. కానీ వినియోగదారు మేకింగ్ ఇన్స్టాల్ ఒక ప్లగ్-ఇన్ ఖచ్చితంగా ఉంది సహా ఫ్లాష్ ఒక ప్రతికూలతగా మీ అప్లికేషన్ లో, కుడి? అప్పుడు ఎందుకంటే మీరు ఆధారపడి ఉన్నారు యూజర్ వెళ్లి ఈ ప్లగ్-ఇన్ కనుగొనడంలో, మరియు బహుశా మారిన చేస్తున్నారు ఈ అదనపు దశల ద్వారా ఆఫ్ వారు మీ అనువర్తనం ఉపయోగించడానికి తీసుకోవాలని. ఆపై ఒక నవీకరణ ఉండవచ్చు మీ మొత్తం అప్లికేషన్ విచ్ఛిన్నం చేస్తాము, మరియు అది ఒక పీడకల గా ముగుస్తుంది చాలా డెవలపర్ కోసం. కాబట్టి ఒక అడ్డం ఉంది. ఆపై, వెంట వచ్చిన తర్వాత HTML ఆడియో ట్యాగ్, ఇది మరింత ఆధునిక HTML-- ఒక లక్షణం కచ్చితంగా చాలా stuff కోసం అనుమతి, కానీ కూడా విషయాలు మీరు చేయగల కొద్దిగా అక్కడే పరిమితం చేయబడ్డాయి విషయాలు ఫలితంగా HTML యొక్క సామర్థ్యాన్ని కలిగి ఉంది. సో ఉన్నప్పుడు జావాస్క్రిప్ట్ API, వెబ్ ఆడియో API, ఒక ప్రమాణంగా మారింది బ్రౌజర్లలో అంతటా సాధన, నిజంగా సెట్ విస్తృతం డెవలపర్లు అవకాశాలు నిజంగా భవనం పొందడానికి వెబ్ కోసం కూల్ స్టఫ్. చాలాకాలం వచ్చేది ఉన్నాయి నిజంగా బలమైన టూల్స్ స్థానిక ఆడియో అనువర్తనాల కోసం, ప్రతి ఒక్కరూ GarageBand తెలుసు వంటి ఫంక్షన్, ఆపై ఖచ్చితంగా మరింత ఉన్నాయి ప్రొఫెషనల్ ఆడియో మిక్సింగ్ అప్లికేషన్లు, మరియు stuff ఆ రకమైన. కానీ అక్కడ కాదు ఒక నిజంగా మంచి Cloud-- లేదు క్లౌడ్, అవును, నేను ఊహిస్తున్నాను Cloud-- వెబ్ ఆధారిత వేదిక ఆ డెవలపర్లకు అనుమతించే ప్రజలకు అనువర్తనాలను రూపొందించడానికి ఆడియో మిక్సింగ్ చేయాలని. అతడు మీరు కనిపిస్తాయి వంటి తరువాత, వెబ్ ఆడియో API నిజంగా శక్తివంతమైన అనుమతిస్తుంది స్టఫ్ నిజంగా కేవలం జరిగే ఇది చాలా బాగుంది. తద్వారా మీరు ఎందుకు సూచనల సదస్సు మిగిలిన చూడటానికి ఉండాలి, ప్రధానంగా. మరియు ఇప్పుడు, నేను గురించి మాట్లాడటానికి వెళుతున్న కొన్ని జావాస్క్రిప్ట్ కేవలం ప్రాథమిక అంశాలు భాషతో కాబట్టి మేము అదే పేజీలో ఉంటుంది మేము గురించి మాట్లాడినప్పుడు API కొద్దిగా తరువాత. కూల్. కాబట్టి, ఈ సారాంశం. నేను ఇక్కడ ఈ ఉంది మర్చిపోయారు. అవును. HUGH జాబ్రిస్కీ: ఇక్కడ రెండు స్లయిడ్లను ఉంది. SAM GREEN: ఈ సారాంశం పరిమితులు కొన్ని ఇతర బైండింగ్, పాత పద్ధతుల్లో. తరువాత ఇప్పుడు, మేము ఈ విషయాల్లో. కూల్. ఆసమ్. కాబట్టి, JavaScript ఎస్సెన్షియల్స్. మొదటి మొదటి విషయాలు, అక్కడ ఒక అందంగా ముఖ్యమైన తేడా జావాస్క్రిప్ట్ వర్సెస్ ఒక విధంగా సి వంటి భాష, ఆ వేరియబుల్స్ సృష్టించబడతాయి. సి కాబట్టి, మేము కలిగి ఉపయోగిస్తారు చేస్తున్నారు మా వేరియబుల్స్ టైప్, కుడి? మరియు నేను వంటి రకం అర్థం లేదు వాటిని టైప్, నేను టైపు అర్థం వంటి వాటిని ఒక రకం అర్థం కేటాయించవచ్చు వంటి, ఒక Int, ఫ్లోట్, ఒక చార్. సి, మేము నిజంగా ఉపయోగించారు ఒక వేరియబుల్ సృష్టించడానికి కలిగి ఆపై ఆ రకం కర్ర మేము ఆ వేరియబుల్ ఉపయోగించడానికి ఆ మొత్తం సమయం. మరియు ఆ, తప్పనిసరిగా దారుణంగా కాదు కానీ అది ఉపయోగించడానికి బహుశా కష్టం. చల్లని లక్షణాల్లో ఒకటి జావాస్క్రిప్ట్ యొక్క వేరియబుల్స్ అని ఏమి అని "డైనమిక్ టైప్" ఇది నేను ఒక సృష్టించవచ్చు అర్థం వాక్యనిర్మాణం తో వేరియబుల్, varX ఉదాహరణకు 5 సమానం. నిజానికి సృష్టిస్తుంది పూర్ణాంకం వేరియబుల్ కుడి కింద హుడ్ somewhere-- కానీ నేను ఆ వేరియబుల్ మార్చవచ్చు ఒక స్ట్రింగ్ సూచించడానికి వంటి ఏదైనా చేయకుండా ఒక కొత్త వేరియబుల్ సృష్టించడం. నేను ఆందోళన అవసరం లేదు రకం మార్చడం గురించి. జావాస్క్రిప్ట్ రకం యొక్క తెలుసు మార్చబడింది, మరియు డైనమిక్ జరుగుతుంది. సో, ప్రయోజనాలు ఉన్నాయి మరియు ఆ లోపాలు, లో పని చేసే ఎవరైనా కాసేపు జావాస్క్రిప్ట్ తెలిసిన. సార్లు ఉన్నప్పుడు ఉన్నాయి మీరు అనుకోకుండా వాటిని ఒక వేరియబుల్ రకం మార్చడానికి మరియు ఆ రకం మారుతున్న నిర్వహించలేదు, ఆపై మీ జావాస్క్రిప్ట్ crash-- లేదా ఒక మినహాయింపు చేయవచ్చు మీరు ఉంటుంది ఎందుకంటే విసరగల చెల్లని రకం మీరు ఒక రకం ఆశించే ఉన్నప్పుడు. కూల్. కాబట్టి, ఇది scoping-- ఉంటే, వంటిది మేము కోర్సు లో ప్రారంభ వారాల గుర్తుంచుకో, ఎలా కనిపించే ఒక వేరియబుల్ సూచిస్తుంది మరియు ఏమి కోడ్ ఉండగలదు. ఆ అన్ని చాలా పోలి ఉంది సి లో కనిపిస్తుంది మార్గం కాబట్టి వేరియబుల్స్ సాధారణంగా దర్శిని ఉంటాయి ఒక ఫంక్షన్ లోపల వంకర జంట కలుపులు లోపల, ఆపై కూడా ఉన్నాయి ప్రపంచవ్యాప్తంగా-లక్ష్యం వేరియబుల్స్ ఆ మీరు ఒక వేరియబుల్ వ్రాస్తే are-- ఒక విధి వెలుపల అది మొత్తం టెక్స్ట్ లో కనిపిస్తుంది. మధ్య తేడా ముఖ్యంగా JavaScript మరియు C, మీరు ఒక ప్రపంచ డిక్లేర్ ఉంటే ఉంటుంది ఒక టెక్స్ట్ ఫైల్ లో వేరియబుల్ ఎక్కడైనా అది ఏ ఫంక్షన్ లో కనిపిస్తుంది టెక్స్ట్ ఫైల్ లోపల. కుడివైపు, సరైన? HUGH జాబ్రిస్కీ: YEP. SAM GREEN: కాబట్టి ఆ కూడా కొద్దిగా వార్తలు సి పోల్చి అల్లరిగా బిట్, మేము ఎల్లప్పుడూ కలిగి ఉండడం మా ప్రదేశాలు పై వేరియబుల్ నిర్వచనాలు వారు ఉపయోగించారు. ఆ అమలు చేసే ఒక నియమం కాదు ఇకపై, కాబట్టి, కొద్దిగా భిన్నమైనది. మళ్ళీ కేవలం reemphasize కు, స్థానిక వేరియబుల్స్ వర్సెస్ ప్రపంచ C. కు సమానమైన మీరు చూపుతుంది ఒకే పేరుతో రెండు వేరియబుల్స్ మరియు వారి పేర్లు ఒకటి shadowed అవుతుంది చేశారు ఒక స్థానిక వేరియబుల్ ద్వారా వాటిని ఒకటి ఉంటే ప్రపంచవ్యాప్తంగా ఉన్నది. సో, ఇదే రకమైన సమస్యలు మీరు కొన్ని ఆ కొన్ని ఆకస్మికంగా ఉండవచ్చు మీ సమస్య యొక్క ఇప్పటివరకు అమర్చుతుంది. బాగుంది, కాబట్టి వేరియబుల్స్ యొక్క. కంట్రోల్ ఫ్లో వంటి అర్థం, ఉంటే- else-- తార్కిక stuff-- మరియు ఉచ్చులు. కాబట్టి ప్రారంభం, ఈ ఏమి ఉంటే- else ప్రకటనలు జావాస్క్రిప్ట్ లో లాగా. వివిధ విషయాలను ప్లేస్ లైన్లలో ముఖ్యమైనది కాదు. ఈ కేవలం సాంప్రదాయాలను ఒకటి మార్గం మేము నిర్మాణం కోడ్. కేవలం సి మాదిరిగా, మేము ఒక కలిగి ఒక కుండలీకరణములలో ప్రకటన "ఉంటే". ఆ నేను ఏమి అర్థం కాదు. నేను did it again. HUGH జాబ్రిస్కీ: నిష్క్రమించడానికి ప్రయత్నిస్తున్నారా? SAM GREEN: లేదు, నేను రెడీ కేవలం జూమ్ ప్రయత్నిస్తున్న. ఇది పట్టింపు లేదు. కాబట్టి, మేము ఒక "ఉంటే" ప్రకటన మరియు మనం లోపల ఒక పరిస్థితి కలిగి ఆ నిజమైన లేదా తప్పుడు మదింపు మరియు ఆ లేదో నిర్ణయిస్తుంది మేము కోడ్ యొక్క బ్లాక్ నమోదు. మరియు అలాగే, మేము కలిగి ఒక else ఉంటే, మరియు మేము C. లో ఉపయోగిస్తారు చేస్తున్న కేవలం వంటి ఒక else, మీరు కూడా అందంగా సౌకర్యంగా ఉండాలి కుడి ఉచ్చులు తో బ్యాట్ ఆఫ్, వారు కూడా కనిపిస్తాయి సి వంటి చాలా కనిపిస్తుంది. కానీ మీరు మళ్ళీ గమనించవచ్చు చేస్తాము మేము బదులుగా initializations Int యొక్క కలిగి, మేము var initializations ఉన్నాయి. మరియు నేను మీరు కలిగి అంచనా చేయడానికి జాగ్రత్తగా ఉండాలి ఖచ్చితంగా మీరు విలువ మారదు నేను ఒక పూర్ణాంకానికి నుండి ఒక స్ట్రింగ్, ఉదాహరణకు, ఆ ఎందుకంటే జరగబోతోంది విచిత్రమైన ప్రవర్తనకు కారణం మీరు చేయకపోవచ్చు భావిస్తున్నారు. కానీ ఈ కనిపించాలి అందంగా తెలిసిన, అలాగే. విషయాలు మొదలు కాబట్టి ఇది జావాస్క్రిప్ట్ లో కొద్దిగా క్రేజీ పొందండి ఎవరైనా ఒక నుండి అన్నారు C. నేపధ్యం విధులు ఉన్నాయి JavaScript, మరియు ఒక మార్గం ఉంది కనిపించే ఒక ఫంక్షన్ ప్రకటించాలని సి పోలి యొక్క విధమైన, మరియు అప్పుడు మరొకటి లేదు ఆ రకమైన వ్యత్యాసంతో ఉంటుంది. మొట్టమొదటి సంస్కరణ మేము ఇక్కడ చూడగలరు , ఎక్కడ రకం C-వంటిది మేము ఈ ఒక ఫంక్షన్ ఉంది, చెప్పటానికి దీనికి ఒక పేరును ఇవ్వండి, ఇవ్వాలని వాదనలు సంఖ్య ఫంక్షన్ మరియు అప్పుడు విషయాలను ఆ వంకర జంట కలుపులు లోపల వెళ్ళండి. మేము తన యొక్క ఒక ఉదాహరణ చూస్తారు కేవలం రెండవ వాదనలు. తరువాతి లైన్లో అయితే, మేము OH, చూడండి, ఇక్కడ ఒక వేరియబుల్ అని "myFunction," వార్తలు మరియు మేము ఈ దానిని సమం సాధారణ విషయం ఫంక్షన్ ఆ ఏదైనా జరగబోతోంది కనపడదు. వివిధ అని కారణం కంటే సి జావాస్క్రిప్ట్ ఒక క్రియాత్మక భాష అని ఏమి ఉంది, లేదా అంటే, ఫంక్షనల్ అంశాలుంటాయి విధులు నిజానికి విలువలు. మరియు మేము సెట్ అంటే ఒక వేరియబుల్ ఒక ఫంక్షన్ సమం మరియు ఆ ఫంక్షన్ తరలించడానికి చుట్టూ, ఒక వాదన గా పాస్, stuff అన్ని రకాల విధులు ఆ ఇష్టం. మరొక విషయం note-- కు విధులు రాసిన వాదనలు ఒక నిర్దిష్ట సంఖ్యలో. మేము ఒక ఫంక్షన్ యొక్క ఒక ఉదాహరణ చూస్తారు తదుపరి స్లయిడ్ ఒక వాదన తో. కానీ జావాస్క్రిప్ట్ లేదు రెడీ మీరు ప్రయత్నించండి ఉంటే, మీరు అరుస్తుంటారు ఒక ఫంక్షన్ ఉపయోగించడానికి వాదనలు తప్పు సంఖ్య. ఇది కేవలం చేయడానికి దాని ఉత్తమ చేస్తాను మీరు పాస్ ఉంటే, అనగా చేయండి, మీరు ఒక ఆశిస్తున్నట్లు ఒక ఫంక్షన్ కాల్ ఏ వాదన, అన్ని వాదన దాని ఉత్తమ చేస్తాను ఉంది జరగవచ్చు ప్రయత్నించండి మరియు ఆ కోడ్ అమలు, మరియు అది చివరికి అయిపోతే ఒక మినహాయింపు లేదా లోపాన్ని లోకి, ఆ మినహాయింపు త్రో మరియు కేవలం ఉంటాం వాట్ అన్నారు కేవలం మార్గాలు ఒకటి ఇది జావాస్క్రిప్ట్ పనిచేస్తుంది. అవును. ప్రేక్షకులు: ఏమవుతుంది చాలా వాదనలు ఉంది? SAM GREEN: సో ప్రశ్న ఏమి జరుగుతుంది, ఉంది చాలా వాదనలు ఉన్నాయి ఉంటే? మరియు సమాధానం ఉంది జావాస్క్రిప్ట్ కేవలం రెడీ అని వాటిని పట్టించుకోకుండా అది ఆశించటం వాటిని తర్వాత. ఇది ఫంక్షన్ అమలు ప్రయత్నిస్తాము ఇది కేవలం మొదటి రెండు గా ఉంటే కాల్. కుడి? HUGH జాబ్రిస్కీ: ఆ అవును, రైట్. అదేవిధంగా, ఒకవేళ అక్కడ చాలా కొన్ని వాదనలు ఉన్నాయి, అది కేవలం రకమైన అన్ని శూన్య ఇస్తుంది వాదనలు అది ఏ విలువలు లేదు కోసం. SAM GREEN: ఇది చెయ్యవచ్చు నిజంగానే, సులభ మీరు వెళుతున్న ఉంటే ఒక ఫంక్షన్ రాయడానికి కావలసిన ఒక వేరియబుల్ సంఖ్య వాదనలు పడుతుంది. మీరు డిఫాల్ట్ విలువలను సెట్ చేయవచ్చు ఫంక్షన్ యొక్క నిర్వచనం, మరియు అది నిజానికి విస్మరించవచ్చు ఆ ఇన్పుట్ అక్కడ కాదు. కాబట్టి నేను కొద్దిగా మాట్లాడాలని అనుకుంటున్నారని ఈ చివరి బుల్లెట్ గురించి మరింత విధులు ఇది పాయింట్, విలువలు. ఈ అని ఒక ఉదాహరణ కొద్దిగా అద్భుతంగా మీరు కేవలం అది చదివి, మరియు భావించడం లేదు ఉంటే రెండవ కోసం జరగబోతోంది ఏమి గురించి. కాబట్టి, యొక్క కేవలం చూద్దాం ఇక్కడ మొదటి లైన్. మేము చెప్పే, ఈ వేరియబుల్, f1 కలిగి ఈ విషయం చేసే ఒక ఫంక్షన్ ఉంది. మరియు ఫంక్షన్ యొక్క కంటెంట్లను ('హలో') console.log ఉంటాయి. మీరు console.log ఆలోచించవచ్చు Printf జావాస్క్రిప్ట్ సమానమైన. కాబట్టి ఏం జరుగుతుందో ఉంటే, మేము మా బ్రౌజర్ లో ఈ కోడ్ అమలు, అది ఒక స్ట్రింగ్ ప్రింట్ చేస్తాము. నేను చూపించేందుకు. ప్రేక్షకులు: లాగ్, అయితే, ఆ చేస్తుంది ఇది ఎక్కడో రికార్డు చేయబడిన అర్థం? SAM GREEN: అవును. నేను జరిగే అవకాశముంది ఏమి మీరు తెలియజేస్తాము. హరిబాబు ఏమి అర్థం లాగ్ చేస్తుంది, ఉంది? HUGH జాబ్రిస్కీ: సో console.log C. కోసం printf వంటి SAM GREEN: సో console.log , printf వంటి కాబట్టి నేను ('హలో') ఈ console.log కలిగి ఉంటే, మరియు నేను కాల్, స్ట్రింగ్ "హలో" కన్సోల్ కు ముద్రించిన కావాలి. ఈ కన్సోల్ ఉంది. ఇది కేవలం printf, ఇక్కడ వంటిది ఇది ప్రామాణిక అవుట్ ముద్రిస్తుంది. మరియు మేము ఒక నిమిషంలో చూస్తారు, కానీ ఈ వాస్తవానికి కన్సోల్ వస్తువు సూచిస్తూ, మరియు ఆ వస్తువు ఒక పద్ధతి కాల్. మరింత అర్ధవంతం చేస్తాము ఒక నిమిషం లో మేము గురించి మాట్లాడుతున్నారు ను జావాస్క్రిప్ట్ లో వస్తువులు, కానీ నేను ఆ పేర్కొన్నారు భావించాను. HUGH జాబ్రిస్కీ: మేము ఉన్నాము సి లో ఉపయోగిస్తారు, కుడి మేము సాధారణంగా ఒక పెద్ద కార్యక్రమం రాయడానికి ప్రధాన ఏదైనా చేయాలని. కానీ ఏమి జావాస్క్రిప్ట్ లో చల్లని ఉంది ఉంది వ్యాఖ్యాత ఈ రకమైన కలిగి పరుగులు నిజ సమయంలో, అది లైన్ ద్వారా కేవలం లైన్ పడుతుంది, అది కేవలం అక్కడికక్కడే ఆ అర్థం. మరియు అది ట్రాక్ ముందు అమలు చేసిన విషయాలు, కాబట్టి అది ఒక అందమైన ఉపయోగకరమైన సాధనం , console.log, లేదా కన్సోల్ను వినియోగాన్ని ఉపయోగించడానికి సాధారణంగా, కేవలం ప్లే కోసం చుట్టూ జావాస్క్రిప్ట్ తో. SAM GREEN: సో ఈ తిరిగి వెళ్ళడం రెండవ లైన్ కోడ్ ఉదాహరణకు ఇక్కడ నా తల లో అందంగా మనస్సు సందేహం ఉంది. మొదటిసారి నేను ఈ చదవడానికి, అది వంటి, ఏం జరగబోతోంది జరిగినది? కాబట్టి ఏం ఈ, ఫంక్షన్ ప్రకటన చెప్పారు, నేను ఒక ఫంక్షన్ అని F2 కలిగి ఆ, F ఒక వాదన ఎదురుచూచే యొక్క, మరియు అప్పుడు ఆ కాల్స్ ఫంక్షన్ f, ఇది ఒక వాదన గా ఆమోదించబడింది ఏ వాదనలు తో. కాబట్టి, ఆ గందరగోళంగా ఉండవచ్చు. F2 f1 పడుతుంది మేము ఈ అర్థం ఒక వాదన గా, ఆపై F2 లోపల, f called-- అంటే గెట్స్ కోడ్ యొక్క ఈ లైన్, ఈ రెండు పంక్తులు తరువాత కోడ్, "హలో" లో ఫలితాలు కన్సోల్ ముద్రించిన చేస్తున్నారు. మేము దాటిన వాస్తవం చుట్టూ విధులు విలువలు అత్యంత ఒకటిగా ముగుస్తుంది జావాస్క్రిప్ట్ శక్తివంతమైన ఫీచర్లను ఒక ప్రోగ్రామింగ్ భాష. అన్ని వెలుపల దీన్ని చెయ్యవచ్చు అద్భుతమైన విషయాలు, కేవలం ఒక లక్షణంగా మార్గం పరంగా భాష అది విషయాలు సులభతరం చేస్తుంది ప్రోగ్రామ్ మరియు అనుమతిస్తుంది ముఖ్యంగా లేని విషయాలు కోసం వెబ్ బాగా సరిపోయే, ఫంక్షనల్ ప్రోగ్రామింగ్ మరియు ఫంక్షనల్ జావాస్క్రిప్ట్ ప్రోగ్రామింగ్ అంశాలు అత్యంత ఒకటి శక్తివంతమైన భావనలు ఆ మీరు నాకు చెప్పండి ఉంటే జావాస్క్రిప్ట్ లో ఉంది. కూల్. కాబట్టి, తదుపరి విషయం. ఫంక్షనల్ కావడంతో పాటు, జావాస్క్రిప్ట్ అంశాలు కూడా ఉన్నాయి ఆబ్జెక్ట్ ఆధారిత అని, ఇది చాలా ఒకటి కంప్యూటర్ సైన్స్ లో ప్రముఖ Buzz పదాలు. ఆబ్జెక్ట్-ఆధారిత ప్రోగ్రామింగ్ ఒక నిజంగా ప్రజాదరణ విషయం. జావాస్క్రిప్ట్ ఆ వెర్షన్ ఉంది, నేను ప్రతి విలువ కూడా ఉంది విశ్వసించిన ప్రతి వస్తువు అంటే ఒక వస్తువు, విలువలు కొన్ని సంఖ్య కలిసి మూటగట్టి. సాధారణ విలువలను, వంటి కాబట్టి , varX వంటి పూర్ణాంకం, 5 సమానం ఆ వస్తువు కేవలం ఒక విలువ మూటగట్టి. కానీ మేము కూడా పరిస్థితి ఊహించే మేము సి లో పరిస్థితుల్లో ఆలోచించవచ్చు where-- మేము చేయాలనుకుంటున్నామని పేరు structs తో ఏదో, ఉదాహరణకు, అనేక మూటగట్టి కలిసి విలువలు మరియు తయారీలను ఇది నిజంగా సులభం చుట్టూ విషయాలు పాస్. ఒక వస్తువు జావాస్క్రిప్ట్ లో ఉన్నప్పుడు ఆ. ఇది గుర్తుంచుకోవడం ముఖ్యం నేను వస్తువులు చుట్టి అని చెప్పినప్పుడు కలిసి విలువలు కొన్ని సంఖ్య, విధులు కూడా ఉంటాయి విధులు అంటే విలువలు, కూడా ఒక JavaScript వస్తువు యొక్క లోపల. మరియు ముఖ్యం అని కారణం , ఆ తరచుగా మేము అయితే ఒక పద్ధతి కాల్ అనుకుంటున్నారో అని ఒక వస్తువు మీద ఇతర నుండి ఒక ప్రముఖ పదం యొక్క ప్రముఖ ఆబ్జెక్ట్ ఆధారిత భాషలు, తేడాలు ఒకటి ఇక్కడ ఉంది ఒక పద్ధతి జావాస్క్రిప్ట్ లో ఉంది ఆ క్రింది ఒక వస్తువు యొక్క లోపల నిల్వ ఆ బహుశా కొన్ని action-- ప్రదర్శించి లోపల అని ఇతర విలువలు ఉపయోగించి ఆ వస్తువు యొక్క, కానీ అవసరం లేదు. సో మీరు నేను ఒక పరిస్థితి ఊహించే ఒక క్రేజీ మార్గం కొద్దిగా అంచనా, మీరు ఒక ఒక పద్ధతి అని పేరు ఉదాహరణకు, మరొక వస్తువు మీద అభ్యంతరం. కాబట్టి, ఆ విధంగా అల్లరిగా ఒక కొద్దిగా. మరియు మీరు కూడా పద్ధతులు మార్చవచ్చు ఒక వస్తువు ముడిపడి ఉన్నాయి ఆ పద్ధతి ఒక కేటాయించి కూడా ఇది కొత్త ఫంక్షన్, ఇతర నుండి చాలా భిన్నంగా ఆబ్జెక్ట్ ఆధారిత భాషలు పేరు మేము ఒక వస్తువు డిక్లేర్ ఒకసారి మరియు అది instantiate, మేము ఉంటాయి పద్దతుల మార్చలేరు ఇకపై ఆ వస్తువు సంబంధం. కాబట్టి ఆ అందంగా విభిన్నమైనది. కూల్. ఇక్కడ మొదటి, ఒక ఉదాహరణ వార్తలు, చర్య లో ఒక వస్తువు యొక్క. ఈ అని ఏమిటి ఒక సాధారణ వస్తువు, ఇది అది ఏ అర్థం కాదు ప్రత్యేక పేరు, ఒక తరగతి లేదు విలువల కొన్ని చుట్టడానికి ఉంది. మరియు కనిపించే విధంగా మేము కలిగి ఉంది గిరజాల ఈ బాహ్య జత ఇక్కడ జంట కలుపులు జావాస్క్రిప్ట్ సూచిస్తున్నాయి మరియు ఈ ఒక వస్తువు, చెప్పటానికి. అది లోపలి విలువలు ప్రతి విలువలు లోపల వస్తువు యొక్క తప్పక కలిసి చుట్టి. మరియు ఆ వస్తువు యొక్క లోపల, మేము అప్పుడు, కీ విలువ జతలను కలిగి కీ పేరు సూచిస్తుంది పేరు వస్తువు యొక్క లోపల విలువ, మరియు ఇతర side-- పెద్దప్రేగు ఇక్కడ సరసన వాస్తవ విలువ ఉంది ఆ నిల్వ చేయాలి. కాబట్టి మీరు మేము ఒక కలిగి ఇక్కడ చూడండి కీ విలువ సామ్ తో Fn అని, కామాతో తరువాత, తదుపరి ఎంట్రీ పై మాట్లాడుతూ. అప్పుడు ln అనే కీ, ఆకుపచ్చ ఒక విలువ, కామాతో తరువాత, "ముద్రణ" అనుసరించింది ఒక ఫంక్షన్ విలువ కలిగి అన్నారు ఇది కోడ్ యొక్క ఈ లైన్ చేయాలని అన్నారు. ఒక అడుగు వెనుకకు తీసుకుందాం మరియు ఇక్కడ జరగబోతోంది ఏమి అన్ప్యాక్. కాబట్టి ఈ, కొద్దిగా క్లిష్టంగా ఉంటుంది మరియు మేము కొత్త ఏదో చూస్తున్నారని మొదటి సారి. "ఈ" కీవర్డ్ కొత్త విషయం మేము ఇక్కడ చూసిన, మరియు ఈ ఏమి చేస్తున్నారు , ప్రవాహం సూచిస్తుంది కుడి, స్కోప్ లో అభ్యంతరం? కాబట్టి మేము ఈ చెప్పినప్పుడు తిరిగి అన్ని మార్గం చూపాడు ఈ మొత్తం object-- కు మేము this.fn చేసినప్పుడు, మేము తిరిగి అన్ని మార్గం వెళ్ళి చూడాలని ఈ వస్తువు, fn విలువను వెళ్ళడానికి మరియు సామ్ పొందుటకు, అది అన్ని మార్గం లాగండి తిరిగి, ఇక్కడ అది కర్ర, మరియు అప్పుడు కొనసాగండి. ప్రేక్షకులు: తిరిగి కాబట్టి, ఉంది ఆ ఎందుకంటే పరామితి చేసిన నిర్వచనం? SAM GREEN: ప్రశ్న కాబట్టి, ఉంది తిరిగిపొందడాన్ని ఎందుకంటే పరామితి చేసిన నిర్వచనం? అవును, ఖచ్చితంగా. ఏమిటి, ఇక్కడ జరిగే అవకాశముంది ఈ డాట్, JavaScript చెప్పారు సరే, నేను కొన్ని విలువను పొందుతున్నాను నాకు నుండి ఈ వస్తువు నుండి. అది ఒక ఎంట్రీ కోసం పరిశీలిస్తాము fn అని, మరియు అది తెలుసుకుంటాడు ఉంటే, అది సామ్ యొక్క, తద్వారా విలువ తిరిగి ఉంటాం. కానీ నేను కూడా టైప్ ఉండవచ్చని ఇక్కడ నిర్వచించారు లేదని ఏదో, మరియు అది కేవలం చేస్తాను undefined-- తిరిగి ఇది ఒక విషయం జావాస్క్రిప్ట్ ఉంది ప్రయోజనాలు కలిగిన, చేయండి, మీరు ఒక అక్షర దోషం చేస్తే అది also-- వార్తలు అది అసహజ లోపాలు ఏర్పడతాయి. కనుక ఇది కేవలం కనుగొనేందుకు ప్రయత్నించండి చేస్తాము మీరు కనుగొనడానికి చెప్పాలి సంసార మరియు అది మాత్రం కాదు దానిని కనుగొనేందుకు లేదు ఉంటే ఫిర్యాదు. ఇది కేవలం నేను కాదు, సే చేస్తాము దానిని కనుగొనేందుకు, ఆపై కొనసాగండి. కనుక ఇది undefined అవుతుంది ప్లస్ ఖాళీ, ప్లస్ చివరి పేరు. అవును. ఆపై ఆ చూడగలరు ఉంటే మేము అప్పుడు డౌన్ వెళ్ళి యాక్సెస్ కాలేదు మరియు మేము కుండలీకరణాలు tf.print () కాల్. ఇది ఆ ముద్రణ కాల్ జరగబోతోంది ఏ వాదనలు ఫంక్షన్, కుడి? కానీ ఉంటే మేము కేవలం ఇలా tf.print () సెమికోలన్, బ్రాకెట్ల లేకుండా, పూర్తి ఉండేది అన్ని లాగండి ఉంది విలువ నుండి చర్యను, కానీ నిజానికి అది అని లేదు. కూల్. HUGH జాబ్రిస్కీ: Should మేము ఒక వస్తువు తయారు? SAM GREEN: ఖచ్చితంగా, యొక్క ఆ తెలియజేసేలా. నేను ఈ తరలించవచ్చు కన్సోల్ ఉదాహరణ. మేము నేను ఒక వస్తువు ఊహించవచ్చు. కాబట్టి ఈ ఒక సాధారణ వస్తువు. ఈ రెండు కలిగి ఒక వస్తువు రెండు కీలను విలువలు, రెండు కీ విలువ జతల. నేను అప్పటి నిల్వ విలువ యాక్సెస్ చేయవచ్చు x.x1 చేయడం ద్వారా ఈ వస్తువు యొక్క లోపల, ఉదాహరణకు, నేను 1 తిరిగి. అలాగే, x.x2, ఆ విలువ తిరిగి. ఇప్పుడు నిజంగా చల్లని విషయం నేను, ఉంది నిజానికి ఈ వస్తువు ఏదో జోడించడానికి నేను సృష్టించిన తర్వాత. కాబట్టి మీరు లెట్స్, ఊహించే నేను ఒక ఫంక్షన్ కలిగి చెప్పటానికి. HUGH జాబ్రిస్కీ: మీరు -Enter షిఫ్ట్ లేదు. SAM GREEN: ఓహ్, ఆ బాధించే ఉంది. అది ఏమి ఇష్టం లేదు? ఓహ్. మనం ఇటు వెళదాం. కూల్. సో నేను సృష్టించాను ఈ ఫంక్షన్ f, ఆ ప్రస్తుత వెళ్ళండి అన్నారు వస్తువు మరియు ముద్రణ this.x1. సో నేను ద్వారా f కాల్ ఉంటే కూడా, ఏమీ జరగబోతోంది ఏ x1 లేనందున, కుడి, జరిగే ఇది సూచించడం వస్తువులో రంగంలో. కానీ, నేను అప్పుడు, x.f = f, మరియు చెప్పుకోవాలంటే నా x.f () కాల్, నేను తిరిగి 1 పొందడానికి వెళుతున్న. ఆ f ఫంక్షన్ ఇప్పుడు వస్తువు x సంబంధం, ఒక కీ అని పిలుస్తారు x1 కలిగి విలువ 1 సంబంధం, మేము this.x1 కాల్ చేసినప్పుడు, అది అది ఆరాటపడుతుంది ఏమి కనుగొనేందుకు వెళ్ళడం మరియు ఒక విలువ ముద్రించాలా చెయ్యలేరు. కాబట్టి కేవలం ఒక ఉదాహరణ వార్తలు వెర్రి విషయాలు రకమైన మీరు JavaScript వస్తువులను తో చేయవచ్చు. తద్వారా వెర్షన్ ఉంది జెనెరిక్ వెర్షన్ అర్థం మేము ఈ ఉపయోగించి ఒక వస్తువు సృష్టించిన , నొటేషన్ కలుపు సంజ్ఞామానం కుండలీకరణాలు కాకుండా మరియు ఆ సులభ మేము కేవలం అనుకుంటే ఒక నిర్దిష్ట వస్తువు ఒకటి ఉదాహరణకు, కానీ మనం ఒకటి కంటే ఎక్కువ కలిగి అనుకుంటే అదే రకమైన? మరియు ఆ సమాధానం ప్రశ్న, విషయాలు ఉన్నాయి జావాస్క్రిప్ట్ లో అదే తరగతులు అనే. మేము ఒక ఫంక్షన్ సృష్టించవచ్చు ఆ ప్రారంభ విధమైన చేస్తుంది ఒక విదేశీ వస్తువు కోసం, మరియు మేము వంటి చెప్పేవాడిని పేరు కాబట్టి నా తరగతి పునర్వినియోగ object-- యొక్క అది అప్ సెట్ చేసే ఫంక్షన్ సమానం. కాబట్టి ఈ సమానం అవుతుంది ఏమి ఒక వస్తువు సృష్టించడం అని ఇష్టం కేవలం ఉంటుంది, గిరజాల జంట కలుపు, STR, కొలన్ ఈ ఒక స్ట్రింగ్, సెమికోలన్, వంకర కలుపు. సాధారణమైన ఉంటుంది మేము ప్రారంభించడం వస్తువు, ఒక వ్యత్యాసం ఉండటం తో తదుపరి పంక్తులు మేము ఒక నమూనా సృష్టించడానికి దీనిలో అది ఒక డీఫాల్ట్ కీ అర్థం మేము మా వస్తువు జోడించండి ఇక్కడ జాబితా విలువ ఉంది. అర్థం, నేను ఒక కొత్త సృష్టించేటప్పుడు ఈ, ఇటువంటి వస్తువు యొక్క ఉదాహరణకు, అది లోపలి ముందుగా నిర్మించారు కలిగి జరగబోతోంది ఒక విలువ STR అని మరియు మరొక విలువ ఇది అని myPrint, వెళుతున్న ఒక ఫంక్షన్ ఉండాలి. ఆసమ్. గ్రేట్. గత విషయం జావాస్క్రిప్ట్ గురించి చెప్పటానికి ఇది ఏమి కోసం నిజంగా ఉపయోగం ఉంది అసమకాలిక కార్యకలాపాలు అంటారు. అసమకాలిక మార్గంగా ఉంది మేము ఆ కొన్ని ఆపరేషన్ కోసం వేచి మేము తరలించడానికి ముందు పూర్తి మేము వేచి ఉన్నప్పుడు, కానీ కొనసాగండి ఆపై ఏదో తరువాత జరిగే. మరియు నేను ఏ ఆ అర్ధం మీరు ఉంది పరిస్థితి ఊహించే మీరు ఒక అభ్యర్థనను పంపడానికి ఎక్కడో కొన్ని వెబ్ సర్వర్, మరియు మీరు తిరిగి పంపడానికి జరగబోతోంది డేటా కొన్ని పెద్ద భాగం, కుడి? మరియు మీ యూజర్ వేచి కాలేదు ఈలోగా జరిగే ఆ కోసం, మరియు ఏమీ కావచ్చు ఆ సమయంలో జరగబోతోంది. కానీ ఒక గొప్ప డిజైన్ కుడి కాదు? మీరు వెబ్ పేజీ స్తంభింప వద్దు. ఏమి యూజర్ అనుకొంటే డ్రాప్-డౌన్ మెను క్లిక్? ఇది ఒక గొప్ప డిజైన్ నమూనా కాదు. బదులుగా, ప్రధానంగా జావాస్క్రిప్ట్, సేస్ లేదు సరే, క్రమపద్దతిలో ఈ ఆపరేషన్ చేయండి. కాబట్టి వంటి నేపథ్యంలో వేచి, ఆపై ఆపరేషన్ పూర్తి అయిన తర్వాత బ్యాక్ కాల్ ఫంక్షన్ కొన్ని ఫంక్షన్ కాల్, కొన్ని action-- సంకేతంగా లేదు మేము చివర నిలబడ్డారు ఆపరేషన్ అయిపోయింది. సూపర్ శక్తివంతమైన అని కారణం, మేము, ఏదో ఒక వాదన పాస్, ఏదో ఒకటి, ఆపై వేచి ఏదో జరిగే కోసం. అప్పుడు, ఏదో ఒకసారి , మేము ఒక బ్యాక్ కాల్ చేయవచ్చు పూర్తి. అది అనుమతిస్తుంది ఎందుకంటే ఇది నిజంగా సులభ వార్తలు మాకు వెబ్ ఆడియో API పనులను ఉదాహరణకు, లోడ్ ఒక వంటి ఒక రిమోట్ సర్వర్ నుండి ఆడియో ఫైల్ కోసం వేచి లేకుండా మొత్తం ఆడియో ఫైల్ లోడ్, నిజంగా అవుతుంది యూజర్ అనుభవాన్ని కోసం చెడు. కూల్. చివరి జంట గురించి గమనికలు డీబగ్గింగ్, అప్పటికి మీరు చేయాల్సిందల్లా చూడాలని ఒక విషయం మీ ప్రాజెక్టులో భాగంగా, హామీ. నేను JavaScript కన్సోల్ పేర్కొన్నారు. ఇది ఒక సూపర్ ఉపయోగకరమైన ఫీచర్ అన్ని ఆధునిక బ్రౌజర్లలో, మరియు మేము నిజంగా పొందడానికి ప్రోత్సహించడానికి మీ కన్సోల్ ఉపయోగించి సౌకర్యవంతమైన, మీరు JavaScript వద్ద మంచి పొందుటకు కావాలా. దాని కోసం సులభ సూపర్ ఉంది డీబగ్గింగ్, కానీ అది కూడా ఇందుకు నిజంగా ఉపయోగకరంగా బయటకు ఎలా ఒక API ఉపయోగించడానికి. ఇది నిజంగా అనుమతిస్తుంది సులభంగా ప్రయోగం కొన్ని టైప్ చేయకుండా కోడ్ స్థానం, మరియు అప్పుడు అది కంపైల్. మీరు అన్ని ఆ దశలను చేయాలని లేదు. మీరు కేవలం వ్రాయగలరు ఒక వరుసలోకి కొన్ని కోడ్ ఆపై వెంటనే ప్రతిస్పందనను కోడ్ యొక్క లైనును లేదో చాలా సులభ worked--. మరియు, కేవలం ఒక సాంకేతిక note-- JavaScript కన్సోల్ ఒక ఉదాహరణ ఆ repl R-E-పి-L కాబట్టి ఒక REPL-- యొక్క, రీడ్ ఉన్నచో, విశ్లేషించి ముద్రణ లూప్. మీరు కొన్ని stuff టైప్ చూడాలని లో, ఇది మీరు టైప్ చేసిన ఏమి చదివి ఉంటాం, అది విశ్లేషించడానికి చేస్తాము, మరియు ప్రింట్ చేస్తాము అవుట్పుట్, మరియు అప్పుడు అది మళ్ళీ మొదలు పెడతారేమో. మీరు వేగంగా వెళ్ళి అనుమతిస్తుంది వృత్తాలు నిజంగా బాగుంది, సంభవింప. నేను ఈ note-- వాస్తవ చివరి అంచనా అవును, అసలు గత గమనిక ఉంది. మేము ఎలా వాస్తవానికి జావాస్క్రిప్ట్ ఉపయోగించగలను? కాబట్టి మొదటి, మేము దిగుమతి చేసుకోవచ్చు అది ఒక స్క్రిప్ట్ ట్యాగ్ ఉపయోగించి ఒక HTML ఎగువన లేదా దిగువన ఫైలు ఎక్కడైనా ఒక HTML ఫైల్ లోపల, నిజంగా. మరియు ఒక స్క్రిప్ట్ ట్యాగ్ లోపల ఉన్నాయి జావాస్క్రిప్ట్ దిగుమతి రెండు ఉప మార్గాలు. మొదటి ఒక ద్వారా ఉంది ప్రత్యేక JavaScript ఫైలు మేము సంపూర్ణంగా దిగుమతి, లేదా ఆ స్క్రిప్ట్ వంటి కోడ్ విస్తీర్ణంలో ద్వారా అప్పుడు మొదలు, మరియు బాక్ స్లాష్ స్క్రిప్ట్ ముగించాలి. మరియు తర్వాత మేము కేవలం రాయడానికి HTML ఫైల్ లోపల జావాస్క్రిప్ట్. ఆ రెండు మార్గాలు ఉన్నాయి. మీరు HTML యొక్క లోపల ఉండకూడదు. ప్రేక్షకులు: ఇతర కంటే ఒక మంచి ఈజ్? SAM GREEN: ప్రశ్న, ఇతర కంటే ఒక మంచి ఉంది. కాబట్టి, అవును, ఒక కోడింగ్ శైలి సాధన, మరియు కూడా ఒక నమూనా ఆచరణ వంటిది. రెండు కారణాలు ఉన్నాయి ఎందుకు అది మంచి కావచ్చు. మొదటి అది మీ కోడ్ ఒక చేస్తుంది, ఉంది చాలా చదవదగ్గ మీ HTML యొక్క అన్ని ఉంటే ఉంది ఒకే చోట మీ CSS అన్ని ఉంది మరొక స్థలం మీ జావాస్క్రిప్ట్ అన్ని మూడవ స్థానంలో ఉంది. కుడి? మనం ఇప్పటికే మాట్లాడారు వుండాలి అనుకుంటున్నాను sections-- వంటి దాని గురించి CSS-- ఏమి ఆ is-- మరియు చేజారిపోతుంది తరచుగా మరొక ఫైల్ లో. కాబట్టి, ఇక్కడ భావన యొక్క ఇదే రకమైన. మీరు కూడా ఊహించవచ్చు జావాస్క్రిప్ట్ ఒకటి కంటే ఎక్కువ మళ్లీ ఉపయోగించే అవుతుంది HTML పేజీ, లేదా బహుశా ఒక అనేక గొప్ప HTML పేజీలను, మరియు ఆ JavaScript కలిగి ఒక లోకి మార్పుదల మీరు దిగుమతి చేసే దాఖలు ఒకటి కంటే ఎక్కువ స్థలం లోకి కోడ్ ఉంటుందని అనుమతిస్తుంది మార్గం మరింత నిర్వహణ. మీరు ఒక చేసినందుకు ఊహించే జావాస్క్రిప్ట్ మార్చడానికి మరియు కలిగి దానిని మార్చడం 100 వివిధ ఫైళ్లు. మరియు బదులుగా మేము కేవలం అది మార్చవచ్చు మార్గం మరింత శక్తివంతమైన ఇది ఒకటి, లో. నేను మీ ప్రశ్నకు సమాధానం లేదు? కూల్. మేము కూడా కన్సోల్ టైప్ చేయవచ్చు మేము ముందు పేర్కొన్న చేసిన. మరియు తిరిగి, ఒక చివరి note-- ఆడియో నిర్మింపబడింది వెబ్, మీరు ఏదైనా లోడ్ అవసరం లేదు. కూల్. ఏవైనా ప్రశ్నలు ఉన్నాయి మీరు ఎందుకు చెయ్యాలి జావాస్క్రిప్ట్ గురించి ఏ మరింత ప్రశ్నలు, మేము ముందుకు ముందు? ప్రేక్షకులు: [వినబడని] SAM GREEN: అన్ని కుడి, చల్లని. కాబట్టి ఇప్పుడు అతను API గురించి మాట్లాడటానికి జరగబోతోంది. HUGH జాబ్రిస్కీ: కూల్. ధన్యవాదాలు, సాం. SAM GREEN: ఖచ్చితంగా. HUGH జాబ్రిస్కీ: అద్భుతం, మేము జావాస్క్రిప్ట్ నుండి బయటపడేందుకు చేస్తాము. కాబట్టి మేము కొన్ని గురించి మాట్లాడారు చేసిన జావాస్క్రిప్ట్ నిత్యావసర మరియు ఆ వేరియబుల్స్, క్రియలు, వస్తువులు, వేరియబుల్స్ గా విధులు, అసమకాలిక లోడ్. ఈ మీరు చేస్తాము అన్ని విషయాలు మీరు వెబ్ ఆడియో ఉపయోగించడానికి గా చూడండి. కాబట్టి మేము కేవలం మాట్లాడటానికి వెళుతున్న అధిక స్థాయిలో మొదటి దాని గురించి. ఇది ఒక API, కాబట్టి అది ఏదో ఉంది సామ్ చెప్పారు ఆ, నిర్మించిన, కుడి జావాస్క్రిప్ట్ లోకి మీరు కన్సోల్ లో ఉపయోగించే. మరియు అది కేవలం సి వంటి ++ కోడ్ వాస్తవానికి వార్తలు నిజంగా Chrome లో నిర్మితమైన ఉంది మరియు Firefox, మరియు ఈ బ్రౌజర్ యొక్క అన్ని. వెబ్ ప్రధాన ఆలోచన కాబట్టి ఆడియో మీరు కలిగి ఉంది ఆడియో పైప్లైన్ ఈ రకమైన, కుడి? సో మీ ఆడియో డేటా కొన్ని రూపంలో వస్తుంది. మూడు ప్రధాన forms-- యొక్క రకమైన ఉన్నాయి మీరు ఓసిలేటర్, కలిగిన ఒక సైన్ వేవ్ సృష్టిస్తుంది, కొసైన్ వేవ్, మేము ఆ పని ఎలా చూడండి చూడాలని. మరో సాధారణ ఒక కోర్సు యొక్క, ఒక MP3 ఉంది. కాబట్టి బహుశా మీరు తో ప్రారంభించడానికి ఒక పాట, మరియు అప్పుడు మీరు కొన్ని వడపోత చేయాలనుకుంటున్నారా ఆ మరియు అవుట్పుట్ ఆ ఆ సాధ్యమయ్యే మూలం కావచ్చు. ఆపై ఒక నిజంగా చల్లని ఒక మైక్రోఫోన్ ఉంది. సో మీరు కొన్ని చాలా ఉపయోగించవచ్చు జావాస్క్రిప్ట్ లో ప్రాథమిక కాల్స్ ప్రాప్తి చెయ్యడానికి మైక్రోఫోన్, మరియు కనుక మీరు ఒక అప్లికేషన్ అనుకున్నారు ఒక పిచ్ డిటెక్టర్ వంటి, ఉదాహరణకు, ఆ టేక్స్ మీ వాయిస్ మరియు సంఖ్యలు అవ్ట్ ఆ pitch-- చాలా సులభమైన మార్గం. మీరు రకమైన చదువుకోవచ్చు లో, ఫ్రీక్వెన్సీ దొరుకుతుందని, ఆపై అవుట్పుట్ ఒక సంఖ్య. కాబట్టి మేము ఆ పని ఎలా చూడండి, అలాగే చేస్తాము. గమ్యం రప్పించింది ఎక్కడ ఆడియో డేటా అవుట్పుట్ ఉంది. కనుక సాధారణంగా, ఆ వంటిది మీ ల్యాప్టాప్ స్పీకర్లు. ఇతర ఎంపికలు వంటివే ఒక ScriptProcessorNode-- మేము ఒక నోడ్లు పొందుతారు రెండవ కానీ ప్రాథమికంగా, గాని మీరు ధ్వని ఉంచడం చేస్తున్నారు మీ కంప్యూటర్ ద్వారా స్పీకర్లు ద్వారా, లేదా మీరు రకమైన కాబట్టి, అది రికార్డింగ్ చేస్తున్న మీరు ఆడియో డేటా వంటి నిల్వ చేస్తున్నారు. కాబట్టి బహుశా ఎవరైనా సృష్టిస్తుంది ఉంటే సంగీతం మీ అనువర్తనం ఆపై మీరు మరియు బహుశా వంటి రికార్డు అనుకుంటే ఉదాహరణకు కోసం, SoundCloud కు ఎగుమతి ఆ దీన్ని ఒక మార్గం ఉంటుంది. అన్ని ఫన్ స్టఫ్ మేము గురించి మాట్లాడదాము, ఈ రెండు బిందువుల మధ్య జరుగుతుంది, మేము సంగీతంలో లోడ్ పేరు మరియు అది అవుట్పుట్. కాబట్టి నేను ఐదు గురించి మాట్లాడటానికి వెళుతున్న రెండవ ఆడియో ప్రొడక్షన్ దశలు. మేము అని ఈ విషయం కలిగి ఒక AudioContext, ఇది మేము ఇక్కడ చూడండి ఈ చిన్న రేపర్ ఉంది. మనం ఉంటే ప్రధానంగా is-- AudioContext ప్రస్తుతం JavaScript కన్సోల్ వెళ్ళండి మేము ఇప్పుడు ఒక సృష్టించవచ్చు. Repl కేవలం ఒక ఉదాహరణ, కుడి? మేము చదువుతున్న, మూల్యాంకనం, మరియు అది ముద్రిస్తుంది. AudioContext ప్రపంచ రాష్ట్రము. ఇది ఒక వస్తువు ఒక struct వార్తలు ఇక్కడ, అది మరియు సమాచారం ఉంచుతుంది విషయాల గురించి జరుగుతున్నాయి ఆడియో సంబంధించిన తెరపై. ఒక ఉదాహరణ ప్రస్తుత సమయం ఉంది. ఈ మీరు సంఖ్య చెబుతుంది సెకన్లు, చాలా సంక్షిప్తంగా వెబ్ పేజీ నుండి లోడ్. ఈ ఒక నిజంగా ఉపయోగకరంగా ఉంటుంది మీరు ఉపయోగించే చిన్న ఆస్తి. ఇది only-- చదువుకోవచ్చు నేను నిజానికి నేను మీరు ఒక విలువ సెట్ ప్రయత్నించవచ్చు. ఇది మీరు సెట్ చెబుతాడని, ఆపై మీరు ముద్రించవచ్చు ఉంటే మళ్ళీ ఇది నిజానికి చాలా పని చేయలేదు. సో అక్కడ చదవడానికి మాత్రమే ఉంటాయి జావాస్క్రిప్ట్ లో లక్షణాలు. ఈ ఉంటే నిజంగా ఇవి ఉపయోగకరంగా మీరు రకమైన సమకాలీకరిస్తుంటే వివిధ చాలా సమాచారం, మీరు ఉన్నాము రకమైన విభిన్న ధ్వనులు ఆడటం. మరొక నిజంగా ఉపయోగకరంగా ఒక సందర్భం గమ్యం. మీకు ఆసక్తి ఉంటే ఖచ్చితంగా, ఉంటుంది మీ సొంత కన్సోల్ కుడివైపు ఈ ప్రయత్నిస్తున్నారు ఇప్పుడు. కాబట్టి ఈ ఒక AudioDestinationNode ఉంది. ప్రధానంగా ఈ చెప్పే, అవుట్పుట్ అన్నారు? కాబట్టి ఇక్కడ రెండు వాస్తవ ఎంపికలు ఉన్నాయి. సాధారణంగా డిఫాల్ట్ కేవలం మీ స్పీకర్లు, ఉంది కాబట్టి AudioDestinationNode ప్రధానంగా కేవలం చెప్పారు ధ్వని సున్నా ఉద్గాతాలు ఉన్నాయి చేరుకొని స్పీకర్ కు పంపబడింది. కనుక సాధారణంగా, మీరు లేదు ఆ ఆడటానికి కలిగి. మీరు నిజంగా ఉపయోగించి ఆసక్తి ఉంటే రికార్డింగ్ కోసం ScriptProcessorNode, ఖచ్చితంగా నాకు ఒక షూట్ ఇమెయిల్ వార్తలు తరువాత ఎందుకంటే కొద్దిగా మరింత క్లిష్టంగా. కానీ సాధారణంగా, మీరు కేవలం రకమైన ఉన్నాము కొన్ని రూపంలో ధ్వని ఔట్పుట్. కాబట్టి చల్లని, మేము ఇక్కడ తిరిగి వెళ్ళు చేస్తాము. ప్రేక్షకులు: క్షమించండి. HUGH జాబ్రిస్కీ: అవును. ప్రేక్షకులు: నేను మీరు మాట్లాడటానికి చెప్పారు తెలుసు మీరు తరువాత రికార్డింగ్ గురించి. మీరు ఆ ప్రో పరికరములు అనుసంధానము చేయగలవు? HUGH జాబ్రిస్కీ: ప్రో పరికరములు? చూద్దాం. నేను అలా అనుకుంటున్నాను లేదు. కాబట్టి క్లయింట్ మధ్య వెళుతున్న, ఇది జావాస్క్రిప్ట్ కన్సోల్, మరియు మీ వాస్తవ కంప్యూటర్, సాధారణంగా ఉంది రకంగా ఆ ఏదో యొక్క పరిమితులు ఆఫ్, మీరు ఉంటే రకం ఉన్నారు స్వభావం ద్వారా, రెడీ అది ఒక రూపకల్పన విషయం రకంగా కానీ మీరు ప్రత్యేక బ్రౌజర్ ఉంచడానికి ప్రయత్నించండి యూజర్ యొక్క అసలు కంప్యూటర్ నుండి. సాధారణంగా, మాత్రమే విషయం మీరు చేయగలిగింది అయితే ప్రాప్తి మైక్రోఫోన్ లేదా కెమెరా. మీరు చెయ్యలేక ఉన్నాము, నేను భావించడం లేదు, ప్రో పరికరములు ఉపయోగించండి. అయితే, మీరు సృష్టించిన ఉంటే ప్రో పరికరములు ఒక ట్రాక్, మీరు ఆ లోడ్ చేయగల ఎగుమతి ఇక్కడ, ఉదాహరణకు, అది ఫిల్టర్, ప్రక్రియ, మరియు ఒక లోకి రికార్డింగ్కు ఆడియో గమ్యం లేదా ఒక గోళము no-- ప్రాసెసర్ నోడ్. అక్కడ నుండి ఆపై, మీరు అనుకొనుట , SoundCloud మీరు ఆ ఎగుమతి ఒక ఇమెయిల్ లో పంపించండి, లేదా కాలేదు సంసార మీరు అక్కడ నుండి ఇష్టం. కాని స్వల్ప అవరోధం యొక్క రకమైన ఉంది మీ కంప్యూటర్లో మ్యూజిక్ చేస్తూ మధ్య మరియు ఆన్లైన్ సంగీతాన్ని రూపొందించడం. SAM GREEN: ఆ ఈ API ప్రత్యేకమైనది కాదు. ఇది Chrome యొక్క భద్రతా ఫీచర్, నేను ప్రతి ఇతర ఆధునిక బ్రౌజర్ అనుకుంటున్నాను. బ్రౌజర్ స్వీయ ఉంటుంది. ఉదాహరణకు, ఒక వెబ్ పేజీ కాదు ధ్వని తిరుగులేని జావాస్క్రిప్ట్ ఉపయోగించడానికి ఉదాహరణకు మీ స్పీకర్లు, న. లేదా మీ కంప్యూటర్ ఆఫ్ కాదు. మరియు ఎటువంటి మధ్యంతర పాయింట్ ఉంది ఆ రెండు వస్తువుల మధ్య, కుడి, కాబట్టి గాని మీరు ఒక కలిగి పూర్తి నైరూప్యత, లేదా మీరు తెరుచుకుంటుంది తెలియజేసినందుకు భద్రతా లోపం చెడు ఉద్దేశాలు ఒక ప్రోగ్రామర్ చేయండి సంసార వారు మీ ల్యాప్టాప్ అనుకుంటున్నారా. Chrome స్వీయ ఉంటుంది ఎందుకు మరియు ఆ. HUGH జాబ్రిస్కీ: అవును. ఆ సమంజసం లేదు? కూల్, చల్లని. నేను వెళుతున్నాను ఒక ఉదాహరణ చూపించడానికి. ఈ వంటి చాలా చక్కని ఉంది ఇప్పటివరకు మీరు పరంగా, పొందేవరకు యూజర్ యొక్క కంప్యూటర్ యాక్సెస్. మీరు కలిగి ఉంటే ఒక USB కీబోర్డ్, ప్లగ్ మీరు వెబ్ అనే ఉపయోగించడానికి చేయవచ్చు MIDI API, ఇది మేము లేదు రెడీ నిజంగా ఇక్కడ గురించి మాట్లాడటానికి, కానీ ఈ వార్తలు మరొక API ఉంది మళ్ళీ కనీసం Chrome-- నిర్మించారు, మేము Chrome-- ప్రేమ ఎందుకు ఈ ఉంది నేను ఫైర్ఫాక్స్ లేదా Safari అనుకుంటున్నాను ఈ ఒక సులభమైన విషయం google-- వివిధ బ్రౌజర్లలో కలిగి ఇది వివిధ మద్దతు API లు వారు అమలు చేశారు. మీరు కోరుకుంటే కానీ ఒక కీబోర్డు లో ప్రదర్శించాడు మరియు ఆ సమాచారాన్ని పని, రకమైన కీబోర్డ్ పంపడానికి కంప్యూటర్ కు సమాచారం ఆపై, ఈ API ఆన్లైన్ ఉపయోగించడానికి మీరు ఆ పని లోనవుతాను పేరు ఉంది. కూల్. అలాగే. కాబట్టి, త్వరగా ఇక్కడ కదిలే. ఎలా మేము సమయం చేస్తున్నారు? SPEAKER 1: గురించి 15. HUGH జాబ్రిస్కీ: 15 నిమిషాలు మిగిలి? చల్లని, సరే. కాబట్టి మేము ఇక్కడ ఈ రేసులో ముందుకు చేస్తాము. కాబట్టి ప్రాథమికంగా, ప్రధాన పాయింట్ పైప్లైన్ ఈ ఆలోచిస్తూ అని పైప్లైన్ ప్రతి అడుగు ఆడియో నోడ్స్ యొక్క సిరీస్. మా మూలం, యొక్క అని పిలవబడు, ఒక ఓసిలేటర్ ఉంది. మేము ఒక ఓసిలేటర్ నోడ్ సృష్టించాలి. మరియు కేవలం రకం చిన్న ఫంక్షన్ మరియు వారు అన్ని బయటకు ఆధారంగా చేస్తున్నారు ఇక్కడ ఆడియో సందర్భం. ప్రేక్షకులు: ఇది అన్నప్పుడు ఓసిలేటర్, ఆ అర్థం ఏమిటి నిజానికి అక్షరాలా నుండి జరగబోతోంది ముందుకు వెనుకకు రెండు వేర్వేరు స్తంభాలు? HUGH జాబ్రిస్కీ: కాదు, అది వంటిది ఒక డిజిటల్ ప్రతిబింబం. ఇది నిజంగా సి ++ లో అమలు ఉంది. నేను నిజానికి స్పెక్స్ తెలియదు నిజానికి అమలు ఎలా, కానీ అన్ని ఈ బైనరీ డేటా పనిచేస్తోంది. అసలైన, అవును. ఆ నేను అనుకొనుట, చెప్పడం అవుతుంది నిజానికి, మీకు ఆసక్తి ఉంటే, నేను మీరు కొంచెం పంపవచ్చు ఎలా అల రూపాల గురించి సమాచారాన్ని ఒక డిజిటల్ ఫార్మాట్ కలిగి ఉంచబడ్డాయి. చల్లని, సరే. కాబట్టి మేము ఒక సైన్ వంటి టోన్ ఉత్పత్తి చేస్తున్నారు బహుశా, వేవ్ లేదా అలాంటిదే 440 హెర్ట్జ్. మేము ఒక ఓసిలేటర్ సృష్టించడానికి. మేము వాల్యూమ్ సెట్ అనుకుంటే, మేము ఒక GainNode ఏదైనా కనెక్ట్, ఇది మేము .creategain తో అలా. మీ వాల్యూమ్ అమర్చుతుంది. మీరు ఏ పై ఆ తరలిస్తారు options-- ఇతర యొక్క, కాబట్టి ఒక ఆడియో బఫర్ మూలం నోడ్ ఇక్కడ మీరు ఉండవచ్చు మీరు లోడ్ చేసిన ఒక MP3 నిల్వ. Biquad వడపోత వడపోత ఉంటే ఉంది మీరు అన్ని బేస్ తీసుకోవాలని కావలసిన ఆ వంటి ఒక పాట, లేదా ఏదో. దేవుని మీరు తీసుకొవాలనుకోవటము అందకుండా ఒక పాట బయటకు బేస్. మరియు AudioDestination నోడ్, మళ్ళీ, మన ఖరారు ఉన్న. మీరు చూసిన ఎప్పుడూ ఆసక్తి ఉంటే అన్ని వివిధ ఎంపికలు, కేవలం టాబ్ వెళ్లి వీలు ఆటో-పూర్తి ఇచ్చారు. మీరు సృష్టించడానికి లేకపోతే, మీరు అన్ని చూస్తారు మీరు సృష్టించడానికి వివిధ విషయాలు. మీరు డైనమిక్ సృష్టించవచ్చు స్క్రిప్ట్ ప్రాసెసర్లు నేను కూడా ఏమి తెలియదు ఛానల్ విలీనాలు మిక్సింగ్ కోసం, మరియు ఛానల్ స్ప్లిటర్ మరియు అన్ని ఆ. కూల్. కాబట్టి ఈ కేవలం ఒక ఉంది పైప్లైన్ ఉదాహరణ. కాబట్టి మేము మూడు మూలాల రావడం. బహుశా ఈ అల రూపాల ఉన్నాయి, బహుశా ఈ MP3 లు ఉన్నాయి. ఒక ద్వారా జరగబోతోంది వడపోత, మరొక ఒకరి వక్రీకరించింది విధానం మరొక ఒకరి నూనెపోసి ఎడమ మరియు కుడి. మీరు విషయాలు అన్ని రకాల చేయవచ్చు మరియు వారు అన్ని కలిసి సుమారు మిక్స్డ్ ఆపై బయటకు ఆడియో వస్తుంది గమ్యస్థానంగా చివరలో. ఈ ఏమి మరింత ఒక ఉదాహరణ క్లిష్టమైన వెబ్ ఆడియో కోడ్ కనిపిస్తోంది. మీరు అన్ని ఈ సృష్టిస్తున్నారు వివిధ వస్తువులు ఇక్కడే నేను ఈ ఖచ్చితంగా తెలియదు. కాదు, అది జూమ్ లేదు. అలాగే. SAM GREEN: మీరు కంట్రోల్, స్క్రోల్ చేయండి. HUGH జాబ్రిస్కీ: కంట్రోల్ Scroll-- SAM GREEN: లేదు, లేదు. Control-- HUGH జాబ్రిస్కీ: ఓహ్, కంట్రోల్, స్క్రోల్? Gotcha, ఓహ్. అవును. వద్దు, వద్దు, వావ్. అలాగే. నేను అలా కాదు. కాబట్టి యేః, ఈ మొదటి ఇక్కడ విభాగం, మీరు చూడండి మేము ఈ వివిధ సృష్టిస్తున్నారు సందర్భం నోడ్స్. మేము వాటిని piecing చేస్తున్నారు కలిసి రెండవ భాగం లో కనెక్ట్ అని ఈ చర్య ద్వారా. ఒక నిజంగా కీ వెబ్ ఆడియో ఫంక్షన్. మీరు చేసిన ఒకసారి ఇది కేవలం అర్థం ఒక నోడ్ లో ధ్వని తో ఏదో, తదుపరి నోడ్ అది న పాస్. కాబట్టి మేము సోర్స్, అది విశ్లేషణము కు కలుపుతుంది, విశ్లేషణము, ఇది ఏదో చేస్తాడు అది, అందువలన న వక్రీకరణ వెళతాడు, మరియు మరియు గమ్యానికి ఇక్కడే దిగువన. కూల్. OK, కాబట్టి మేము కదిలే ఉంటాం. Pipeline-- మళ్ళీ, ఈ అత్యంత సాధారణ పైపులైన్ల ఉన్నాయి, కాబట్టి మేము వంటి అన్ని ఈ విషయాల గురించి మాట్లాడటానికి వక్రీకరణ, పాన్, అన్ని ఈ విషయం. మీరు నిజంగా ఆసక్తి ఉంటే విషయాలు ప్రో పరికరములు ఉపయోగించుకోవడంలో, ఆ బహుశా మీకు ఇష్టము. లేకపోతే, బహుశా మీరు కేవలం ధ్వని ఆడటానికి కావలసిన, లేదా ఉండవచ్చు మీరు కేవలం కావలసిన ధ్వని వాల్యూమ్ సెట్. ఆ రెండు సర్వసాధారణ విధమైన ఉంటాయి ఆడియో ప్రొడక్షన్ లో పైపులైన్ల యొక్క. మళ్ళీ, మార్గాలు మీరు తీసుకెళ్ళవచ్చు ఒక oscillator-- కాబట్టి, లెట్స్ గా లో ఒక ఇక్కడే ఆ డెమో చేయండి. కాబట్టి మేము ఒక సృష్టించడానికి చూడాలని ఇక్కడ సాధారణ ఆడియో సందర్భం, మరియు ఆ నుండి మేము వెళుతున్న మా ఓసిలేటర్ సృష్టించడానికి. అని సో, మళ్ళీ, మేము కేవలం ఉన్నాము ఓసిలేటర్ సృష్టించు కాల్ వెళుతున్న. మేము ఒక ఫ్రీక్వెన్సీ సెట్ చూడాలని 440 హెర్ట్జ్, అందరి ఇష్టమైన, ఆ. అప్పుడు మేము గమ్యానికి ఆ కనెక్ట్ పాయింట్ స్పీకర్ కాబట్టి, ఇది సందర్భం గమ్యం. చివరగా, మేము కేవలం సున్నా ప్రారంభం ఇప్పుడు నుండి సెకన్లు, మరియు మేము ధ్వని ఉన్నాయి? [రింగింగ్] HUGH జాబ్రిస్కీ: ఇక్కడ మేము వెళ్ళండి. ఇది కేవలం ఒక సైన్ వేవ్ ఉంది. చల్లని, సరే. ఆపై ఆ ఆపడానికి ఉంటాం. ప్రేక్షకులు: ఎక్కడ ఆ చూడు నుండి వచ్చి? HUGH జాబ్రిస్కీ: చూడు? ఓహ్, బహుశా మా మైక్రోఫోన్లు. మీరు దీన్ని ఎలా కాబట్టి యేః, ఆ. మరియు వాస్తవానికి నేను కలిగి ఉంటే మీరు పెట్టే నడుస్తున్న ఫ్రీక్వెన్సీ కలిగిన కాలేదు ఇది అమలు వంటి, విలువ కాబట్టి ఆ చుట్టూ ఆడటానికి ఒక ఆహ్లాదకరమైన విషయం. కూల్. ఆ ఎల్లప్పుడూ ప్రస్తుత ఒక సుందరమైన ఒకటి. SAM GREEN: మేము చేశాడు మేము గురించి తెలుసా? HUGH జాబ్రిస్కీ: అవును, ఒక దుష్ట ఒకటి. సో, బఫర్ loading-- నేను ఒక తెలియజేస్తాము చాలా చివరిలో ఆ యొక్క ఉదాహరణ. ఒక MP3 లోడ్. మరియు మైక్రోఫోన్, మీరు కేవలం ఒక ఫంక్షన్ ఉపయోగించడానికి ) (navigator.getUserMedia అని యూజర్ యొక్క యాక్సెస్ అభ్యర్థించవచ్చు సమాచారం కోసం మైక్రోఫోన్. ఇక్కడ వడపోత, నేను చేస్తాము కేవలం ఈ నుండి కదిలే ఉంచాలని. ఈ అందంగా అధిక స్థాయి కానీ ఫిల్టర్లు కేవలం మిమ్మల్ని అనుమతిస్తుంది [ధ్వనించే] వడపోత కూడా మీరు అనుమతిస్తుంది గులాబీ వంటి విషయాలు సృష్టించడానికి శబ్దం, గోధుమ శబ్దం, వైట్ నాయిస్. మీరు స్వచ్ఛమైన శబ్దం, సృష్టించడానికి కావాలా ఇది కొంతమంది తో చుట్టూ ఆడకూడదని ప్రేమ మీరు వెబ్ ఆడియో ఉపయోగించవచ్చు వడపోత చేయాలని. ఆడియో Panning-- కాబట్టి ఊహించుకోండి మీరు ఒక ఆట రాస్తున్నాం ఉంటే మరియు మీరు ధ్వని కావలసిన అది వంటి, వస్తున్నాయో పోలికే స్క్రీన్ వెంబడి కాల్పులు, మీరు ఆడియో నూనెపోసి ఉపయోగించవచ్చు కోన్ ఈ రకమైన సృష్టించడానికి, ఇది అందంగా mathy వార్తలు గందరగోళంగా గెట్స్, కానీ అది నిజంగా నిజానికి చల్లని మీరు అది పని వస్తే, మరియు కొన్ని మంచి ఉంది అది ట్యుటోరియల్స్ నేను మీరు పంపవచ్చు. సాధారణంగా, మీరు రకం చల్లని ధ్వని సృష్టించడానికి ఒక 3D విధంగా వెళ్తుంటే ఏదో. మీరు ఒక DJ ఆసక్తి కలిగి ఉంటే, మీరు చెయ్యవచ్చు మిక్సింగ్ మొదలు మరియు క్షీనతకి పాటలు క్రాస్. ఈ కొన్ని చాలా బేసిక్ కోడ్, నేను ముందు ఏమి ప్రధానంగా ఏ. ఈ వాల్యూమ్ అమర్చుతుంది ఓసిలేటర్, కాబట్టి మేము మా ఓసిలేటర్ సృష్టించడానికి ఇది తరంగ సృష్టిస్తుంది. మేము మా GainNode సృష్టించడానికి, మా ఫ్రీక్వెన్సీ సెట్, ఆపై ఓసిలేటర్ కనెక్ట్ అప్పుడు ప్రధానంగా మారే GainNode, ఎంత సిగ్నల్ ద్వారా మాత్రమే అనుమతించబడుతుంది. కానీ నిజంగా, అది ఒక డిజిటల్ వార్తలు విషయం, అది అవును కేవలం మరింత కాబట్టి. వాస్తవానికి ఏం కాదు, కానీ నిజ జీవితంలో జరుగుతుంది ఏది లాభపడి. ప్రేక్షకులు: --quantization వాల్యూమ్ పరామితి? HUGH జాబ్రిస్కీ: క్షమించాలి? ప్రేక్షకులు: ఇది ఒక ఈజ్ రాశి వాల్యూమ్ పారామితి? HUGH జాబ్రిస్కీ: అవును. మరియు ఈ నేను నిజంగా ఉన్నాను ఒక విషయం నా జ్ఞానం లో లోపం ఎలా లాభం ఒక డిజిటల్ స్థాయిలో పనిచేస్తుంది. నేను అసలు తెలిసిన సిగ్నల్స్, ఇది ప్రాథమికంగా నియంత్రించడంలో ఎంత మీరు సిగ్నల్ విస్తరిస్తుంది. కాబట్టి, అవును. నేను మీరు గురించి మరింత సమాచారం పంపుతాము నేను నిజానికి ఆసక్తికరమైన భావించాలి ఎందుకంటే, ఆ గురించి మరింత తెలుసుకోవాలంటే. కానీ ప్రధానంగా పారామితులు ఒక fold--, ఉన్నాయి బిగ్గరగా signal-- మరియు సున్నా ఏ సిగ్నల్, లేదా మీరు ఏ ధ్వని వినడానికి కాదు. మేము ఆ ఎందుకంటే డెమో సమయం skip చేస్తాము నా ముందు ఏమి ప్రధానంగా ఏమిటి. మరియు తిరిగి, Context.Destination ఆడియో గమ్యం నోడ్ ఉంది. అద్భుతం, సరే. కాబట్టి నేను ఒక శీఘ్ర రెండు ప్రదర్శనలు చేయ బోతున్నాను. ఎలా మేము సమయం చేస్తున్నారు? SPEAKER 1: గురించి 10 నిమిషాల. HUGH జాబ్రిస్కీ: 10 నిమిషాలు? గ్రేట్! ఆసమ్. కాబట్టి నేను వెళుతున్న మొదటి ఒకటి అది నా అభిమాన పాట అని లేదు. కాబట్టి ఈ కేవలం ఒక ఉంది కొద్దిగా HTML జావాస్క్రిప్ట్. మేము రెండు బటన్లు చూడాలని పేజీలో నా ఇష్టమైన పాట ప్లే మరియు నా అభిమాన పాట ఆపడానికి. నేను ఈ మారుస్తాము. ప్రేక్షకులు: మీ మైక్రోఫోన్ ముఖచిత్రం. HUGH జాబ్రిస్కీ: అవును. మరియు నేను ఇక్కడ లోడ్ చేసిన ప్రధానంగా ఒక స్క్రిప్టు మరియు ఈ నిజంగా ఉపయోగకరంగా ఉంటుంది ఒక MP3 లోడ్ కోసం, ఈ కేవలం చేస్తుంది వేగంగా MP3 లు మార్గం లోడ్. ఇది కేవలం ఒక రేపర్ ఉంది. ఇది కేవలం ప్రక్రియ చేస్తుంది చాలా వేగంగా MP3 లు లోడ్, లేకపోతే మీరు, HTTP అభ్యర్థన ఉపయోగిస్తున్నట్లయితే రకమైన మేము చేస్తున్న ఏమి వంటి సర్వర్ తో సెట్ ప్రస్తుత భాగాన్ని. ఇది నిజంగా అగ్లీ మీరు చేయాలనుకుంటున్నాను లేదు. కాబట్టి ఈ వ్యక్తి, బోరిస్ SMUs, ఒక నిజంగా రాశారు BufferLoader అని ఉపయోగకరంగా చిన్న సాధనం. మీరు అన్ని అది పాస్ కేవలం సందర్భం, మీరు ఒక జాబితా పాస్ లేదా, అవును, ఇది జావాస్క్రిప్ట్ లో జాబితా? SAM GREEN: వ్యూహం. HUGH జాబ్రిస్కీ: ఓహ్, అది వ్యూహం, అది నిజం. ఇది మార్గాలను యొక్క వ్యూహం ఉంది వివిధ ఫైళ్లకు. ఆపై మీరు ఒక ఫంక్షన్ పాస్. ఈ మేము మాట్లాడుతూ బ్యాక్ ఉంటుంది అసమకాలిక లోడ్ తో గురించి. ఆ అని ఉంటుంది లోడ్ ఫైళ్లు ఒకసారి. మరియు ఆ ఫంక్షన్ ఉన్నప్పుడు అని ఫైలు లోడ్ ఒక చుట్టుకొలత తీసుకుని లోడ్ బఫర్సుకొరకు యొక్క వ్యూహం. తద్వారా ఇక్కడ జరుగుతుంది. సాధారణంగా, BufferList ఉంది ఒక విలువ అవతరిస్తుంది లేదా అది యొక్క వ్యూహం చేస్తాడు ఇండెక్స్ లో అది కలిగి పొడవు ఒకటి, MP3 మొత్తం లోడ్ ఉంచుతారు. నేను పూర్తి చేసినప్పుడు నేను ఏమి లోడ్ నేను కేవలం ఉంది ఒక బఫర్ మూలం సృష్టించడానికి ఇది ఆడియో బఫర్ మూలం నోడ్ ఉంది. తదుపరి దశలో నేను లోడ్ ఉంది పూర్తి లోడ్ బఫర్ source.buffer BufferList-- నుండి ఇది buffers-- చాలా వార్తలు మరియు మీరు ఆ ఆడియో కనెక్ట్ గమ్యానికి బఫర్. సో వాట్ దీన్ని జరగబోతోంది కేవలం MP3 ఉంచబడుతుంది నేరుగా అవుట్పుట్ ద్వారా, మరియు వెంటనే అది మొదలు ఈ కాల్ అవుట్ మీద. కూల్, కాబట్టి యొక్క చూసేలా ఈ చర్య లో జరిగే. నా [వినబడని] ఇక్కడ, యొక్క చూసేలా. సో నేను వెళుతున్న ఒక ప్రాథమిక సర్వర్ మొదలు. ఏదో ఆ మీరు ఉన్నాము ఉంటే చెయ్యాల్సిన లోడ్ ఫైళ్లు కోసం అభ్యర్ధనలు మేకింగ్. నేను ఒక ప్రాథమిక సర్వర్ మొదలు వెళుతున్న. ఈ ప్రాథమికంగా మీ మొత్తం ఉంది ఇప్పుడు ఒక లైన్ లో pset, కానీ అది కేవలం మొదలు పోర్ట్ 80/80 సర్వర్. కాబట్టి మేము ఇక్కడ వెళ్ళి, మేము 80/80 లోడ్ కు వెళ్ళి మేము నా ఇష్టమైన పాట వెళుతున్నాం. నేను హిట్ చేస్తే "ఆన్లైన్ నా ప్రస్తుతం ఇష్టమైన పాట " లోడ్ జరగబోతోంది నా ఇష్టమైన పాట మరియు అది ప్లే ఫాస్ట్ EAGLES "లైఫ్ - [MUSIC  వీధి"] --which లో "లైఫ్ నిర్మాణము ఈగల్స్ ద్వారా ఫాస్ట్ లేన్ ". ఇప్పుడు, నేను ఆపు "హిట్ కాలేదు నా ఇష్టమైన పాట "మరియు అది రీప్లే. ఫాస్ట్ EAGLES "లైఫ్ - [MUSIC  వీధి"] నేను ఎందుకంటే పరచటానికి వెళ్ళి ఉంటే నేను ఇక్కడ పైగా ఒక ప్రపంచ వేరియబుల్ ఉపయోగించారు నిజానికి, ఈ విలువ ఇది ట్రాక్ ఇప్పుడు కన్సోల్ లో గుర్తించబడతాయి. కాబట్టి ఇది నాకు ఆటో సృష్టిస్తుంది. కాబట్టి ఆ ప్రస్తుతం ప్లే ఏమిటి, మరియు నేను కేవలం) (source.stop కాల్ చేయవచ్చు ఆ. బాగా, మీరు ఏమి తెలుసు? అందువల్ల మీరు అబ్బాయిలు విన్నాను ఈ song-- మీరు ఈ పాట గుర్తించి ఉండవచ్చు. [MUSIC - రిక్ ఆష్లే "నెవెర్ గొన్న ఇవ్వండి  మీరు అప్ "] ఫాస్ట్ EAGLES "లైఫ్ - [MUSIC  వీధి"] మేము ఇప్పుడు అన్ని Rickrolled చేసిన. సరే, గొప్ప, వెళ్ళేముందు. కూల్. కాబట్టి ఈ ప్రాథమికంగా ఒక ఉదాహరణ కేవలం మీరు ఒక MP3 లోడ్ కాలేదు ఎలా ఫైల్ ఫాస్ట్ EAGLES "లైఫ్ - [MUSIC  వీధి"] --and ప్లే, మరియు ఆపడానికి మరియు మొదలు. నేను మరింత ఒక చాలా పూర్తి కాలేదు [వినబడని] నేను చేస్తాను గత ఒకటి, నేను ఒక [వినబడని] మీరు తెలియజేస్తాము. [సంగీతాన్ని] ఇది వంటిది ogg.wave.mp3 వార్తలు. నేను సరిగ్గా గుర్తు ఉంటే నేను అనుకుంటున్నాను, నేను .m4a కొన్ని సమస్యలు లోకి అమలు చేసిన కానీ నేను ఆ గురించి తెలియదు. నేను mp3.wave-- అనుకుంటున్నాను [MUSIC - రిక్ ఆష్లే "నెవెర్ గొన్న ఇవ్వండి  మీరు అప్ "] సరే, గొప్ప. నేను చెప్పాను ఉండకూడదు. హలో, ఏమైనప్పటికీ. కాబట్టి మేము ఈ తెరిచిన. కాబట్టి ఇప్పుడు నేను అన్ని నేను ప్రధానంగా రూపొందించినవారు, ఉంది సంగీతం సృష్టించడం కోసం ఒక ప్రాథమిక సింటాక్స్. నేను ఏదో ఇష్టపడతారు కాబట్టి, G4 జోడించండి 1 2 న, ఆ అర్థం ఉంది, పియానో ​​నోటు, G4 జోడించండి నాలుగో జి దిగువ నుండి పియానో ​​మీద అప్. కాబట్టి ఈ మిడి యొక్క రకమైన మాట్లాడతాయి, కాబట్టి సంగీత ఆధారిత వారికి, ఈ మిడి నోట్లు. ప్రేక్షకులు: G వార్తలు మధ్య సి, కుడి? HUGH జాబ్రిస్కీ: ఈ జి మధ్య C పైన, అది నిజం. ప్రేక్షకులు: పైన మధ్య C HUGH జాబ్రిస్కీ: అవును. అసలైన, అవును. నేను నిజానికి చేశాడని భావిస్తున్నాను అది ఒక [వినబడని] కాబట్టి ఈ పైన ఒక అష్టపది కావచ్చు. కాబట్టి యొక్క చూసేలా. నేను Play-- కొట్టినప్పుడు [పునరావృత పియానో ​​గమనిక] ఆ వినే అన్నారు --we're. దీనిని నిర్వహించే ఉంది కేవలం, ఒక కమాండ్ లైన్ చేస్తాను వంటి కాబట్టి నేను పైకి క్రిందికి వెళ్ళి ఉంటే నా కీబోర్డు మీద, మీరు మునుపటి వెళ్లవచ్చు అందమైన ఉపయోగకరమైన ఇది ఆశిస్తాడు. మరియు క్రింద పాటలను నా జాబితా, అన్ని లూప్ అమలు. ప్రేక్షకులు: మీరు భావించి ఆ కీబోర్డ్ 88 కీ, కుడి? HUGH జాబ్రిస్కీ: ప్రశ్న, నేను ఒక 88-కీ కీబోర్డ్ ఊహిస్తూ am, మరియు అవును, నేను. నేను అదే చేసింది నేను ప్రధానంగా 88 నమూనాలను తీసుకున్నారు పియానో, ప్రతి నోటు కోసం ఒక రూపొందించబడింది. కాబట్టి ప్రతి సమయం మీరు ఇప్పటి నుండి ఒక గమనిక విన్నారా, వాస్తవానికి కనిపించే ఒక లూప్ ఉంది ఈ లూప్ లో ఆడాడు పడకుండా వంటి ఫంక్షన్ కాబట్టి ప్రతి నోట్, ఈ నడుస్తుంటే. ఏమి జరుగుతుంది నేను ఉంది మళ్ళీ ఒక బఫర్ సృష్టించడానికి, నేను వాల్యూమ్ సెట్ ఒక లాభం నోడ్ సృష్టించడానికి. ఈ కేవలం ఒక నిజంగా నేను చెప్పడం క్లిష్టంగా మార్గం ఒక source.buffer లో బఫర్ నిల్వ. నేను లాభం ఇచ్చి లాభం అనుసంధానించే లాభం అనుసంధానించబడిన అవుట్పుట్, మరియు అప్పుడు నేను ప్లే. కాబట్టి ఆ ప్రక్రియ యొక్క రకం ఒక బఫర్ మూలం తీసుకోవడం. ప్రేక్షకులు: మీరు నిజంగా ఆ పొందగలరా పొడి ధ్వని మరియు అది తడి [వినబడని] తయారు? HUGH జాబ్రిస్కీ: మీరు, అవును. తిరిగి క్రియా రూపం లేదు, ఉంది ఆలస్యం, వక్రీకరణ. మీరు ప్రాథమికంగా ఏదైనా ఉంచవచ్చు of-- అలాగే ఆ శాండ్విచ్ లో మధ్య, పైప్లైన్, ఒక మంచి రూపకంగా కానీ మీరు ఆ ఏదైనా జోడించవచ్చు. కూల్. కాబట్టి నేను డెమో పూర్తి చేస్తాము ఇక్కడ మీరు ఒక భావాన్ని సార్లు కేవలం పరిపూర్ణ సంఖ్య మీరు ఒకేసారి ఆ ఫంక్షన్ అమలు చెయ్యవచ్చు. నేను ఈ తొలగించు వెళుతున్న. నేను ఒక జెనరేటర్ సృష్టించడానికి వెళుతున్న ఆ ప్రధానంగా ఈ నిజంగా దేనిని ఏమి ఒక క్లిష్టమైన syntax-- రకం కానీ అది ఎగిరి గమనికలు ఉత్పత్తి కానుంది, మరియు కేవలం ఆట ప్రారంభించడానికి వాటిని వాటిని మదింపు వంటి. [INTERPOSING పియానో] కాబట్టి మేము కేవలం ఇక్కడ కొద్దిగా సంగీతం చేయవచ్చు. [INTERPOSING పియానో] సో వాట్ ఈ ఆదేశం ఉదాహరణకు, చేస్తుంది, అది ఆ మూడు గమనికలు పడుతుంది పియానో ​​మరియు అప్పుడు B3 వాటిని ఉంచుతుంది. ఈ వాక్యనిర్మాణం సంపాదించగలరు కొంచెం సెన్స్ ఒక ఉన్నవారికి ఇక్కడ సంగీతం నేపథ్య. నేను ఒక కిక్ డ్రమ్ జోడించవచ్చు. నేను-- [INTERPOSING వాయిద్యాలు] --just తో చుట్టూ ప్లే. కాబట్టి మీరు make-- చేయవచ్చు [INTERPOSING వాయిద్యాలు] ఆ కొంచెం బాధించే ఉంది. [INTERPOSING వాయిద్యాలు] యాదృచ్ఛికంగా ఒక పొడి కంచుతాళం జతచేస్తుంది కాబట్టి ఒక 16% ప్రతి 16 నోటు మీద [వినబడని]. [INTERPOSING వాయిద్యాలు] అవును, కాబట్టి మార్గం ఈ 4 లో ఎప్పుడూ అనిపిస్తుంది works--: 4. [INTERPOSING వాయిద్యాలు] అవును, నాలుగు వంతులు, మరియు 16/8 కాబట్టి. [INTERPOSING వాయిద్యాలు] కాబట్టి సగటున, మీరు 60% పొందండి 16 గమనికలు హిట్స్. ఏమైనప్పటికీ, ఈ కేవలం ఉంది రకమైన ఆఫ్ చూపించడానికి మీరు చేయగలిగే విషయాలు కొన్ని వెబ్ ఆడియో API నిర్మించుకోవాలని. ఇది నిజంగా వేగమైనది, నిజంగా శక్తివంతమైన ఉంది మరియు మీరు మంచి విషయాలు చాలా చేయవచ్చు దానితో. మరలా, మీరు ఏవైనా ప్రశ్నలు, ఇమెయిల్ myself-- Hugh-- లేదా సామ్, నిజాయితీగా, Google కలిగి ఉంది మంచి వనరుల టన్ను. ఇంగ్లీషు ప్రశ్నలు? అవును. ప్రేక్షకులు: సో మీరు ఆక్సెస్ చేయవచ్చు అంతర్నిర్మిత మైక్రోఫోన్ను. మీరు కోరుకుంటే ఏమిటి ఒక మంచి మైక్రోఫోన్ ఉపయోగించాలి? HUGH జాబ్రిస్కీ: మీరు అనుకుంటే మంచి మైక్రోఫోన్ ఉపయోగించాలి? మరలా, ఈ భాగం Chrome మధ్య సంగ్రహణం మరియు మీ కంప్యూటర్ యొక్క మిగిలిన. అది ద్వారా అందుబాటులో తప్ప ఒక API, వెబ్ MIDI API వంటి, మీరు బహుశా కొన్ని హక్స్ కనుగొనగలిగితే, కానీ సాధారణంగా ఉండదు. SAM GREEN: మీరు also-- చేయవచ్చు అన్ని Chrome తెలుసు ఏమి మీ డిఫాల్ట్ మైక్రోఫోన్ ఉంది, మరియు అది యాక్సెస్. మీరు ఒక మైక్రోఫోన్ కలిగి ఉంటే మీరు అనుకొనుట కాబట్టి కంప్యూటర్ యొక్క డిఫాల్ట్ మైక్రోఫోన్ ఏర్పాటు చేశారు మీరు ఆ విధంగా పొందలేక మరియు అది బహుశా పని చేస్తుంది. HUGH జాబ్రిస్కీ: ఒక మంచి పాయింట్. నేను ఆ ప్రయత్నించాడు, కానీ ఎప్పుడూ చేసిన మీరు రకమైన చేయగలరు of-- మీరు ఇన్పుట్ స్పీకర్ మళ్ళింపు ఉంటే, మీరు అవును, అలా చేయగలరు. ఇంగ్లీషు ప్రశ్నలు? కూల్. Well మీరు అబ్బాయిలు ధన్యవాదాలు చూడటం కోసం చాలా. నేను హ్యూ ఉన్నాను. SAM GREEN: నేను సామ్ ఉన్నాను. HUGH జాబ్రిస్కీ: మరియు ఈ CS50 ఉంది.