Add a way to select samples from folder
This commit is contained in:
parent
5c06bde646
commit
404b09d236
|
@ -17,6 +17,7 @@ script/source = "extends Spatial
|
|||
onready var RandomAudioStreamPlayer3D = $Orbit/Sprite3D/RandomAudioStreamPlayer3D
|
||||
|
||||
func _ready():
|
||||
randomize()
|
||||
$Timer.start(.3)
|
||||
|
||||
func _on_Timer_timeout():
|
||||
|
@ -24,7 +25,7 @@ func _on_Timer_timeout():
|
|||
$Timer.start(.3)
|
||||
"
|
||||
|
||||
[sub_resource type="Animation" id=3]
|
||||
[sub_resource type="Animation" id=2]
|
||||
resource_name = "Orbit"
|
||||
length = 5.0
|
||||
loop = true
|
||||
|
@ -52,6 +53,7 @@ billboard = 1
|
|||
texture = ExtResource( 9 )
|
||||
|
||||
[node name="RandomAudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="Orbit/Sprite3D"]
|
||||
unit_db = 10.0
|
||||
script = ExtResource( 12 )
|
||||
samples = [ ExtResource( 7 ), ExtResource( 3 ), ExtResource( 5 ), ExtResource( 4 ), ExtResource( 6 ), ExtResource( 8 ), ExtResource( 2 ), ExtResource( 1 ) ]
|
||||
random_strategy = 2
|
||||
|
@ -66,6 +68,6 @@ fov = 90.0
|
|||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
autoplay = "Orbit"
|
||||
anims/Orbit = SubResource( 3 )
|
||||
anims/Orbit = SubResource( 2 )
|
||||
|
||||
[connection signal="timeout" from="Timer" to="." method="_on_Timer_timeout"]
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
tool
|
||||
extends AudioStreamPlayer
|
||||
|
||||
export(Array, AudioStream) var samples
|
||||
export(Array, AudioStream) var samples = []
|
||||
export(String, DIR) var select_samples_from_folder setget load_samples_from_folder
|
||||
export(int, "Pure", "No consecutive repetition", "Use all samples before repeat") var random_strategy = 0
|
||||
onready var base_volume = volume_db
|
||||
export(float, 0, 80) var random_volume_range = 0
|
||||
|
@ -48,3 +49,20 @@ func set_volume_db(new_volume_db):
|
|||
|
||||
func set_pitch_scale(new_pitch):
|
||||
base_pitch = new_pitch
|
||||
|
||||
func load_samples_from_folder(path):
|
||||
if path != "":
|
||||
samples.clear()
|
||||
var dir = Directory.new()
|
||||
if dir.open(path) == OK:
|
||||
dir.list_dir_begin(true)
|
||||
var file_name = dir.get_next()
|
||||
while file_name != "":
|
||||
if not dir.current_is_dir():
|
||||
if file_name.to_lower().ends_with(".wav") or file_name.to_lower().ends_with(".ogg"):
|
||||
print(dir.get_current_dir() + "/" + file_name)
|
||||
var resource = ResourceLoader.load(dir.get_current_dir() + "/" + file_name)
|
||||
print(resource)
|
||||
samples.append(resource)
|
||||
file_name = dir.get_next()
|
||||
select_samples_from_folder = ""
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
tool
|
||||
extends AudioStreamPlayer2D
|
||||
|
||||
export(Array, AudioStream) var samples
|
||||
export(Array, AudioStream) var samples = []
|
||||
export(String, DIR) var select_samples_from_folder setget load_samples_from_folder
|
||||
export(int, "Pure", "No consecutive repetition", "Use all samples before repeat") var random_strategy = 0
|
||||
onready var base_volume = volume_db
|
||||
export(float, 0, 80) var random_volume_range = 0
|
||||
|
@ -48,3 +49,20 @@ func set_volume_db(new_volume_db):
|
|||
|
||||
func set_pitch_scale(new_pitch):
|
||||
base_pitch = new_pitch
|
||||
|
||||
func load_samples_from_folder(path):
|
||||
if path != "":
|
||||
samples.clear()
|
||||
var dir = Directory.new()
|
||||
if dir.open(path) == OK:
|
||||
dir.list_dir_begin(true)
|
||||
var file_name = dir.get_next()
|
||||
while file_name != "":
|
||||
if not dir.current_is_dir():
|
||||
if file_name.to_lower().ends_with(".wav") or file_name.to_lower().ends_with(".ogg"):
|
||||
print(dir.get_current_dir() + "/" + file_name)
|
||||
var resource = ResourceLoader.load(dir.get_current_dir() + "/" + file_name)
|
||||
print(resource)
|
||||
samples.append(resource)
|
||||
file_name = dir.get_next()
|
||||
select_samples_from_folder = ""
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
tool
|
||||
extends AudioStreamPlayer3D
|
||||
|
||||
export(Array, AudioStream) var samples
|
||||
export(Array, AudioStream) var samples = []
|
||||
export(String, DIR) var select_samples_from_folder setget load_samples_from_folder
|
||||
export(int, "Pure", "No consecutive repetition", "Use all samples before repeat") var random_strategy = 0
|
||||
onready var base_volume = unit_db
|
||||
export(float, 0, 80) var random_volume_range = 0
|
||||
|
@ -48,3 +49,20 @@ func set_unit_db(new_unit_db):
|
|||
|
||||
func set_pitch_scale(new_pitch):
|
||||
base_pitch = new_pitch
|
||||
|
||||
func load_samples_from_folder(path):
|
||||
if path != "":
|
||||
samples.clear()
|
||||
var dir = Directory.new()
|
||||
if dir.open(path) == OK:
|
||||
dir.list_dir_begin(true)
|
||||
var file_name = dir.get_next()
|
||||
while file_name != "":
|
||||
if not dir.current_is_dir():
|
||||
if file_name.to_lower().ends_with(".wav") or file_name.to_lower().ends_with(".ogg"):
|
||||
print(dir.get_current_dir() + "/" + file_name)
|
||||
var resource = ResourceLoader.load(dir.get_current_dir() + "/" + file_name)
|
||||
print(resource)
|
||||
samples.append(resource)
|
||||
file_name = dir.get_next()
|
||||
select_samples_from_folder = ""
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
Copyright (c) 2020 Tim Krief.
|
||||
|
||||
Walking sound effects by Tim Krief are licensed under a Creative
|
||||
Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
|
||||
Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) License.
|
||||
|
|
Loading…
Reference in New Issue