
рдореЗрд░реЗ рд▓рд┐рдП рд╡реЗрдм рдСрдбрд┐рдпреЛ рдПрдкреАрдЖрдИ рдЙрди рдирд╡рд╛рдЪрд╛рд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рдЬреЛ рдЕрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд╕рд╛рде crammed рд╣реИрдВ, рдФрд░ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдореИрдВ рджреЛрд╕реНрддреЛрдВ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдФрд░ рдХрдо рд╕реЗ рдХрдо рдХрд┐рд╕реА рддрд░рд╣ рдЗрд╕ рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдШреБрд╕рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдСрдбрд┐рдпреЛ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝рд░ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рд╕реАрдзреЗ рдСрдбрд┐рдпреЛ рдПрдкреАрдЖрдИ рд╕реЗ рдирд┐рдкрдЯрдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ, рд╣рдореЗрдВ рдЕрдкрдиреЗ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝рд░ рдХреЗ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЛ рд╕реНрдХреЗрдЪ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рд╣рдо рдХреИрдирд╡рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдРрд╕рд╛ рдХрд░реЗрдВрдЧреЗред
рдПрдХ рд╕реНрдЯреЙрдХ рдмрдирд╛рдПрдБ
рдЕрдЧрд░ рдЖрдкрдХреЛ рдЗрд╕ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рдХреЛрдИ рджрд┐рд▓рдЪрд╕реНрдкреА рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕реЗ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
рдПрдХ рд╕реНрдЯреЙрдХ рдмрдирд╛рдПрдБрддреЛ рдХреИрдирд╡рд╛рд╕ рдмрдирд╛рдПрдБ:
var canva = document.createElement('canvas'); var ctx = canva.getContext('2d');
рдареАрдХ рд╣реИ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдХреИрдирд╡рд╛рд╕ рд╣реИ, рдФрд░ рдлрд┐рд░ рд╣рдореЗрдВ рдРрд╕реЗ рддрддреНрд╡реЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдзреНрд╡рдирд┐ рд╕рдВрдХреЗрдд рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрдВрдЧреЗред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпреЗ рд╕рд╛рдорд╛рдиреНрдп рд╡реГрддреНрдд рд╣реЛрдВрдЧреЗ:
var particles = [];
рд╣рдорд╛рд░реА рдордВрдбрд▓рд┐рдпреЛрдВ рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдбреНрд░рд╛ рд╕рдорд╛рд░реЛрд╣ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
var draw = function () {
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдорд╛рд░реА рд╡рд░реНрдХрдкреАрд╕ рд▓рдЧрднрдЧ рддреИрдпрд╛рд░ рд╣реИ, рдХреЗрд╡рд▓ рдХрдг рдХрдг рдирд┐рд░реНрдорд╛рддрд╛ рдмрдиреА рд╣реБрдИ рд╣реИред
var Particle = function () { this.init(); }; Particle.prototype = { init: function () { this.x = random(canva.width); this.y = random(canva.height); this.level = 1 * random(4); this.speed = random(0.2, 1); this.radius = random(10, 70);
рдПрдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдмрдирд╛рдПрдБ
рдЗрд╕рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝рд░ рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рд╣реИред AudioContext рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рджреНрд╡рд╛рд░рд╛ рдореБрдЦреНрдп рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рдИ рдЬрд╛рдПрдЧреАред рдПрдХ рдкреГрд╖реНрда рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╕рдВрджрд░реНрдн рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдм рдХреБрдЫ рдорд╣рд╕реВрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдЬреЛ рдЖрдкрдХреА рдЖрддреНрдорд╛ рдЪрд╛рд╣рддреА рд╣реИред рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рдЧрднрдЧ рд╕рднреА рддрд░реАрдХреЗ рдСрдбрд┐рдпреЛрдХреЛрдЯреЗрдХреНрд╕реНрдЯ рддрд░реАрдХреЗ рд╣реИрдВред рдЗрдирдХреА рдкреВрд░реА рд╕реВрдЪреА
рдпрд╣рд╛рдВ рджреЗрдЦреА рдЬрд╛ рд╕рдХрддреА
рд╣реИ ред рдЪреВрдВрдХрд┐ AudioContext рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдЕрднреА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдореЛрджрд┐рдд рдирд╣реАрдВ рд╣реИ, рд╣рдо рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рдмрдирд╛рдПрдВрдЧреЗ:
var AudioContext = w.AudioContext || w.webkitAudioContext; var context = new AudioContext ();
рдпрд╣ рдУрдкреЗрд░рд╛, рдХреНрд░реЛрдо рдФрд░ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдореЗрдВ рдПрдХ рдСрдбрд┐рдпреЛрдХреЛрдЯреЗрдХреНрд╕реНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рд╕рдВрджрд░реНрдн рд╕реЗ, рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:
- createScriptProcessor (рдкреВрд░реНрд╡ рдореЗрдВ createJavaScriptNode) - рдпрд╣ рд╡рд┐рдзрд┐ рдЖрдкрдХреЛ js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдСрдбрд┐рдпреЛ рдбреЗрдЯрд╛ рдПрдХрддреНрд░ рдХрд░рдиреЗ, рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдпрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЕрдкрдирд╛ рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рд╣реИ рдФрд░ рд╣рдо onaudioprocess рдИрд╡реЗрдВрдЯ рдореЗрдВ рд░реБрдЪрд┐ рд▓реЗрдВрдЧреЗ, рдЬреЛ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЗрдирдкреБрдЯ рдореЗрдВ рдирдпрд╛ рдбреЗрдЯрд╛ рдкреНрд░рд╕рд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИред
рдЬрдм рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╡рд┐рдзрд┐ рддреАрди рддрд░реНрдХ рд▓реЗрддреА рд╣реИ рдмрдлрд░рдЬрд╛рдЗрдЬрд░ - рдмрдлрд░ рдЖрдХрд╛рд░, рд╕рдВрдЦреНрдпрд╛рдЗрдиреНрдлреИрд╢рдирдЪреИрдирд▓реНрд╕ - рдзрд╛рд░рд╛ рдореЗрдВ рдЗрдирдкреБрдЯ рдЪреИрдирд▓реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛, рдЕрдВрдХрд╕реВрддреНрд░рдЪреИрдирд▓реНрд╕ - рдЖрдЙрдЯрдкреБрдЯ рдЪреИрдирд▓реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ред
- createMediaElementSource - рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдСрдбрд┐рдпреЛ рдпрд╛ рд╡реАрдбрд┐рдпреЛ рддрддреНрд╡ рд╕реЗ рдзреНрд╡рдирд┐ рд╕реНрд░реЛрдд рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдСрдбрд┐рдпреЛ рддрддреНрд╡ рд╕реЗ рдСрдбрд┐рдпреЛ рд╕реНрдЯреНрд░реАрдо рдСрдбрд┐рдпреЛ рдХреЙрдиреНрдЯреЗрдХреНрд╕реНрдЯ рдореЗрдВ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
- createAnalyser - рдпрд╣ рд╡рд┐рдзрд┐ рдЖрдкрдХреЛ рдбреЗрдЯрд╛ рдХреА рдПрдХ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд┐рдЧреНрдирд▓ рдХреА рдЖрд╡реГрддреНрддрд┐ рдФрд░ рд╕рдордп рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рд╣рдореЗрдВ рдЕрдкрдиреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЛ рдСрдбрд┐рдпреЛ рд╕рд┐рдЧреНрдирд▓ рдХреЗ рд╕реНрд░реЛрдд рдФрд░ рдзреНрд╡рдирд┐ рдХреЗ рд░рд┐рд╕реАрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдЗрд╕рд▓рд┐рдП, рдСрдбрд┐рдпреЛрдХреЛрдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдореЗрдВ рдЬреЛ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ, рдЙрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдо рдЕрдкрдиреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
var Analyze = function () { var AudioContext = w.AudioContext || w.webkitAudioContext; this.context = new AudioContext(); this.node = this.context.createScriptProcessor(2048, 1, 1); this.analyser = this.context.createAnalyser(); this.analyser.smoothingTimeConstant = 0.3; this.analyser.fftSize = 512; this.bands = new Uint8Array(this.analyser.frequencyBinCount); }
рдпрд╣ рдХреЙрд▓ рдПрдХ рдСрдбрд┐рдпреЛ рд╕рдВрджрд░реНрдн рдФрд░ рдбреЗрдЯрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдПрдЧрд╛ред рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдПрдирд╛рд▓рд╛рдЗрдЬрд╝рд░ рдмрдирд╛рддреЗ рд╕рдордп, рд╣рдо
рдЪреМрд░рд╕рд╛рдИ рдЯрд╛рдЗрдордХрд╛рдВрд╕реНрдЯреИрдВрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд▓рд┐рдП рдорд╛рди рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ - рдорддрджрд╛рди рдЖрд╡реГрддреНрддрд┐ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЛ рдбреЗрдЯрд╛ рдФрд░
fftSize рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА - рдлреВрд░рд┐рдпрд░ рд░реВрдкрд╛рдВрддрд░рдг рдЖрдпрд╛рдо (рдореЛрдЯреЗ рддреМрд░ рдкрд░ рдмреЛрд▓рддреЗ рд╣реБрдП, рдпрд╣ рдкреИрд░рд╛рдореАрдЯрд░ рд╕рд┐рдЧреНрдирд▓ рдХреЗ рдЖрд╡реГрддреНрддрд┐ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╣рдореЗрдВ рдХрд┐рддрдирд╛ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдпрд╣ рд╕рдВрдХреЗрдд рд╣реИ) рдореЗрдВ fftSize / 2 рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдЧрд╛)ред рд╣рдо рд╕реАрдорд╛рдУрдВ рдХреЗ рд╕реНрдкрд╖реНрдЯ рд╕рдВрдХреЗрдд рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП
Uint8Array рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд╣рдорд╛рд░реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЗрд╕рдХреА рд▓рдВрдмрд╛рдИ 256 рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдЧреАред
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, тАж]
рдЕрдм рддрдХ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рд░рдгреА рдореЗрдВ рдПрдХ рд░реЛрд▓рд┐рдВрдЧ рдмреЙрд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдИ рд╕рдВрдХреЗрдд рд╕реНрд░реЛрдд рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдо рдЕрдкрдиреЗ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдПрдХ рдСрдбрд┐рдпреЛ рддрддреНрд╡ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдФрд░ рдЙрд╕реА рд╕рдордп рд╣рдо рдЗрд╕рдХреЗ рд▓рд┐рдП
рдХреИрдирдкреНрд▓реЗ рдЗрд╡реЗрдВрдЯ рдХреА
рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрддреЗ рд╣реИрдВ , рдЬреЛ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдкреНрд▓реЗрдмреИрдХ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖ рд╣реИред рдЗрд╕реЗ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рд╣рдорд╛рд░реЗ рдирд┐рд░реНрдорд╛рддрд╛ рдлрд╛рд░реНрдо рд▓реЗрдВрдЧреЗ:
var Analyze = function () { var AudioContext = w.AudioContext || w.webkitAudioContext;
рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмрдирд╛рдИ рдЧрдИ рдСрдбрд┐рдпреЛ рд╕реНрдЯреНрд░реАрдо AudioContext рдкрд░ рднреЗрдЬрдиреЗ рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЛ рд╕реНрд░реЛрдд рдФрд░ рд░рд┐рд╕реАрд╡рд░ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред рдпрд╣ рдХрд░рдирд╛ рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗрдм рдСрдбрд┐рдпреЛ рдПрдкреАрдЖрдИ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕реНрдорд╛рд░реНрдЯ рд▓реЛрдЧреЛрдВ рдиреЗ рдЗрд╕ рдмрд╛рдд рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрд╛ рдФрд░ рдЙрдирдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдкреНрд░рддреНрдпреЗрдХ рдСрдбрд┐рдпреЛ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдПрдХ
рдХрдиреЗрдХреНрдЯ рд╡рд┐рдзрд┐ рд╣реИ, рдЬреЛ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдореВрд▓реНрдп рд▓реЗрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдХреБрд▓, рдЕрдВрддрд┐рдо рджреГрд╢реНрдп рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЛрдЧрд╛:
var Analyse = function () { var an= this, AudioContext = w.AudioContext || w.webkitAudioContext;
рдпрд╣рд╛рдВ рдпрд╣
AudioContext.destination рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдиреЗ
рдпреЛрдЧреНрдп рд╣реИ - рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рд┐рд╕реНрдЯрдо рд╕рд╛рдЙрдВрдб рдЖрдЙрдЯрдкреБрдЯ (рдЖрдорддреМрд░ рдкрд░ рд╕реНрдкреАрдХрд░) рд╣реИред
GetByteFrequencyData рд╡рд┐рдзрд┐ - рдпрд╣ рд╡рд┐рдзрд┐ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреА рд╣реИ рдФрд░ рдЗрд╕реЗ рдкреНрд░реЗрд╖рд┐рдд рд╕рд░рдгреА рдореЗрдВ рдХреЙрдкреА рдХрд░рддреА рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо рдЕрдВрддрддрдГ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рдорд╣рд╛рди рдЬрд╛рджреВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рджреЗрддреЗ рд╣реИрдВред
рдЖрдЗрдП рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рд╣рдорд╛рд░реЗ createParticles рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╣рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ:
var createParticles = function () { var particle = null, audio = null; for (var i = 0; i < 50; i++) { particle = new Particle(); particles.push(particle); }
рдмрд╕ рдЗрддрдирд╛ рд╣реА, рд╣рдордиреЗ рдЕрдкрдирд╛ рд╕рд╛рдзрд╛рд░рдг рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝рд░ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдФрд░ рд╡реЗрдм рдСрдбрд┐рдпреЛ рдПрдкреАрдЖрдИ рдкрд░ рдкрд░реНрджрд╛ рдЦреЛрд▓ рджрд┐рдпрд╛ред рдпрд╣ рд╕рднреА рдЖрдХрд░реНрд╖рдг рдХреНрд░реЛрдо, рдУрдкреЗрд░рд╛, рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред IE, рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдУрд╡рд░рдмреЛрд░реНрдб рд░рд╣рддрд╛ рд╣реИред
рдереЛрдбрд╝рд╛ рдФрд░ рдЕрдзрд┐рдХ рдкрд░рд┐рд╖реНрдХреГрдд рдбреЗрдореЛ рдЬрд┐рд╕рдореЗрдВ рдЗрд╕ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
рдбреЗрдореЛGithub рдбреЗрдореЛ рдХреЛрдб:
рд╡рд┐рд╢реНрд▓реЗрд╖рдХрдХреЛрдб рдХреЛрдбрдкреЗрди:
рд╡рд┐рд╢реНрд▓реЗрд╖рдХрдмреЗрд╢рдХ, рдпрд╣ рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ рдЬреЛ рдСрдбрд┐рдпреЛ рдПрдкреАрдЖрдИ рд╕рдХреНрд╖рдо рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдХрд╣реАрдВ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдм рдЖрдк рдЗрд╕рдХреЗ рд▓рд┐рдП рдСрдбрд┐рдпреЛ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
- рдЦреЗрд▓ рдХреЗ рд▓рд┐рдП рдЪрд╛рд░реЛрдВ рдУрд░ рдзреНрд╡рдирд┐
- рдзреНрд╡рдирд┐ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ
- рдСрдбрд┐рдпреЛ рд╕рдВрд╢реНрд▓реЗрд╖рдг
рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рдХреЗ рд▓рд┐рдПред
рдЙрдкрдпреЛрдЧреА рдкрдврд╝рдирд╛: