@OkazariBzh
@berthel350
Benjamin Plouzennec
@OkazariBzh
github.com/okazari
Florent Berthelot
@berthel350
github.com/FBerthelot
Web
Audio
Web Multimedia
AudioContext
Sources
Effets
Destination
AudioNode
Sources
Destinations
Effets
AudioContext
MediaElementSource
Destination
AudioContext
MediaElementSource
Destination
AudioContext
MediaElementSource
Destination
GainNode
const gain = AudioContext.createGain()
gain.value
AudioContext
MediaElementSource
Destination
GainNode
AudioContext
MediaElementSource
Destination
GainNode
AnalyzerNode
AnalyzerNode
const analyzer = AudioContext.createAnalyser()
analyzer.fftSize
analyzer.frequencyBinCount
analyzer.getByteTimeDomainData()
analyzer.getByteFrequencyData()
"La distorsion désigne, dans un appareil ou un canal de transmission, l'ensemble des modifications indésirables d'un signal qui ne soient ni un gain, ni une atténuation, ni un retard."
Wikipedia
Captain obvious à la rescousse
"En musique la disorsion désigne une modification du son qui ne porte pas déjà un nom..."
Benjamin Plouzennec
AudioContext
MediaElementSource
Destination
GainNode
AnalyzerNode
AnalyzerNode
AudioContext
MediaElementSource
Destination
GainNode
AnalyzerNode
AnalyzerNode
WaveShaper Node
const waveShaper = audioContext.createWaveShaper()
const customDistorsion = function(){}
waveShaper.curve
AudioContext
MediaElementSource
Destination
GainNode
AnalyzerNode
AnalyzerNode
WaveShaper Node
AudioContext
MediaElementSource
Destination
GainNode
AnalyzerNode
WaveShaper Node
BiquadFilter Node
BiquadFilter Node
AnalyzerNode
n fois
const filter = audioContext.createBiquadFilter()
filter.frequency.value
filter.type // peaking, lowshelf, highshelf...
filter.Q.value
filter.gain.value
AudioContext
MediaElementSource
WaveShaper Node
BiquadFilter Node
AnalyzerNode
Destination
GainNode
x N
x 2
AudioContext
MediaElementSource
GainNode (Convolver)
DynamicCompressor Node
WaveShaper Node
Convolver
BiquadFilter Node
AnalyzerNode
Destination
GainNode
x N
x 2
https://developer.mozilla.org/fr/docs/Web/API/Web_Audio_API
- Gestion stéréo
- Spatialization
- Audio worker
- Traitements
Garbage collector
Thread spécifique
AudioParam.setValueAtTime(valeur, AudioContext.currentTime)
AudioParam.linearRampToValueAtTime(valeur, AudioContext.currentTime + 1)
AudioParam.exponentialRampToValueAtTime(valeur, AudioContext.currentTime + 5)
/* ... */
AudioParam.cancelScheduledValues()
Speetch to Text
Text to speetch
Vibration
WEB VR
Merci !
Michel Buffa : https://hal.inria.fr/hal-01400910/document
Florent Berthelot
@berthel350
github.com/FBerthelot
Benjamin Plouzennec
@OkazariBzh
github.com/okazari