Add midi device select.
This commit is contained in:
parent
2198e87aaa
commit
bc5358c0f6
9 changed files with 240 additions and 131 deletions
|
@ -40,6 +40,9 @@ var volumeSensitivity = 0.0
|
|||
var volumeLimit = 0.0
|
||||
var senseLimit = 0.0
|
||||
|
||||
# Midi
|
||||
var currentMidiDevices = []
|
||||
|
||||
#Speak Signals
|
||||
signal startSpeaking
|
||||
signal stopSpeaking
|
||||
|
|
41
main_scenes/MidiInputSelect.gd
Normal file
41
main_scenes/MidiInputSelect.gd
Normal file
|
@ -0,0 +1,41 @@
|
|||
extends MenuButton
|
||||
|
||||
var popup = self.get_popup()
|
||||
|
||||
var available_devices = []
|
||||
|
||||
|
||||
func _ready():
|
||||
popup.hide_on_checkable_item_selection = false
|
||||
popup.connect("index_pressed", toggle_checked)
|
||||
available_devices = OS.get_connected_midi_inputs()
|
||||
|
||||
print("midiinputselect ready" + str(available_devices))
|
||||
Global.currentMidiDevices = available_devices # Listen to all devices by default
|
||||
|
||||
|
||||
func _on_about_to_popup():
|
||||
popup.clear(true)
|
||||
available_devices = OS.get_connected_midi_inputs() # update every open
|
||||
|
||||
for i in range(len(available_devices)):
|
||||
popup.add_check_item(available_devices[i])
|
||||
var already_checked = available_devices[i] in Global.currentMidiDevices
|
||||
|
||||
popup.set_item_checked(i, already_checked)
|
||||
|
||||
update_checked_items()
|
||||
|
||||
|
||||
func toggle_checked(index: int):
|
||||
popup.set_item_checked(index, not popup.is_item_checked(index))
|
||||
update_checked_items()
|
||||
|
||||
|
||||
func update_checked_items():
|
||||
var checked_items = []
|
||||
for i in range(popup.get_item_count()):
|
||||
if popup.is_item_checked(i):
|
||||
checked_items.append(popup.get_item_text(i))
|
||||
|
||||
Global.currentMidiDevices = checked_items
|
|
@ -64,7 +64,7 @@ func _ready():
|
|||
ElgatoStreamDeck.on_key_down.connect(changeCostumeStreamDeck)
|
||||
|
||||
OS.open_midi_inputs()
|
||||
# print(OS.get_connected_midi_inputs())
|
||||
Global.currentMidiDevices = OS.get_connected_midi_inputs()
|
||||
|
||||
if Saving.settings["newUser"]:
|
||||
_on_load_dialog_file_selected("default")
|
||||
|
@ -331,7 +331,6 @@ func _on_load_dialog_file_selected(path):
|
|||
sprite.offset = str_to_var(data[item]["offset"])
|
||||
sprite.z = data[item]["zindex"]
|
||||
sprite.dragSpeed = data[item]["drag"]
|
||||
|
||||
sprite.useMidiWobble = data[item]["useMidiWobble"]
|
||||
sprite.xFrq = data[item]["xFrq"]
|
||||
sprite.xAmp = data[item]["xAmp"]
|
||||
|
|
File diff suppressed because one or more lines are too long
4
midi.svg
Normal file
4
midi.svg
Normal file
|
@ -0,0 +1,4 @@
|
|||
<svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg" fill="white">
|
||||
<path
|
||||
d="m12 2a10 10 0 0 1 10 10 10 10 0 0 1 -10 10 10 10 0 0 1 -10-10 10 10 0 0 1 10-10m8.18 10c0-3.82-2.63-7.04-6.18-7.93v1.93h-4v-1.93c-3.55.89-6.18 4.11-6.18 7.93a8.18 8.18 0 0 0 8.18 8.18 8.18 8.18 0 0 0 8.18-8.18m-13.18-1.36a1.36 1.36 0 0 1 1.36 1.36 1.36 1.36 0 0 1 -1.36 1.36c-.75 0-1.36-.61-1.36-1.36s.61-1.36 1.36-1.36m10 0a1.36 1.36 0 0 1 1.36 1.36 1.36 1.36 0 0 1 -1.36 1.36 1.36 1.36 0 0 1 -1.36-1.36 1.36 1.36 0 0 1 1.36-1.36m-8.64 3.63a1.37 1.37 0 0 1 1.37 1.37c0 .75-.61 1.36-1.37 1.36a1.36 1.36 0 0 1 -1.36-1.36c0-.76.61-1.37 1.36-1.37m7.28 0c.75 0 1.36.61 1.36 1.37a1.36 1.36 0 0 1 -1.36 1.36c-.76 0-1.37-.61-1.37-1.36a1.37 1.37 0 0 1 1.37-1.37m-3.64 1.37a1.36 1.36 0 0 1 1.36 1.36 1.36 1.36 0 0 1 -1.36 1.36 1.36 1.36 0 0 1 -1.36-1.36 1.36 1.36 0 0 1 1.36-1.36z" />
|
||||
</svg>
|
After Width: | Height: | Size: 891 B |
37
midi.svg.import
Normal file
37
midi.svg.import
Normal file
|
@ -0,0 +1,37 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cauhghrw3sv2r"
|
||||
path="res://.godot/imported/midi.svg-c263547cda7da4e037f0b6bf02e57d99.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://midi.svg"
|
||||
dest_files=["res://.godot/imported/midi.svg-c263547cda7da4e037f0b6bf02e57d99.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
svg/scale=1.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
|
@ -23,6 +23,7 @@ config/icon="res://icon.png"
|
|||
[audio]
|
||||
|
||||
driver/enable_input=true
|
||||
driver/mix_rate=48000
|
||||
|
||||
[autoload]
|
||||
|
||||
|
|
|
@ -162,7 +162,11 @@ func _ready():
|
|||
|
||||
|
||||
func _input(event):
|
||||
if self.useMidiWobble and event is InputEventMIDI:
|
||||
if not self.useMidiWobble or not event is InputEventMIDI:
|
||||
return
|
||||
|
||||
var device = OS.get_connected_midi_inputs()[event.device]
|
||||
if device in Global.currentMidiDevices:
|
||||
match event.message:
|
||||
MIDIMessage.MIDI_MESSAGE_START:
|
||||
tick = 0
|
||||
|
@ -339,7 +343,9 @@ func drag(delta):
|
|||
if dragSpeed == 0:
|
||||
dragger.global_position = wob.global_position
|
||||
else:
|
||||
dragger.global_position = lerp(dragger.global_position, wob.global_position, 1 / dragSpeed)
|
||||
dragger.global_position = lerp(
|
||||
dragger.global_position, wob.global_position, 1.0 / dragSpeed
|
||||
)
|
||||
dragOrigin.global_position = dragger.global_position
|
||||
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
Loading…
Add table
Add a link
Reference in a new issue