<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>experimental/sound-engine/sound-engine-sample/sfx/trance-loop.ogg</filename>
    </added>
    <added>
      <filename>external/Tremor/CHANGELOG</filename>
    </added>
    <added>
      <filename>external/Tremor/COPYING</filename>
    </added>
    <added>
      <filename>external/Tremor/Makefile.am</filename>
    </added>
    <added>
      <filename>external/Tremor/README</filename>
    </added>
    <added>
      <filename>external/Tremor/Version_script.in</filename>
    </added>
    <added>
      <filename>external/Tremor/asm_arm.h</filename>
    </added>
    <added>
      <filename>external/Tremor/autogen.sh</filename>
    </added>
    <added>
      <filename>external/Tremor/backends.h</filename>
    </added>
    <added>
      <filename>external/Tremor/bitwise.c</filename>
    </added>
    <added>
      <filename>external/Tremor/block.c</filename>
    </added>
    <added>
      <filename>external/Tremor/block.h</filename>
    </added>
    <added>
      <filename>external/Tremor/codebook.c</filename>
    </added>
    <added>
      <filename>external/Tremor/codebook.h</filename>
    </added>
    <added>
      <filename>external/Tremor/codec_internal.h</filename>
    </added>
    <added>
      <filename>external/Tremor/config_types.h</filename>
    </added>
    <added>
      <filename>external/Tremor/configure.in</filename>
    </added>
    <added>
      <filename>external/Tremor/doc/OggVorbis_File.html</filename>
    </added>
    <added>
      <filename>external/Tremor/doc/build.html</filename>
    </added>
    <added>
      <filename>external/Tremor/doc/callbacks.html</filename>
    </added>
    <added>
      <filename>external/Tremor/doc/datastructures.html</filename>
    </added>
    <added>
      <filename>external/Tremor/doc/decoding.html</filename>
    </added>
    <added>
      <filename>external/Tremor/doc/diff.html</filename>
    </added>
    <added>
      <filename>external/Tremor/doc/example.html</filename>
    </added>
    <added>
      <filename>external/Tremor/doc/fileinfo.html</filename>
    </added>
    <added>
      <filename>external/Tremor/doc/index.html</filename>
    </added>
    <added>
      <filename>external/Tremor/doc/initialization.html</filename>
    </added>
    <added>
      <filename>external/Tremor/doc/ov_bitrate.html</filename>
    </added>
    <added>
      <filename>external/Tremor/doc/ov_bitrate_instant.html</filename>
    </added>
    <added>
      <filename>external/Tremor/doc/ov_callbacks.html</filename>
    </added>
    <added>
      <filename>external/Tremor/doc/ov_clear.html</filename>
    </added>
    <added>
      <filename>external/Tremor/doc/ov_comment.html</filename>
    </added>
    <added>
      <filename>external/Tremor/doc/ov_info.html</filename>
    </added>
    <added>
      <filename>external/Tremor/doc/ov_open.html</filename>
    </added>
    <added>
      <filename>external/Tremor/doc/ov_open_callbacks.html</filename>
    </added>
    <added>
      <filename>external/Tremor/doc/ov_pcm_seek.html</filename>
    </added>
    <added>
      <filename>external/Tremor/doc/ov_pcm_seek_page.html</filename>
    </added>
    <added>
      <filename>external/Tremor/doc/ov_pcm_tell.html</filename>
    </added>
    <added>
      <filename>external/Tremor/doc/ov_pcm_total.html</filename>
    </added>
    <added>
      <filename>external/Tremor/doc/ov_raw_seek.html</filename>
    </added>
    <added>
      <filename>external/Tremor/doc/ov_raw_tell.html</filename>
    </added>
    <added>
      <filename>external/Tremor/doc/ov_raw_total.html</filename>
    </added>
    <added>
      <filename>external/Tremor/doc/ov_read.html</filename>
    </added>
    <added>
      <filename>external/Tremor/doc/ov_seekable.html</filename>
    </added>
    <added>
      <filename>external/Tremor/doc/ov_serialnumber.html</filename>
    </added>
    <added>
      <filename>external/Tremor/doc/ov_streams.html</filename>
    </added>
    <added>
      <filename>external/Tremor/doc/ov_test.html</filename>
    </added>
    <added>
      <filename>external/Tremor/doc/ov_test_callbacks.html</filename>
    </added>
    <added>
      <filename>external/Tremor/doc/ov_test_open.html</filename>
    </added>
    <added>
      <filename>external/Tremor/doc/ov_time_seek.html</filename>
    </added>
    <added>
      <filename>external/Tremor/doc/ov_time_seek_page.html</filename>
    </added>
    <added>
      <filename>external/Tremor/doc/ov_time_tell.html</filename>
    </added>
    <added>
      <filename>external/Tremor/doc/ov_time_total.html</filename>
    </added>
    <added>
      <filename>external/Tremor/doc/overview.html</filename>
    </added>
    <added>
      <filename>external/Tremor/doc/reference.html</filename>
    </added>
    <added>
      <filename>external/Tremor/doc/return.html</filename>
    </added>
    <added>
      <filename>external/Tremor/doc/seeking.html</filename>
    </added>
    <added>
      <filename>external/Tremor/doc/style.css</filename>
    </added>
    <added>
      <filename>external/Tremor/doc/threads.html</filename>
    </added>
    <added>
      <filename>external/Tremor/doc/vorbis_comment.html</filename>
    </added>
    <added>
      <filename>external/Tremor/doc/vorbis_info.html</filename>
    </added>
    <added>
      <filename>external/Tremor/floor0.c</filename>
    </added>
    <added>
      <filename>external/Tremor/floor1.c</filename>
    </added>
    <added>
      <filename>external/Tremor/framing.c</filename>
    </added>
    <added>
      <filename>external/Tremor/info.c</filename>
    </added>
    <added>
      <filename>external/Tremor/ivorbiscodec.h</filename>
    </added>
    <added>
      <filename>external/Tremor/ivorbisfile.h</filename>
    </added>
    <added>
      <filename>external/Tremor/ivorbisfile_example.c</filename>
    </added>
    <added>
      <filename>external/Tremor/lsp_lookup.h</filename>
    </added>
    <added>
      <filename>external/Tremor/mapping0.c</filename>
    </added>
    <added>
      <filename>external/Tremor/mdct.c</filename>
    </added>
    <added>
      <filename>external/Tremor/mdct.h</filename>
    </added>
    <added>
      <filename>external/Tremor/mdct_lookup.h</filename>
    </added>
    <added>
      <filename>external/Tremor/misc.h</filename>
    </added>
    <added>
      <filename>external/Tremor/ogg.h</filename>
    </added>
    <added>
      <filename>external/Tremor/os.h</filename>
    </added>
    <added>
      <filename>external/Tremor/os_types.h</filename>
    </added>
    <added>
      <filename>external/Tremor/registry.c</filename>
    </added>
    <added>
      <filename>external/Tremor/registry.h</filename>
    </added>
    <added>
      <filename>external/Tremor/res012.c</filename>
    </added>
    <added>
      <filename>external/Tremor/sharedbook.c</filename>
    </added>
    <added>
      <filename>external/Tremor/synthesis.c</filename>
    </added>
    <added>
      <filename>external/Tremor/vorbisfile.c</filename>
    </added>
    <added>
      <filename>external/Tremor/window.c</filename>
    </added>
    <added>
      <filename>external/Tremor/window.h</filename>
    </added>
    <added>
      <filename>external/Tremor/window_lookup.h</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -711,7 +711,44 @@
 		50F7B2780F28DE7C00057537 /* EaseAction.h in Headers */ = {isa = PBXBuildFile; fileRef = 50F7B2760F28DE7C00057537 /* EaseAction.h */; };
 		50F7B2790F28DE7C00057537 /* EaseAction.m in Sources */ = {isa = PBXBuildFile; fileRef = 50F7B2770F28DE7C00057537 /* EaseAction.m */; };
 		50F9E8170E1AA34E000E7616 /* ccTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 50F9E8160E1AA34E000E7616 /* ccTypes.h */; };
+		8E3FC8920F7B8BE900B3E5DE /* trance-loop.ogg in Resources */ = {isa = PBXBuildFile; fileRef = 8E3FC8910F7B8BE900B3E5DE /* trance-loop.ogg */; };
+		8E3FC8950F7B8C0600B3E5DE /* ATTRIBUTION in Resources */ = {isa = PBXBuildFile; fileRef = 8E3FC8940F7B8C0600B3E5DE /* ATTRIBUTION */; };
 		8E60F0DB0F766499005FCEAC /* waterfall.caf in Resources */ = {isa = PBXBuildFile; fileRef = 8E60F0DA0F766499005FCEAC /* waterfall.caf */; };
+		8E6CBEF50F7A75CA00D47B3A /* codebook.c in Sources */ = {isa = PBXBuildFile; fileRef = 8E6CBE670F7A5A3E00D47B3A /* codebook.c */; };
+		8E6CBEF60F7A75CB00D47B3A /* vorbisfile.c in Sources */ = {isa = PBXBuildFile; fileRef = 8E6CBEB20F7A5A3E00D47B3A /* vorbisfile.c */; };
+		8E6CBEF70F7A75CB00D47B3A /* framing.c in Sources */ = {isa = PBXBuildFile; fileRef = 8E6CBE9C0F7A5A3E00D47B3A /* framing.c */; };
+		8E6CBEF80F7A75CC00D47B3A /* ivorbisfile_example.c in Sources */ = {isa = PBXBuildFile; fileRef = 8E6CBEA00F7A5A3E00D47B3A /* ivorbisfile_example.c */; };
+		8E6CBEF90F7A75CC00D47B3A /* sharedbook.c in Sources */ = {isa = PBXBuildFile; fileRef = 8E6CBEAF0F7A5A3E00D47B3A /* sharedbook.c */; };
+		8E6CBEFA0F7A75CD00D47B3A /* res012.c in Sources */ = {isa = PBXBuildFile; fileRef = 8E6CBEAE0F7A5A3E00D47B3A /* res012.c */; };
+		8E6CBEFB0F7A75CE00D47B3A /* synthesis.c in Sources */ = {isa = PBXBuildFile; fileRef = 8E6CBEB00F7A5A3E00D47B3A /* synthesis.c */; };
+		8E6CBEFC0F7A75CF00D47B3A /* window.c in Sources */ = {isa = PBXBuildFile; fileRef = 8E6CBEB30F7A5A3E00D47B3A /* window.c */; };
+		8E6CBEFD0F7A75D400D47B3A /* floor0.c in Sources */ = {isa = PBXBuildFile; fileRef = 8E6CBE9A0F7A5A3E00D47B3A /* floor0.c */; };
+		8E6CBEFE0F7A75D700D47B3A /* mdct.c in Sources */ = {isa = PBXBuildFile; fileRef = 8E6CBEA40F7A5A3E00D47B3A /* mdct.c */; };
+		8E6CBEFF0F7A75D700D47B3A /* floor1.c in Sources */ = {isa = PBXBuildFile; fileRef = 8E6CBE9B0F7A5A3E00D47B3A /* floor1.c */; };
+		8E6CBF000F7A75D800D47B3A /* mapping0.c in Sources */ = {isa = PBXBuildFile; fileRef = 8E6CBEA30F7A5A3E00D47B3A /* mapping0.c */; };
+		8E6CBF010F7A75D900D47B3A /* registry.c in Sources */ = {isa = PBXBuildFile; fileRef = 8E6CBEAC0F7A5A3E00D47B3A /* registry.c */; };
+		8E6CBF020F7A75DA00D47B3A /* block.c in Sources */ = {isa = PBXBuildFile; fileRef = 8E6CBE640F7A5A3E00D47B3A /* block.c */; };
+		8E6CBF030F7A75DB00D47B3A /* info.c in Sources */ = {isa = PBXBuildFile; fileRef = 8E6CBE9D0F7A5A3E00D47B3A /* info.c */; };
+		8E6CBF040F7A75DC00D47B3A /* bitwise.c in Sources */ = {isa = PBXBuildFile; fileRef = 8E6CBE630F7A5A3E00D47B3A /* bitwise.c */; };
+		8E6CBF060F7A75E500D47B3A /* block.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E6CBE650F7A5A3E00D47B3A /* block.h */; };
+		8E6CBF070F7A75E600D47B3A /* window_lookup.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E6CBEB50F7A5A3E00D47B3A /* window_lookup.h */; };
+		8E6CBF080F7A75E600D47B3A /* ivorbisfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E6CBE9F0F7A5A3E00D47B3A /* ivorbisfile.h */; };
+		8E6CBF090F7A75E800D47B3A /* registry.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E6CBEAD0F7A5A3E00D47B3A /* registry.h */; };
+		8E6CBF0A0F7A75ED00D47B3A /* backends.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E6CBE620F7A5A3E00D47B3A /* backends.h */; };
+		8E6CBF0B0F7A75EF00D47B3A /* lsp_lookup.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E6CBEA10F7A5A3E00D47B3A /* lsp_lookup.h */; };
+		8E6CBF0C0F7A75F000D47B3A /* os.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E6CBEA90F7A5A3E00D47B3A /* os.h */; };
+		8E6CBF0D0F7A75F300D47B3A /* config_types.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E6CBE6A0F7A5A3E00D47B3A /* config_types.h */; };
+		8E6CBF0E0F7A75F400D47B3A /* misc.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E6CBEA70F7A5A3E00D47B3A /* misc.h */; };
+		8E6CBF0F0F7A75F600D47B3A /* codec_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E6CBE690F7A5A3E00D47B3A /* codec_internal.h */; };
+		8E6CBF100F7A75F800D47B3A /* os_types.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E6CBEAA0F7A5A3E00D47B3A /* os_types.h */; };
+		8E6CBF110F7A75F900D47B3A /* ogg.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E6CBEA80F7A5A3E00D47B3A /* ogg.h */; };
+		8E6CBF120F7A763200D47B3A /* asm_arm.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E6CBE600F7A5A3E00D47B3A /* asm_arm.h */; };
+		8E6CBF130F7A763400D47B3A /* mdct_lookup.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E6CBEA60F7A5A3E00D47B3A /* mdct_lookup.h */; };
+		8E6CBF140F7A763600D47B3A /* codebook.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E6CBE680F7A5A3E00D47B3A /* codebook.h */; };
+		8E6CBF150F7A763700D47B3A /* window.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E6CBEB40F7A5A3E00D47B3A /* window.h */; };
+		8E6CBF160F7A763700D47B3A /* mdct.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E6CBEA50F7A5A3E00D47B3A /* mdct.h */; };
+		8E6CBF170F7A763800D47B3A /* ivorbiscodec.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E6CBE9E0F7A5A3E00D47B3A /* ivorbiscodec.h */; };
+		8E6CBF330F7A790400D47B3A /* libvorbis.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 8E6CBEEF0F7A758000D47B3A /* libvorbis.a */; };
 		8EDF3E9E0F6BD8E600F54643 /* MyOpenALSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 8EDF3E920F6BD8E600F54643 /* MyOpenALSupport.h */; };
 		8EDF3E9F0F6BD8E600F54643 /* PASoundListener.h in Headers */ = {isa = PBXBuildFile; fileRef = 8EDF3E930F6BD8E600F54643 /* PASoundListener.h */; };
 		8EDF3EA00F6BD8E600F54643 /* PASoundListener.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EDF3E940F6BD8E600F54643 /* PASoundListener.m */; };
@@ -748,7 +785,6 @@
 		8EDF3FC10F6BE18B00F54643 /* r2.png in Resources */ = {isa = PBXBuildFile; fileRef = 5001659A0E72DB0E0085673F /* r2.png */; };
 		8EDF3FDD0F6BE3FC00F54643 /* listener-marker.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EDF3FD90F6BE3F400F54643 /* listener-marker.png */; };
 		8EDF3FDE0F6BE3FC00F54643 /* source-marker.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EDF3FDA0F6BE3F400F54643 /* source-marker.png */; };
-		8EDF40240F6BED9900F54643 /* ATTRIBUTION in Resources */ = {isa = PBXBuildFile; fileRef = 8EDF40230F6BED9900F54643 /* ATTRIBUTION */; };
 /* End PBXBuildFile section */
 
 /* Begin PBXContainerItemProxy section */
@@ -941,6 +977,13 @@
 			remoteGlobalIDString = 5018F24C0DFDEAC400C013A5;
 			remoteInfo = cocos2d;
 		};
+		8E6CBF310F7A78F800D47B3A /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = 8E6CBEEE0F7A758000D47B3A;
+			remoteInfo = vorbis;
+		};
 		8EDF3EAB0F6BDA0000F54643 /* PBXContainerItemProxy */ = {
 			isa = PBXContainerItemProxy;
 			containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
@@ -1329,7 +1372,95 @@
 		50F7B2770F28DE7C00057537 /* EaseAction.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EaseAction.m; sourceTree = &quot;&lt;group&gt;&quot;; };
 		50F9E8160E1AA34E000E7616 /* ccTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccTypes.h; sourceTree = &quot;&lt;group&gt;&quot;; };
 		50F9EA8F0E1AE87E000E7616 /* fire.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = fire.png; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E3FC8910F7B8BE900B3E5DE /* trance-loop.ogg */ = {isa = PBXFileReference; lastKnownFileType = file; path = &quot;trance-loop.ogg&quot;; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E3FC8940F7B8C0600B3E5DE /* ATTRIBUTION */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ATTRIBUTION; sourceTree = &quot;&lt;group&gt;&quot;; };
 		8E60F0DA0F766499005FCEAC /* waterfall.caf */ = {isa = PBXFileReference; lastKnownFileType = file; path = waterfall.caf; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE600F7A5A3E00D47B3A /* asm_arm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = asm_arm.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE610F7A5A3E00D47B3A /* autogen.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = autogen.sh; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE620F7A5A3E00D47B3A /* backends.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = backends.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE630F7A5A3E00D47B3A /* bitwise.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bitwise.c; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE640F7A5A3E00D47B3A /* block.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = block.c; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE650F7A5A3E00D47B3A /* block.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = block.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE660F7A5A3E00D47B3A /* CHANGELOG */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CHANGELOG; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE670F7A5A3E00D47B3A /* codebook.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = codebook.c; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE680F7A5A3E00D47B3A /* codebook.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = codebook.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE690F7A5A3E00D47B3A /* codec_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = codec_internal.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE6A0F7A5A3E00D47B3A /* config_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = config_types.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE6B0F7A5A3E00D47B3A /* configure.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = configure.in; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE6C0F7A5A3E00D47B3A /* COPYING */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = COPYING; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE6E0F7A5A3E00D47B3A /* build.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = build.html; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE6F0F7A5A3E00D47B3A /* callbacks.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = callbacks.html; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE700F7A5A3E00D47B3A /* datastructures.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = datastructures.html; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE710F7A5A3E00D47B3A /* decoding.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = decoding.html; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE720F7A5A3E00D47B3A /* diff.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = diff.html; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE730F7A5A3E00D47B3A /* example.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = example.html; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE740F7A5A3E00D47B3A /* fileinfo.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = fileinfo.html; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE750F7A5A3E00D47B3A /* index.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = index.html; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE760F7A5A3E00D47B3A /* initialization.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = initialization.html; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE770F7A5A3E00D47B3A /* OggVorbis_File.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = OggVorbis_File.html; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE780F7A5A3E00D47B3A /* ov_bitrate.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = ov_bitrate.html; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE790F7A5A3E00D47B3A /* ov_bitrate_instant.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = ov_bitrate_instant.html; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE7A0F7A5A3E00D47B3A /* ov_callbacks.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = ov_callbacks.html; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE7B0F7A5A3E00D47B3A /* ov_clear.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = ov_clear.html; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE7C0F7A5A3E00D47B3A /* ov_comment.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = ov_comment.html; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE7D0F7A5A3E00D47B3A /* ov_info.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = ov_info.html; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE7E0F7A5A3E00D47B3A /* ov_open.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = ov_open.html; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE7F0F7A5A3E00D47B3A /* ov_open_callbacks.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = ov_open_callbacks.html; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE800F7A5A3E00D47B3A /* ov_pcm_seek.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = ov_pcm_seek.html; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE810F7A5A3E00D47B3A /* ov_pcm_seek_page.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = ov_pcm_seek_page.html; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE820F7A5A3E00D47B3A /* ov_pcm_tell.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = ov_pcm_tell.html; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE830F7A5A3E00D47B3A /* ov_pcm_total.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = ov_pcm_total.html; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE840F7A5A3E00D47B3A /* ov_raw_seek.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = ov_raw_seek.html; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE850F7A5A3E00D47B3A /* ov_raw_tell.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = ov_raw_tell.html; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE860F7A5A3E00D47B3A /* ov_raw_total.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = ov_raw_total.html; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE870F7A5A3E00D47B3A /* ov_read.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = ov_read.html; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE880F7A5A3E00D47B3A /* ov_seekable.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = ov_seekable.html; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE890F7A5A3E00D47B3A /* ov_serialnumber.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = ov_serialnumber.html; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE8A0F7A5A3E00D47B3A /* ov_streams.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = ov_streams.html; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE8B0F7A5A3E00D47B3A /* ov_test.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = ov_test.html; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE8C0F7A5A3E00D47B3A /* ov_test_callbacks.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = ov_test_callbacks.html; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE8D0F7A5A3E00D47B3A /* ov_test_open.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = ov_test_open.html; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE8E0F7A5A3E00D47B3A /* ov_time_seek.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = ov_time_seek.html; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE8F0F7A5A3E00D47B3A /* ov_time_seek_page.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = ov_time_seek_page.html; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE900F7A5A3E00D47B3A /* ov_time_tell.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = ov_time_tell.html; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE910F7A5A3E00D47B3A /* ov_time_total.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = ov_time_total.html; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE920F7A5A3E00D47B3A /* overview.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = overview.html; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE930F7A5A3E00D47B3A /* reference.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = reference.html; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE940F7A5A3E00D47B3A /* return.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = return.html; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE950F7A5A3E00D47B3A /* seeking.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = seeking.html; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE960F7A5A3E00D47B3A /* style.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = style.css; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE970F7A5A3E00D47B3A /* threads.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = threads.html; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE980F7A5A3E00D47B3A /* vorbis_comment.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = vorbis_comment.html; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE990F7A5A3E00D47B3A /* vorbis_info.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = vorbis_info.html; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE9A0F7A5A3E00D47B3A /* floor0.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = floor0.c; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE9B0F7A5A3E00D47B3A /* floor1.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = floor1.c; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE9C0F7A5A3E00D47B3A /* framing.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = framing.c; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE9D0F7A5A3E00D47B3A /* info.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = info.c; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE9E0F7A5A3E00D47B3A /* ivorbiscodec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ivorbiscodec.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBE9F0F7A5A3E00D47B3A /* ivorbisfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ivorbisfile.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBEA00F7A5A3E00D47B3A /* ivorbisfile_example.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ivorbisfile_example.c; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBEA10F7A5A3E00D47B3A /* lsp_lookup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lsp_lookup.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBEA20F7A5A3E00D47B3A /* Makefile.am */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Makefile.am; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBEA30F7A5A3E00D47B3A /* mapping0.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mapping0.c; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBEA40F7A5A3E00D47B3A /* mdct.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mdct.c; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBEA50F7A5A3E00D47B3A /* mdct.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mdct.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBEA60F7A5A3E00D47B3A /* mdct_lookup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mdct_lookup.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBEA70F7A5A3E00D47B3A /* misc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = misc.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBEA80F7A5A3E00D47B3A /* ogg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ogg.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBEA90F7A5A3E00D47B3A /* os.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = os.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBEAA0F7A5A3E00D47B3A /* os_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = os_types.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBEAB0F7A5A3E00D47B3A /* README */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBEAC0F7A5A3E00D47B3A /* registry.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = registry.c; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBEAD0F7A5A3E00D47B3A /* registry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = registry.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBEAE0F7A5A3E00D47B3A /* res012.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = res012.c; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBEAF0F7A5A3E00D47B3A /* sharedbook.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = sharedbook.c; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBEB00F7A5A3E00D47B3A /* synthesis.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = synthesis.c; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBEB10F7A5A3E00D47B3A /* Version_script.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Version_script.in; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBEB20F7A5A3E00D47B3A /* vorbisfile.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = vorbisfile.c; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBEB30F7A5A3E00D47B3A /* window.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = window.c; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBEB40F7A5A3E00D47B3A /* window.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = window.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBEB50F7A5A3E00D47B3A /* window_lookup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = window_lookup.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+		8E6CBEEF0F7A758000D47B3A /* libvorbis.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libvorbis.a; sourceTree = BUILT_PRODUCTS_DIR; };
 		8EDF3E8E0F6BD8CD00F54643 /* chicken.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = chicken.wav; sourceTree = &quot;&lt;group&gt;&quot;; };
 		8EDF3E8F0F6BD8CD00F54643 /* clank.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = clank.wav; sourceTree = &quot;&lt;group&gt;&quot;; };
 		8EDF3E900F6BD8CD00F54643 /* waterfall.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = waterfall.wav; sourceTree = &quot;&lt;group&gt;&quot;; };
@@ -1340,9 +1471,6 @@
 		8EDF3E960F6BD8E600F54643 /* PASoundMgr.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PASoundMgr.m; sourceTree = &quot;&lt;group&gt;&quot;; };
 		8EDF3E970F6BD8E600F54643 /* PASoundSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PASoundSource.h; sourceTree = &quot;&lt;group&gt;&quot;; };
 		8EDF3E980F6BD8E600F54643 /* PASoundSource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PASoundSource.m; sourceTree = &quot;&lt;group&gt;&quot;; };
-		8EDF3E9B0F6BD8E600F54643 /* chicken.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = chicken.wav; sourceTree = &quot;&lt;group&gt;&quot;; };
-		8EDF3E9C0F6BD8E600F54643 /* clank.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = clank.wav; sourceTree = &quot;&lt;group&gt;&quot;; };
-		8EDF3E9D0F6BD8E600F54643 /* waterfall.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = waterfall.wav; sourceTree = &quot;&lt;group&gt;&quot;; };
 		8EDF3EA50F6BD90B00F54643 /* SoundEngineTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SoundEngineTest.h; sourceTree = &quot;&lt;group&gt;&quot;; };
 		8EDF3EA60F6BD90B00F54643 /* SoundEngineTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SoundEngineTest.m; sourceTree = &quot;&lt;group&gt;&quot;; };
 		8EDF3ED80F6BDA0000F54643 /* SoundEngineTest.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SoundEngineTest.app; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -1350,7 +1478,6 @@
 		8EDF3F850F6BDEDA00F54643 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
 		8EDF3FD90F6BE3F400F54643 /* listener-marker.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = &quot;listener-marker.png&quot;; path = &quot;experimental/sound-engine/sound-engine-sample/listener-marker.png&quot;; sourceTree = SOURCE_ROOT; };
 		8EDF3FDA0F6BE3F400F54643 /* source-marker.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = &quot;source-marker.png&quot;; path = &quot;experimental/sound-engine/sound-engine-sample/source-marker.png&quot;; sourceTree = SOURCE_ROOT; };
-		8EDF40230F6BED9900F54643 /* ATTRIBUTION */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ATTRIBUTION; sourceTree = &quot;&lt;group&gt;&quot;; };
 /* End PBXFileReference section */
 
 /* Begin PBXFrameworksBuildPhase section */
@@ -1686,6 +1813,13 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
+		8E6CBEED0F7A758000D47B3A /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
 		8EDF3ECE0F6BDA0000F54643 /* Frameworks */ = {
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
@@ -1698,6 +1832,7 @@
 				8EDF3ED40F6BDA0000F54643 /* libcocos2d.a in Frameworks */,
 				8EDF3F800F6BDEB400F54643 /* OpenAL.framework in Frameworks */,
 				8EDF3F860F6BDEDA00F54643 /* AudioToolbox.framework in Frameworks */,
+				8E6CBF330F7A790400D47B3A /* libvorbis.a in Frameworks */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -1735,6 +1870,7 @@
 				504828800F45AED700A30CEF /* AttachDemo.app */,
 				505CC1590F62BB03000EDF26 /* PerformanceTest.app */,
 				8EDF3ED80F6BDA0000F54643 /* SoundEngineTest.app */,
+				8E6CBEEF0F7A758000D47B3A /* libvorbis.a */,
 			);
 			name = Products;
 			sourceTree = &quot;&lt;group&gt;&quot;;
@@ -1879,6 +2015,7 @@
 		501756090F335CE900624901 /* external */ = {
 			isa = PBXGroup;
 			children = (
+				8E6CBE5F0F7A5A3E00D47B3A /* Tremor */,
 				5017569F0F336F8800624901 /* ChipmunkDemo */,
 				501755D00F335CCC00624901 /* Chipmunk */,
 				501755AD0F335CAE00624901 /* TouchJSON */,
@@ -2304,9 +2441,112 @@
 			path = sprites_test;
 			sourceTree = &quot;&lt;group&gt;&quot;;
 		};
+		8E6CBE5F0F7A5A3E00D47B3A /* Tremor */ = {
+			isa = PBXGroup;
+			children = (
+				8E6CBE600F7A5A3E00D47B3A /* asm_arm.h */,
+				8E6CBE610F7A5A3E00D47B3A /* autogen.sh */,
+				8E6CBE620F7A5A3E00D47B3A /* backends.h */,
+				8E6CBE630F7A5A3E00D47B3A /* bitwise.c */,
+				8E6CBE640F7A5A3E00D47B3A /* block.c */,
+				8E6CBE650F7A5A3E00D47B3A /* block.h */,
+				8E6CBE660F7A5A3E00D47B3A /* CHANGELOG */,
+				8E6CBE670F7A5A3E00D47B3A /* codebook.c */,
+				8E6CBE680F7A5A3E00D47B3A /* codebook.h */,
+				8E6CBE690F7A5A3E00D47B3A /* codec_internal.h */,
+				8E6CBE6A0F7A5A3E00D47B3A /* config_types.h */,
+				8E6CBE6B0F7A5A3E00D47B3A /* configure.in */,
+				8E6CBE6C0F7A5A3E00D47B3A /* COPYING */,
+				8E6CBE6D0F7A5A3E00D47B3A /* doc */,
+				8E6CBE9A0F7A5A3E00D47B3A /* floor0.c */,
+				8E6CBE9B0F7A5A3E00D47B3A /* floor1.c */,
+				8E6CBE9C0F7A5A3E00D47B3A /* framing.c */,
+				8E6CBE9D0F7A5A3E00D47B3A /* info.c */,
+				8E6CBE9E0F7A5A3E00D47B3A /* ivorbiscodec.h */,
+				8E6CBE9F0F7A5A3E00D47B3A /* ivorbisfile.h */,
+				8E6CBEA00F7A5A3E00D47B3A /* ivorbisfile_example.c */,
+				8E6CBEA10F7A5A3E00D47B3A /* lsp_lookup.h */,
+				8E6CBEA20F7A5A3E00D47B3A /* Makefile.am */,
+				8E6CBEA30F7A5A3E00D47B3A /* mapping0.c */,
+				8E6CBEA40F7A5A3E00D47B3A /* mdct.c */,
+				8E6CBEA50F7A5A3E00D47B3A /* mdct.h */,
+				8E6CBEA60F7A5A3E00D47B3A /* mdct_lookup.h */,
+				8E6CBEA70F7A5A3E00D47B3A /* misc.h */,
+				8E6CBEA80F7A5A3E00D47B3A /* ogg.h */,
+				8E6CBEA90F7A5A3E00D47B3A /* os.h */,
+				8E6CBEAA0F7A5A3E00D47B3A /* os_types.h */,
+				8E6CBEAB0F7A5A3E00D47B3A /* README */,
+				8E6CBEAC0F7A5A3E00D47B3A /* registry.c */,
+				8E6CBEAD0F7A5A3E00D47B3A /* registry.h */,
+				8E6CBEAE0F7A5A3E00D47B3A /* res012.c */,
+				8E6CBEAF0F7A5A3E00D47B3A /* sharedbook.c */,
+				8E6CBEB00F7A5A3E00D47B3A /* synthesis.c */,
+				8E6CBEB10F7A5A3E00D47B3A /* Version_script.in */,
+				8E6CBEB20F7A5A3E00D47B3A /* vorbisfile.c */,
+				8E6CBEB30F7A5A3E00D47B3A /* window.c */,
+				8E6CBEB40F7A5A3E00D47B3A /* window.h */,
+				8E6CBEB50F7A5A3E00D47B3A /* window_lookup.h */,
+			);
+			name = Tremor;
+			path = external/Tremor;
+			sourceTree = &quot;&lt;group&gt;&quot;;
+		};
+		8E6CBE6D0F7A5A3E00D47B3A /* doc */ = {
+			isa = PBXGroup;
+			children = (
+				8E6CBE6E0F7A5A3E00D47B3A /* build.html */,
+				8E6CBE6F0F7A5A3E00D47B3A /* callbacks.html */,
+				8E6CBE700F7A5A3E00D47B3A /* datastructures.html */,
+				8E6CBE710F7A5A3E00D47B3A /* decoding.html */,
+				8E6CBE720F7A5A3E00D47B3A /* diff.html */,
+				8E6CBE730F7A5A3E00D47B3A /* example.html */,
+				8E6CBE740F7A5A3E00D47B3A /* fileinfo.html */,
+				8E6CBE750F7A5A3E00D47B3A /* index.html */,
+				8E6CBE760F7A5A3E00D47B3A /* initialization.html */,
+				8E6CBE770F7A5A3E00D47B3A /* OggVorbis_File.html */,
+				8E6CBE780F7A5A3E00D47B3A /* ov_bitrate.html */,
+				8E6CBE790F7A5A3E00D47B3A /* ov_bitrate_instant.html */,
+				8E6CBE7A0F7A5A3E00D47B3A /* ov_callbacks.html */,
+				8E6CBE7B0F7A5A3E00D47B3A /* ov_clear.html */,
+				8E6CBE7C0F7A5A3E00D47B3A /* ov_comment.html */,
+				8E6CBE7D0F7A5A3E00D47B3A /* ov_info.html */,
+				8E6CBE7E0F7A5A3E00D47B3A /* ov_open.html */,
+				8E6CBE7F0F7A5A3E00D47B3A /* ov_open_callbacks.html */,
+				8E6CBE800F7A5A3E00D47B3A /* ov_pcm_seek.html */,
+				8E6CBE810F7A5A3E00D47B3A /* ov_pcm_seek_page.html */,
+				8E6CBE820F7A5A3E00D47B3A /* ov_pcm_tell.html */,
+				8E6CBE830F7A5A3E00D47B3A /* ov_pcm_total.html */,
+				8E6CBE840F7A5A3E00D47B3A /* ov_raw_seek.html */,
+				8E6CBE850F7A5A3E00D47B3A /* ov_raw_tell.html */,
+				8E6CBE860F7A5A3E00D47B3A /* ov_raw_total.html */,
+				8E6CBE870F7A5A3E00D47B3A /* ov_read.html */,
+				8E6CBE880F7A5A3E00D47B3A /* ov_seekable.html */,
+				8E6CBE890F7A5A3E00D47B3A /* ov_serialnumber.html */,
+				8E6CBE8A0F7A5A3E00D47B3A /* ov_streams.html */,
+				8E6CBE8B0F7A5A3E00D47B3A /* ov_test.html */,
+				8E6CBE8C0F7A5A3E00D47B3A /* ov_test_callbacks.html */,
+				8E6CBE8D0F7A5A3E00D47B3A /* ov_test_open.html */,
+				8E6CBE8E0F7A5A3E00D47B3A /* ov_time_seek.html */,
+				8E6CBE8F0F7A5A3E00D47B3A /* ov_time_seek_page.html */,
+				8E6CBE900F7A5A3E00D47B3A /* ov_time_tell.html */,
+				8E6CBE910F7A5A3E00D47B3A /* ov_time_total.html */,
+				8E6CBE920F7A5A3E00D47B3A /* overview.html */,
+				8E6CBE930F7A5A3E00D47B3A /* reference.html */,
+				8E6CBE940F7A5A3E00D47B3A /* return.html */,
+				8E6CBE950F7A5A3E00D47B3A /* seeking.html */,
+				8E6CBE960F7A5A3E00D47B3A /* style.css */,
+				8E6CBE970F7A5A3E00D47B3A /* threads.html */,
+				8E6CBE980F7A5A3E00D47B3A /* vorbis_comment.html */,
+				8E6CBE990F7A5A3E00D47B3A /* vorbis_info.html */,
+			);
+			path = doc;
+			sourceTree = &quot;&lt;group&gt;&quot;;
+		};
 		8EDF3E8D0F6BD8CD00F54643 /* sfx */ = {
 			isa = PBXGroup;
 			children = (
+				8E3FC8940F7B8C0600B3E5DE /* ATTRIBUTION */,
+				8E3FC8910F7B8BE900B3E5DE /* trance-loop.ogg */,
 				8E60F0DA0F766499005FCEAC /* waterfall.caf */,
 				8EDF3E8E0F6BD8CD00F54643 /* chicken.wav */,
 				8EDF3E8F0F6BD8CD00F54643 /* clank.wav */,
@@ -2334,24 +2574,12 @@
 		8EDF3E990F6BD8E600F54643 /* sound-engine-sample */ = {
 			isa = PBXGroup;
 			children = (
-				8EDF3E9A0F6BD8E600F54643 /* sfx */,
 				8EDF3EA50F6BD90B00F54643 /* SoundEngineTest.h */,
 				8EDF3EA60F6BD90B00F54643 /* SoundEngineTest.m */,
 			);
 			path = &quot;sound-engine-sample&quot;;
 			sourceTree = &quot;&lt;group&gt;&quot;;
 		};
-		8EDF3E9A0F6BD8E600F54643 /* sfx */ = {
-			isa = PBXGroup;
-			children = (
-				8EDF3E9B0F6BD8E600F54643 /* chicken.wav */,
-				8EDF3E9C0F6BD8E600F54643 /* clank.wav */,
-				8EDF3E9D0F6BD8E600F54643 /* waterfall.wav */,
-				8EDF40230F6BED9900F54643 /* ATTRIBUTION */,
-			);
-			path = sfx;
-			sourceTree = &quot;&lt;group&gt;&quot;;
-		};
 /* End PBXGroup section */
 
 /* Begin PBXHeadersBuildPhase section */
@@ -2460,6 +2688,31 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
+		8E6CBEEB0F7A758000D47B3A /* Headers */ = {
+			isa = PBXHeadersBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				8E6CBF060F7A75E500D47B3A /* block.h in Headers */,
+				8E6CBF070F7A75E600D47B3A /* window_lookup.h in Headers */,
+				8E6CBF080F7A75E600D47B3A /* ivorbisfile.h in Headers */,
+				8E6CBF090F7A75E800D47B3A /* registry.h in Headers */,
+				8E6CBF0A0F7A75ED00D47B3A /* backends.h in Headers */,
+				8E6CBF0B0F7A75EF00D47B3A /* lsp_lookup.h in Headers */,
+				8E6CBF0C0F7A75F000D47B3A /* os.h in Headers */,
+				8E6CBF0D0F7A75F300D47B3A /* config_types.h in Headers */,
+				8E6CBF0E0F7A75F400D47B3A /* misc.h in Headers */,
+				8E6CBF0F0F7A75F600D47B3A /* codec_internal.h in Headers */,
+				8E6CBF100F7A75F800D47B3A /* os_types.h in Headers */,
+				8E6CBF110F7A75F900D47B3A /* ogg.h in Headers */,
+				8E6CBF120F7A763200D47B3A /* asm_arm.h in Headers */,
+				8E6CBF130F7A763400D47B3A /* mdct_lookup.h in Headers */,
+				8E6CBF140F7A763600D47B3A /* codebook.h in Headers */,
+				8E6CBF150F7A763700D47B3A /* window.h in Headers */,
+				8E6CBF160F7A763700D47B3A /* mdct.h in Headers */,
+				8E6CBF170F7A763800D47B3A /* ivorbiscodec.h in Headers */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
 /* End PBXHeadersBuildPhase section */
 
 /* Begin PBXNativeTarget section */
@@ -2950,6 +3203,23 @@
 			productReference = 50DB1BCA0E1C1E5900A89DFF /* ParticleDemo.app */;
 			productType = &quot;com.apple.product-type.application&quot;;
 		};
+		8E6CBEEE0F7A758000D47B3A /* vorbis */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 8E6CBEF20F7A759F00D47B3A /* Build configuration list for PBXNativeTarget &quot;vorbis&quot; */;
+			buildPhases = (
+				8E6CBEEB0F7A758000D47B3A /* Headers */,
+				8E6CBEEC0F7A758000D47B3A /* Sources */,
+				8E6CBEED0F7A758000D47B3A /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = vorbis;
+			productName = vorbis;
+			productReference = 8E6CBEEF0F7A758000D47B3A /* libvorbis.a */;
+			productType = &quot;com.apple.product-type.library.static&quot;;
+		};
 		8EDF3EA90F6BDA0000F54643 /* SoundEngineTest (experimental) */ = {
 			isa = PBXNativeTarget;
 			buildConfigurationList = 8EDF3ED50F6BDA0000F54643 /* Build configuration list for PBXNativeTarget &quot;SoundEngineTest (experimental)&quot; */;
@@ -2962,6 +3232,7 @@
 			);
 			dependencies = (
 				8EDF3EAA0F6BDA0000F54643 /* PBXTargetDependency */,
+				8E6CBF320F7A78F800D47B3A /* PBXTargetDependency */,
 			);
 			name = &quot;SoundEngineTest (experimental)&quot;;
 			productName = playground;
@@ -3008,6 +3279,7 @@
 				50A783990F3AFCE500104C45 /* StreakTest (experimental) */,
 				505B62AB0F2E6A0F001B4104 /* Texture2dDemo */,
 				50C938C60E0A9DBB00517B01 /* TransitionsDemo */,
+				8E6CBEEE0F7A758000D47B3A /* vorbis */,
 			);
 		};
 /* End PBXProject section */
@@ -3562,8 +3834,9 @@
 				8EDF3FC10F6BE18B00F54643 /* r2.png in Resources */,
 				8EDF3FDD0F6BE3FC00F54643 /* listener-marker.png in Resources */,
 				8EDF3FDE0F6BE3FC00F54643 /* source-marker.png in Resources */,
-				8EDF40240F6BED9900F54643 /* ATTRIBUTION in Resources */,
 				8E60F0DB0F766499005FCEAC /* waterfall.caf in Resources */,
+				8E3FC8920F7B8BE900B3E5DE /* trance-loop.ogg in Resources */,
+				8E3FC8950F7B8C0600B3E5DE /* ATTRIBUTION in Resources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -3899,6 +4172,29 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
+		8E6CBEEC0F7A758000D47B3A /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				8E6CBEF50F7A75CA00D47B3A /* codebook.c in Sources */,
+				8E6CBEF60F7A75CB00D47B3A /* vorbisfile.c in Sources */,
+				8E6CBEF70F7A75CB00D47B3A /* framing.c in Sources */,
+				8E6CBEF80F7A75CC00D47B3A /* ivorbisfile_example.c in Sources */,
+				8E6CBEF90F7A75CC00D47B3A /* sharedbook.c in Sources */,
+				8E6CBEFA0F7A75CD00D47B3A /* res012.c in Sources */,
+				8E6CBEFB0F7A75CE00D47B3A /* synthesis.c in Sources */,
+				8E6CBEFC0F7A75CF00D47B3A /* window.c in Sources */,
+				8E6CBEFD0F7A75D400D47B3A /* floor0.c in Sources */,
+				8E6CBEFE0F7A75D700D47B3A /* mdct.c in Sources */,
+				8E6CBEFF0F7A75D700D47B3A /* floor1.c in Sources */,
+				8E6CBF000F7A75D800D47B3A /* mapping0.c in Sources */,
+				8E6CBF010F7A75D900D47B3A /* registry.c in Sources */,
+				8E6CBF020F7A75DA00D47B3A /* block.c in Sources */,
+				8E6CBF030F7A75DB00D47B3A /* info.c in Sources */,
+				8E6CBF040F7A75DC00D47B3A /* bitwise.c in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
 		8EDF3EC90F6BDA0000F54643 /* Sources */ = {
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
@@ -4049,6 +4345,11 @@
 			target = 5018F24C0DFDEAC400C013A5 /* cocos2d */;
 			targetProxy = 50DB1BB30E1C1E5900A89DFF /* PBXContainerItemProxy */;
 		};
+		8E6CBF320F7A78F800D47B3A /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = 8E6CBEEE0F7A758000D47B3A /* vorbis */;
+			targetProxy = 8E6CBF310F7A78F800D47B3A /* PBXContainerItemProxy */;
+		};
 		8EDF3EAA0F6BDA0000F54643 /* PBXTargetDependency */ = {
 			isa = PBXTargetDependency;
 			target = 5018F24C0DFDEAC400C013A5 /* cocos2d */;
@@ -5383,6 +5684,33 @@
 			};
 			name = Release;
 		};
+		8E6CBEF00F7A758100D47B3A /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_TREAT_WARNINGS_AS_ERRORS = NO;
+				PREBINDING = NO;
+				PRODUCT_NAME = vorbis;
+			};
+			name = Debug;
+		};
+		8E6CBEF10F7A758100D47B3A /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				COPY_PHASE_STRIP = YES;
+				DEBUG_INFORMATION_FORMAT = &quot;dwarf-with-dsym&quot;;
+				GCC_ENABLE_FIX_AND_CONTINUE = NO;
+				GCC_TREAT_WARNINGS_AS_ERRORS = NO;
+				PREBINDING = NO;
+				PRODUCT_NAME = vorbis;
+				ZERO_LINK = NO;
+			};
+			name = Release;
+		};
 		8EDF3ED60F6BDA0000F54643 /* Debug */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
@@ -5390,7 +5718,7 @@
 				CODE_SIGN_IDENTITY = &quot;iPhone Developer&quot;;
 				COPY_PHASE_STRIP = NO;
 				GCC_DYNAMIC_NO_PIC = NO;
-				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_OPTIMIZATION_LEVEL = 2;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;
 				GCC_PREFIX_HEADER = &quot;$(SYSTEM_LIBRARY_DIR)/Frameworks/UIKit.framework/Headers/UIKit.h&quot;;
 				GCC_THUMB_SUPPORT = NO;
@@ -5419,6 +5747,7 @@
 				COPY_PHASE_STRIP = YES;
 				DEBUG_INFORMATION_FORMAT = &quot;dwarf-with-dsym&quot;;
 				GCC_ENABLE_FIX_AND_CONTINUE = NO;
+				GCC_OPTIMIZATION_LEVEL = 2;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;
 				GCC_PREFIX_HEADER = &quot;$(SYSTEM_LIBRARY_DIR)/Frameworks/UIKit.framework/Headers/UIKit.h&quot;;
 				GCC_THUMB_SUPPORT = NO;
@@ -5432,7 +5761,7 @@
 					UIKit,
 				);
 				PREBINDING = NO;
-				PRODUCT_NAME = StreakTest;
+				PRODUCT_NAME = SoundEngineTest;
 				SDKROOT = iphoneos2.0;
 				ZERO_LINK = NO;
 			};
@@ -5755,6 +6084,15 @@
 			defaultConfigurationIsVisible = 0;
 			defaultConfigurationName = Release;
 		};
+		8E6CBEF20F7A759F00D47B3A /* Build configuration list for PBXNativeTarget &quot;vorbis&quot; */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				8E6CBEF00F7A758100D47B3A /* Debug */,
+				8E6CBEF10F7A758100D47B3A /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
 		8EDF3ED50F6BDA0000F54643 /* Build configuration list for PBXNativeTarget &quot;SoundEngineTest (experimental)&quot; */ = {
 			isa = XCConfigurationList;
 			buildConfigurations = (</diff>
      <filename>cocos2d-iphone.xcodeproj/project.pbxproj</filename>
    </modified>
    <modified>
      <diff>@@ -21,6 +21,8 @@
 #import &quot;PASoundSource.h&quot;
 #import &quot;PASoundMgr.h&quot;
 #import &quot;PASoundListener.h&quot;
+#import &quot;ivorbiscodec.h&quot;
+#import &quot;ivorbisfile.h&quot;
 
 #define kSoundReferenceDistance 20.0f
 
@@ -130,7 +132,7 @@ Exit:
 - (void)initBuffer {
 	ALenum  error = AL_NO_ERROR;
 	ALenum  format;
-	ALvoid* data;
+	ALvoid* data = NULL;
 	ALsizei size;
 	ALsizei freq;
 	
@@ -139,15 +141,66 @@ Exit:
 	// get some audio data from a wave file
 	CFURLRef fileURL = (CFURLRef)[[NSURL fileURLWithPath:[bundle pathForResource:self.file ofType:self.extension]] retain];
 	
-	if (fileURL)
-	{	
-		data = MyGetOpenALAudioData(fileURL, &amp;size, &amp;format, &amp;freq);
-		CFRelease(fileURL);
+	if (fileURL) {
         
-		if((error = alGetError()) != AL_NO_ERROR) {
+        // load buffer data based on the file format guessed from the extension
+        if ([self.extension isEqualToString:@&quot;wav&quot;]) {
+            // WAV
+            data = MyGetOpenALAudioData(fileURL, &amp;size, &amp;format, &amp;freq);            
+        } else if ([self.extension isEqualToString:@&quot;ogg&quot;]) {
+            // OGG
+            NSString *fsPath = [(NSURL *)fileURL path];
+            FILE *fh;
+            if ((fh = fopen([fsPath UTF8String], &quot;r&quot;)) != NULL) {
+                // open ogg file
+                OggVorbis_File vf;
+                int eof = 0;
+                int current_section;
+                
+                if(ov_open(fh, &amp;vf, NULL, 0) &lt; 0) {
+                    fprintf(stderr,&quot;Input does not appear to be an Ogg bitstream.\n&quot;);
+                    exit(1);
+                }
+                
+                // get meta info (sample rate &amp; mono/stereo format)
+                vorbis_info *vi = ov_info(&amp;vf,-1);
+                freq = (ALsizei)vi-&gt;rate;
+                format = (vi-&gt;channels == 1) ? AL_FORMAT_MONO16 : AL_FORMAT_STEREO16;
+                
+                // decode data
+                size = 0;
+                const int buffSize = 4096;
+                while(!eof){
+                    char tempBuff[buffSize];
+                    int ret = ov_read(&amp;vf, tempBuff, buffSize, &amp;current_section);
+                    if (ret == 0) {
+                        eof = 1;
+                    } else if (ret &gt; 0) {
+                        void *newData = (char *)malloc(size + ret);
+                        if (data) memcpy(newData, data, size);
+                        memcpy(newData + size, tempBuff, ret);
+                        if (data) free(data);
+                        data = newData;
+                        size += ret;
+                    }
+                }
+
+                // close ogg file
+                ov_clear(&amp;vf);
+            } else {
+                fprintf(stderr,&quot;Could not open file.\n&quot;);
+                exit(1);
+            }
+            fclose(fh);
+        }
+		
+        CFRelease(fileURL);
+        
+        if((error = alGetError()) != AL_NO_ERROR) {
 			printf(&quot;error loading sound: %x\n&quot;, error);
 			exit(1);
 		}
+        
 		alGenBuffers(1, &amp;buffer);
         alBufferData(buffer, format, data, size, freq);
 		free(data);
@@ -194,25 +247,6 @@ Exit:
     alSourcef(source, AL_PITCH, factor);
 }
 
-/*
-- (void)play {
-    ALint state;
-    alGetSourcei(source, AL_SOURCE_STATE, &amp;state);
-    if (state != AL_PLAYING) {
-        alGetError();
-        ALenum error;
-        [self setGain:gain];
-        alSourcePlay(source);
-        if((error = alGetError()) != AL_NO_ERROR) {
-            printf(&quot;error starting source: %x\n&quot;, error);
-        } else {
-            // Mark our state as playing (the view looks at this)
-            self.isPlaying = YES;
-        }        
-    }
-}
-*/
-
 // play messages
 - (void)playAtPosition:(cpVect)p restart:(BOOL)r {
     cpVect currentPos = [self position];</diff>
      <filename>experimental/sound-engine/PASoundSource.m</filename>
    </modified>
    <modified>
      <diff>@@ -32,6 +32,7 @@
     
     PASoundSource *source1;
     PASoundSource *source2;
+    PASoundSource *bgTrack;
 }
 
 - (void)selectedBackForwardMenuItem:(id)sender;</diff>
      <filename>experimental/sound-engine/sound-engine-sample/SoundEngineTest.h</filename>
    </modified>
    <modified>
      <diff>@@ -34,6 +34,11 @@
         // preload interface-like sounds
         [[PASoundMgr sharedSoundManager] addSound:@&quot;clank&quot; withPosition:cpv(160,240) looped:NO];
         [[PASoundMgr sharedSoundManager] addSound:@&quot;chicken&quot; withPosition:cpv(160,240) looped:NO];
+        bgTrack = [[PASoundMgr sharedSoundManager] addSound:@&quot;trance-loop&quot; withExtension:@&quot;ogg&quot; position:cpvzero looped:YES];
+        
+        // lower music track volume and play it
+        [bgTrack setGain:0.3f];
+        [bgTrack playAtListenerPosition];
 
         Label *info = [Label labelWithString:@&quot;Tap and move your finger to update\nthe listener's position.&quot; dimensions:CGSizeMake(320, 40) alignment:UITextAlignmentCenter fontName:@&quot;TrebuchetMS-Bold&quot; fontSize:14];
         [self addChild:info z:1];
@@ -57,7 +62,7 @@
         listenerSprite.position = cpv(160,240);
         
         // set first sound source (static waterfall)
-        source1 = [[PASoundSource alloc] initWithFile:@&quot;waterfall&quot; extension:@&quot;caf&quot; looped:YES];
+        source1 = [[PASoundSource alloc] initWithFile:@&quot;waterfall&quot; looped:YES];
         source1Sprite = [Sprite spriteWithFile:@&quot;source-marker.png&quot;];
         [self addChild:source1Sprite z:0];
         source1Sprite.position = cpv(50,100);
@@ -96,6 +101,9 @@
     
     // update the chicken's sound source position with the moving sprite's position
     [source2 playAtPosition:source2Sprite.position];
+    
+    // update bg. track with listener position
+    [bgTrack playAtListenerPosition];
 }
 
 - (BOOL)ccTouchesMoved:(NSSet *)touches withEvent:(UIEvent *)event</diff>
      <filename>experimental/sound-engine/sound-engine-sample/SoundEngineTest.m</filename>
    </modified>
    <modified>
      <diff>@@ -1,10 +1,14 @@
 Samples used from Freesound
 
+    March 26, 2009
+        By -zin- (http://www.freesound.org/usersViewSingle.php?id=209299)
+            trance_pulse_2_140bpm.wav (http://www.freesound.org/samplesViewSingle.php?id=32257) -- as trance_loop.ogg
+   ---------------------------------------
     March 14, 2009
         By edwin_p_manchester (http://www.freesound.org/usersViewSingle.php?id=1978)
-            04.wav (http://www.freesound.org/samplesViewSingle.php?id=3216)
+            04.wav (http://www.freesound.org/samplesViewSingle.php?id=3216) -- as clank.wav
         By gelo_papas (http://www.freesound.org/usersViewSingle.php?id=309509)
-            Chicken Clucking.wav (http://www.freesound.org/samplesViewSingle.php?id=49805)
+            Chicken Clucking.wav (http://www.freesound.org/samplesViewSingle.php?id=49805) -- as chicken.wav
         By volivieri (http://www.freesound.org/usersViewSingle.php?id=374422)
-            small_water_fall_in_the_woods_2.wav (http://www.freesound.org/samplesViewSingle.php?id=38390)
+            small_water_fall_in_the_woods_2.wav (http://www.freesound.org/samplesViewSingle.php?id=38390) -- as waterfall.wav &amp; waterfall.caf
    ---------------------------------------
\ No newline at end of file</diff>
      <filename>experimental/sound-engine/sound-engine-sample/sfx/ATTRIBUTION</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>b8d6c8e83cc5d69a3f9649bc51accc712868f55f</id>
    </parent>
  </parents>
  <author>
    <name>dumitrescu</name>
    <email>dumitrescu@79afc9a6-2f50-0410-804d-6f1bdedaafc9</email>
  </author>
  <url>http://github.com/nullstyle/cocos2d-iphone/commit/1b5597e16a84bd4d1cf3212d801a5306c9197d8f</url>
  <id>1b5597e16a84bd4d1cf3212d801a5306c9197d8f</id>
  <committed-date>2009-03-26T03:39:18-07:00</committed-date>
  <authored-date>2009-03-26T03:39:18-07:00</authored-date>
  <message>Sound Engine: Added support for decoding Ogg Vorbis files using Tremor. Updated sample app.

git-svn-id: http://cocos2d-iphone.googlecode.com/svn/trunk@725 79afc9a6-2f50-0410-804d-6f1bdedaafc9</message>
  <tree>9455f099b6888db70975a177ac3175bf022780dc</tree>
  <committer>
    <name>dumitrescu</name>
    <email>dumitrescu@79afc9a6-2f50-0410-804d-6f1bdedaafc9</email>
  </committer>
</commit>
