         src: '**/*.coffee'     # traverse *.coffee files relative to cwd
         dest: 'build/test'     # destination for compiled js files
         ext: '.js'             # file extension for compiled files
-        filter: hasChanged("coffee.test")
         options:
           sourceMap : true
       demo:

        src: '**/*.coffee'     # traverse *.coffee files relative to cwd
        dest: 'build/demo/js'  # destination for compiled js files
        ext: '.js'             # file extension for compiled files
        filter: hasChanged("coffee.demo")
        options:
          sourceMap : true
      spectrogram:

  grunt.loadNpmTasks("grunt-contrib-copy")
  grunt.loadNpmTasks("grunt-contrib-clean")
  grunt.loadNpmTasks("grunt-contrib-qunit")
  grunt.loadNpmTasks("grunt-contrib-connect")
  grunt.loadNpmTasks("grunt-eco")
  grunt.loadNpmTasks("grunt-groc")

  grunt.registerTask("default",   ["build", "test"])
  grunt.registerTask("buildcopy", ["copy:template", "copy:test", "copy:demo", "copy:vendor"]) # better way??
  grunt.registerTask("build",     ["coffee", "less", "buildcopy", "eco"])
  grunt.registerTask("deploy",    ["build",  "requirejs", "cssmin", "copy:spectrogram"])
  grunt.registerTask("test",      ["build", "connect", "qunit"])
  grunt.registerTask("serve",     ["connect:server:keepalive"])
  grunt.registerTask("release",   ["deploy", "copy:release"])
