From d9e5b72041e72223f86637b792304576bcce52ad Mon Sep 17 00:00:00 2001 From: Rob Kelly Date: Mon, 18 Aug 2025 18:37:38 -0600 Subject: [PATCH] Using noise sampling for correlated randomized pitch in grunk collection sfx --- .../grunk_collection_sfx/grunk_collection_sfx.gd | 16 ++++++++++++++-- .../grunk_collection_sfx.tscn | 9 ++++----- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/src/player/grunk_collection_sfx/grunk_collection_sfx.gd b/src/player/grunk_collection_sfx/grunk_collection_sfx.gd index f76fad3..0063170 100644 --- a/src/player/grunk_collection_sfx/grunk_collection_sfx.gd +++ b/src/player/grunk_collection_sfx/grunk_collection_sfx.gd @@ -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() diff --git a/src/player/grunk_collection_sfx/grunk_collection_sfx.tscn b/src/player/grunk_collection_sfx/grunk_collection_sfx.tscn index 26e9fd6..dfdac03 100644 --- a/src/player/grunk_collection_sfx/grunk_collection_sfx.tscn +++ b/src/player/grunk_collection_sfx/grunk_collection_sfx.tscn @@ -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