SlideShare une entreprise Scribd logo
1  sur  13
Télécharger pour lire hors ligne
Wuberizer
Stan Bershadskiy
Tyler Knappe
Alex Lazar
https://github.com/ModusCreateOrg/web-audio-api
Inspiration
Tenori-On
● Electronic Musical Instrument created in
2005
● Goal is to blend light and sound
● Uses a 16 x 16 grid of LEDs as controls
● Generates sound based on cell position
Features
Web Audio Sound Creator
● 16 x 16 sound synthesizer and pseudo-
sequencer
● Manipulate the frequency divisor, oscillator
waveform, filters and global tempo
● Record output into a WAV file
● It also has a Reset button in case you want
to delete the whole song and to start over
Implementation
Technology used:
● Sencha Touch 2.2
● SASS
● Canvas
● EaselJS
● HTML5 Web Audio API
● Recorder.js
Web Audio API
● High level JavaScript API for processing and
synthesizing audio
● Audio Routing Graph Paradigm
○ Two end points that you can connect an arbitrary
number of nodes.
● Some Useful Nodes:
○ GainNode - Controls Volume
○ DelayNode - Implements a delay on the source
○ BiquadFilterNode - Implement a filter on source
○ OscillatorNode - Audio source generating a periodic
waveform
○ AnalyserNode - use with Music Visualizers
Routing Graph Used
Destination
Compressor
Master GainOscillator BiquadFilter Oscillator Gain
Canvas
● HTML Element that allows for a "resolution-
dependent bitmap canvas which can be
used for rendering graphs, game graphics,
or other visual images on the fly."
● Controlled entirely via JavaScript
● Provides several methods for drawing paths,
boxes, circles, characters, images, and
more.
● Leverage EaselJS for abstraction of the
canvas and treat it as a stage
Sencha Touch 2.2
● Leverage MVC paradigm (minus Models)
○ Audio Controller - handles all audio interactions
○ Main Controller - global app controller
● CanvasGrid Component
● Leverage Pictos Icon Font
What's Next?
● Implement saving state of grid locally and
sharing it
● Implement multiple active grid layers
● Clean up the popping when turning on and
off oscillators at lower frequencies
● Add in some other sounds, like drums
● Make it work on the iPad :-)
DEMO
https://dl.dropboxusercontent.
com/u/74436/wuberizer/index.html
Browser Support?
● Currently only supported by Chrome 26+
● Some support for Safari, but not yet fully
implemented
● EaselJS
○ http://www.createjs.com/#!/EaselJS
● Recorder.js
○ https://github.com/mattdiamond/Recorderjs
References

Contenu connexe

En vedette

Key features of budget 2011 2012
Key features of budget 2011 2012Key features of budget 2011 2012
Key features of budget 2011 2012Prakash Somani
 
Javascript Performance Tricks
Javascript Performance TricksJavascript Performance Tricks
Javascript Performance TricksPatrick Sheridan
 
2012 Mitsubishi Eclipse at Jerry's Mitsubishi in Baltimore, Maryland
2012 Mitsubishi Eclipse at Jerry's Mitsubishi in Baltimore, Maryland2012 Mitsubishi Eclipse at Jerry's Mitsubishi in Baltimore, Maryland
2012 Mitsubishi Eclipse at Jerry's Mitsubishi in Baltimore, MarylandJerry's Mitsubishi
 
Eenpondverenbloeifactorharrietkollen keywork-1
Eenpondverenbloeifactorharrietkollen keywork-1Eenpondverenbloeifactorharrietkollen keywork-1
Eenpondverenbloeifactorharrietkollen keywork-1Harriet Kollen
 
Managing Process Improvement
Managing Process ImprovementManaging Process Improvement
Managing Process ImprovementBill Fox
 
2011 Mitsubishi Eclipse at Jerry's Mitsubishi in Baltimore Maryland
2011 Mitsubishi Eclipse at Jerry's Mitsubishi in Baltimore Maryland2011 Mitsubishi Eclipse at Jerry's Mitsubishi in Baltimore Maryland
2011 Mitsubishi Eclipse at Jerry's Mitsubishi in Baltimore MarylandJerry's Mitsubishi
 
2°S GEOGRAFIA-IVB-p2-ASIGANCION
2°S GEOGRAFIA-IVB-p2-ASIGANCION2°S GEOGRAFIA-IVB-p2-ASIGANCION
2°S GEOGRAFIA-IVB-p2-ASIGANCIONCSG
 

En vedette (18)

Risiko
RisikoRisiko
Risiko
 
Key features of budget 2011 2012
Key features of budget 2011 2012Key features of budget 2011 2012
Key features of budget 2011 2012
 
Javascript Performance Tricks
Javascript Performance TricksJavascript Performance Tricks
Javascript Performance Tricks
 
Irrp pankratova
Irrp pankratovaIrrp pankratova
Irrp pankratova
 
Inforln.com ERP LN 10.3 & 10.4 Configurable Contract Deliverables Enhancements
Inforln.com ERP LN 10.3 & 10.4 Configurable Contract Deliverables EnhancementsInforln.com ERP LN 10.3 & 10.4 Configurable Contract Deliverables Enhancements
Inforln.com ERP LN 10.3 & 10.4 Configurable Contract Deliverables Enhancements
 
Intro to sencha touch 2
Intro to sencha touch 2Intro to sencha touch 2
Intro to sencha touch 2
 
2012 Mitsubishi Eclipse at Jerry's Mitsubishi in Baltimore, Maryland
2012 Mitsubishi Eclipse at Jerry's Mitsubishi in Baltimore, Maryland2012 Mitsubishi Eclipse at Jerry's Mitsubishi in Baltimore, Maryland
2012 Mitsubishi Eclipse at Jerry's Mitsubishi in Baltimore, Maryland
 
Eenpondverenbloeifactorharrietkollen keywork-1
Eenpondverenbloeifactorharrietkollen keywork-1Eenpondverenbloeifactorharrietkollen keywork-1
Eenpondverenbloeifactorharrietkollen keywork-1
 
Portfolio
PortfolioPortfolio
Portfolio
 
Sencha Touch in Action
Sencha Touch in Action Sencha Touch in Action
Sencha Touch in Action
 
Managing Process Improvement
Managing Process ImprovementManaging Process Improvement
Managing Process Improvement
 
ITALIANI
ITALIANIITALIANI
ITALIANI
 
2011 Mitsubishi Eclipse at Jerry's Mitsubishi in Baltimore Maryland
2011 Mitsubishi Eclipse at Jerry's Mitsubishi in Baltimore Maryland2011 Mitsubishi Eclipse at Jerry's Mitsubishi in Baltimore Maryland
2011 Mitsubishi Eclipse at Jerry's Mitsubishi in Baltimore Maryland
 
Maltrato infantil
Maltrato infantilMaltrato infantil
Maltrato infantil
 
Presentazione 1
Presentazione 1Presentazione 1
Presentazione 1
 
Monopolis
MonopolisMonopolis
Monopolis
 
Tomas Bella
Tomas BellaTomas Bella
Tomas Bella
 
2°S GEOGRAFIA-IVB-p2-ASIGANCION
2°S GEOGRAFIA-IVB-p2-ASIGANCION2°S GEOGRAFIA-IVB-p2-ASIGANCION
2°S GEOGRAFIA-IVB-p2-ASIGANCION
 

Similaire à Web audio app preso

LibGDX: Cross Platform Game Development
LibGDX: Cross Platform Game DevelopmentLibGDX: Cross Platform Game Development
LibGDX: Cross Platform Game DevelopmentIntel® Software
 
Smedberg niklas bringing_aaa_graphics
Smedberg niklas bringing_aaa_graphicsSmedberg niklas bringing_aaa_graphics
Smedberg niklas bringing_aaa_graphicschangehee lee
 
Html5 Game Development with Canvas
Html5 Game Development with CanvasHtml5 Game Development with Canvas
Html5 Game Development with CanvasPham Huy Tung
 
ECS: Graph Driven Audio in an ECS World
ECS: Graph Driven Audio in an ECS WorldECS: Graph Driven Audio in an ECS World
ECS: Graph Driven Audio in an ECS WorldUnity Technologies
 
Modern Improvisation World
Modern Improvisation WorldModern Improvisation World
Modern Improvisation WorldWillow Cheng
 
High Performance Rust UI.pdf
High Performance Rust UI.pdfHigh Performance Rust UI.pdf
High Performance Rust UI.pdfmraaaaa
 
Mp3 player project presentation
Mp3 player project presentationMp3 player project presentation
Mp3 player project presentationAntonio Mondragon
 
Nimble Streamer Transcoder overview
Nimble Streamer Transcoder overviewNimble Streamer Transcoder overview
Nimble Streamer Transcoder overviewSoftvelum
 
Chrome game programming_with_for_play
Chrome game programming_with_for_playChrome game programming_with_for_play
Chrome game programming_with_for_playfirenze-gtug
 
EFL: Scaling From the Embedded World to the Desktop
EFL: Scaling From the Embedded World to the DesktopEFL: Scaling From the Embedded World to the Desktop
EFL: Scaling From the Embedded World to the DesktopSamsung Open Source Group
 
Enlightenment Foundation Libraries (Overview)
Enlightenment Foundation Libraries (Overview)Enlightenment Foundation Libraries (Overview)
Enlightenment Foundation Libraries (Overview)Samsung Open Source Group
 
The next generation of GPU APIs for Game Engines
The next generation of GPU APIs for Game EnginesThe next generation of GPU APIs for Game Engines
The next generation of GPU APIs for Game EnginesPooya Eimandar
 
Let's Make Some Noise with Web Audio API
Let's Make Some Noise with Web Audio APILet's Make Some Noise with Web Audio API
Let's Make Some Noise with Web Audio APIGlobalLogic Ukraine
 
Castle Game Engine and the joy of making and using a custom game engine
Castle Game Engine and the joy  of making and using a custom game engineCastle Game Engine and the joy  of making and using a custom game engine
Castle Game Engine and the joy of making and using a custom game engineMichalis Kamburelis
 
Node.js Presentation
Node.js PresentationNode.js Presentation
Node.js PresentationExist
 
Music With Pharo
Music With PharoMusic With Pharo
Music With PharoESUG
 

Similaire à Web audio app preso (20)

LibGDX: Cross Platform Game Development
LibGDX: Cross Platform Game DevelopmentLibGDX: Cross Platform Game Development
LibGDX: Cross Platform Game Development
 
Recent OBS Updates
Recent OBS UpdatesRecent OBS Updates
Recent OBS Updates
 
Smedberg niklas bringing_aaa_graphics
Smedberg niklas bringing_aaa_graphicsSmedberg niklas bringing_aaa_graphics
Smedberg niklas bringing_aaa_graphics
 
Html5 Game Development with Canvas
Html5 Game Development with CanvasHtml5 Game Development with Canvas
Html5 Game Development with Canvas
 
ECS: Graph Driven Audio in an ECS World
ECS: Graph Driven Audio in an ECS WorldECS: Graph Driven Audio in an ECS World
ECS: Graph Driven Audio in an ECS World
 
Modern Improvisation World
Modern Improvisation WorldModern Improvisation World
Modern Improvisation World
 
High Performance Rust UI.pdf
High Performance Rust UI.pdfHigh Performance Rust UI.pdf
High Performance Rust UI.pdf
 
Mp3 player project presentation
Mp3 player project presentationMp3 player project presentation
Mp3 player project presentation
 
Nimble Streamer Transcoder overview
Nimble Streamer Transcoder overviewNimble Streamer Transcoder overview
Nimble Streamer Transcoder overview
 
Chrome game programming_with_for_play
Chrome game programming_with_for_playChrome game programming_with_for_play
Chrome game programming_with_for_play
 
I pod new
I pod newI pod new
I pod new
 
EFL: Scaling From the Embedded World to the Desktop
EFL: Scaling From the Embedded World to the DesktopEFL: Scaling From the Embedded World to the Desktop
EFL: Scaling From the Embedded World to the Desktop
 
Enlightenment Foundation Libraries (Overview)
Enlightenment Foundation Libraries (Overview)Enlightenment Foundation Libraries (Overview)
Enlightenment Foundation Libraries (Overview)
 
Html5 (games)
Html5 (games)Html5 (games)
Html5 (games)
 
The next generation of GPU APIs for Game Engines
The next generation of GPU APIs for Game EnginesThe next generation of GPU APIs for Game Engines
The next generation of GPU APIs for Game Engines
 
Let's Make Some Noise with Web Audio API
Let's Make Some Noise with Web Audio APILet's Make Some Noise with Web Audio API
Let's Make Some Noise with Web Audio API
 
Castle Game Engine and the joy of making and using a custom game engine
Castle Game Engine and the joy  of making and using a custom game engineCastle Game Engine and the joy  of making and using a custom game engine
Castle Game Engine and the joy of making and using a custom game engine
 
Node.js Presentation
Node.js PresentationNode.js Presentation
Node.js Presentation
 
Music With Pharo
Music With PharoMusic With Pharo
Music With Pharo
 
Gtug
GtugGtug
Gtug
 

Plus de Patrick Sheridan

5 new rules for product development
5 new rules for product development5 new rules for product development
5 new rules for product developmentPatrick Sheridan
 
SenchaCon: DJing with Sencha Touch
SenchaCon: DJing with Sencha Touch SenchaCon: DJing with Sencha Touch
SenchaCon: DJing with Sencha Touch Patrick Sheridan
 
SenchaCon: DJing with Sencha Touch
SenchaCon: DJing with Sencha Touch SenchaCon: DJing with Sencha Touch
SenchaCon: DJing with Sencha Touch Patrick Sheridan
 
SenchaCon: Sencha Touch Custom Components
SenchaCon: Sencha Touch Custom Components SenchaCon: Sencha Touch Custom Components
SenchaCon: Sencha Touch Custom Components Patrick Sheridan
 
Using Data Visualization to Create Rich Content Experiences - MarkLogic Webin...
Using Data Visualization to Create Rich Content Experiences - MarkLogic Webin...Using Data Visualization to Create Rich Content Experiences - MarkLogic Webin...
Using Data Visualization to Create Rich Content Experiences - MarkLogic Webin...Patrick Sheridan
 
Ext JS 4.0 components and layouts
Ext JS 4.0 components and layoutsExt JS 4.0 components and layouts
Ext JS 4.0 components and layoutsPatrick Sheridan
 
Javascript classes and scoping
Javascript classes and scopingJavascript classes and scoping
Javascript classes and scopingPatrick Sheridan
 
Ext JS 4.0 - Creating extensions, plugins and components
Ext JS 4.0 - Creating extensions, plugins and componentsExt JS 4.0 - Creating extensions, plugins and components
Ext JS 4.0 - Creating extensions, plugins and componentsPatrick Sheridan
 
Modus Create Corporate Capabilities
Modus Create Corporate CapabilitiesModus Create Corporate Capabilities
Modus Create Corporate CapabilitiesPatrick Sheridan
 

Plus de Patrick Sheridan (14)

5 new rules for product development
5 new rules for product development5 new rules for product development
5 new rules for product development
 
SenchaCon: DJing with Sencha Touch
SenchaCon: DJing with Sencha Touch SenchaCon: DJing with Sencha Touch
SenchaCon: DJing with Sencha Touch
 
SenchaCon: DJing with Sencha Touch
SenchaCon: DJing with Sencha Touch SenchaCon: DJing with Sencha Touch
SenchaCon: DJing with Sencha Touch
 
SenchaCon: Sencha Touch Custom Components
SenchaCon: Sencha Touch Custom Components SenchaCon: Sencha Touch Custom Components
SenchaCon: Sencha Touch Custom Components
 
Rvrsit
RvrsitRvrsit
Rvrsit
 
Discover Music
Discover MusicDiscover Music
Discover Music
 
ExtJS Forms
ExtJS FormsExtJS Forms
ExtJS Forms
 
HTML5 and Sencha Touch
HTML5 and Sencha TouchHTML5 and Sencha Touch
HTML5 and Sencha Touch
 
Using Data Visualization to Create Rich Content Experiences - MarkLogic Webin...
Using Data Visualization to Create Rich Content Experiences - MarkLogic Webin...Using Data Visualization to Create Rich Content Experiences - MarkLogic Webin...
Using Data Visualization to Create Rich Content Experiences - MarkLogic Webin...
 
Ext JS 4.0 components and layouts
Ext JS 4.0 components and layoutsExt JS 4.0 components and layouts
Ext JS 4.0 components and layouts
 
Javascript classes and scoping
Javascript classes and scopingJavascript classes and scoping
Javascript classes and scoping
 
Ext JS 4.0 - Creating extensions, plugins and components
Ext JS 4.0 - Creating extensions, plugins and componentsExt JS 4.0 - Creating extensions, plugins and components
Ext JS 4.0 - Creating extensions, plugins and components
 
JavaScript Secrets
JavaScript SecretsJavaScript Secrets
JavaScript Secrets
 
Modus Create Corporate Capabilities
Modus Create Corporate CapabilitiesModus Create Corporate Capabilities
Modus Create Corporate Capabilities
 

Web audio app preso

  • 1. Wuberizer Stan Bershadskiy Tyler Knappe Alex Lazar https://github.com/ModusCreateOrg/web-audio-api
  • 3. Tenori-On ● Electronic Musical Instrument created in 2005 ● Goal is to blend light and sound ● Uses a 16 x 16 grid of LEDs as controls ● Generates sound based on cell position
  • 4. Features Web Audio Sound Creator ● 16 x 16 sound synthesizer and pseudo- sequencer ● Manipulate the frequency divisor, oscillator waveform, filters and global tempo ● Record output into a WAV file ● It also has a Reset button in case you want to delete the whole song and to start over
  • 5. Implementation Technology used: ● Sencha Touch 2.2 ● SASS ● Canvas ● EaselJS ● HTML5 Web Audio API ● Recorder.js
  • 6. Web Audio API ● High level JavaScript API for processing and synthesizing audio ● Audio Routing Graph Paradigm ○ Two end points that you can connect an arbitrary number of nodes. ● Some Useful Nodes: ○ GainNode - Controls Volume ○ DelayNode - Implements a delay on the source ○ BiquadFilterNode - Implement a filter on source ○ OscillatorNode - Audio source generating a periodic waveform ○ AnalyserNode - use with Music Visualizers
  • 7. Routing Graph Used Destination Compressor Master GainOscillator BiquadFilter Oscillator Gain
  • 8. Canvas ● HTML Element that allows for a "resolution- dependent bitmap canvas which can be used for rendering graphs, game graphics, or other visual images on the fly." ● Controlled entirely via JavaScript ● Provides several methods for drawing paths, boxes, circles, characters, images, and more. ● Leverage EaselJS for abstraction of the canvas and treat it as a stage
  • 9. Sencha Touch 2.2 ● Leverage MVC paradigm (minus Models) ○ Audio Controller - handles all audio interactions ○ Main Controller - global app controller ● CanvasGrid Component ● Leverage Pictos Icon Font
  • 10. What's Next? ● Implement saving state of grid locally and sharing it ● Implement multiple active grid layers ● Clean up the popping when turning on and off oscillators at lower frequencies ● Add in some other sounds, like drums ● Make it work on the iPad :-)
  • 12. Browser Support? ● Currently only supported by Chrome 26+ ● Some support for Safari, but not yet fully implemented
  • 13. ● EaselJS ○ http://www.createjs.com/#!/EaselJS ● Recorder.js ○ https://github.com/mattdiamond/Recorderjs References