nettet audio api: lave din egen web synthesizer

, web audio api: lave din egen hjemmeside synthesizer,,,,, 272,,,,,,,,, 13,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss. denne post er en del af en serie kaldet internettet audio api. nettet audio api: forøgelse af lyd, din web - app, robert moog berømte skabt en af de første kommercielle modulopbygget synthesizers.hans opfindelser bestod af banker, ledninger og knapper, at musikere til at skabe lyder aldrig hørt før.disse instrumenter er ikke billige, koster tusindvis af dollars, for selv de mest grundlæggende model.,, der nu takket være internettet audio api, vi kan skabe vores egen lignende lyde fra, at vi kan få vores hjerte indhold for den samlede $0.ikke kun det, vi kan formidle vores robot øjeblikkeligt til alle i verden takket være internettet.,, hvis du ikke har læst den foregående kursusun­dervisning i dette net audio - udgaven, ville jeg foreslå, at tilbage og læse dem, før virksomheden på dette, og de dækker de grundlæggende ved hjælp af internettet audio api - og skabe en lyd forfra.,, at begynde, lad os starte med at skabe en grundlæggende html side.,, <!doctype html > < html > < head > < meta - charset = "utf - 8" > < meta - navn = "viewport" indhold = "bredde = anordning bredde" > < afsnit > der tilsættes lyder deres web - app < /afsnit > < forbindelse rel = "stylesheet" href = "styles /main. css" > < /head > < krop > < div klasse = "containere" > < h1 > synthesizer!< /h1 > < /div > < /organ > < /html >,, og nogle grundlæggende design i vores, styles /main.css, fil.,, organ {skrifttype familie: uden serif;}. container (margen: auto -; bredde: 800px;}, tastatur, måske det vigtigste, din robot har brug for, er et tastatur.heldigvis har jeg skabt en lille stump af javascript, som vil tilføje et virtuelt tastatur til din side.Download a copy of Qwerty Hancock and reference it at the bottom of your page like so.,,<script src="scripts/qwerty-hancock.min.js"></script>,,Then add an empty div to your page with an id of "keyboard".,,<div id="keyboard"></div>,,This is the place on the page that the keyboard will be inserted into.,,We'll also want to set up a dedicated JavaScript file for our synth, so let's create that too and reference it after where we've included Qwerty Hancock.,,<script src="scripts/qwerty-hancock.min.js"></script> <script src="scripts/synth.js"></script> ,,Within synth.js we'll initialise our keyboard by doing the following.,,var keyboard = new QwertyHancock({ id: 'keyboard', width: 600, højde: 150, octaves: 2}), det fortæller vores side at indsætte et tilfælde af vores tastatur til element med id "tastatur", resize til 600 x 150 px, og antallet af nøgler på tastaturet omfatter to octaves.save og genopfriske din browser at se en smuk skærmen tastatur.use nøgler, rør, eller din mus til at se noter lys som du presse dem.,, qwerty hancock giver os to tilfælde lyttere, keyup, og keydown,.de giver os mulighed for at skaffe i tastaturet og skrive kode brande, når tastaturet er presset.det fortæller os også som note blev presset, og den tilsvarende frekvens i hertz.,, keyboard.keydown = funktion (note, hyppighed) (konsol. log ('note "bemærker" er blevet presset) konsol. log ('its frekvens, hyppighed)}; keyboard.keyup = funktion (note, hyppighed) (konsol. log ('note, note, er blevet frigivet '); konsol. log ('its frekvens var, hyppighed)};,, svinger meget, lad os starte en oscillator, når nøglen er presset.vi stopper det, efter en anden, så det ikke vare for evigt.,, var forbindelse = nye audiocontext(); keyboard.keydown = funktion (note, hyppighed) {var osc = sammenhæng. createoscillator(); osc. forbinde (sammenhæng. bestemmelsessted); osc. start (sammenhæng. currenttime); osc. stop (context.currenttime + 1.);};,, hvorfor skal vi skabe oscillator i, keydown, funktion?er det ikke mere?oscillatorer, er beregnet til at blive forenklet og smides væk efter brug.du kan faktisk kun anvendes én gang.tænk på dem som en slags bizarre audio - fyrværkeri.,, når vi trykker på en nøgle, vi hører en lyd.det er lidt højt, så lad os skabe en, gainnode, til at fungere som mester mængde kontrol.,, var forbindelse = nye audiocontext(), mastervolume = sammenhæng. creategain(); mastervolume.gain.value = 0,3. mastervolume. forbinde (sammenhæng. bestemmelsessted). keyboard.keydown = funktion (note, hyppighed) {var osc = sammenhæng. createoscillator(); osc. - (mastervolume); mastervolume. forbinde (sammenhæng. bestemmelsessted); osc. start (sammenhæng. currenttime); osc. stop (context.currenttime + 1)}, et tastatur, der spiller en enkelt besked igen og igen er ikke meget sjov, så lad os lukke i frekvensen for oscillator før vi begynder at spille.,, osc.frequency.value = hyppighed, ja.nu er vi nødt til at standse oscillator spiller efter vi løfte et centralt snarere end efter en anden.fordi vi er ved at skabe en oscillator i, keydown, funktion, er vi nødt til at holde styr på, hvor oscillator spiller som hyppigheden for at stoppe det, når nøglen er frigivet.en enkel måde at gøre det på er at skabe et tomt mål og tilføje de frekvenser, som nøgler, og som oscillator spiller den frekvens, som dens værdi, var - oscillatorer = {}; keyboard.keydown = funktion (note, hyppighed) (//tidligere kode her oscillatorer [hyppighed] = osc; osc. start (sammenhæng. currenttime)}, betyder det, at vi sagtens kan bruge den frekvens, vi får fra vores, noteup, funktion, for at forhindre, at specifikke oscillator.,, keyboard.keyup = funktion (note, hyppighed) {oscillatorer [hyppighed]. stop (sammenhæng. currenttime)}, har vi nu et fuldt samarbejde (grundlæggende) synthesizer i browseren.okay, det lyder ikke godt i øjeblikket, men lad os se, om vi kan ændre det, den første ting at gøre, er at ændre den type bølge den oscillator output.der er fire grundlæggende former for at vælge fra: absolut, square, trekant og savtand.hver anden form af bølge lyder anderledes.lege med dem og vælge din favorit.for eksempel, jeg vil vælge "savtand.,, osc.type = savtand «, der, det lyder bedre. det er meget sjældent, vil du finde en synthesizer, som anvender en fælles oscillator.de fleste synths oksekød deres sunde ved at kombinere forskellige oscillatorer af forskellige typer.lad os se, hvordan det lyder, om vi tilføje en anden.   husk vi skal fordoble vores forbindelser, og vi er nødt til at tilføje oscillatorer med samme frekvens til en vifte.det betyder, at vi kan iterate over dem for at stoppe alle af oscillatorer, der spiller den samme   note.,, keyboard.keydown = funktion (note, hyppighed) {var osc = sammenhæng. createoscillator(), osc2 = sammenhæng. createoscillator(); osc.frequency.value = frekvens; osc.type = savtand. osc2.frequency.value = frekvens; osc2.type = trekant "osc. - (mastervolume); osc2. - (mastervolume); mastervolume. forbinde (sammenhæng. bestemmelsessted); - oscillatorer [hyppighed] = (osc, osc2] osc. start (sammenhæng. currenttime); osc2. start (sammenhæng. currenttime)}; keyboard.keyup = funktion (note, hyppighed) {oscillatorer [hyppighed]. forhvert (funktion (oscillator) (oscilsenere. stop (sammenhæng. currenttime)})};,, at vi afslutter det, lad os bruge et trick, vi har lært i de foregående tutor.vi kan tilføje en lille kor at tilføje mere glimmer til vores lyd af detuning den oscillatorer lidt.,, osc.detune.value = 10 osc2.detune.value = 10, smukke, når kraftwerk ville være stolt af.spille sammen med den færdige artikel eller gaffel inkasso på github at pirre fra dit hjerte indhold.



Previous:
Next Page: