Try godot effects buses
This commit is contained in:
parent
6f0f6fa1a2
commit
b1cd7b9d7e
|
@ -1,8 +1,100 @@
|
|||
[gd_resource type="AudioBusLayout" load_steps=2 format=2]
|
||||
[gd_resource type="AudioBusLayout" load_steps=4 format=2]
|
||||
|
||||
[sub_resource type="AudioEffectCompressor" id=1]
|
||||
[sub_resource type="AudioEffectCompressor" id=3]
|
||||
resource_name = "Compressor"
|
||||
|
||||
[sub_resource type="AudioEffectPanner" id=1]
|
||||
resource_name = "Panner"
|
||||
|
||||
[sub_resource type="AudioEffectDelay" id=2]
|
||||
resource_name = "Delay"
|
||||
|
||||
[resource]
|
||||
bus/0/effect/0/effect = SubResource( 1 )
|
||||
bus/0/effect/0/effect = SubResource( 3 )
|
||||
bus/0/effect/0/enabled = true
|
||||
bus/1/name = "BGM"
|
||||
bus/1/solo = false
|
||||
bus/1/mute = false
|
||||
bus/1/bypass_fx = false
|
||||
bus/1/volume_db = 0.0
|
||||
bus/1/send = "Master"
|
||||
bus/2/name = "BGM0"
|
||||
bus/2/solo = false
|
||||
bus/2/mute = false
|
||||
bus/2/bypass_fx = false
|
||||
bus/2/volume_db = 0.0
|
||||
bus/2/send = "BGM"
|
||||
bus/2/effect/0/effect = SubResource( 1 )
|
||||
bus/2/effect/0/enabled = true
|
||||
bus/2/effect/1/effect = SubResource( 2 )
|
||||
bus/2/effect/1/enabled = true
|
||||
bus/3/name = "BGM1"
|
||||
bus/3/solo = false
|
||||
bus/3/mute = false
|
||||
bus/3/bypass_fx = false
|
||||
bus/3/volume_db = 0.0
|
||||
bus/3/send = "BGM"
|
||||
bus/3/effect/0/effect = SubResource( 1 )
|
||||
bus/3/effect/0/enabled = true
|
||||
bus/3/effect/1/effect = SubResource( 2 )
|
||||
bus/3/effect/1/enabled = true
|
||||
bus/4/name = "BGM2"
|
||||
bus/4/solo = false
|
||||
bus/4/mute = false
|
||||
bus/4/bypass_fx = false
|
||||
bus/4/volume_db = 0.0
|
||||
bus/4/send = "BGM"
|
||||
bus/4/effect/0/effect = SubResource( 1 )
|
||||
bus/4/effect/0/enabled = true
|
||||
bus/4/effect/1/effect = SubResource( 2 )
|
||||
bus/4/effect/1/enabled = true
|
||||
bus/5/name = "BGM3"
|
||||
bus/5/solo = false
|
||||
bus/5/mute = false
|
||||
bus/5/bypass_fx = false
|
||||
bus/5/volume_db = 0.0
|
||||
bus/5/send = "BGM"
|
||||
bus/5/effect/0/effect = SubResource( 1 )
|
||||
bus/5/effect/0/enabled = true
|
||||
bus/5/effect/1/effect = SubResource( 2 )
|
||||
bus/5/effect/1/enabled = true
|
||||
bus/6/name = "BGM4"
|
||||
bus/6/solo = false
|
||||
bus/6/mute = false
|
||||
bus/6/bypass_fx = false
|
||||
bus/6/volume_db = 0.0
|
||||
bus/6/send = "BGM"
|
||||
bus/6/effect/0/effect = SubResource( 1 )
|
||||
bus/6/effect/0/enabled = true
|
||||
bus/6/effect/1/effect = SubResource( 2 )
|
||||
bus/6/effect/1/enabled = true
|
||||
bus/7/name = "BGM5"
|
||||
bus/7/solo = false
|
||||
bus/7/mute = false
|
||||
bus/7/bypass_fx = false
|
||||
bus/7/volume_db = 0.0
|
||||
bus/7/send = "BGM"
|
||||
bus/7/effect/0/effect = SubResource( 1 )
|
||||
bus/7/effect/0/enabled = true
|
||||
bus/7/effect/1/effect = SubResource( 2 )
|
||||
bus/7/effect/1/enabled = true
|
||||
bus/8/name = "BGM6"
|
||||
bus/8/solo = false
|
||||
bus/8/mute = false
|
||||
bus/8/bypass_fx = false
|
||||
bus/8/volume_db = 0.0
|
||||
bus/8/send = "BGM"
|
||||
bus/8/effect/0/effect = SubResource( 1 )
|
||||
bus/8/effect/0/enabled = true
|
||||
bus/8/effect/1/effect = SubResource( 2 )
|
||||
bus/8/effect/1/enabled = true
|
||||
bus/9/name = "BGM7"
|
||||
bus/9/solo = false
|
||||
bus/9/mute = false
|
||||
bus/9/bypass_fx = false
|
||||
bus/9/volume_db = 0.0
|
||||
bus/9/send = "BGM"
|
||||
bus/9/effect/0/effect = SubResource( 1 )
|
||||
bus/9/effect/0/enabled = true
|
||||
bus/9/effect/1/effect = SubResource( 2 )
|
||||
bus/9/effect/1/enabled = true
|
||||
|
|
|
@ -35,7 +35,7 @@ HTML5="*res://scripts/managers/HTML5.gd"
|
|||
|
||||
[debug]
|
||||
|
||||
settings/fps/force_fps=60
|
||||
settings/fps/force_fps=120
|
||||
gdscript/warnings/unused_variable=false
|
||||
gdscript/warnings/integer_division=false
|
||||
|
||||
|
|
|
@ -54,6 +54,7 @@ func _init(tracks: Array, instrument_map: Dictionary):
|
|||
for i in num_tracks:
|
||||
self.players.append(AudioStreamPlayer.new())
|
||||
add_child(self.players[-1])
|
||||
self.players[-1].bus = 'BGM%d' % i
|
||||
self.channel_pointer.append(0)
|
||||
self.channel_instrument_idx.append(0)
|
||||
self.channel_next_pulse.append(0)
|
||||
|
@ -83,6 +84,13 @@ func _init(tracks: Array, instrument_map: Dictionary):
|
|||
self.channel_pitchmod_on.append(0)
|
||||
self.channel_echo_on.append(0)
|
||||
self.channel_echo_volume.append(0)
|
||||
var panner: AudioEffectPanner = AudioServer.get_bus_effect(i+2, 0)
|
||||
panner.set_pan(0.0)
|
||||
var delay: AudioEffectDelay = AudioServer.get_bus_effect(i+2, 1)
|
||||
delay.set_dry(1.0)
|
||||
delay.set_tap1_active(false)
|
||||
delay.set_tap2_active(false)
|
||||
delay.set_feedback_active(false)
|
||||
|
||||
func play_channel(channel: int, time_offset: float = 0.0) -> int:
|
||||
# Executes the track events until it hits a note/rest, in which case it returns the pulse count to the next action, or the end of the events, in which case it returns -1
|
||||
|
@ -117,9 +125,11 @@ func play_channel(channel: int, time_offset: float = 0.0) -> int:
|
|||
self.channel_velocity[channel] = event[2]
|
||||
EventType.PAN: # TODO: implement slides
|
||||
self.channel_pan[channel] = event[1]
|
||||
AudioServer.get_bus_effect(channel+2, 0).set_pan(1.0 - event[1]/127.0)
|
||||
EventType.PAN_SLIDE: # TODO: implement slides
|
||||
var slide_duration: int = event[1]
|
||||
self.channel_pan[channel] = event[2]
|
||||
AudioServer.get_bus_effect(channel+2, 0).set_pan(1.0 - event[2]/127.0)
|
||||
EventType.PITCH_SLIDE: # TODO: implement slides
|
||||
var slide_duration: int = event[1]
|
||||
var target_pitch: int = event[2] # Signed
|
||||
|
|
Loading…
Reference in New Issue