struct air_synth_data air_audio_data;
-static void audio_air_synth_get_samples( void *_data, f32 *buf, u32 count ){
+static void audio_air_synth_get_samples( void *_data, f32 *buf, u32 count )
+{
struct air_synth_data *data = _data;
SDL_AtomicLock( &data->sl );
dsp_init_biquad_butterworth_lpf( &data->lpf, f );
- for( u32 i=0; i<count; i ++ ){
+ for( u32 i=0; i<count; i ++ )
+ {
f32 v = (vg_randf64(&vg_dsp.rand) * 2.0f - 1.0f) * vol;
v = dsp_biquad_process( &data->lpf, v );
data->t += (f32)(count)/44100.0f;
};
-static audio_clip air_synth = {
+static audio_clip air_synth =
+{
.flags = k_audio_format_gen,
.size = 0,
.generative_function = audio_air_synth_get_samples,
audio_clip_loadn( audio_water, VG_ARRAY_LEN(audio_water), NULL );
audio_clip_loadn( audio_grass, VG_ARRAY_LEN(audio_grass), NULL );
audio_clip_loadn( audio_footsteps, VG_ARRAY_LEN(audio_footsteps), NULL );
- audio_clip_loadn( audio_footsteps_grass,
- VG_ARRAY_LEN(audio_footsteps_grass), NULL );
- audio_clip_loadn( audio_footsteps_wood,
- VG_ARRAY_LEN(audio_footsteps_wood), NULL );
+ audio_clip_loadn( audio_footsteps_grass, VG_ARRAY_LEN(audio_footsteps_grass), NULL );
+ audio_clip_loadn( audio_footsteps_wood, VG_ARRAY_LEN(audio_footsteps_wood), NULL );
audio_clip_loadn( audio_rewind, VG_ARRAY_LEN(audio_rewind), NULL );
audio_clip_loadn( audio_ui, VG_ARRAY_LEN(audio_ui), NULL );
audio_clip_loadn( audio_challenge, VG_ARRAY_LEN(audio_challenge), NULL );
- audio_lock();
- audio_set_lfo_wave( 0, k_lfo_polynomial_bipolar, 80.0f );
- audio_set_lfo_frequency( 0, 20.0f );
+ vg_audio_lock();
+ audio_lfo *bump_lfo = vg_audio_get_first_idle_lfo();
+ VG_ASSERT( bump_lfo );
- air_audio_data.channel = audio_get_first_idle_channel();
- if( air_audio_data.channel )
- audio_channel_init( air_audio_data.channel, &air_synth, 0 );
+ vg_audio_set_lfo_polynomial_bipolar( bump_lfo, 80.0f );
+ vg_audio_set_lfo_frequency( bump_lfo, 20.0f );
- audio_unlock();
+ air_audio_data.channel = vg_audio_get_first_idle_channel();
+ VG_ASSERT( air_audio_data.channel );
+ audio_channel_init( air_audio_data.channel, &air_synth, 0 );
+
+ vg_audio_unlock();
}
void audio_ambient_sprite_play( v3f co, audio_clip *clip )
}
void player__skate_kill_audio(void){
- audio_lock();
+ vg_audio_lock();
if( player_skate.aud_main ){
player_skate.aud_main =
audio_channel_fadeout( player_skate.aud_main, 0.1f );
player_skate.aud_slide =
audio_channel_fadeout( player_skate.aud_slide, 0.1f );
}
- audio_unlock();
+ vg_audio_unlock();
}
/*
v3_copy( state->trick_vel, state->trick_residualv );
v3_zero( state->trick_vel );
- audio_lock();
+ vg_audio_lock();
audio_oneshot_3d( &audio_flips[vg_randu32(&vg.rand)%4],
localplayer.rb.co, 40.0f, 1.0f );
- audio_unlock();
+ vg_audio_unlock();
}
else
state->trick_time += vg.time_fixed_delta / interval;
if( state->activity <= k_skate_activity_air_to_grind ){
if( trick && (state->trick_input_collect < 0.1f) ){
if( state->trick_time == 0.0f ){
- audio_lock();
+ vg_audio_lock();
audio_oneshot_3d( &audio_flips[vg_randu32(&vg.rand)%4],
localplayer.rb.co, 40.0f, 1.0f );
- audio_unlock();
+ vg_audio_unlock();
}
if( state->trick_time < 0.1f ){
state->trick_type = k_trick_type_none;
}
-void player__skate_comp_audio( void *_animator ){
+void player__skate_comp_audio( void *_animator )
+{
struct player_skate_animator *animator = _animator;
- audio_lock();
+ vg_audio_lock();
f32 air = ((animator->activity <= k_skate_activity_air_to_grind) ||
(animator->activity == k_skate_activity_handplant))? 1.0f: 0.0f,
&audio_board[5]
};
- if( (player_skate.main_sample_type != sample_type) ||
- (!player_skate.aud_main) ){
-
+ if( (player_skate.main_sample_type != sample_type) || (!player_skate.aud_main) )
+ {
player_skate.aud_main =
audio_channel_crossfade( player_skate.aud_main,
relevant_samples[sample_type],
}
}
- if( player_skate.aud_main ){
- player_skate.aud_main->colour = 0x00103efe;
- audio_channel_set_spacial( player_skate.aud_main,
- animator->root_co, 40.0f );
- //audio_channel_slope_volume( player_skate.aud_main, 0.05f, vol_main );
+ if( player_skate.lfo_bumps == NULL )
+ {
+ audio_lfo *lfo = vg_audio_get_first_idle_lfo();
+ if( lfo )
+ {
+ player_skate.lfo_bumps = lfo;
+ vg_audio_set_lfo_polynomial_bipolar( lfo, 80.0f );
+ vg_audio_set_lfo_frequency( lfo, 20.0f );
+ vg_audio_start_lfo( lfo );
+ }
+ }
+
+ if( player_skate.aud_main )
+ {
+ player_skate.aud_main->ui_colour = 0x00103efe;
+ vg_audio_channel_set_spacial_falloff( player_skate.aud_main, animator->root_co, 40.0f );
audio_channel_edit_volume( player_skate.aud_main, vol_main, 1 );
audio_channel_sidechain_lfo( player_skate.aud_main, 0, sidechain_amt );
audio_channel_edit_volume( player_skate.aud_air, vol_air, 1 );
}
- audio_unlock();
+ vg_audio_unlock();
}
void player__skate_post_update(void){
void player__skate_sfx_oneshot( u8 id, v3f pos, f32 volume )
{
- audio_lock();
+ vg_audio_lock();
if( id == k_player_skate_soundeffect_jump ){
audio_oneshot_3d( &audio_jumps[vg_randu32(&vg.rand)%2], pos, 40.0f, volume );
audio_oneshot_3d( &audio_board[8], pos, 40.0f, volume );
}
- audio_unlock();
+ vg_audio_unlock();
}