Skip to content

Commit 28590ca

Browse files
committed
dumping
1 parent d725e01 commit 28590ca

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+1810
-0
lines changed
+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
@tool
2+
extends EditorPlugin
3+
4+
5+
func _enter_tree():
6+
# Initialization of the plugin goes here.
7+
pass
8+
9+
10+
func _exit_tree():
11+
# Clean-up of the plugin goes here.
12+
pass
+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
extends HBoxContainer
2+
3+
var bus : Mixer.Bus
4+
#TODO init bus
5+
var finished_building = false
6+
7+
func build_meter(channel : String):
8+
var db_meter = TextureProgressBar.new()
9+
db_meter.max_value = 6
10+
db_meter.min_value = -80
11+
db_meter.size_flags_horizontal = Control.SIZE_EXPAND_FILL
12+
db_meter.fill_mode = TextureProgressBar.FILL_BOTTOM_TO_TOP
13+
db_meter.nine_patch_stretch = true
14+
db_meter.texture_progress = load("res://addons/audio_db_meter/meter/volume.tres")
15+
if channel == "L":
16+
db_meter.name = "L"
17+
else:
18+
db_meter.name = "R"
19+
add_child(db_meter)
20+
db_meter.unique_name_in_owner = true
21+
db_meter.owner = self
22+
23+
func _ready():
24+
bus = owner.bus
25+
build_meter("L")
26+
build_meter("R")
27+
finished_building = true
28+
29+
func _process(delta):
30+
if finished_building:
31+
var dB_l = AudioServer.get_bus_peak_volume_left_db(bus.index, 0)
32+
var dB_r = AudioServer.get_bus_peak_volume_right_db(bus.index, 0)
33+
if dB_l > 5:
34+
get_node("L").modulate.r = 200.0
35+
else:
36+
get_node("L").modulate.r = 1.0
37+
38+
if dB_r > 5:
39+
get_node("R").modulate.r = 200.0
40+
else:
41+
get_node("R").modulate.r = 1.0
42+
43+
44+
45+
get_node("L").value = dB_l
46+
get_node("R").value = dB_r
47+
#
+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
[gd_resource type="GradientTexture2D" load_steps=2 format=3 uid="uid://qxo6j1tb4p1o"]
2+
3+
[sub_resource type="Gradient" id="Gradient_oymdd"]
4+
offsets = PackedFloat32Array(0, 0.872549, 1)
5+
colors = PackedColorArray(0, 0.537255, 0, 1, 1, 0.768627, 0.278431, 1, 1, 0.419608, 0, 1)
6+
7+
[resource]
8+
gradient = SubResource("Gradient_oymdd")
9+
fill_from = Vector2(1, 1)

addons/audio_db_meter/plugin.cfg

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
[plugin]
2+
3+
name="audio_db_meter"
4+
description=""
5+
author=""
6+
version=""
7+
script="audio_db_meter.gd"

addons/audio_mixer/audio_mixer.gd

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
@tool
2+
extends EditorPlugin
3+
4+
5+
func _enter_tree():
6+
# Initialization of the plugin goes here.
7+
pass
8+
9+
10+
func _exit_tree():
11+
# Clean-up of the plugin goes here.
12+
pass

addons/audio_mixer/mixer.gd

+178
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,178 @@
1+
## Mixer
2+
# autoload for dynamic audio and debugging the bus system in real time.
3+
extends Node
4+
var input = AudioServer.get_input_device_list()
5+
var output = AudioServer.get_output_device_list()
6+
7+
var buses : Array[Bus]
8+
9+
10+
func instance_bus(bus : Bus):
11+
owner
12+
AudioServer.add_bus(bus.index)
13+
buses.insert(bus.index, bus)
14+
15+
func insert_bus(bus_position):
16+
AudioServer.add_bus(bus_position)
17+
var bus = Bus.new()
18+
bus.index = bus_position
19+
buses.append(bus)
20+
return bus
21+
22+
func _init():
23+
AudioServer.bus_layout_changed.connect(layout_changed)
24+
AudioServer.bus_renamed.connect(bus_renamed)
25+
add_master_bus()
26+
27+
func _ready():
28+
for bus in AudioServer.bus_count:
29+
if bus == 0:
30+
pass
31+
else:
32+
var new_bus = Bus.new()
33+
new_bus.index = bus
34+
new_bus.bus_name = AudioServer.get_bus_name(bus)
35+
new_bus.send = AudioServer.get_bus_name(bus)
36+
new_bus.persistent = true
37+
buses.append(new_bus)
38+
39+
func get_send(index):
40+
return AudioServer.get_bus_send(index)
41+
42+
43+
#
44+
func populate_buses():
45+
for bus in AudioServer.bus_count:
46+
var new_bus = add_bus()
47+
new_bus.index = bus
48+
new_bus.bus_name = AudioServer.get_bus_name(bus)
49+
new_bus.persistent = true
50+
51+
52+
func layout_changed():
53+
pass
54+
55+
56+
func bus_renamed():
57+
pass
58+
59+
func add_master_bus():
60+
var master_bus = Bus.new()
61+
master_bus.bus_name = "Master"
62+
master_bus.index = 0
63+
buses.append(master_bus)
64+
65+
func add_bus():
66+
AudioServer.add_bus(AudioServer.bus_count)
67+
#AudioServer.set_bus_name(AudioServer.bus_count, "")
68+
69+
var bus = Bus.new()
70+
bus.index = buses.size()
71+
72+
buses.append(bus)
73+
return bus
74+
75+
76+
77+
func remove_bus(bus_position):
78+
AudioServer.remove_bus(bus_position)
79+
buses.remove_at(bus_position)
80+
81+
# to be used when a random bus is removed, causing Bus.index to be incorrect...
82+
func sort_buses():
83+
var count = 0
84+
for bus in buses:
85+
bus.index = count
86+
bus.bus_name = AudioServer.get_bus_name(bus.index)
87+
count += 1
88+
89+
func save_layout(path):
90+
var layout = AudioServer.generate_bus_layout()
91+
ResourceSaver.save(layout, path)
92+
93+
func load_layout(path):
94+
var layout = load(path)
95+
AudioServer.set_bus_layout(layout)
96+
97+
func get_layout_routing():
98+
var list = []
99+
for bus in AudioServer.bus_count:
100+
list.append(AudioServer.get_bus_send(bus))
101+
return list
102+
103+
class Bus:
104+
## persistent buses are unable to be deleted
105+
var persistent = false
106+
107+
## for now just a tag for degugging purposes
108+
var spatial = false
109+
110+
var index : int # why???
111+
var bus_name : String
112+
var send := "Master" #StringName..
113+
var volume = 0 : set = volume_changed
114+
var solo = false : set = solo_toggled
115+
var mute = false : set = mute_toggled
116+
var bypass = false : set = bypass_toggled
117+
var effects : Array[AudioEffect]
118+
119+
func _init():
120+
index = AudioServer.bus_count-1
121+
bus_name = AudioServer.get_bus_name(index)
122+
123+
func volume_changed(value):
124+
AudioServer.set_bus_volume_db(index, value)
125+
volume = value
126+
127+
func move_bus(new_index):
128+
AudioServer.move_bus(index, new_index)
129+
index = new_index
130+
131+
## WARNING: buses forget send when renamed
132+
func rename_bus(new_name):
133+
#for bus in Mixer.buses:
134+
#if bus.index < index:
135+
#if bus.send == bus_name:
136+
#bus.send = new_name
137+
var send_refs = []
138+
for bus in bus_name:
139+
bus
140+
141+
AudioServer.set_bus_name(index, new_name)
142+
bus_name = new_name
143+
AudioServer.set_bus_send(index, get_send(index))
144+
145+
146+
func solo_toggled(toggled):
147+
AudioServer.set_bus_solo(index, toggled)
148+
solo = toggled
149+
func mute_toggled(toggled):
150+
AudioServer.set_bus_mute(index, toggled)
151+
mute = toggled
152+
func bypass_toggled(toggled):
153+
AudioServer.set_bus_bypass_effects(index, toggled)
154+
bypass = toggled
155+
156+
func effect_toggled(toggled, effect_index):
157+
AudioServer.set_bus_effect_enabled(index, effect_index, toggled)
158+
159+
func add_effect(effect : AudioEffect):
160+
AudioServer.add_bus_effect(index, effect) #,at position??
161+
effects.append(effect)
162+
163+
func remove_effect(effect_index):
164+
AudioServer.remove_bus_effect(index, effect_index)
165+
166+
func get_send(index):
167+
return AudioServer.get_bus_send(index)
168+
169+
func set_send(bus_name):
170+
AudioServer.set_bus_send(index, bus_name)
171+
send = bus_name
172+
173+
func send_bus_index(idx):
174+
AudioServer.set_bus_send(index, AudioServer.get_bus_name(idx))
175+
send = AudioServer.get_bus_send(idx)
176+
177+
178+

addons/audio_mixer/mixer_bus.gd

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# to be added as a child to mixer.gd a node representation of a single audio bus + effects
2+
class_name MixerBus
3+
extends Node
4+
5+
@export var bus_index : int #: set = move_bus
6+
@export var bus_name := ""
7+
@export var bus_routing := "Master"
8+
9+
@export var effects : Array[AudioEffect]
10+
11+
@export var solo = false
12+
@export var mute = false
13+
@export var bypass = false
14+
15+
16+
17+
18+

addons/audio_mixer/plugin.cfg

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
[plugin]
2+
name="AudioMixer"
3+
description="a live preview of the audio buses and effects."
4+
author="ys"
5+
version=""
6+
script="audio_mixer.gd"
7+
8+
[requirements]
9+
some_lib, some_other_lib
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
@tool
2+
extends EditorPlugin
3+
4+
5+
func _enter_tree():
6+
# Initialization of the plugin goes here.
7+
pass
8+
9+
10+
func _exit_tree():
11+
# Clean-up of the plugin goes here.
12+
pass

addons/audio_mixer_control/barlow.ttf

94.9 KB
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
[remap]
2+
3+
importer="font_data_dynamic"
4+
type="FontFile"
5+
uid="uid://djsydx7kqwa0k"
6+
path="res://.godot/imported/barlow.ttf-64d4df9eeb539e14553050b1ffe2912d.fontdata"
7+
8+
[deps]
9+
10+
source_file="res://addons/audio_mixer_control/barlow.ttf"
11+
dest_files=["res://.godot/imported/barlow.ttf-64d4df9eeb539e14553050b1ffe2912d.fontdata"]
12+
13+
[params]
14+
15+
Rendering=null
16+
antialiasing=1
17+
generate_mipmaps=false
18+
disable_embedded_bitmaps=true
19+
multichannel_signed_distance_field=false
20+
msdf_pixel_range=8
21+
msdf_size=48
22+
allow_system_fallback=true
23+
force_autohinter=false
24+
hinting=1
25+
subpixel_positioning=1
26+
oversampling=0.0
27+
Fallbacks=null
28+
fallbacks=[]
29+
Compress=null
30+
compress=true
31+
preload=[]
32+
language_support={}
33+
script_support={}
34+
opentype_features={}

0 commit comments

Comments
 (0)