рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдСрдбрд┐рдпреЛ рдПрдкреАрдЖрдИ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рд╕реЗ рдереЛрдбрд╝рд╛ рдкрд░рд┐рдЪрд┐рдд рд╣реБрдП рдФрд░ рд╕рд┐рдЧреНрдирд▓ рдХрд╛ рдПрдХ рд╕рд░рд▓ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝рд░ рд▓рд┐рдЦрд╛ред рдЕрдм рдЧрд╣рд░реА рдЦреБрджрд╛рдИ рдХрд░рдиреЗ рдФрд░ рдирдП рдПрдкреАрдЖрдИ рдЪрд┐рдкреНрд╕ рдХреЛ рдЖрдЬрд╝рдорд╛рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдПрдХ рд▓рдХреНрд╖реНрдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдорд╛рд░рд╛ рд▓рдХреНрд╖реНрдп рдЖрдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрдХреЗрдд рдФрд░ рдЗрд╕рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдордЬрд╛рдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рд╣рдо рдПрдХ рдЫреЛрдЯрд╛
рд╡реЛрдХрдбрд░ рд▓рд┐рдЦреЗрдВрдЧреЗред
рдЪреВрдВрдХрд┐ рдкрд░рд┐рдгрд╛рдореА рдХреЛрдб рдХрд╛рдлреА рдмрдбрд╝рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд▓реЗрдЦ рдСрдбрд┐рдпреЛ рдПрдкреАрдЖрдИ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рдЕрдВрд╢реЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдЧрд╛ред
рдмреЗрд╢рдХ , рдЖрдк
рдбреЗрдореЛ рдкрд░ рдЕрдВрддрд┐рдо рдкрд░рд┐рдгрд╛рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
рд╕реНрд░реЛрдд рдЪрдпрди
рдЗрд╕рд▓рд┐рдП рдСрдбрд┐рдпреЛ рдПрдкреАрдЖрдИ рддреАрди рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд┐рдЧреНрдирд▓ рд╕реНрд░реЛрдд рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ:
- рдСрдбрд┐рдпреЛ рдЯреИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╕реНрд░реЛрдд
- рдСрдбрд┐рдпреЛ рдмрдлрд░
- рдмрд╛рд╣рд░реА рдСрдбрд┐рдпреЛ рд╕реНрдЯреНрд░реАрдо (рд╕реНрдЯреНрд░реАрдо) (рдорд╛рдЗрдХреНрд░реЛрдлрд╝реЛрди рдпрд╛ рдмрд╛рд╣рд░реА рд╕рд╣рд┐рдд рдХреЛрдИ рдЕрдиреНрдп рдСрдбрд┐рдпреЛ рд╕реНрдЯреНрд░реАрдо)
рдбреЗрдореЛ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ , рд╕рднреА рддреАрди рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕реНрд░реЛрдд рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рдЙрдирдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рднреА рд╣реЛрддреА рд╣реИред рд╣рдо рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рд╢рд╛рдпрдж, рдЙрдирдореЗрдВ рд╕реЗ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк, рдЕрд░реНрдерд╛рддреН рдорд╛рдЗрдХреНрд░реЛрдлрд╝реЛрди рд╕реЗ рдмрд╛рд╣рд░реА рдСрдбрд┐рдпреЛ рд╕реНрдЯреНрд░реАрдоред
рдЕрдкрдиреЗ рд╕реНрд░реЛрдд рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдЕрдиреБрдорддрд┐ рд▓реЗрдиреА рд╣реЛрдЧреА рдФрд░ рдСрдбрд┐рдпреЛ рд╕реНрдЯреНрд░реАрдо рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдФрд░ рдЖрдкрдХреЛ рдХреНрдпрд╛ рд▓рдЧрддрд╛ рд╣реИ, рд╣рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЯрди рдХреЗ рдХреЛрдб рдмрдирд╛рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╕ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬрд┐рд╕реЗ
getUserMedia рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЬрд╛рджреБрдИ ff рддреАрди рддрд░реНрдХ рд▓реЗрддрд╛ рд╣реИ:
- рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдпрд╣ рдлреЙрд░реНрдо рдХрд╛ рдПрдХ рдЙрджреНрджреЗрд╢реНрдп рд╣реИ -
{video: true, audio: true}
- рдПрдХ рдореАрдбрд┐рдпрд╛ рдХреИрдкреНрдЪрд░ рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рдПрдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдХреИрдкреНрдЪрд░ рд╕реНрдЯреНрд░реАрдо рд▓реЗрддрд╛ рд╣реИред
- рдХреИрдкреНрдЪрд░рд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рд╣реЛрдиреЗ рд╡рд╛рд▓реА рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХрд╛ рдХрд╛рд░реНрдпред
рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рд╡рд┐рднрд┐рдиреНрди рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛рдУрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рд╣рдорд╛рд░реА рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА:
var d = document, w = window, context = null, dest = null, source = null; var init = function () { try { var audioContext = w.AudioContext || w.webkitAudioContext; navigator.getMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;
рдЧреМрд░ рдХреАрдЬрд┐рдП рдХрд┐ рдпрд╣рд╛рдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╣рдо рдЕрдкрдиреЗ рдкреЗрдЬ рдХреЗ рд▓рд┐рдП рдПрдХ рдСрдбрд┐рдпреЛ-рдХреЙрдиреНрдЯреЗрдХреНрд╕реНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ (рдЗрд╕реЗ
рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ), рдлрд┐рд░ рд╣рдо рдирдпрд╛
рдмрдлрд╝рд░рд▓реЛрдбрд░ рдлрд╝рдВрдХреНрд╢рди рджреЗрдЦрддреЗ рд╣реИрдВред рд╡рд╣ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдПрдХреНрд╕рдПрдЪрдЖрд░ 2 рдХреА рдорджрдж рд╕реЗ рд╡рд╣ рдмрд╛рд╣рд░реА рдСрдбрд┐рдпреЛ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЦреАрдВрдЪрддреА рд╣реИ рдФрд░ рдзреНрдпрд╛рди рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдмрдлрд░ рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд░рддреА рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдореЗрдВ рдПрдХ рдСрдбрд┐рдпреЛ рдкреНрд░рднрд╛рд╡ рдХреЛ рдЦреАрдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдорд╛рдирдХ рдирд╣реАрдВ рд╣реИ рдФрд░ рд╣рдореЗрдВ рдЗрд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред
рдкреНрд░рднрд╛рд╡ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдСрдбрд┐рдпреЛ рд╕реНрдЯреНрд░реАрдо рдХреЛ рдХреИрдкреНрдЪрд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░, рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рд╣рдореЗрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА рд╣реИ, рддреЛ рд╣рдореЗрдВ рдХреИрдкреНрдЪрд░ рдХрд┐рдП рдЧрдП рд╕рд┐рдЧреНрдирд▓ рдХреЛ рд╣рдорд╛рд░реЗ рдСрдбрд┐рдпреЛ рд╕рдВрджрд░реНрдн рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо f-th
createMediaStreamSource рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЕрдм рд╣рдорд╛рд░рд╛ рдЗрдирдкреБрдЯ рд╕рд┐рдЧреНрдирд▓ рд╣рдорд╛рд░реЗ рдкреВрд░реНрдг рдирд┐рдкрдЯрд╛рди рдореЗрдВ рд╣реИ рдФрд░, рдореЗрд░рд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░реЛ, рд╣рдо рдЗрд╕реЗ рдордЬрд╛рдХ рдореЗрдВ рдЙрдбрд╝рд╛рддреЗ рд╣реИрдВред
рд╕рд┐рдЧреНрдирд▓ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдФрд░ рдкрд░рд┐рд╡рд░реНрддрди
рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрдиреЗ рдХрд╛ рд╕рдордп рд╣реИ рдЬреЛ рдирд┐рд░реНрджрдпрддрд╛ рд╕реЗ рдЗрдирдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рдХрд╛ рдордЬрд╛рдХ рдЙрдбрд╝рд╛рдПрдЧрд╛ред рдЙрди рддрд░реАрдХреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдЬрд┐рдирдХрд╛ рд╣рдо рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ:
- createGain - рдпрд╣ рд╡рд┐рдзрд┐ рд╣рдореЗрдВ рдЕрдкрдиреЗ рд╕рд┐рдЧреНрдирд▓ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдПрдХ рд▓рд╛рдн рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ - рд▓рд╛рдн рдорд╛рди
- createConvolver - рдпрд╣ рд╡рд┐рдзрд┐ рд╕рдВрдХреЗрддреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ (рдЬреЛрдбрд╝)ред рд╡рд┐рдзрд┐ рдореЗрдВ рджреЛ рдкреИрд░рд╛рдореАрдЯрд░ рдмрдлрд░ рд╣реИрдВ - рдпрд╣рд╛рдВ рдЖрд╡реЗрдЧ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд▓рд┐рдЦреА рдЧрдИ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЗрдирдкреБрдЯ рд╕рд┐рдЧреНрдирд▓ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдмрд╛рд╣рд░реА рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдКрдкрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╣рдо рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕рдХреЗ рдХрдИ рдкреНрд░рддрд┐рдмрд┐рдВрдмреЛрдВ рдХреЗ рджреМрд░рд╛рди рдзреНрд╡рдирд┐ рдХреА рддреАрд╡реНрд░рддрд╛ рдореЗрдВ рдХреНрд░рдорд┐рдХ рдХрдореА рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВрдЧреЗред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдПрдХ рддреБрдЪреНрдЫ рдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛ рдХрд┐ рд╣рдо рдЧрдгрдирд╛ рди рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рд╣рдо рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдЖрд╡реЗрдЧ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдзреЛрдЦрд╛ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╣реИрдВред рджреВрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░, рд╕рд╛рдорд╛рдиреНрдп рдХрд░рддрд╛ рд╣реИ, рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрд╡реЗрдЧ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред
- createDynamicsCompressor - рдПрдХ рдСрдбрд┐рдпреЛ рд╕рд┐рдЧреНрдирд▓ рдХреЗ рд╕рдВрдкреАрдбрд╝рди рдкреНрд░рднрд╛рд╡ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рд╕рдВрдкреАрдбрд╝рди рдЖрдкрдХреЛ рд╕рдмрд╕реЗ рд╢рд╛рдВрдд рдФрд░ рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рдЖрд╡рд╛рдЬрд╝ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╡рд┐рдзрд┐ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВ: рдереНрд░реЗрд╢реЛрд▓реНрдб (рдереНрд░реЗрд╢реЛрд▓реНрдб рд╕реНрддрд░, рд╡рд╣ рдорд╛рди рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдКрдкрд░ рдХрдВрдкреНрд░реЗрд╕рд░ рд╕рд┐рдЧреНрдирд▓ рдХреЛ рдЕрдЯреНрд░реИрдХреНрдЯ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ), рдЕрдиреБрдкрд╛рдд (рд╕рд┐рдЧреНрдирд▓ рдПрдЯреЗрдиреНрдпреВрдПрд╢рди рдХреА рддреАрд╡реНрд░рддрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ), рд╣рдорд▓рд╛ (рдпрд╣ рд╡рд╣ рд╕рдордп рд╣реИ рдЬреЛ рдереНрд░реЗрд╢реЛрд▓реНрдб рдорд╛рди рдХреЛ рдкрд╛рд░ рдХрд░рдиреЗ рдФрд░ рдХрдВрдкреНрд░реЗрд╕рд░ рдХреЗ рдЯреНрд░рд┐рдЧрд░ рд╣реЛрдиреЗ рдХреЗ рдмреАрдЪ рдХрд╛ рд╕рдордп рдмреАрдд рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдмрд╛рд╕ рдбреНрд░рдо рдХрд╛рдлрд╝реА рддреЗрдЬ), рд░рд┐рд▓реАрдЬ (рд╕рдордп рд╣реИ рдХрд┐ рджреЛрдиреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рдХреИрд╕реЗ рдЗрдирдкреБрдЯ рд╕рдВрдХреЗрдд рд╕реНрддрд░ рд╕реАрдорд╛ рдФрд░ рдкрд▓ рдЬрдм рдХрдВрдкреНрд░реЗрд╕рд░ рд░рд╣рддрд╛ рдиреАрдЪреЗ рдЧрд┐рд░ рдЧрдпрд╛ рдХреА рдЖрд╡рд╛рдЬ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдкреНрд░рднрд╛рд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рд╕рдВрдХреЗрдд attenuateред
рд╣рдо рдЗрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рдФрд░ рд╣рдорд╛рд░реЗ рдПрдл-рд╡реЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рд╡рд┐рддрд░рд┐рдд рдХрд░реЗрдВрдЧреЗ:
var AudioModulation = function (buffers, source) { var am = this;
рд╕рднреА рдорд╛рдиреЛрдВ, рдЬреИрд╕реЗ рд╡реЙрд▓реНрдпреВрдо рдпрд╛ рдореВрд▓реНрдп рдЬрд┐рд╕ рдкрд░ рд╕рдВрдкреАрдбрд╝рди рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдореИрдк рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдбреЗрдореЛ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд┐рдЧреНрдирд▓ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдо рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдПрдХ рдЧреВрдВрдЬ рдкреНрд░рднрд╛рд╡ рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рдкреНрд░рд╡рд░реНрдзрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ (рдЬреИрд╕реЗ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рд╕рд┐рд░ рдкрд░ рдмрд╛рд▓реНрдЯреА рдХреЗ рд╕рд╛рде рдпрд╛ рд╣реЗрд▓рдореЗрдЯ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рдереЗ)ред рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдПрдХ рдореМрд▓рд┐рдХ рдирдИ рдзреНрд╡рдирд┐ рдЕрднреА рддрдХ рдирд╣реАрдВ рдорд┐рд▓реЗрдЧреА, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╣рдо рдЖрдЧреЗ рдмрдврд╝ рд░рд╣реЗ рд╣реИрдВред рдЕрдЧрд▓рд╛ рдХрджрдо рд░рд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓реЗрд╢рди рдкреНрд░рднрд╛рд╡ рдХреЛ рдорд╣рд╕реВрд╕ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рд╣реИред
рд░рд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓реЗрд╢рди
рд░рд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓реЗрд╢рди рдПрдХ рдСрдбрд┐рдпреЛ рдкреНрд░рднрд╛рд╡ рд╣реИ рдЬреЛ "рдЭрдмрд░рд╛" рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рдмрд╣реБрдд рд▓реЛрдХрдкреНрд░рд┐рдп рдерд╛ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рд░рд╛рдХреНрд╖рд╕реЛрдВ рдФрд░ рд░реЛрдмреЛрдЯреЛрдВ рдХреА рдЖрд╡рд╛рдЬрд╝ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕ рдЖрд╢рдп рдХрд╛ рд╕рд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рд╕рдВрдХреЗрдд рд╣реИрдВ, рдПрдХ рдХреЛ рд╡рд╛рд╣рдХ (рдХреИрд░рд┐рдпрд░) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдордирдорд╛рдиреА рдЖрд╡реГрддреНрддрд┐ рдХрд╛ рдПрдХ рд╕рдВрд╢реНрд▓реЗрд╖рд┐рдд рд╕рдВрдХреЗрдд рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ рдПрдХ рд╕рдВрд╢реЛрдзрд┐рдд рд╕рдВрдХреЗрдд рд╣реИ, рдФрд░ рдпреЗ рд╕рдВрдХреЗрдд рдХрдИ рдЧреБрдирд╛ рд╣реИрдВред рдирддреАрдЬрддрди, рд╣рдореЗрдВ рд╡рд┐рдХреГрддрд┐рдпреЛрдВ рдФрд░ рдзрд╛рддреБ рдиреЛрдЯреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рд╕рдВрдХреЗрдд рдорд┐рд▓рддрд╛ рд╣реИред рдЗрд╕ рдЪрдорддреНрдХрд╛рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд░реАрдХреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
- createOscillator - рдпрд╣ рд╡рд┐рдзрд┐ рдЖрдкрдХреЛ рдордирдорд╛рдиреА рдЖрд╡реГрддреНрддрд┐ рдФрд░ рдЖрдХрд╛рд░ рдХреЗ рд╕рдВрдХреЗрдд рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдЗрд╕рдХреЗ рддреАрди рдорд╛рдкрджрдВрдб рд╣реИрдВ: рдЯрд╛рдЗрдк (рд╡реЗрд╡рдлреЙрд░реНрдо: 1 - рд╕рд╛рдЗрдирд╕реЙрдЗрдб, 2 - рдЖрдпрддрд╛рдХрд╛рд░, 3 - рджреЗрдЦрд╛, 4 - рддреНрд░рд┐рдХреЛрдгреАрдп), рдлреНрд░реАрдХреНрд╡реЗрдВрд╕реА (рд╕рд┐рдЧреНрдирд▓ рдлреНрд░реАрдХреНрд╡реЗрдВрд╕реА), рдбреЗрдЯреНрдпреВрди (рдбрд┐рдЯреЗрдХреНрдЯрд┐рдВрдЧ - рдлреНрд░реАрдХреНрд╡реЗрдВрд╕реА рдбрд┐рд╡рд┐рдПрд╢рдиред рдкреНрд░рддреНрдпреЗрдХ рдСрдХреНрдЯреЗрд╡ рдореЗрдВ 1200 рд╕реЗрдВрдЯреНрд╕ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ) рдПрдХ рд╣рдлрд╝реНрдлрд╝рдЯреЛрди 100 рд╕реЗрдВрдЯ рд╣реИред 1200 рдХреА рдПрдХ рдЯреБрдХрдбрд╝реА рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ, рдЖрдк рдПрдХ рдСрдХреНрдЯреЗрд╡ рдХреЛ рдКрдкрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ -1200 рдПрдХ рдСрдХреНрдЯреЗрд╡ рдХреЗ рдПрдХ рдЪрдХреНрдХрд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗред)
- createBiquadFilter - рд╡рд┐рдзрд┐ рдЖрдкрдХреЛ рдЖрд╡реГрддреНрддрд┐ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рд╡рд┐рдзрд┐ рдХреЗ рдЪрд╛рд░ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВ: рдлрд╝реНрд░реАрдХреНрд╡реЗрдВрд╕реА (рдлрд╝реНрд░реАрдХреНрд╡реЗрдВрд╕реА рдЬрд┐рд╕ рдкрд░ рдлрд╝рд┐рд▓реНрдЯрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ), рдЧреЗрди (рдлрд╝реНрд░реАрдХреНрд╡реЗрдВрд╕реА рдЧреЗрди), рдХреНрдпреВ ( рдХреНрдпреВ ),
рдкреНрд░рдХрд╛рд░ - рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдкреНрд░рдХрд╛рд░ рдЬреЛ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рд╕рдорд░реНрдерд┐рдд рд╣реИрдВ:
- рд▓реЛрдкрд╛рд╕ - рдХрдо-рдкрд╛рд╕ рдлрд╝рд┐рд▓реНрдЯрд░ (рдЪрдпрдирд┐рдд рдЖрд╡реГрддреНрддрд┐ рдХреЗ рдКрдкрд░ рд╕рдм рдХреБрдЫ рдХрд╛рдЯ рджреЗрддрд╛ рд╣реИ)
- рд╣рд╛рдИрдкрд╛рд╕ - рдЙрдЪреНрдЪ-рдкрд╛рд╕ рдлрд╝рд┐рд▓реНрдЯрд░ (рдЪрдпрдирд┐рдд рдЖрд╡реГрддреНрддрд┐ рдХреЗ рдиреАрдЪреЗ рдХреБрдЫ рднреА рдХрд╛рдЯ рджреЗрддрд╛ рд╣реИ)
- рдмреИрдВрдбрдкрд╛рд╕ - рдмреИрдВрдбрдкрд╛рд╕ рдлрд╝рд┐рд▓реНрдЯрд░ (рдХреЗрд╡рд▓ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЖрд╡реГрддреНрддрд┐ рдмреИрдВрдб рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ)
- рд▓реЛрд╢реЗрд▓реНрдлрд╝ - рдХрдо рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ рдкрд░ рд╢реЗрд▓реНрдл (рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЪрдпрдирд┐рдд рдЖрд╡реГрддреНрддрд┐ рдХреЗ рдиреАрдЪреЗ рд╕рдм рдХреБрдЫ рдкреНрд░рд╡рд░реНрдзрд┐рдд рдпрд╛ рдХрдордЬреЛрд░ рд╣реИ),
- рд╣рд╛рдИрд╢реЗрд▓реНрдл - рдЙрдЪреНрдЪ рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ рдкрд░ рдПрдХ рд╢реЗрд▓реНрдл (рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЪрдпрдирд┐рдд рдЖрд╡реГрддреНрддрд┐ рдХреЗ рдКрдкрд░ рд╕рдм рдХреБрдЫ рдкреНрд░рд╡рд░реНрдзрд┐рдд рдпрд╛ рдХрдордЬреЛрд░ рд╣реИ),
- рдкреАрдХрд┐рдВрдЧ - рдПрдХ рд╕рдВрдХреАрд░реНрдг-рдмреИрдВрдб рдкреАрдХ рдлрд┐рд▓реНрдЯрд░ (рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЖрд╡реГрддреНрддрд┐ рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИ, рд▓реЛрдХрдкреНрд░рд┐рдп рдирд╛рдо "рдлрд┐рд▓реНрдЯрд░ рдмреЗрд▓" рд╣реИ),
- рдкрд╛рдпрджрд╛рди - рд╕рдВрдХреАрд░реНрдг-рдмреИрдВрдб рдкрд╛рдпрджрд╛рди рдлрд┐рд▓реНрдЯрд░ (рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЖрд╡реГрддреНрддрд┐ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рд▓реЛрдХрдкреНрд░рд┐рдп рдирд╛рдо "рдлрд┐рд▓реНрдЯрд░ рдкреНрд▓рдЧ" рд╣реИ),
- allpass - рдПрдХ рдлрд╝рд┐рд▓реНрдЯрд░ рдЬреЛ рд╕рд┐рдЧреНрдирд▓ рдХреЗ рд╕рднреА рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЛ рд╕рдорд╛рди рд▓рд╛рдн рдХреЗ рд╕рд╛рде рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд┐рдЧреНрдирд▓ рдХреЗ рдЪрд░рдг рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рдпрд╣ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЖрд╡реГрддреНрддрд┐ рдореЗрдВ рджреЗрд░реА рд╣реЛрддреА рд╣реИред рдЖрдорддреМрд░ рдкрд░, рдЗрд╕ рддрд░рд╣ рдХреЗ рдлрд┐рд▓реНрдЯрд░ рдХреЛ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдЬрд┐рд╕ рдЖрд╡реГрддреНрддрд┐ рдкрд░ рдЪрд░рдг рд╢рд┐рдлреНрдЯ 90 ┬░ рддрдХ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИред
рдЦреИрд░, рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╣рдорд╛рд░реА рдпреЛрдЬрдирд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, AudioImodulation рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЗрд╕рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:
рдлрд╝рдВрдХреНрд╢рди рдХреЛрдб var AudioModulation = function (buffers, source) { var am = this;
рдЦреИрд░, рдпрд╣ рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдорд╛рдорд▓рд╛ рд╣реИ, рдЗрд╕ рд╕рдм рдХреЗ рдмрд╛рдж рд╣рдореЗрдВ рдПрдХ рдмрд▓реНрдХрд┐ "рд░реЛрдмреЛрдЯрд┐рдХ рд╕рд┐рдЧреНрдирд▓" рдорд┐рд▓реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ, рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рд╣рдо рд╡рд┐рднрд┐рдиреНрди рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рдореИрдиреБрдЕрд▓ рдЯреНрдпреВрдирд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╕рднреА рднрд╡реНрдпрддрд╛ рдореЗрдВ рдПрдХ рддреБрд▓реНрдпрдХрд╛рд░рдХ рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗ, рдФрд░ рд╣рдореЗрдВ рдПрд╣рд╕рд╛рд╕ рд╣реЛрдЧрд╛ рдпрд╣ рдкрд░рд┐рдЪрд┐рдд f- рдФрд░
createBiquadFilter рдХреА рд╕рд╣рд╛рдпрддрд╛ рд╕реЗ рдЯрд╛рдЗрдк рд╣рд╛рдИрд╢реЗрд▓рдл рдХреЗ рд╕рд╛рде рд╣реЛрдЧрд╛ред
рдмрд╛рд░-рдмрд╛рд░ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рдмрдирд╛рдПрдВ рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рд╣рдо рдлрд╝рд┐рд▓реНрдЯрд░ рдмрдирд╛рдПрдВрдЧреЗ:
var filters = [{gain: 1,frequency: 40},{gain: 3,frequency: 120},....,{gain: -2,frequency: 16000}];
рдЗрд╕рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ рд▓рд╛рдн рд╕реНрддрд░ рдФрд░ рдЖрд╡реГрддреНрддрд┐ рд╣реИрдВред рдЕрдм рдлрд╝рд┐рд▓реНрдЯрд░ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓:
AudioModulation.prototype.setFilters = function (source) { var fil = [{ gain: 1, frequency: 40 }, { gain: 3, frequency: 120 }, { gain: -2, frequency: 16000}], out = null, ln = fil.length; for (var i = 0; i < ln; i++) { var loc = fil[i], currFilter = null; currFilter = context.createBiquadFilter(); currFilter.type = currFilter.HIGHSHELF; currFilter.gain.value = loc.gain; currFilter.Q.value = 1; currFilter.frequency.value = loc.frequency; if (!out) { source.connect(currFilter); out = currFilter; } else { out.connect(currFilter); out = currFilter; } } return out; };
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд░реВрдкрд╛рдВрддрд░рдг рд░реВрдк рд▓реЗрддрд╛ рд╣реИ:
рдлрд╝рдВрдХреНрд╢рди рдХреЛрдб var AudioModulation = function (buffers, source) { var am = this;
рдЦреИрд░ рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреВрд░реНрдг-рд╕рдорддреБрд▓реНрдп рддреБрд▓реНрдпрдХрд╛рд░рдХ рд╣реИ рдФрд░ рд╣рдо рд╕рд┐рдЧреНрдирд▓ рдореЗрдВ рдХрд┐рд╕реА рднреА рдЖрд╡реГрддреНрддрд┐ рдХреЛ рдмрдврд╝рд╛ рдпрд╛ рдХрдордЬреЛрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдЕрдЧрд░ рд╣рдо "рд▓рд╛рд▓рдХреА" рдереЗ, рддреЛ рд╣рдо рдЬреЛ рд╣рд╛рд╕рд┐рд▓ рдХрд┐рдпрд╛ рд╣реИ рдЙрд╕ рдкрд░ рд░реЛрдХ рджреЗрдВрдЧреЗ рдФрд░ рд╢рд╛рдВрдд рд╡рд┐рд╡реЗрдХ рдХреЗ рд╕рд╛рде рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рддреЗ рд╣реБрдП рдорд╛рдЗрдХреНрд░реЛрдлреЛрди рдХреЛ рдкреАрдбрд╝рд╛ рджреЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рд╣рдо рдЕрдзрд┐рдХ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдФрд░ рдпрд╣рд╛рдВ рд╣рдо рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдмреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреЗрдХ рдореЗрдВ рдПрдХ рдЪреЗрд░реА рдЬреЛрдбрд╝реЗрдВ - рд╣рдо
рдкрд┐рдЪ рд╢рд┐рдлреНрдЯрд░ рдирд╛рдордХ рдПрдХ рдкреНрд░рднрд╛рд╡ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗред
рдореБрдЦреНрдп рдкрд░рд┐рд╡рд░реНрддрди
рдкреНрд░рднрд╛рд╡ рдХрд╛ рд╕рд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рд╕рд┐рдЧреНрдирд▓ рдореЗрдВ рдПрдХ рд╕рд┐рдЧреНрдирд▓ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рджреЛ рдЯрди рдКрдкрд░ рдпрд╛ рдиреАрдЪреЗ рдХрд┐рд╕реА рднреА рдЕрдВрддрд░рд╛рд▓ рд╕реЗ рдореБрдЦреНрдп рд╕реНрд╡рд░ рдХреЛ рдкреАрдЫреЗ рдЫреЛрдбрд╝рддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рдлреИрд╢рдиреЗрдмрд▓ рдкреНрд░рднрд╛рд╡ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЛрд▓реЗрдВрдЧреЗред
рдЗрд╕ рдкреНрд░рднрд╛рд╡ рдкрд░ рдХрд╛рдо рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬреЛ рд╣рдореЗрдВ рд╕рд┐рдЧреНрдирд▓ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛, рдЬрд┐рд╕реЗ рд╣рдо рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо
рдЕрд╕рддрдд рдлреВрд░рд┐рдпрд░ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо (рдпрд╛, рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХреЗ рд╡рд░реНрдЬрди
рд╡рд┐рдВрдбреЛ рдлреВрд░рд┐рдпрд░ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ ) рдФрд░ рдкрд┐рдЫрд▓реЗ рдЖрд░реНрдЯрд┐рдХрд▓ рд╕реЗ рд╣рдореЗрдВ
рдЬреНрдЮрд╛рдд рд╡рд┐рдзрд┐ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ ,
Scriptрд╕реНрдХреНрд░рд┐рдкреНрдЯрдкреНрд░реЛрд╕реЗрд╕рд░ ред рдпрд╣ рддреАрди рдкреИрд░рд╛рдореАрдЯрд░ рд▓реЗрддрд╛ рд╣реИ:
рдмрдлрд░ (рдлрд╝реНрд░реЗрдо рдпрд╛ рдбреЗрдЯрд╛ рд╡рд┐рдВрдбреЛ рдХрд╛ рдЖрдХрд╛рд░ рдЬреЛ рд╕рд┐рдЧреНрдирд▓ рдкреНрд░рддрд┐ рдпреВрдирд┐рдЯ рд╕рдордп рд╕реЗ рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИ),
рдирдВрдмрд░рдСрдлрдЗрдирдкреБрдЯ рдЪреИрдирд▓ (рдЗрдирдкреБрдЯ рдЪреИрдирд▓реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛),
рдирдВрдмрд░рдСрдлреБрдЯрдкреБрдЯрдЪреИрдирд▓реНрд╕ (рдЖрдЙрдЯрдкреБрдЯ рдЪреИрдирд▓реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛)ред рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдЙрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╣реЛрдЧрд╛ рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдкреНрд░рд╛рдкреНрдд рд╡рд╕реНрддреБ рдХреА рдЕрдкрдиреА рдПрдХ
onaudioprocess рдШрдЯрдирд╛ рд╣реЛрддреА рд╣реИ, рдЬреЛ рд╣рд░ рдмрд╛рд░ рд╕рд┐рдЧреНрдирд▓ рд╕реЗ рдПрдХ рдирдпрд╛ рдбреЗрдЯрд╛ рдирдореВрдирд╛ рд▓реЗрдиреЗ рдкрд░ рдЪрд▓рддреА рд╣реИред рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рд╣рдорд╛рд░реЗ рд╕рд┐рдЧреНрдирд▓ рдХрд╛ рд░реВрдкрд╛рдВрддрд░рдг рдЗрд╕ рддрд░рд╣ рд╣реЛрдЧрд╛:
var currentGrainSize = 512 var currentOverLap = 0.50; var currentShiftRatio = 0.77; var node = context.createScriptProcessor(currentGrainSize, 1, 1);
рдЕрдм, рдЪрд░рдг рдФрд░ рдУрд╡рд░рд▓реИрдк рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рдЙрдЪреНрдЪрд╛рд░рдг рдХреЛ рддреЗрдЬ рдпрд╛ рдзреАрдорд╛ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рднрд╛рд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ
hannWindow f-
th (
рд╣реИрди рд╡рд┐рдВрдбреЛ рдЧрдгрдирд╛
fth ) рдФрд░
рд▓реАрдирд┐рдпрд░рдЗрдВрдЯрд░рдкреЛрд▓реЗрд╢рди (рд▓реАрдирд┐рдпрд░ рдЗрдВрдЯрд░рдкреЛрд▓реЗрд╢рди f-th) рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рд╣рдорд╛рд░реЗ рдПрдл-рдПрдВрдб рд░реВрдкрд╛рдВрддрд░рдг рдХрд╛ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реЛрдЧрд╛:
рдлрд╝рдВрдХреНрд╢рди рдХреЛрдб var AudioModulation = function (buffers, source) { var am = this, currentGrainSize = 512, currentOverLap = 0.50, currentShiftRatio = 0.77, node = context.createScriptProcessor(currentGrainSize, 1, 1);
рдЦреИрд░ рдЕрдм, рдПрдХ рд╕реНрдкрд╖реНрдЯ рд╡рд┐рд╡реЗрдХ рдХреЗ рд╕рд╛рде, рд╣рдо рдХрд┐рдП рдЧрдП рдХрд╛рдо рдХрд╛ рдЖрдирдВрдж рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред рдмреЗрд╢рдХ, рдЖрдк рд╡рд╣рд╛рдВ рдирд╣реАрдВ рд░реБрдХ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕реНрдкреЗрдХреНрдЯреНрд░рдо рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝рд░,
рдлреЗрдЬрд░ рдЬреИрд╕реЗ рдХреБрдЫ рдлреИрд╢рдиреЗрдмрд▓ рдкреНрд░рднрд╛рд╡ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрдкрдХреЗ рдКрдкрд░ рд╣реИред рдЕрдм, рдСрдбрд┐рдпреЛ рдПрдкреАрдЖрдИ рд╕реЗ рдЕрдзрд┐рдХ рдЧрд╣рд░рд╛ рдЦреЛрджрдиреЗ рдкрд░, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЕрдм рдЙрдкрд▓рдмреНрдз рддрдВрддреНрд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдСрдбрд┐рдпреЛ рд╕рдВрдХреЗрддреЛрдВ рдХреЗ рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рдкреНрд░рднрд╛рд╡ рдФрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдЖрдк рдХреЗрд╡рд▓ рдЕрдкрдиреА рдХрд▓реНрдкрдирд╛ рд╕реЗ рд╕реАрдорд┐рдд рд╣реИрдВред
рдЖрдк рдПрдХ рдирд┐рдпрдВрддреНрд░рдг рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рд╡рд┐рднрд┐рдиреНрди рд╕рд┐рдЧреНрдирд▓ рд╕реНрд░реЛрддреЛрдВ рдХреЗ рд╕рд╛рде рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:
рдЙрдкрдпреЛрдЧреА рд╕рд╛рд╣рд┐рддреНрдп рдФрд░ рд╕реНрд░реЛрдд:
рдХреНрд░реЛрдо рдФрд░ рдУрдкреЗрд░рд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ PS рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддрд╛рдХрд┐ рдЙрдирдореЗрдВ рд╕рдм рдХреБрдЫ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░реЗред рдмрд╛рдХреА рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ, рд╡рд┐рднрд┐рдиреНрди рддреНрд░реБрдЯрд┐рдпрд╛рдВ рджрд┐рдЦрд╛рдИ рджреЗ рд╕рдХрддреА рд╣реИрдВ (рдЬреЛ рдореИрдВ рд╕рдордп рдкрд░ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛)ред рдЖрдк IE рдХреЛ рднреА рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред