refactor: not overlaping keyboard and midi
Clang Lint CI / lint-no-video (push) Successful in 1m0s
Clang Build CI / run-no-video (push) Successful in 1m0s
Clang Build CI / run-video (push) Successful in 1m1s
Clang Build CI / build-release (push) Successful in 1m56s
Clang Lint CI / lint-video (push) Successful in 1m59s

This commit is contained in:
2026-05-14 22:27:39 +02:00
parent 28b87d316a
commit 6abf050bcc
16 changed files with 499 additions and 420 deletions
+102 -99
View File
@@ -66,8 +66,8 @@ UNIFORM_IN_RESOLUTION_PREFIX=iInputResolution
# --- uniform vec3 ---
# Midi group X layer Y (beware of group size)
# Injected as "iMidiX_Y[Z]"
UNIFORM_MIDI_PREFIX=iMidi
# Injected as "iGroupX_Y[Z]"
UNIFORM_GROUP_PREFIX=iGroup
# --- uniform sampler2D ---
@@ -134,10 +134,17 @@ FRAG_OUTPUT=9
FRAG_MONITOR=10
# ========
# MIDI I/O
# ========
# ==========
# I/O Inputs
# ==========
# Each code either maps to a midi event or a key code
# 1 - 999 -> midi event
# 1001 - 1999 -> key code
# Keyboard modifiers are encoded like this:
# 10000 -> shift
# 100000 -> control
# 1000000 -> alt
# This means 111082 is control+alt+R
# The recognized ALSA name of the midi device
MIDI_HW=hw:CARD=nanoKONTROL2
@@ -193,8 +200,8 @@ SELECT_ITEM_3=42
SELECT_ITEM_4=41
SELECT_ITEM_5=45
# === MIDI INPUT STATES
# Midi inputs will control FORGE's state as follows
# === GROUP INPUT STATES
# Inputs will control FORGE's state as follows
# X groups of Y layers sized Z
# You can manipulate only 1 layer at a time
# Every layer of every groups will be send as uniforms
@@ -202,72 +209,72 @@ SELECT_ITEM_5=45
# with the same codes for nice display
# Total number of groups
MIDI_COUNT=3
GROUP_COUNT=3
# Total number of layers of group 1
MIDI_1_ACTIVE_COUNT=2
GROUP_1_ACTIVE_COUNT=2
# Midi codes to change layer of group 1
MIDI_1_ACTIVE_1=32
MIDI_1_ACTIVE_2=64
GROUP_1_ACTIVE_1=32
GROUP_1_ACTIVE_2=64
# Size of group 1
MIDI_1_COUNT=6
GROUP_1_COUNT=6
# Every code of active layer manipulation of group 1
MIDI_1_1_X=33
MIDI_1_1_Y=49
MIDI_1_1_Z=65
MIDI_1_2_X=1
MIDI_1_2_Y=17
MIDI_1_2_Z=
MIDI_1_3_X=34
MIDI_1_3_Y=50
MIDI_1_3_Z=66
MIDI_1_4_X=2
MIDI_1_4_Y=18
MIDI_1_4_Z=
MIDI_1_5_X=35
MIDI_1_5_Y=51
MIDI_1_5_Z=67
MIDI_1_6_X=3
MIDI_1_6_Y=19
MIDI_1_6_Z=
GROUP_1_1_X=33
GROUP_1_1_Y=49
GROUP_1_1_Z=65
GROUP_1_2_X=1
GROUP_1_2_Y=17
GROUP_1_2_Z=
GROUP_1_3_X=34
GROUP_1_3_Y=50
GROUP_1_3_Z=66
GROUP_1_4_X=2
GROUP_1_4_Y=18
GROUP_1_4_Z=
GROUP_1_5_X=35
GROUP_1_5_Y=51
GROUP_1_5_Z=67
GROUP_1_6_X=3
GROUP_1_6_Y=19
GROUP_1_6_Z=
# Same for group 2
MIDI_2_ACTIVE_COUNT=3
MIDI_2_ACTIVE_1=36
MIDI_2_ACTIVE_2=68
MIDI_2_ACTIVE_3=52
MIDI_2_COUNT=7
MIDI_2_1_X=37
MIDI_2_1_Y=53
MIDI_2_1_Z=69
MIDI_2_2_X=5
MIDI_2_2_Y=21
MIDI_2_2_Z=
MIDI_2_3_X=38
MIDI_2_3_Y=54
MIDI_2_3_Z=70
MIDI_2_4_X=6
MIDI_2_4_Y=22
MIDI_2_4_Z=
MIDI_2_5_X=39
MIDI_2_5_Y=55
MIDI_2_5_Z=71
MIDI_2_6_X=7
MIDI_2_6_Y=23
MIDI_2_6_Z=
MIDI_2_7_X=4
MIDI_2_7_Y=20
MIDI_2_7_Z=59
GROUP_2_ACTIVE_COUNT=3
GROUP_2_ACTIVE_1=36
GROUP_2_ACTIVE_2=68
GROUP_2_ACTIVE_3=52
GROUP_2_COUNT=7
GROUP_2_1_X=37
GROUP_2_1_Y=53
GROUP_2_1_Z=69
GROUP_2_2_X=5
GROUP_2_2_Y=21
GROUP_2_2_Z=
GROUP_2_3_X=38
GROUP_2_3_Y=54
GROUP_2_3_Z=70
GROUP_2_4_X=6
GROUP_2_4_Y=22
GROUP_2_4_Z=
GROUP_2_5_X=39
GROUP_2_5_Y=55
GROUP_2_5_Z=71
GROUP_2_6_X=7
GROUP_2_6_Y=23
GROUP_2_6_Z=
GROUP_2_7_X=4
GROUP_2_7_Y=20
GROUP_2_7_Z=59
# Same for group 3
MIDI_3_COUNT=2
MIDI_3_1_X=48
MIDI_3_1_Y=58
MIDI_3_1_Z=
MIDI_3_2_X=0
MIDI_3_2_Y=16
MIDI_3_2_Z=
GROUP_3_COUNT=2
GROUP_3_1_X=48
GROUP_3_1_Y=58
GROUP_3_1_Z=
GROUP_3_2_X=0
GROUP_3_2_Y=16
GROUP_3_2_Z=
# =====
# OTHER
@@ -279,55 +286,51 @@ SAVE_FILE_PREFIX=forge_default_save
# === HOTKEYS
# You can change the default keycodes used on runtime
# Modifiers are encoded like this:
# 1000 -> shift
# 10000 -> control
# 100000 -> alt
# This means 110082 is control+alt+R
# R on (qwerty)
HOTKEY_RANDOMIZE=82
KEY_RANDOMIZE=1082
# SHIFT+R (qwerty)
HOTKEY_RESET=1082
KEY_RESET=11082
# D (qwerty)
HOTKEY_DEMO=68
KEY_DEMO=1068
# A (qwerty)
HOTKEY_AUTORAND=65
KEY_AUTORAND=1065
# Left arrow
HOTKEY_AUTORAND_DOWN=263
KEY_AUTORAND_DOWN=1263
# Right arrow
HOTKEY_AUTORAND_UP=262
KEY_AUTORAND_UP=1262
# Down arrow
HOTKEY_TEMPO_DOWN=264
KEY_TEMPO_DOWN=1264
# Up arrow
HOTKEY_TEMPO_UP=265
KEY_TEMPO_UP=1265
# Number of load states keys
HOTKEY_LOAD_COUNT=10
KEY_LOAD_COUNT=10
# 1 to 9 then 0 keys
HOTKEY_LOAD_1=49
HOTKEY_LOAD_2=50
HOTKEY_LOAD_3=51
HOTKEY_LOAD_4=52
HOTKEY_LOAD_5=53
HOTKEY_LOAD_6=54
HOTKEY_LOAD_7=55
HOTKEY_LOAD_8=56
HOTKEY_LOAD_9=57
HOTKEY_LOAD_10=48
KEY_LOAD_1=1049
KEY_LOAD_2=1050
KEY_LOAD_3=1051
KEY_LOAD_4=1052
KEY_LOAD_5=1053
KEY_LOAD_6=1054
KEY_LOAD_7=1055
KEY_LOAD_8=1056
KEY_LOAD_9=1057
KEY_LOAD_10=1048
# Number of save states keys
HOTKEY_SAVE_COUNT=10
KEY_SAVE_COUNT=10
# 1 to 9 then 0 keys with shift
HOTKEY_SAVE_1=1049
HOTKEY_SAVE_2=1050
HOTKEY_SAVE_3=1051
HOTKEY_SAVE_4=1052
HOTKEY_SAVE_5=1053
HOTKEY_SAVE_6=1054
HOTKEY_SAVE_7=1055
HOTKEY_SAVE_8=1056
HOTKEY_SAVE_9=1057
HOTKEY_SAVE_10=1048
KEY_SAVE_1=11049
KEY_SAVE_2=11050
KEY_SAVE_3=11051
KEY_SAVE_4=11052
KEY_SAVE_5=11053
KEY_SAVE_6=11054
KEY_SAVE_7=11055
KEY_SAVE_8=11056
KEY_SAVE_9=11057
KEY_SAVE_10=11048