config system
This commit is contained in:
parent
27b7780c86
commit
fc289e010b
2 changed files with 37 additions and 29 deletions
62
node_2d.tscn
62
node_2d.tscn
|
|
@ -9,46 +9,53 @@ script/source = "extends Node2D
|
||||||
# https://docs.godotengine.org/en/stable/classes/class_inputeventmidi.html
|
# https://docs.godotengine.org/en/stable/classes/class_inputeventmidi.html
|
||||||
# https://docs.godotengine.org/en/stable/classes/class_%40globalscope.html#enum-globalscope-midimessage
|
# https://docs.godotengine.org/en/stable/classes/class_%40globalscope.html#enum-globalscope-midimessage
|
||||||
|
|
||||||
|
|
||||||
# here, put the same values as in game config
|
# here, put the same values as in game config
|
||||||
# for example here it's configured for:
|
# for example here it's configured for:
|
||||||
# spin 1: Ch 2 Note 10, so put 2 and 10
|
# spin 1: Ch 2 Note 10, so put 2 and 10
|
||||||
# spin 2: Ch 2 Note 9, so put 2 and 9
|
# spin 2: Ch 2 Note 9, so put 2 and 9
|
||||||
# jog: Ch 2 Note 8, so put 2 and 8
|
# jog: Ch 2 Note 8, so put 2 and 8
|
||||||
# beat: Ch 3 Note 8, so put 3 and 8
|
# beat: Ch 3 Note 8, so put 3 and 8
|
||||||
var spin_channel_1: int = 2
|
# invert_turn: true by default, false if your turntable is NOT inverted
|
||||||
var spin_note_1: int = 10
|
|
||||||
|
|
||||||
var spin_channel_2: int = 2
|
|
||||||
var spin_note_2: int = 9
|
|
||||||
|
|
||||||
var jog_channel: int = 2
|
|
||||||
var jog_note: int = 8
|
|
||||||
|
|
||||||
var beat_channel: int = 3
|
|
||||||
var beat_note: int = 8
|
|
||||||
# end of config
|
|
||||||
|
|
||||||
|
|
||||||
# init values
|
|
||||||
var midi_beat: bool = false
|
|
||||||
var midi_jog: bool = false
|
|
||||||
var midi_turnleft: bool = false
|
|
||||||
var midi_turnright: bool = false
|
|
||||||
|
|
||||||
# if >0: print midi event to the console (1 for minimal logs, 2 for more logs)
|
# if >0: print midi event to the console (1 for minimal logs, 2 for more logs)
|
||||||
# if =0: the program acts normally
|
# if =0: the program acts normally
|
||||||
const debug := 0
|
const debug := 0
|
||||||
|
|
||||||
|
# load config values
|
||||||
|
var spin_channel_1 = Config.spin_channel_1
|
||||||
|
var spin_note_1 = Config.spin_note_1
|
||||||
|
var spin_channel_2 = Config.spin_channel_2
|
||||||
|
var spin_note_2 = Config.spin_note_2
|
||||||
|
var jog_channel = Config.jog_channel
|
||||||
|
var jog_note = Config.jog_note
|
||||||
|
var beat_channel = Config.beat_channel
|
||||||
|
var beat_note = Config.beat_note
|
||||||
|
var is_inverted = Config.is_inverted
|
||||||
|
|
||||||
|
# init control values
|
||||||
|
var midi_beat: bool = false
|
||||||
|
var midi_jog: bool = false
|
||||||
|
var midi_turnleft: bool = false
|
||||||
|
var midi_turnright: bool = false
|
||||||
|
var left: int = 1
|
||||||
|
var right: int = 127
|
||||||
|
|
||||||
# Called when the node enters the scene tree for the first time.
|
# Called when the node enters the scene tree for the first time.
|
||||||
func _ready():
|
func _ready():
|
||||||
|
|
||||||
# fix midi values (the game adds one to the chanels)
|
# fix midi values (the game adds one to the channel number)
|
||||||
spin_channel_1 -= 1
|
spin_channel_1 -= 1
|
||||||
spin_channel_2 -= 1
|
spin_channel_2 -= 1
|
||||||
jog_channel -= 1
|
jog_channel -= 1
|
||||||
beat_channel -= 1
|
beat_channel -= 1
|
||||||
|
|
||||||
|
# handle inverted turntable (must invert left and right values)
|
||||||
|
if is_inverted:
|
||||||
|
left = 127
|
||||||
|
right = 1
|
||||||
|
print(\"inverted!\")
|
||||||
|
|
||||||
|
# connect to the midi turntable
|
||||||
OS.open_midi_inputs()
|
OS.open_midi_inputs()
|
||||||
print(OS.get_connected_midi_inputs())
|
print(OS.get_connected_midi_inputs())
|
||||||
|
|
||||||
|
|
@ -60,12 +67,6 @@ func _unhandled_input(input_event):
|
||||||
if input_event is InputEventMIDI:
|
if input_event is InputEventMIDI:
|
||||||
if debug > 0:
|
if debug > 0:
|
||||||
_print_midi_info(input_event)
|
_print_midi_info(input_event)
|
||||||
if input_event.channel == 2 and input_event.message == 9:
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
func _input(input_event):
|
|
||||||
if input_event is InputEventMIDI:
|
|
||||||
if input_event.channel == beat_channel and ((input_event.pitch == beat_note and input_event.velocity == 127) or input_event.controller_number == 10):
|
if input_event.channel == beat_channel and ((input_event.pitch == beat_note and input_event.velocity == 127) or input_event.controller_number == 10):
|
||||||
midi_beat = true
|
midi_beat = true
|
||||||
if input_event.channel == beat_channel and ((input_event.pitch == beat_note and input_event.velocity == 0) or input_event.controller_number == 9):
|
if input_event.channel == beat_channel and ((input_event.pitch == beat_note and input_event.velocity == 0) or input_event.controller_number == 9):
|
||||||
|
|
@ -74,9 +75,9 @@ func _input(input_event):
|
||||||
midi_jog = true
|
midi_jog = true
|
||||||
if input_event.channel == jog_channel and ((input_event.pitch == jog_note and input_event.velocity == 0) or input_event.controller_number == spin_note_2):
|
if input_event.channel == jog_channel and ((input_event.pitch == jog_note and input_event.velocity == 0) or input_event.controller_number == spin_note_2):
|
||||||
midi_jog = false
|
midi_jog = false
|
||||||
if (input_event.channel == spin_channel_1 or input_event.channel == spin_channel_2) and input_event.controller_value == 127:
|
if (input_event.channel == spin_channel_1 or input_event.channel == spin_channel_2) and input_event.controller_value == left:
|
||||||
midi_turnleft = true
|
midi_turnleft = true
|
||||||
if (input_event.channel == spin_channel_1 or input_event.channel == spin_channel_2) and input_event.controller_value == 1:
|
if (input_event.channel == spin_channel_1 or input_event.channel == spin_channel_2) and input_event.controller_value == right:
|
||||||
midi_turnright = true
|
midi_turnright = true
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -114,6 +115,9 @@ func _process(_delta):
|
||||||
# trigger the right controller
|
# trigger the right controller
|
||||||
print(\"turn right\")
|
print(\"turn right\")
|
||||||
|
|
||||||
|
# reset the turn values before the next cycle
|
||||||
|
# needed because it can't be turned to false in the _unhandled_input function
|
||||||
|
# because apparently there is no MIDI command sended for that .___.
|
||||||
midi_turnleft = false
|
midi_turnleft = false
|
||||||
midi_turnright = false
|
midi_turnright = false
|
||||||
"
|
"
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,10 @@ boot_splash/bg_color=Color(1, 0, 0, 1)
|
||||||
boot_splash/show_image=false
|
boot_splash/show_image=false
|
||||||
config/icon="res://icon.svg"
|
config/icon="res://icon.svg"
|
||||||
|
|
||||||
|
[autoload]
|
||||||
|
|
||||||
|
Config="*res://config.gd"
|
||||||
|
|
||||||
[display]
|
[display]
|
||||||
|
|
||||||
window/size/viewport_width=1900
|
window/size/viewport_width=1900
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue