dont remember
authorhgn <hgodden00@gmail.com>
Sun, 26 Mar 2023 22:09:20 +0000 (23:09 +0100)
committerhgn <hgodden00@gmail.com>
Sun, 26 Mar 2023 22:09:20 +0000 (23:09 +0100)
vg_audio.h
vg_m.h

index 5b65ccbd0dc040bf03be9559cb8f8b5ec2e5e4d7..279b7f4ea57316c6c9680cf5fdf9be631ee0c8e0 100644 (file)
@@ -836,28 +836,29 @@ static void audio_channel_mix( audio_channel *ch, float *buffer )
          framevol_l = 0.0f;
          framevol_r = 0.0f;
       }
+      else{
+         v3f delta;
+         v3_sub( ch->_.spacial_falloff, vg_audio.listener_pos, delta );
 
-      v3f delta;
-      v3_sub( ch->_.spacial_falloff, vg_audio.listener_pos, delta );
+         float dist = v3_length( delta ),
+               vol  = vg_maxf( 0.0f, 1.0f - ch->_.spacial_falloff[3]*dist );
 
-      float dist = v3_length( delta ),
-            vol  = vg_maxf( 0.0f, 1.0f - ch->_.spacial_falloff[3]*dist );
+         v3_muls( delta, 1.0f/dist, delta );
+         float pan  = v3_dot( vg_audio.listener_ears, delta );
+         vol = powf( vol, 5.0f );
 
-      v3_muls( delta, 1.0f/dist, delta );
-      float pan  = v3_dot( vg_audio.listener_ears, delta );
-      vol = powf( vol, 5.0f );
+         framevol_l *= (vol * 0.5f) * (1.0f - pan);
+         framevol_r *= (vol * 0.5f) * (1.0f + pan);
 
-      framevol_l *= (vol * 0.5f) * (1.0f - pan);
-      framevol_r *= (vol * 0.5f) * (1.0f + pan);
+         v3_muls( delta, 1.0f/dist, delta );
 
-      v3_muls( delta, 1.0f/dist, delta );
-
-      const float vs = 100.0f;
-      float doppler = (vs+v3_dot(delta,vg_audio.listener_velocity))/vs;
-            doppler = vg_clampf( doppler, 0.6f, 1.4f );
-            
-      if( fabsf(doppler-1.0f) > 0.01f )
-         frame_samplerate *= doppler;
+         const float vs = 100.0f;
+         float doppler = (vs+v3_dot(delta,vg_audio.listener_velocity))/vs;
+               doppler = vg_clampf( doppler, 0.6f, 1.4f );
+               
+         if( fabsf(doppler-1.0f) > 0.01f )
+            frame_samplerate *= doppler;
+      }
    }
 
    u32 buffer_length = AUDIO_MIX_FRAME_SIZE;
diff --git a/vg_m.h b/vg_m.h
index ee8b1074ce93bad2bdc96682544225198bd350e0..4429aa71858c08995c3a4edbaf02331b4a76fbd3 100644 (file)
--- a/vg_m.h
+++ b/vg_m.h
@@ -2084,4 +2084,13 @@ static void eval_bezier_time( v3f p0, v3f p1, v3f h0, v3f h1, float t, v3f p )
    v3_muladds( p, p0, 3.0f*tt  -ttt -3.0f*t +1.0f, p );
 }
 
+static void eval_bezier3( v3f p0, v3f p1, v3f p2, float t, v3f p )
+{
+   float u = 1.0f-t;
+
+   v3_muls( p0, u*u, p );
+   v3_muladds( p, p1, 2.0f*u*t, p );
+   v3_muladds( p, p2, t*t, p );
+}
+
 #endif /* VG_M_H */