--- ../src-base/minecraft/net/minecraft/client/audio/SoundManager.java
+++ ../src-work/minecraft/net/minecraft/client/audio/SoundManager.java
@@ -36,6 +36,10 @@
 import paulscode.sound.codecs.CodecJOrbis;
 import paulscode.sound.libraries.LibraryLWJGLOpenAL;
 
+import net.minecraftforge.client.ForgeHooksClient;
+import net.minecraftforge.client.event.sound.*;
+import net.minecraftforge.common.MinecraftForge;
+
 @SideOnly(Side.CLIENT)
 public class SoundManager
 {
@@ -70,6 +74,7 @@
         {
             SoundSystemConfig.addLibrary(LibraryLWJGLOpenAL.class);
             SoundSystemConfig.setCodec("ogg", CodecJOrbis.class);
+            MinecraftForge.EVENT_BUS.post(new SoundSetupEvent(this));
         }
         catch (SoundSystemException soundsystemexception)
         {
@@ -81,6 +86,7 @@
     {
         this.func_148613_b();
         this.func_148608_i();
+        MinecraftForge.EVENT_BUS.post(new SoundLoadEvent(this));
     }
 
     private synchronized void func_148608_i()
@@ -329,6 +335,9 @@
             }
             else
             {
+                p_148611_1_ = ForgeHooksClient.playSound(this, p_148611_1_);
+                if (p_148611_1_ == null) return;
+
                 SoundEventAccessorComposite soundeventaccessorcomposite = this.field_148622_c.func_147680_a(p_148611_1_.func_147650_b());
 
                 if (soundeventaccessorcomposite == null)
@@ -370,10 +379,12 @@
                             if (soundpoolentry.func_148648_d())
                             {
                                 this.field_148620_e.newStreamingSource(false, s, func_148612_a(resourcelocation), resourcelocation.toString(), flag, p_148611_1_.func_147649_g(), p_148611_1_.func_147654_h(), p_148611_1_.func_147651_i(), p_148611_1_.func_147656_j().func_148586_a(), f1);
+                                MinecraftForge.EVENT_BUS.post(new PlayStreamingSourceEvent(this, p_148611_1_, s));
                             }
                             else
                             {
                                 this.field_148620_e.newSource(false, s, func_148612_a(resourcelocation), resourcelocation.toString(), flag, p_148611_1_.func_147649_g(), p_148611_1_.func_147654_h(), p_148611_1_.func_147651_i(), p_148611_1_.func_147656_j().func_148586_a(), f1);
+                                MinecraftForge.EVENT_BUS.post(new PlaySoundSourceEvent(this, p_148611_1_, s));
                             }
 
                             field_148621_b.debug(field_148623_a, "Playing sound {} for event {} as channel {}", new Object[] {soundpoolentry.func_148652_a(), soundeventaccessorcomposite.func_148729_c(), s});
