diff --git a/default_bus_layout.tres b/default_bus_layout.tres index b3ee015..80e615e 100644 --- a/default_bus_layout.tres +++ b/default_bus_layout.tres @@ -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 diff --git a/project.godot b/project.godot index bb192e5..1eae034 100644 --- a/project.godot +++ b/project.godot @@ -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 diff --git a/scripts/MusicPlayer.gd b/scripts/MusicPlayer.gd index eb5fb38..df1f185 100644 --- a/scripts/MusicPlayer.gd +++ b/scripts/MusicPlayer.gd @@ -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