             y: (1/8)*screenHeight)
 
         addButtonNodes()
+
+        runDemoIfNecessary()
     }
 
     override func addWordmarkNode() {

        self.controller = notification.object as? GCController
        self.controller?.microGamepad?.reportsAbsoluteDpadValues = true
        self.controller?.microGamepad?.valueChangedHandler = { (gamepad, element) in
            if element == gamepad.dpad {
                self.handleDpad(element as! GCControllerDirectionPad)
            } else if element == gamepad.buttonA {


    let octaveMultiplier = CGFloat(pow(pow(2.0, 1.0/12.0), 12.0))
    let animationDuration = 0.4
    let ranDemoKey = "ranDemo"

    var controller: GCController?
    var dpadActive = false
    var buttonAPending = false
    var buttonXPending = false
    var demoFinished = false

    let frequencies: [UIPressType: CGFloat] = [
        .UpArrow: Note.D4.rawValue,
