Using noise sampling for correlated randomized pitch in grunk collection sfx
All checks were successful
linting & formatting / build (push) Successful in 33s

This commit is contained in:
Rob Kelly 2025-08-18 18:37:38 -06:00
parent bbb8a1e231
commit d9e5b72041
2 changed files with 18 additions and 7 deletions

View File

@ -9,10 +9,13 @@ extends AudioStreamPlayer
@export var counter_decay := 40.0
@export var pitch_variance := 0.15
@export var noise_rate := 0.01
@export var noise: Noise
var _counter := 0.0
@onready var cooldown: Timer = %Cooldown
@onready var debug_meter: ProgressBar = %DebugMeter
func _ready() -> void:
@ -26,9 +29,18 @@ func on_grunk_collected(delta: float) -> void:
delta -= _counter
_counter = interval
var delay := randfn(delay_mean, delay_st_dev)
get_tree().create_timer(delay).timeout.connect(play)
get_tree().create_timer(delay).timeout.connect(play_random)
_counter -= delta
func _process(delta: float) -> void:
_counter = move_toward(_counter, 0.0, counter_decay * delta)
func play_random() -> void:
var noise_sample := clampf(
2 * noise.get_noise_1d(Engine.get_process_frames() * noise_rate), -1, 1
)
pitch_scale = 1.0 + (pitch_variance * noise_sample)
print_debug("noise: ", noise_sample)
play()

View File

@ -3,15 +3,14 @@
[ext_resource type="AudioStream" uid="uid://cof6pg6yadsac" path="res://assets/sfx/tools/collect5.wav" id="1_y7it3"]
[ext_resource type="Script" uid="uid://dwt66u7ua1to4" path="res://src/player/grunk_collection_sfx/grunk_collection_sfx.gd" id="5_ihwko"]
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_y7it3"]
random_pitch = 1.2
streams_count = 1
stream_0/stream = ExtResource("1_y7it3")
[sub_resource type="FastNoiseLite" id="FastNoiseLite_y7it3"]
[node name="GrunkCollectionSFX" type="AudioStreamPlayer"]
stream = SubResource("AudioStreamRandomizer_y7it3")
stream = ExtResource("1_y7it3")
volume_db = -6.0
script = ExtResource("5_ihwko")
noise_rate = 1.0
noise = SubResource("FastNoiseLite_y7it3")
[node name="Cooldown" type="Timer" parent="."]
unique_name_in_owner = true