diff --git a/package.json b/package.json
index 1db504e3cd603949ccf35c287caa345b7f2cbd2c..a0d4e529e220500d00e1505f8f0996804f23097e 100644
--- a/package.json
+++ b/package.json
@@ -54,6 +54,7 @@
     "react-redux": "4.4.6",
     "react-style-proptype": "1.2.0",
     "redux": "3.6.0",
+    "scratch-audio": "latest",
     "scratch-blocks": "latest",
     "scratch-render": "latest",
     "scratch-vm": "latest",
diff --git a/src/containers/stage.jsx b/src/containers/stage.jsx
index 55c3607248f60868f3e2527a97140a7c1cf62d5c..8448115ea2fa294b088d99df51fddb7279b5bc7a 100644
--- a/src/containers/stage.jsx
+++ b/src/containers/stage.jsx
@@ -1,6 +1,7 @@
 const bindAll = require('lodash.bindall');
 const React = require('react');
 const Renderer = require('scratch-render');
+const AudioEngine = require('scratch-audio');
 const VM = require('scratch-vm');
 
 const StageComponent = require('../components/stage/stage.jsx');
@@ -20,6 +21,8 @@ class Stage extends React.Component {
     componentDidMount () {
         this.renderer = new Renderer(this.canvas);
         this.props.vm.attachRenderer(this.renderer);
+        this.audioEngine = new AudioEngine();
+        this.props.vm.attachAudioEngine(this.audioEngine);
         this.attachMouseEvents(this.canvas);
     }
     componentWillUnmount () {