1ccd0c19da8a8b3e0032ffb0446c543dd6c96155
- Author
- 3araht <69518343+3araht@users.noreply.github.com>
- Committer
- GitHub <noreply@github.com>
- Date
Message
Diff
This diff is truncated to protect this page.
1diff --git a/keyboards/giabalanai/config.h b/keyboards/giabalanai/config.h
2new file mode 100644
3index 0000000000000000000000000000000000000000..efad053aaeb7eb597198188fc691cf2d711cee4f
4--- /dev/null
5+++ b/keyboards/giabalanai/config.h
6@@ -0,0 +1,294 @@
7+/*
8+Copyright 2020 3araht
9+
10+This program is free software: you can redistribute it and/or modify
11+it under the terms of the GNU General Public License as published by
12+the Free Software Foundation, either version 2 of the License, or
13+(at your option) any later version.
14+
15+This program is distributed in the hope that it will be useful,
16+but WITHOUT ANY WARRANTY; without even the implied warranty of
17+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18+GNU General Public License for more details.
19+
20+You should have received a copy of the GNU General Public License
21+along with this program. If not, see <http://www.gnu.org/licenses/>.
22+*/
23+
24+#pragma once
25+
26+#include "config_common.h"
27+
28+/* key matrix size */
29+#define MATRIX_ROWS 12
30+#define MATRIX_COLS 10
31+
32+/*
33+ * Keyboard Matrix Assignments
34+ *
35+ * Change this to how you wired your keyboard
36+ * COLS: AVR pins used for columns, left to right
37+ * ROWS: AVR pins used for rows, top to bottom
38+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
39+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
40+ *
41+ */
42+#define MATRIX_ROW_PINS { B5, B4, E6, D7, C6, D4 }
43+#define MATRIX_COL_PINS { B1, F7, F6, F5, F4, B3, B2, B6, D0, D1 }
44+#define MATRIX_ROW_PINS_RIGHT { D1, D0, D4, C6, D7, E6 }
45+#define MATRIX_COL_PINS_RIGHT { F4, F5, F6, F7, B1, B3, B2, C7, B7, F1 }
46+
47+/* COL2ROW, ROW2COL */
48+#define DIODE_DIRECTION COL2ROW
49+
50+/*
51+ * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
52+ */
53+#define SOFT_SERIAL_PIN D2
54+#define SELECT_SOFT_SERIAL_SPEED 1
55+/*Sets the protocol speed when using serial communication*/
56+//Speeds:
57+//0: about 189kbps (Experimental only)
58+//1: about 137kbps (default)
59+//2: about 75kbps
60+//3: about 39kbps
61+//4: about 26kbps
62+//5: about 20kbps
63+
64+// Right side has to be the master since 1, LED data is output from right side, and 2, Audio pin is prepared on right side as a reserve.
65+#define MASTER_RIGHT
66+
67+// for "Generic" Promicro to be detected correctly as lefthand side (slave)
68+#define SPLIT_USB_DETECT
69+
70+//#define BACKLIGHT_PIN B7
71+//#define BACKLIGHT_LEVELS 3
72+//#define BACKLIGHT_BREATHING
73+
74+/* ws2812 RGB LED */
75+#define RGB_DI_PIN D3
76+
77+#ifdef RGBLIGHT_ENABLE
78+# define RGBLED_NUM 123
79+
80+// Do not define "RGBLED_SPLIT" since somehow it doesn't work well yet.
81+// Even thhough "#define RGBLED_SPLIT { 60, 63 }" was set, LEDs on the sub keyboad side didn't turn on.
82+// Not sure but rgblight_sethsv_at() might not support RGBLED_SPLIT yet.
83+// Instead, LED data is tranferred from right side to the left via TRRS cable.
84+
85+# define RGBLIGHT_LIMIT_VAL 80
86+# define RGBLIGHT_LAYERS
87+
88+// By default, LEDs of the buttons which are pressed turn on.
89+// # define RGBLIGHT_EFFECT_TWINKLE
90+// # define RGBLIGHT_EFFECT_KNIGHT
91+
92+
93+// RGBLIGHT LED MAP
94+// Right 1st row (12 LEDs)
95+// ENCODER
96+// Right 2nd .. 5th row(13, 12, 13, 12 LEDs)
97+// Left 1st .. 5th row (12 LEDs x 5 rows)
98+
99+# define RGBLIGHT_LED_MAP { \
100+ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, \
101+ 97, \
102+ 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, \
103+ 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, \
104+ 110, 109, 108, 107, 106, 105, 104, 103, 102, 101, 100, 99, 98, \
105+ 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, \
106diff --git a/keyboards/giabalanai/giabalanai.c b/keyboards/giabalanai/giabalanai.c
107new file mode 100644
108index 0000000000000000000000000000000000000000..6f8e359479a62ffc548945b4b02458b43ad3d1e7
109--- /dev/null
110+++ b/keyboards/giabalanai/giabalanai.c
111@@ -0,0 +1,255 @@
112+/* Copyright 2020 3araht
113+ *
114+ * This program is free software: you can redistribute it and/or modify
115+ * it under the terms of the GNU General Public License as published by
116+ * the Free Software Foundation, either version 2 of the License, or
117+ * (at your option) any later version.
118+ *
119+ * This program is distributed in the hope that it will be useful,
120+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
121+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
122+ * GNU General Public License for more details.
123+ *
124+ * You should have received a copy of the GNU General Public License
125+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
126+ */
127+
128+#include "giabalanai.h"
129+
130+// the velocity difference from the velocity of the root note.
131+#define UNISON_VELOCITY_OFFSET 30
132+
133+#ifdef RGBLIGHT_ENABLE
134+# define NO_LED 255
135+/* Conversion map from keylocation (MATRIX_ROWS x2(split) x MATRIX_COLS) to led IDs.
136+ led IDs are the number starts "0" from upper left corner of left side,
137+ enumerated from left to right, from top to bottom.
138+ Then emumeration follows to the right side, starting from "60".
139+
140+ Note that the conversion from physical LED serial alighment to
141+ the led IDs is done with RGBLIGHT_LED_MAP beforehand. */
142+
143+# ifdef GIABARINAIX2
144+const uint8_t PROGMEM convert_key_to_led[] =
145+{
146+ 0, 12, 24, 36, 48, 11, 23, 35, 47, 59,
147+ 1, 13, 25, 37, 49, 10, 22, 34, 46, 58,
148+ 2, 14, 26, 38, 50, 9, 21, 33, 45, 57,
149+ 3, 15, 27, 39, 51, 8, 20, 32, 44, 56,
150+ 4, 16, 28, 40, 52, 7, 19, 31, 43, 55,
151+ 5, 17, 29, 41, 53, 6, 18, 30, 42, 54,
152+ 119, 107, 95, 83, 71, 108, 96, 84, 72, 60,
153+ 118, 106, 94, 82, 70, 109, 97, 85, 73, 61,
154+ 117, 105, 93, 81, 69, 110, 98, 86, 74, 62,
155+ 116, 104, 92, 80, 68, 111, 99, 87, 75, 63,
156+ 115, 103, 91, 79, 67, 112, 100, 88, 76, 64,
157+ 114, 102, 90, 78, 66, 113, 101, 89, 77, 65
158+};
159+
160+# else
161+const uint8_t PROGMEM convert_key_to_led[] =
162+{
163+0, 12, 24, 36, 48, 11, 23, 35, 47, 59,
164+1, 13, 25, 37, 49, 10, 22, 34, 46, 58,
165+2, 14, 26, 38, 50, 9, 21, 33, 45, 57,
166+3, 15, 27, 39, 51, 8, 20, 32, 44, 56,
167+4, 16, 28, 40, 52, 7, 19, 31, 43, 55,
168+5, 17, 29, 41, 53, 6, 18, 30, 42, 54,
169+
170+85, 86, 87, 88, 89, 90, 91, NO_LED, NO_LED, NO_LED,
171+98, 99, 100, 101, 102, 103, 104, NO_LED, NO_LED, NO_LED,
172+NO_LED, 111, 112, 113, 114, 115, 116, NO_LED, NO_LED, NO_LED,
173+NO_LED, 97, 96, 95, 94, 93, 92, NO_LED, NO_LED, NO_LED,
174+NO_LED, 110, 109, 108, 107, 106, 105, NO_LED, NO_LED, NO_LED,
175+NO_LED, 122, 121, 120, 119, 118, 117, NO_LED, NO_LED, NO_LED
176+};
177+
178+/* Top 2 rows on the right side (LED:60-84) are
179+ duplicates of the bottom 2 rows (LED:85-122).
180+ LED:97 = Encoder,
181+ LED:110 don't have a duplicate on the top row,
182+ LED:72 is used when r20 is pressed (not a duplicate) */
183+const uint8_t PROGMEM convert_key_to_led2[] =
184+{
185+NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED,
186+NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED,
187+NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED,
188+NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED,
189+NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED,
190+NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED,
191+
192+NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED,
193+60, 61, 62, 63, 64, 65, 66, NO_LED, NO_LED, NO_LED,
194+72, 73, 74, 75, 76, 77, 78, NO_LED, NO_LED, NO_LED,
195+NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED,
196+NO_LED, NO_LED, 71, 70, 69, 68, 67, NO_LED, NO_LED, NO_LED,
197+NO_LED, 84, 83, 82, 81, 80, 79, NO_LED, NO_LED, NO_LED
198+};
199+# endif
200+#endif // RGBLIGHT_ENABLE
201+
202+#ifdef RGB_MATRIX_ENABLE
203+
204+led_config_t g_led_config = {
205+ {
206+ { 74, 75, 98, 99, 122, 63, 86, 87, 110, 111 },
207+ { 73, 76, 97, 100, 121, 64, 85, 88, 109, 112 },
208+ { 72, 77, 96, 101, 120, 65, 84, 89, 108, 113 },
209+ { 71, 78, 95, 102, 119, 66, 83, 90, 107, 114 },
210+ { 70, 79, 94, 103, 118, 67, 82, 91, 106, 115 },
211diff --git a/keyboards/giabalanai/giabalanai.h b/keyboards/giabalanai/giabalanai.h
212new file mode 100644
213index 0000000000000000000000000000000000000000..df4759f00fb7668385e7ed1e1858db54438c1a8c
214--- /dev/null
215+++ b/keyboards/giabalanai/giabalanai.h
216@@ -0,0 +1,132 @@
217+/* Copyright 2020 3araht
218+ *
219+ * This program is free software: you can redistribute it and/or modify
220+ * it under the terms of the GNU General Public License as published by
221+ * the Free Software Foundation, either version 2 of the License, or
222+ * (at your option) any later version.
223+ *
224+ * This program is distributed in the hope that it will be useful,
225+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
226+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
227+ * GNU General Public License for more details.
228+ *
229+ * You should have received a copy of the GNU General Public License
230+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
231+ */
232+
233+#pragma once
234+
235+#include "quantum.h"
236+
237+/* This is a shortcut to help you visually see your layout.
238+ *
239+ * The first section contains all of the arguments representing the physical
240+ * layout of the board and position of the keys.
241+ *
242+ * The second converts the arguments into a two-dimensional array which
243+ * represents the switch matrix.
244+ */
245+#define LAYOUT( \
246+ l00, l01, l02, l03, l04, l05, l06, l07, l08, l09, l0a, l0b, \
247+ l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l1a, l1b, \
248+ l20, l21, l22, l23, l24, l25, l26, l27, l28, l29, l2a, l2b, \
249+ l30, l31, l32, l33, l34, l35, l36, l37, l38, l39, l3a, l3b, \
250+ l40, l41, l42, l43, l44, l45, l46, l47, l48, l49, l4a, l4b, \
251+ \
252+ r20, \
253+ r00, r01, r02, r03, r04, r05, r06, r07, r08, r09, r0a, r0b, renc, \
254+ r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r1a, r1b, r1c, \
255+ r21, r22, r23, r24, r25, r26, r27, r28, r29, r2a, r2b, r2c \
256+) { \
257+ { l00, l10, l20, l30, l40, l0b, l1b, l2b, l3b, l4b }, \
258+ { l01, l11, l21, l31, l41, l0a, l1a, l2a, l3a, l4a }, \
259+ { l02, l12, l22, l32, l42, l09, l19, l29, l39, l49 }, \
260+ { l03, l13, l23, l33, l43, l08, l18, l28, l38, l48 }, \
261+ { l04, l14, l24, l34, l44, l07, l17, l27, l37, l47 }, \
262+ { l05, l15, l25, l35, l45, l06, l16, l26, l36, l46 }, \
263+ \
264+ { r00, r01, r02, r03, r04, r05, r06, KC_NO, KC_NO, KC_NO }, \
265+ { r10, r11, r12, r13, r14, r15, r16, KC_NO, KC_NO, KC_NO }, \
266+ { r20, r21, r22, r23, r24, r25, r26, KC_NO, KC_NO, KC_NO }, \
267+ { KC_NO, renc, r0b, r0a, r09, r08, r07, KC_NO, KC_NO, KC_NO }, \
268+ { KC_NO, r1c, r1b, r1a, r19, r18, r17, KC_NO, KC_NO, KC_NO }, \
269+ { KC_NO, r2c, r2b, r2a, r29, r28, r27, KC_NO, KC_NO, KC_NO } \
270+}
271+
272+#define LAYOUT_giabarinaix2( \
273+ l00, l01, l02, l03, l04, l05, l06, l07, l08, l09, l0a, l0b, \
274+ l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l1a, l1b, \
275+ l20, l21, l22, l23, l24, l25, l26, l27, l28, l29, l2a, l2b, \
276+ l30, l31, l32, l33, l34, l35, l36, l37, l38, l39, l3a, l3b, \
277+ l40, l41, l42, l43, l44, l45, l46, l47, l48, l49, l4a, l4b, \
278+ \
279+ r00, r01, r02, r03, r04, r05, r06, r07, r08, r09, r0a, r0b, \
280+ r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r1a, r1b, \
281+ r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r2a, r2b, \
282+ r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r3a, r3b, \
283+ r40, r41, r42, r43, r44, r45, r46, r47, r48, r49, r4a, r4b \
284+) { \
285+ { l00, l10, l20, l30, l40, l0b, l1b, l2b, l3b, l4b }, \
286+ { l01, l11, l21, l31, l41, l0a, l1a, l2a, l3a, l4a }, \
287+ { l02, l12, l22, l32, l42, l09, l19, l29, l39, l49 }, \
288+ { l03, l13, l23, l33, l43, l08, l18, l28, l38, l48 }, \
289+ { l04, l14, l24, l34, l44, l07, l17, l27, l37, l47 }, \
290+ { l05, l15, l25, l35, l45, l06, l16, l26, l36, l46 }, \
291+ \
292+ { r4b, r3b, r2b, r1b, r0b, r40, r30, r20, r10, r00 }, \
293+ { r4a, r3a, r2a, r1a, r0a, r41, r31, r21, r11, r01 }, \
294+ { r49, r39, r29, r19, r09, r42, r32, r22, r12, r02 }, \
295+ { r48, r38, r28, r18, r08, r43, r33, r23, r13, r03 }, \
296+ { r47, r37, r27, r17, r07, r44, r34, r24, r14, r04 }, \
297+ { r46, r36, r26, r16, r06, r45, r35, r25, r15, r05 } \
298+}
299+
300+
301+#define _________________QWERTY_L1_________________ KC_Q, KC_W, KC_E, KC_R, KC_T
302+#define _________________QWERTY_L2_________________ KC_A, KC_S, KC_D, KC_F, KC_G
303+#define _________________QWERTY_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B
304+
305+#define _________________QWERTY_R1_________________ KC_Y, KC_U, KC_I, KC_O, KC_P
306+#define _________________QWERTY_R2_________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN
307+#define _________________QWERTY_R3_________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH
308+
309+#define _________________COLEMAK_L1________________ KC_Q, KC_W, KC_F, KC_P, KC_G
310+#define _________________COLEMAK_L2________________ KC_A, KC_R, KC_S, KC_T, KC_D
311+#define _________________COLEMAK_L3________________ KC_Z, KC_X, KC_C, KC_V, KC_B
312+
313+#define _________________COLEMAK_R1________________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN
314+#define _________________COLEMAK_R2________________ KC_H, KC_N, KC_E, KC_I, KC_O
315+#define _________________COLEMAK_R3________________ KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH
316diff --git a/keyboards/giabalanai/info.json b/keyboards/giabalanai/info.json
317new file mode 100644
318index 0000000000000000000000000000000000000000..b0b52b4ab8dfcf369843dc2e5e7ebb2e31bc5e56
319--- /dev/null
320+++ b/keyboards/giabalanai/info.json
321@@ -0,0 +1,125 @@
322+{
323+ "keyboard_name": "giabalanai",
324+ "manufacturer": "3araht",
325+ "url": "https://github.com/3araht",
326+ "maintainer": "3araht",
327+ "usb": {
328+ "vid": "0xFEED",
329+ "pid": "0xF4B0",
330+ "device_version": "0.0.1"
331+ },
332+ "layouts": {
333+ "LAYOUT": {
334+ "layout": [
335+ {"label": "l00", "x": 0, "y": 0},
336+ {"label": "l01", "x": 1, "y": 0},
337+ {"label": "l02", "x": 2, "y": 0},
338+ {"label": "l03", "x": 3, "y": 0},
339+ {"label": "l04", "x": 4, "y": 0},
340+ {"label": "l05", "x": 5, "y": 0},
341+ {"label": "l06", "x": 6, "y": 0},
342+ {"label": "l07", "x": 7, "y": 0},
343+ {"label": "l08", "x": 8, "y": 0},
344+ {"label": "l09", "x": 9, "y": 0},
345+ {"label": "l0a", "x": 10, "y": 0},
346+ {"label": "l0b", "x": 11, "y": 0},
347+
348+ {"label": "l10", "x": 0.5, "y": 1},
349+ {"label": "l11", "x": 1.5, "y": 1},
350+ {"label": "l12", "x": 2.5, "y": 1},
351+ {"label": "l13", "x": 3.5, "y": 1},
352+ {"label": "l14", "x": 4.5, "y": 1},
353+ {"label": "l15", "x": 5.5, "y": 1},
354+ {"label": "l16", "x": 6.5, "y": 1},
355+ {"label": "l17", "x": 7.5, "y": 1},
356+ {"label": "l18", "x": 8.5, "y": 1},
357+ {"label": "l19", "x": 9.5, "y": 1},
358+ {"label": "l1a", "x": 10.5, "y": 1},
359+ {"label": "l1b", "x": 11.5, "y": 1},
360+
361+ {"label": "r20", "x": 14.5, "y": 1},
362+
363+ {"label": "l20", "x": 1, "y": 2},
364+ {"label": "l21", "x": 2, "y": 2},
365+ {"label": "l22", "x": 3, "y": 2},
366+ {"label": "l23", "x": 4, "y": 2},
367+ {"label": "l24", "x": 5, "y": 2},
368+ {"label": "l25", "x": 6, "y": 2},
369+ {"label": "l26", "x": 7, "y": 2},
370+ {"label": "l27", "x": 8, "y": 2},
371+ {"label": "l28", "x": 9, "y": 2},
372+ {"label": "l29", "x": 10, "y": 2},
373+ {"label": "l2a", "x": 11, "y": 2},
374+ {"label": "l2b", "x": 12, "y": 2},
375+
376+ {"label": "r00", "x": 15, "y": 2},
377+ {"label": "r01", "x": 16, "y": 2},
378+ {"label": "r02", "x": 17, "y": 2},
379+ {"label": "r03", "x": 18, "y": 2},
380+ {"label": "r04", "x": 19, "y": 2},
381+ {"label": "r05", "x": 20, "y": 2},
382+ {"label": "r06", "x": 21, "y": 2},
383+ {"label": "r07", "x": 22, "y": 2},
384+ {"label": "r08", "x": 23, "y": 2},
385+ {"label": "r09", "x": 24, "y": 2},
386+ {"label": "r0a", "x": 25, "y": 2},
387+ {"label": "r0b", "x": 26, "y": 2},
388+
389+ {"label": "renc", "x": 27.5, "y": 2},
390+
391+ {"label": "l30", "x": 1.5, "y": 3},
392+ {"label": "l31", "x": 2.5, "y": 3},
393+ {"label": "l32", "x": 3.5, "y": 3},
394+ {"label": "l33", "x": 4.5, "y": 3},
395+ {"label": "l34", "x": 5.5, "y": 3},
396+ {"label": "l35", "x": 6.5, "y": 3},
397+ {"label": "l36", "x": 7.5, "y": 3},
398+ {"label": "l37", "x": 8.5, "y": 3},
399+ {"label": "l38", "x": 9.5, "y": 3},
400+ {"label": "l39", "x": 10.5, "y": 3},
401+ {"label": "l3a", "x": 11.5, "y": 3},
402+ {"label": "l3b", "x": 12.5, "y": 3},
403+
404+ {"label": "r10", "x": 14.5, "y": 3},
405+ {"label": "r11", "x": 15.5, "y": 3},
406+ {"label": "r12", "x": 16.5, "y": 3},
407+ {"label": "r13", "x": 17.5, "y": 3},
408+ {"label": "r14", "x": 18.5, "y": 3},
409+ {"label": "r15", "x": 19.5, "y": 3},
410+ {"label": "r16", "x": 20.5, "y": 3},
411+ {"label": "r17", "x": 21.5, "y": 3},
412+ {"label": "r18", "x": 22.5, "y": 3},
413+ {"label": "r19", "x": 23.5, "y": 3},
414+ {"label": "r1a", "x": 24.5, "y": 3},
415+ {"label": "r1b", "x": 25.5, "y": 3},
416+ {"label": "r1c", "x": 26.5, "y": 3},
417+
418+ {"label": "l40", "x": 2, "y": 4},
419+ {"label": "l41", "x": 3, "y": 4},
420+ {"label": "l42", "x": 4, "y": 4},
421diff --git a/keyboards/giabalanai/keymaps/2firmware/config.h b/keyboards/giabalanai/keymaps/2firmware/config.h
422new file mode 100644
423index 0000000000000000000000000000000000000000..a9c772adefe8cf0fc7669a86741ff4febd611bbe
424--- /dev/null
425+++ b/keyboards/giabalanai/keymaps/2firmware/config.h
426@@ -0,0 +1,9 @@
427+#pragma once
428+
429+//#define USE_MATRIX_I2C
430+
431+/* Select hand configuration */
432+
433+// #define MASTER_LEFT
434+// #define MASTER_RIGHT
435+#define EE_HANDS
436diff --git a/keyboards/giabalanai/keymaps/2firmware/keymap.c b/keyboards/giabalanai/keymaps/2firmware/keymap.c
437new file mode 100644
438index 0000000000000000000000000000000000000000..2877f8ecd85df016d2d37a213aeff394d64ae9cb
439--- /dev/null
440+++ b/keyboards/giabalanai/keymaps/2firmware/keymap.c
441@@ -0,0 +1,739 @@
442+/* Copyright 2020 3araht
443+ *
444+ * This program is free software: you can redistribute it and/or modify
445+ * it under the terms of the GNU General Public License as published by
446+ * the Free Software Foundation, either version 2 of the License, or
447+ * (at your option) any later version.
448+ *
449+ * This program is distributed in the hope that it will be useful,
450+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
451+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
452+ * GNU General Public License for more details.
453+ *
454+ * You should have received a copy of the GNU General Public License
455+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
456+ */
457+#include QMK_KEYBOARD_H
458+#include "split_util.h"
459+#include "print.h"
460+#include "version.h"
461+
462+// Alias layout macros that expand groups of keys.
463+#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
464+
465+#define DF_QWER DF(_QWERTY)
466+#define DF_COLE DF(_COLEMAK)
467+#define MO_ADJ MO(_ADJUST)
468+// Long press: go to _FN layer, tap: MUTE
469+#define FN_MUTE LT(_FN, KC_MUTE)
470+#define SHIF_UP RSFT_T(KC_UP)
471+#define ADJ_EIS LT(_ADJUST,KC_LANG2)
472+#define MIS_KAN LT(_MISC,KC_LANG1)
473+
474+// Used to set octave to MI_OCT_0
475+extern midi_config_t midi_config;
476+uint8_t midi_bass_ch = 0, midi_chord_ch = 0; // By default, all use the same channel.
477+
478+// UNISON flags
479+static bool melody_dyad_high = false; // true when +1 octave unison dyad is enabled.
480+static bool melody_dyad_low = false; // true when -1 octave unison dyad is enabled.
481+
482+static bool melody_unison_suppress = true; // true: velocity of octave unison note is suppressd to UNISON_VELOCITY_RATIO
483+
484+// To record the status of Bass Chord (single or dyad, default: dyad.)
485+typedef union {
486+ uint32_t raw;
487+ struct {
488+ bool isSingleBass:1;
489+ };
490+} user_config_t;
491+user_config_t user_config;
492+
493+#define IS_SINGLE_BASS() (user_config.isSingleBass)
494+
495+#ifdef RGBLIGHT_ENABLE
496+/* used to specify there is no LED on the keylocation. */
497+# define NO_LED 255
498+#endif // RGBLIGHT_ENABLE
499+
500+
501+// Defines names for use in layer keycodes and the keymap
502+enum layer_names {
503+ _C_SYSTEM_BASE, // MIDI C-system
504+ _FAKE_B_SYSTEM, // MIDI fake B-system doesn't have correct assignments on top two rows. The bottom 3 rows are B-system.
505+ _C_SYSTEM_BASS2ROW, // counter bass system
506+ _C_SYSTEM_ENTIRELY, // single notes for both left and right keybaords.
507+ _CHROMATONE,
508+ _CFLIP_BASS2ROW, // 180 degree flipped layout on right side keyboard
509+ _QWERTY,
510+ _COLEMAK,
511+ _ADJUST, // for Fn keys, etc.
512+ _FN // for changing layers, octaves, etc.
513+};
514+
515+// Defines the keycodes used by our macros in process_record_user
516+enum custom_keycodes {
517+
518+ // MIDI Chord Keycodes - Root notes
519+ MY_CHORD_MIN = SAFE_RANGE,
520+
521+ MI_CH_Cr = MY_CHORD_MIN,
522+ MI_CH_Csr,
523+ MI_CH_Dbr = MI_CH_Csr,
524+ MI_CH_Dr,
525+ MI_CH_Dsr,
526+ MI_CH_Ebr = MI_CH_Dsr,
527+ MI_CH_Er,
528+ MI_CH_Fr,
529+ MI_CH_Fsr,
530+ MI_CH_Gbr = MI_CH_Fsr,
531+ MI_CH_Gr,
532+ MI_CH_Gsr,
533+ MI_CH_Abr = MI_CH_Gsr,
534+ MI_CH_Ar,
535+ MI_CH_Asr,
536+ MI_CH_Bbr = MI_CH_Asr,
537+ MI_CH_Br,
538+
539+ // MIDI Chord Keycodes - Major
540+
541diff --git a/keyboards/giabalanai/keymaps/2firmware/readme.md b/keyboards/giabalanai/keymaps/2firmware/readme.md
542new file mode 100644
543index 0000000000000000000000000000000000000000..e851c97af8cf50ba0837f276072f18a46ecb073f
544--- /dev/null
545+++ b/keyboards/giabalanai/keymaps/2firmware/readme.md
546@@ -0,0 +1,12 @@
547+# A personal keymap for giabalanai with RGBLIGHT_ENABLE = yes in rules.mk, which 3araht is using.
548+"2firmware" requires writing the firmware separately to left and right keyboards in order to have different functionality when USB cable is connected to the left side keyboard. It can be used without the right side.
549+(EE_HANDS is defined in 2firmware/config.h).
550+
551+When USB cable is connected to the left side keyboard, QWERTY layout is used by default.
552+
553+
554+Use below for writing the firmware to the left side keyboard.
555+> make giabalanai:2firmware:avrdude-split-left
556+
557+Use below for writing the firmware to the right side keyboard.
558+> make giabalanai:2firmware:avrdude-split-right
559diff --git a/keyboards/giabalanai/keymaps/2firmware/rules.mk b/keyboards/giabalanai/keymaps/2firmware/rules.mk
560new file mode 100644
561index 0000000000000000000000000000000000000000..2ecc5f55c193ea2389eac34925b011a676b5b87d
562--- /dev/null
563+++ b/keyboards/giabalanai/keymaps/2firmware/rules.mk
564@@ -0,0 +1,4 @@
565+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
566+CONSOLE_ENABLE = no # Console for debug
567+
568+ENCODER_MAP_ENABLE = yes # replacing ENCODERS_CW_KEY method to this on 2022/08/31.
569diff --git a/keyboards/giabalanai/keymaps/3araht/keymap.c b/keyboards/giabalanai/keymaps/3araht/keymap.c
570new file mode 100644
571index 0000000000000000000000000000000000000000..418b6e0ceb0a30d5f37bd5f6454062fc0f51bf68
572--- /dev/null
573+++ b/keyboards/giabalanai/keymaps/3araht/keymap.c
574@@ -0,0 +1,754 @@
575+/* Copyright 2020 3araht
576+ *
577+ * This program is free software: you can redistribute it and/or modify
578+ * it under the terms of the GNU General Public License as published by
579+ * the Free Software Foundation, either version 2 of the License, or
580+ * (at your option) any later version.
581+ *
582+ * This program is distributed in the hope that it will be useful,
583+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
584+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
585+ * GNU General Public License for more details.
586+ *
587+ * You should have received a copy of the GNU General Public License
588+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
589+ */
590+#include QMK_KEYBOARD_H
591+#include "print.h"
592+#include "version.h"
593+
594+// Alias layout macros that expand groups of keys.
595+#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
596+
597+#define DF_QWER DF(_QWERTY)
598+#define DF_COLE DF(_COLEMAK)
599+#define MO_ADJ MO(_ADJUST)
600+// Long press: go to _FN layer, tap: MUTE
601+#define FN_MUTE LT(_FN, KC_MUTE)
602+#define SHIF_UP RSFT_T(KC_UP)
603+#define ADJ_EIS LT(_ADJUST,KC_LANG2)
604+#define MIS_KAN LT(_MISC,KC_LANG1)
605+
606+// Used to set octave to MI_OCT_0
607+extern midi_config_t midi_config;
608+uint8_t midi_bass_ch = 0, midi_chord_ch = 0; // By default, all use the same channel.
609+
610+// UNISON flags
611+static bool melody_dyad_high = false; // true when +1 octave unison dyad is enabled.
612+static bool melody_dyad_low = false; // true when -1 octave unison dyad is enabled.
613+
614+static bool melody_unison_suppress = true; // true: velocity of octave unison note is suppressd to UNISON_VELOCITY_RATIO
615+
616+// To record the status of Bass Chord (single or dyad, default: dyad.)
617+typedef union {
618+ uint32_t raw;
619+ struct {
620+ bool isSingleBass:1;
621+ };
622+} user_config_t;
623+user_config_t user_config;
624+
625+#define IS_SINGLE_BASS() (user_config.isSingleBass)
626+
627+#ifdef RGBLIGHT_ENABLE
628+/* used to specify there is no LED on the keylocation. */
629+# define NO_LED 255
630+#endif // RGBLIGHT_ENABLE
631+
632+
633+// Defines names for use in layer keycodes and the keymap
634+enum layer_names {
635+ _C_SYSTEM_BASE, // MIDI C-system
636+ _FAKE_B_SYSTEM, // MIDI fake B-system doesn't have correct assignments on top two rows. The bottom 3 rows are B-system.
637+ _C_SYSTEM_BASS2ROW, // counter bass system
638+ _C_SYSTEM_ENTIRELY, // single notes for both left and right keybaords.
639+ _C_SYSTEM_FREEBASS, // C-system Free Bass
640+ _CHROMATONE,
641+ _CFLIP_BASS2ROW, // 180 degree flipped layout on right side keyboard
642+ _QWERTY,
643+ _COLEMAK,
644+ _ADJUST, // for Fn keys, etc.
645+ _FN // for changing layers, octaves, etc.
646+};
647+
648+// Defines the keycodes used by our macros in process_record_user
649+enum custom_keycodes {
650+
651+ // MIDI Chord Keycodes - Root notes
652+ MY_CHORD_MIN = SAFE_RANGE,
653+
654+ MI_CH_Cr = MY_CHORD_MIN,
655+ MI_CH_Csr,
656+ MI_CH_Dbr = MI_CH_Csr,
657+ MI_CH_Dr,
658+ MI_CH_Dsr,
659+ MI_CH_Ebr = MI_CH_Dsr,
660+ MI_CH_Er,
661+ MI_CH_Fr,
662+ MI_CH_Fsr,
663+ MI_CH_Gbr = MI_CH_Fsr,
664+ MI_CH_Gr,
665+ MI_CH_Gsr,
666+ MI_CH_Abr = MI_CH_Gsr,
667+ MI_CH_Ar,
668+ MI_CH_Asr,
669+ MI_CH_Bbr = MI_CH_Asr,
670+ MI_CH_Br,
671+
672+ // MIDI Chord Keycodes - Major
673+
674diff --git a/keyboards/giabalanai/keymaps/3araht/readme.md b/keyboards/giabalanai/keymaps/3araht/readme.md
675new file mode 100644
676index 0000000000000000000000000000000000000000..a731456db61c83e1ba91c3203e55b4c50973a026
677--- /dev/null
678+++ b/keyboards/giabalanai/keymaps/3araht/readme.md
679@@ -0,0 +1 @@
680+# A personal keymap for giabalanai with RGBLIGHT_ENABLE = yes in rules.mk, which 3araht is using.
681diff --git a/keyboards/giabalanai/keymaps/3araht/rules.mk b/keyboards/giabalanai/keymaps/3araht/rules.mk
682new file mode 100644
683index 0000000000000000000000000000000000000000..2ecc5f55c193ea2389eac34925b011a676b5b87d
684--- /dev/null
685+++ b/keyboards/giabalanai/keymaps/3araht/rules.mk
686@@ -0,0 +1,4 @@
687+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
688+CONSOLE_ENABLE = no # Console for debug
689+
690+ENCODER_MAP_ENABLE = yes # replacing ENCODERS_CW_KEY method to this on 2022/08/31.
691diff --git a/keyboards/giabalanai/keymaps/default/keymap.c b/keyboards/giabalanai/keymaps/default/keymap.c
692new file mode 100644
693index 0000000000000000000000000000000000000000..7b5f524a4fedd838518c02c4e8819d8acb836c12
694--- /dev/null
695+++ b/keyboards/giabalanai/keymaps/default/keymap.c
696@@ -0,0 +1,259 @@
697+/* Copyright 2020 3araht
698+ *
699+ * This program is free software: you can redistribute it and/or modify
700+ * it under the terms of the GNU General Public License as published by
701+ * the Free Software Foundation, either version 2 of the License, or
702+ * (at your option) any later version.
703+ *
704+ * This program is distributed in the hope that it will be useful,
705+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
706+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
707+ * GNU General Public License for more details.
708+ *
709+ * You should have received a copy of the GNU General Public License
710+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
711+ */
712+#include QMK_KEYBOARD_H
713+#include "version.h"
714+
715+// Alias layout macros that expand groups of keys.
716+#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
717+
718+#define DFCBASE DF(_C_SYSTEM_BASE)
719+#define DF_QWER DF(_QWERTY)
720+// Long press: go to _FN layer, tap: MUTE
721+#define FN_MUTE LT(_FN, KC_MUTE)
722+
723+// Used to set octave to MI_OCT_0
724+extern midi_config_t midi_config;
725+uint8_t midi_bass_ch = 0, midi_chord_ch = 0; // By default, all use the same channel.
726+
727+// Defines names for use in layer keycodes and the keymap
728+enum layer_names {
729+ _C_SYSTEM_BASE, // MIDI C-system
730+ _QWERTY, // just in case
731+ _FN
732+};
733+
734+// Defines the keycodes used by our macros in process_record_user
735+enum custom_keycodes {
736+
737+ // MIDI Chord Keycodes - Root notes
738+ MY_CHORD_MIN = SAFE_RANGE,
739+
740+ MI_CH_Cr = MY_CHORD_MIN,
741+ MI_CH_Csr,
742+ MI_CH_Dbr = MI_CH_Csr,
743+ MI_CH_Dr,
744+ MI_CH_Dsr,
745+ MI_CH_Ebr = MI_CH_Dsr,
746+ MI_CH_Er,
747+ MI_CH_Fr,
748+ MI_CH_Fsr,
749+ MI_CH_Gbr = MI_CH_Fsr,
750+ MI_CH_Gr,
751+ MI_CH_Gsr,
752+ MI_CH_Abr = MI_CH_Gsr,
753+ MI_CH_Ar,
754+ MI_CH_Asr,
755+ MI_CH_Bbr = MI_CH_Asr,
756+ MI_CH_Br,
757+
758+ // MIDI Chord Keycodes - Major
759+
760+ MI_CH_C,
761+ MI_CH_Cs,
762+ MI_CH_Db = MI_CH_Cs,
763+ MI_CH_D,
764+ MI_CH_Ds,
765+ MI_CH_Eb = MI_CH_Ds,
766+ MI_CH_E,
767+ MI_CH_F,
768+ MI_CH_Fs,
769+ MI_CH_Gb = MI_CH_Fs,
770+ MI_CH_G,
771+ MI_CH_Gs,
772+ MI_CH_Ab = MI_CH_Gs,
773+ MI_CH_A,
774+ MI_CH_As,
775+ MI_CH_Bb = MI_CH_As,
776+ MI_CH_B,
777+
778+ // MIDI Chord Keycodes Minor
779+
780+ MI_CH_Cm,
781+ MI_CH_Csm,
782+ MI_CH_Dbm = MI_CH_Csm,
783+ MI_CH_Dm,
784+ MI_CH_Dsm,
785+ MI_CH_Ebm = MI_CH_Dsm,
786+ MI_CH_Em,
787+ MI_CH_Fm,
788+ MI_CH_Fsm,
789+ MI_CH_Gbm = MI_CH_Fsm,
790+ MI_CH_Gm,
791+ MI_CH_Gsm,
792+ MI_CH_Abm = MI_CH_Gsm,
793+ MI_CH_Am,
794+ MI_CH_Asm,
795+ MI_CH_Bbm = MI_CH_Asm,
796diff --git a/keyboards/giabalanai/keymaps/default/readme.md b/keyboards/giabalanai/keymaps/default/readme.md
797new file mode 100644
798index 0000000000000000000000000000000000000000..d929aa1f5e5437d28c19c4d84832f156018f18ac
799--- /dev/null
800+++ b/keyboards/giabalanai/keymaps/default/readme.md
801@@ -0,0 +1 @@
802+# The default keymap for giabalanai
803diff --git a/keyboards/giabalanai/keymaps/default/rules.mk b/keyboards/giabalanai/keymaps/default/rules.mk
804new file mode 100644
805index 0000000000000000000000000000000000000000..8006608ea92286da2c7c42295d6dbc1393360838
806--- /dev/null
807+++ b/keyboards/giabalanai/keymaps/default/rules.mk
808@@ -0,0 +1 @@
809+ENCODER_MAP_ENABLE = yes # replacing ENCODERS_CW_KEY method to this on 2022/08/31.
810diff --git a/keyboards/giabalanai/keymaps/default_giabarinaix2/config.h b/keyboards/giabalanai/keymaps/default_giabarinaix2/config.h
811new file mode 100644
812index 0000000000000000000000000000000000000000..684287ba98bf374e5c364be836e5ff4263745128
813--- /dev/null
814+++ b/keyboards/giabalanai/keymaps/default_giabarinaix2/config.h
815@@ -0,0 +1,26 @@
816+#pragma once
817+
818+#define GIABARINAIX2
819+#ifdef GIABARINAIX2
820+# undef MATRIX_ROW_PINS_RIGHT
821+# undef MATRIX_COL_PINS_RIGHT
822+
823+# ifdef RGBLIGHT_ENABLE
824+# undef RGBLED_NUM
825+# define RGBLED_NUM 120
826+# undef RGBLIGHT_LED_MAP
827+# define RGBLIGHT_LED_MAP { \
828+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, \
829+ 107, 106, 105, 104, 103, 102, 101, 100, 99, 98, 97, 96, \
830+ 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, \
831+ 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, \
832+ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, \
833+ \
834+ 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, \
835+ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, \
836+ 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, \
837+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, \
838+ 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48 \
839+ }
840+# endif
841+#endif
842diff --git a/keyboards/giabalanai/keymaps/default_giabarinaix2/info.json b/keyboards/giabalanai/keymaps/default_giabarinaix2/info.json
843new file mode 100644
844index 0000000000000000000000000000000000000000..20a52326dd6c29bc54e1ebd18ef05229ee8b9030
845--- /dev/null
846+++ b/keyboards/giabalanai/keymaps/default_giabarinaix2/info.json
847@@ -0,0 +1,146 @@
848+{
849+ "keyboard_name": "giabarinaix2",
850+ "manufacturer": "3araht",
851+ "url": "https://github.com/3araht",
852+ "maintainer": "3araht",
853+ "usb": {
854+ "vid": "0xFEED",
855+ "pid": "0xF4B2",
856+ "device_version": "0.0.1"
857+ },
858+ "layouts": {
859+ "LAYOUT": {
860+ "layout": [
861+ {"label": "l00", "x": 0, "y": 0},
862+ {"label": "l01", "x": 1, "y": 0},
863+ {"label": "l02", "x": 2, "y": 0},
864+ {"label": "l03", "x": 3, "y": 0},
865+ {"label": "l04", "x": 4, "y": 0},
866+ {"label": "l05", "x": 5, "y": 0},
867+ {"label": "l06", "x": 6, "y": 0},
868+ {"label": "l07", "x": 7, "y": 0},
869+ {"label": "l08", "x": 8, "y": 0},
870+ {"label": "l09", "x": 9, "y": 0},
871+ {"label": "l0a", "x": 10, "y": 0},
872+ {"label": "l0b", "x": 11, "y": 0},
873+
874+ {"label": "r00", "x": 14.5, "y": 0},
875+ {"label": "r01", "x": 15.5, "y": 0},
876+ {"label": "r02", "x": 16.5, "y": 0},
877+ {"label": "r03", "x": 17.5, "y": 0},
878+ {"label": "r04", "x": 18.5, "y": 0},
879+ {"label": "r05", "x": 19.5, "y": 0},
880+ {"label": "r06", "x": 20.5, "y": 0},
881+ {"label": "r07", "x": 21.5, "y": 0},
882+ {"label": "r08", "x": 22.5, "y": 0},
883+ {"label": "r09", "x": 23.5, "y": 0},
884+ {"label": "r0a", "x": 24.5, "y": 0},
885+ {"label": "r0b", "x": 25.5, "y": 0},
886+
887+ {"label": "l10", "x": 0.5, "y": 1},
888+ {"label": "l11", "x": 1.5, "y": 1},
889+ {"label": "l12", "x": 2.5, "y": 1},
890+ {"label": "l13", "x": 3.5, "y": 1},
891+ {"label": "l14", "x": 4.5, "y": 1},
892+ {"label": "l15", "x": 5.5, "y": 1},
893+ {"label": "l16", "x": 6.5, "y": 1},
894+ {"label": "l17", "x": 7.5, "y": 1},
895+ {"label": "l18", "x": 8.5, "y": 1},
896+ {"label": "l19", "x": 9.5, "y": 1},
897+ {"label": "l1a", "x": 10.5, "y": 1},
898+ {"label": "l1b", "x": 11.5, "y": 1},
899+
900+ {"label": "r10", "x": 15, "y": 1},
901+ {"label": "r11", "x": 16, "y": 1},
902+ {"label": "r12", "x": 17, "y": 1},
903+ {"label": "r13", "x": 18, "y": 1},
904+ {"label": "r14", "x": 19, "y": 1},
905+ {"label": "r15", "x": 20, "y": 1},
906+ {"label": "r16", "x": 21, "y": 1},
907+ {"label": "r17", "x": 22, "y": 1},
908+ {"label": "r18", "x": 23, "y": 1},
909+ {"label": "r19", "x": 24, "y": 1},
910+ {"label": "r1a", "x": 25, "y": 1},
911+ {"label": "r1b", "x": 26, "y": 1},
912+
913+ {"label": "l20", "x": 1, "y": 2},
914+ {"label": "l21", "x": 2, "y": 2},
915+ {"label": "l22", "x": 3, "y": 2},
916+ {"label": "l23", "x": 4, "y": 2},
917+ {"label": "l24", "x": 5, "y": 2},
918+ {"label": "l25", "x": 6, "y": 2},
919+ {"label": "l26", "x": 7, "y": 2},
920+ {"label": "l27", "x": 8, "y": 2},
921+ {"label": "l28", "x": 9, "y": 2},
922+ {"label": "l29", "x": 10, "y": 2},
923+ {"label": "l2a", "x": 11, "y": 2},
924+ {"label": "l2b", "x": 12, "y": 2},
925+
926+ {"label": "r20", "x": 15.5, "y": 2},
927+ {"label": "r21", "x": 16.5, "y": 2},
928+ {"label": "r22", "x": 17.5, "y": 2},
929+ {"label": "r23", "x": 18.5, "y": 2},
930+ {"label": "r24", "x": 19.5, "y": 2},
931+ {"label": "r25", "x": 20.5, "y": 2},
932+ {"label": "r26", "x": 21.5, "y": 2},
933+ {"label": "r27", "x": 22.5, "y": 2},
934+ {"label": "r28", "x": 23.5, "y": 2},
935+ {"label": "r29", "x": 24.5, "y": 2},
936+ {"label": "r2a", "x": 25.5, "y": 2},
937+ {"label": "r2b", "x": 26.5, "y": 2},
938+
939+ {"label": "l30", "x": 1.5, "y": 3},
940+ {"label": "l31", "x": 2.5, "y": 3},
941+ {"label": "l32", "x": 3.5, "y": 3},
942+ {"label": "l33", "x": 4.5, "y": 3},
943+ {"label": "l34", "x": 5.5, "y": 3},
944+ {"label": "l35", "x": 6.5, "y": 3},
945+ {"label": "l36", "x": 7.5, "y": 3},
946+ {"label": "l37", "x": 8.5, "y": 3},
947diff --git a/keyboards/giabalanai/keymaps/default_giabarinaix2/keymap.c b/keyboards/giabalanai/keymaps/default_giabarinaix2/keymap.c
948new file mode 100644
949index 0000000000000000000000000000000000000000..82d86594dfb999df1556c14f48009f1407b203e5
950--- /dev/null
951+++ b/keyboards/giabalanai/keymaps/default_giabarinaix2/keymap.c
952@@ -0,0 +1,262 @@
953+/* Copyright 2020 3araht
954+ *
955+ * This program is free software: you can redistribute it and/or modify
956+ * it under the terms of the GNU General Public License as published by
957+ * the Free Software Foundation, either version 2 of the License, or
958+ * (at your option) any later version.
959+ *
960+ * This program is distributed in the hope that it will be useful,
961+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
962+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
963+ * GNU General Public License for more details.
964+ *
965+ * You should have received a copy of the GNU General Public License
966+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
967+ */
968+#include QMK_KEYBOARD_H
969+#include "version.h"
970+
971+// Alias layout macros that expand groups of keys.
972+#define LAYOUT_wrapper_giabarinaix2(...) LAYOUT_giabarinaix2(__VA_ARGS__)
973+
974+#define DFCBASE DF(_C_SYSTEM_BASE)
975+#define DF_QWER DF(_QWERTY)
976+// Long press: go to _FN layer, tap: MUTE
977+#define FN_MUTE LT(_FN, KC_MUTE)
978+
979+// Used to set octave to MI_OCT_0
980+extern midi_config_t midi_config;
981+uint8_t midi_bass_ch = 0, midi_chord_ch = 0; // By default, all use the same channel.
982+
983+// Defines names for use in layer keycodes and the keymap
984+enum layer_names {
985+ _C_SYSTEM_BASE, // MIDI C-system
986+ _QWERTY, // just in case
987+ _FN
988+};
989+
990+// Defines the keycodes used by our macros in process_record_user
991+enum custom_keycodes {
992+
993+ // MIDI Chord Keycodes - Root notes
994+ MY_CHORD_MIN = SAFE_RANGE,
995+
996+ MI_CH_Cr = MY_CHORD_MIN,
997+ MI_CH_Csr,
998+ MI_CH_Dbr = MI_CH_Csr,
999+ MI_CH_Dr,
1000+ MI_CH_Dsr,
1001+ MI_CH_Ebr = MI_CH_Dsr,
1002+ MI_CH_Er,
1003+ MI_CH_Fr,
1004+ MI_CH_Fsr,
1005+ MI_CH_Gbr = MI_CH_Fsr,
1006+ MI_CH_Gr,
1007+ MI_CH_Gsr,
1008+ MI_CH_Abr = MI_CH_Gsr,
1009+ MI_CH_Ar,
1010+ MI_CH_Asr,
1011+ MI_CH_Bbr = MI_CH_Asr,
1012+ MI_CH_Br,
1013+
1014+ // MIDI Chord Keycodes - Major
1015+
1016+ MI_CH_C,
1017+ MI_CH_Cs,
1018+ MI_CH_Db = MI_CH_Cs,
1019+ MI_CH_D,
1020+ MI_CH_Ds,
1021+ MI_CH_Eb = MI_CH_Ds,
1022+ MI_CH_E,
1023+ MI_CH_F,
1024+ MI_CH_Fs,
1025+ MI_CH_Gb = MI_CH_Fs,
1026+ MI_CH_G,
1027+ MI_CH_Gs,
1028+ MI_CH_Ab = MI_CH_Gs,
1029+ MI_CH_A,
1030+ MI_CH_As,
1031+ MI_CH_Bb = MI_CH_As,
1032+ MI_CH_B,
1033+
1034+ // MIDI Chord Keycodes Minor
1035+
1036+ MI_CH_Cm,
1037+ MI_CH_Csm,
1038+ MI_CH_Dbm = MI_CH_Csm,
1039+ MI_CH_Dm,
1040+ MI_CH_Dsm,
1041+ MI_CH_Ebm = MI_CH_Dsm,
1042+ MI_CH_Em,
1043+ MI_CH_Fm,
1044+ MI_CH_Fsm,
1045+ MI_CH_Gbm = MI_CH_Fsm,
1046+ MI_CH_Gm,
1047+ MI_CH_Gsm,
1048+ MI_CH_Abm = MI_CH_Gsm,
1049+ MI_CH_Am,
1050+ MI_CH_Asm,
1051+ MI_CH_Bbm = MI_CH_Asm,
1052diff --git a/keyboards/giabalanai/keymaps/default_giabarinaix2/readme.md b/keyboards/giabalanai/keymaps/default_giabarinaix2/readme.md
1053new file mode 100644
1054index 0000000000000000000000000000000000000000..ecdae4723d9c1b57d464abda541aaf4ceffe06fb
1055--- /dev/null
1056+++ b/keyboards/giabalanai/keymaps/default_giabarinaix2/readme.md
1057@@ -0,0 +1 @@
1058+# The default keymap for giabarinaix2
1059diff --git a/keyboards/giabalanai/keymaps/default_giabarinaix2/rules.mk b/keyboards/giabalanai/keymaps/default_giabarinaix2/rules.mk
1060new file mode 100644
1061index 0000000000000000000000000000000000000000..354223388411f28924c1dad9f65fd409e995b785
1062--- /dev/null
1063+++ b/keyboards/giabalanai/keymaps/default_giabarinaix2/rules.mk
1064@@ -0,0 +1,3 @@
1065+ENCODER_ENABLE = no # encoder on mute button
1066+
1067+ENCODER_MAP_ENABLE = yes # replacing ENCODERS_CW_KEY method to this on 2022/08/31.
1068diff --git a/keyboards/giabalanai/keymaps/giabarinaix2led/config.h b/keyboards/giabalanai/keymaps/giabarinaix2led/config.h
1069new file mode 100644
1070index 0000000000000000000000000000000000000000..684287ba98bf374e5c364be836e5ff4263745128
1071--- /dev/null
1072+++ b/keyboards/giabalanai/keymaps/giabarinaix2led/config.h
1073@@ -0,0 +1,26 @@
1074+#pragma once
1075+
1076+#define GIABARINAIX2
1077+#ifdef GIABARINAIX2
1078+# undef MATRIX_ROW_PINS_RIGHT
1079+# undef MATRIX_COL_PINS_RIGHT
1080+
1081+# ifdef RGBLIGHT_ENABLE
1082+# undef RGBLED_NUM
1083+# define RGBLED_NUM 120
1084+# undef RGBLIGHT_LED_MAP
1085+# define RGBLIGHT_LED_MAP { \
1086+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, \
1087+ 107, 106, 105, 104, 103, 102, 101, 100, 99, 98, 97, 96, \
1088+ 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, \
1089+ 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, \
1090+ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, \
1091+ \
1092+ 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, \
1093+ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, \
1094+ 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, \
1095+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, \
1096+ 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48 \
1097+ }
1098+# endif
1099+#endif
1100diff --git a/keyboards/giabalanai/keymaps/giabarinaix2led/info.json b/keyboards/giabalanai/keymaps/giabarinaix2led/info.json
1101new file mode 100644
1102index 0000000000000000000000000000000000000000..20a52326dd6c29bc54e1ebd18ef05229ee8b9030
1103--- /dev/null
1104+++ b/keyboards/giabalanai/keymaps/giabarinaix2led/info.json
1105@@ -0,0 +1,146 @@
1106+{
1107+ "keyboard_name": "giabarinaix2",
1108+ "manufacturer": "3araht",
1109+ "url": "https://github.com/3araht",
1110+ "maintainer": "3araht",
1111+ "usb": {
1112+ "vid": "0xFEED",
1113+ "pid": "0xF4B2",
1114+ "device_version": "0.0.1"
1115+ },
1116+ "layouts": {
1117+ "LAYOUT": {
1118+ "layout": [
1119+ {"label": "l00", "x": 0, "y": 0},
1120+ {"label": "l01", "x": 1, "y": 0},
1121+ {"label": "l02", "x": 2, "y": 0},
1122+ {"label": "l03", "x": 3, "y": 0},
1123+ {"label": "l04", "x": 4, "y": 0},
1124+ {"label": "l05", "x": 5, "y": 0},
1125+ {"label": "l06", "x": 6, "y": 0},
1126+ {"label": "l07", "x": 7, "y": 0},
1127+ {"label": "l08", "x": 8, "y": 0},
1128+ {"label": "l09", "x": 9, "y": 0},
1129+ {"label": "l0a", "x": 10, "y": 0},
1130+ {"label": "l0b", "x": 11, "y": 0},
1131+
1132+ {"label": "r00", "x": 14.5, "y": 0},
1133+ {"label": "r01", "x": 15.5, "y": 0},
1134+ {"label": "r02", "x": 16.5, "y": 0},
1135+ {"label": "r03", "x": 17.5, "y": 0},
1136+ {"label": "r04", "x": 18.5, "y": 0},
1137+ {"label": "r05", "x": 19.5, "y": 0},
1138+ {"label": "r06", "x": 20.5, "y": 0},
1139+ {"label": "r07", "x": 21.5, "y": 0},
1140+ {"label": "r08", "x": 22.5, "y": 0},
1141+ {"label": "r09", "x": 23.5, "y": 0},
1142+ {"label": "r0a", "x": 24.5, "y": 0},
1143+ {"label": "r0b", "x": 25.5, "y": 0},
1144+
1145+ {"label": "l10", "x": 0.5, "y": 1},
1146+ {"label": "l11", "x": 1.5, "y": 1},
1147+ {"label": "l12", "x": 2.5, "y": 1},
1148+ {"label": "l13", "x": 3.5, "y": 1},
1149+ {"label": "l14", "x": 4.5, "y": 1},
1150+ {"label": "l15", "x": 5.5, "y": 1},
1151+ {"label": "l16", "x": 6.5, "y": 1},
1152+ {"label": "l17", "x": 7.5, "y": 1},
1153+ {"label": "l18", "x": 8.5, "y": 1},
1154+ {"label": "l19", "x": 9.5, "y": 1},
1155+ {"label": "l1a", "x": 10.5, "y": 1},
1156+ {"label": "l1b", "x": 11.5, "y": 1},
1157+
1158+ {"label": "r10", "x": 15, "y": 1},
1159+ {"label": "r11", "x": 16, "y": 1},
1160+ {"label": "r12", "x": 17, "y": 1},
1161+ {"label": "r13", "x": 18, "y": 1},
1162+ {"label": "r14", "x": 19, "y": 1},
1163+ {"label": "r15", "x": 20, "y": 1},
1164+ {"label": "r16", "x": 21, "y": 1},
1165+ {"label": "r17", "x": 22, "y": 1},
1166+ {"label": "r18", "x": 23, "y": 1},
1167+ {"label": "r19", "x": 24, "y": 1},
1168+ {"label": "r1a", "x": 25, "y": 1},
1169+ {"label": "r1b", "x": 26, "y": 1},
1170+
1171+ {"label": "l20", "x": 1, "y": 2},
1172+ {"label": "l21", "x": 2, "y": 2},
1173+ {"label": "l22", "x": 3, "y": 2},
1174+ {"label": "l23", "x": 4, "y": 2},
1175+ {"label": "l24", "x": 5, "y": 2},
1176+ {"label": "l25", "x": 6, "y": 2},
1177+ {"label": "l26", "x": 7, "y": 2},
1178+ {"label": "l27", "x": 8, "y": 2},
1179+ {"label": "l28", "x": 9, "y": 2},
1180+ {"label": "l29", "x": 10, "y": 2},
1181+ {"label": "l2a", "x": 11, "y": 2},
1182+ {"label": "l2b", "x": 12, "y": 2},
1183+
1184+ {"label": "r20", "x": 15.5, "y": 2},
1185+ {"label": "r21", "x": 16.5, "y": 2},
1186+ {"label": "r22", "x": 17.5, "y": 2},
1187+ {"label": "r23", "x": 18.5, "y": 2},
1188+ {"label": "r24", "x": 19.5, "y": 2},
1189+ {"label": "r25", "x": 20.5, "y": 2},
1190+ {"label": "r26", "x": 21.5, "y": 2},
1191+ {"label": "r27", "x": 22.5, "y": 2},
1192+ {"label": "r28", "x": 23.5, "y": 2},
1193+ {"label": "r29", "x": 24.5, "y": 2},
1194+ {"label": "r2a", "x": 25.5, "y": 2},
1195+ {"label": "r2b", "x": 26.5, "y": 2},
1196+
1197+ {"label": "l30", "x": 1.5, "y": 3},
1198+ {"label": "l31", "x": 2.5, "y": 3},
1199+ {"label": "l32", "x": 3.5, "y": 3},
1200+ {"label": "l33", "x": 4.5, "y": 3},
1201+ {"label": "l34", "x": 5.5, "y": 3},
1202+ {"label": "l35", "x": 6.5, "y": 3},
1203+ {"label": "l36", "x": 7.5, "y": 3},
1204+ {"label": "l37", "x": 8.5, "y": 3},
1205diff --git a/keyboards/giabalanai/keymaps/giabarinaix2led/keymap.c b/keyboards/giabalanai/keymaps/giabarinaix2led/keymap.c
1206new file mode 100644
1207index 0000000000000000000000000000000000000000..1e773bd2336d7db10354f9893292eeef6e2be3ff
1208--- /dev/null
1209+++ b/keyboards/giabalanai/keymaps/giabarinaix2led/keymap.c
1210@@ -0,0 +1,464 @@
1211+/* Copyright 2020 3araht
1212+ *
1213+ * This program is free software: you can redistribute it and/or modify
1214+ * it under the terms of the GNU General Public License as published by
1215+ * the Free Software Foundation, either version 2 of the License, or
1216+ * (at your option) any later version.
1217+ *
1218+ * This program is distributed in the hope that it will be useful,
1219+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
1220+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1221+ * GNU General Public License for more details.
1222+ *
1223+ * You should have received a copy of the GNU General Public License
1224+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
1225+ */
1226+#include QMK_KEYBOARD_H
1227+#include "version.h"
1228+
1229+// Alias layout macros that expand groups of keys.
1230+#define LAYOUT_wrapper_giabarinaix2(...) LAYOUT_giabarinaix2(__VA_ARGS__)
1231+
1232+#define DFCBASE DF(_C_SYSTEM_BASE)
1233+#define DF_QWER DF(_QWERTY)
1234+// Long press: go to _FN layer, tap: MUTE
1235+#define FN_MUTE LT(_FN, KC_MUTE)
1236+
1237+// Used to set octave to MI_OCT_0
1238+extern midi_config_t midi_config;
1239+uint8_t midi_bass_ch = 0, midi_chord_ch = 0; // By default, all use the same channel.
1240+
1241+#ifdef RGBLIGHT_ENABLE
1242+/* used to specify there is no LED on the keylocation. */
1243+# define NO_LED 255
1244+#endif // RGBLIGHT_ENABLE
1245+// Defines names for use in layer keycodes and the keymap
1246+enum layer_names {
1247+ _C_SYSTEM_BASE, // MIDI C-system
1248+ _C_SYSTEM_BASS2ROW, // counter bass system
1249+ _C_SYSTEM_ENTIRELY, // single notes for both left and right keybaords.
1250+ _CHROMATONE,
1251+ _QWERTY, // just in case
1252+ _FN
1253+};
1254+
1255+// Defines the keycodes used by our macros in process_record_user
1256+enum custom_keycodes {
1257+
1258+ // MIDI Chord Keycodes - Root notes
1259+ MY_CHORD_MIN = SAFE_RANGE,
1260+
1261+ MI_CH_Cr = MY_CHORD_MIN,
1262+ MI_CH_Csr,
1263+ MI_CH_Dbr = MI_CH_Csr,
1264+ MI_CH_Dr,
1265+ MI_CH_Dsr,
1266+ MI_CH_Ebr = MI_CH_Dsr,
1267+ MI_CH_Er,
1268+ MI_CH_Fr,
1269+ MI_CH_Fsr,
1270+ MI_CH_Gbr = MI_CH_Fsr,
1271+ MI_CH_Gr,
1272+ MI_CH_Gsr,
1273+ MI_CH_Abr = MI_CH_Gsr,
1274+ MI_CH_Ar,
1275+ MI_CH_Asr,
1276+ MI_CH_Bbr = MI_CH_Asr,
1277+ MI_CH_Br,
1278+
1279+ // MIDI Chord Keycodes - Major
1280+
1281+ MI_CH_C,
1282+ MI_CH_Cs,
1283+ MI_CH_Db = MI_CH_Cs,
1284+ MI_CH_D,
1285+ MI_CH_Ds,
1286+ MI_CH_Eb = MI_CH_Ds,
1287+ MI_CH_E,
1288+ MI_CH_F,
1289+ MI_CH_Fs,
1290+ MI_CH_Gb = MI_CH_Fs,
1291+ MI_CH_G,
1292+ MI_CH_Gs,
1293+ MI_CH_Ab = MI_CH_Gs,
1294+ MI_CH_A,
1295+ MI_CH_As,
1296+ MI_CH_Bb = MI_CH_As,
1297+ MI_CH_B,
1298+
1299+ // MIDI Chord Keycodes Minor
1300+
1301+ MI_CH_Cm,
1302+ MI_CH_Csm,
1303+ MI_CH_Dbm = MI_CH_Csm,
1304+ MI_CH_Dm,
1305+ MI_CH_Dsm,
1306+ MI_CH_Ebm = MI_CH_Dsm,
1307+ MI_CH_Em,
1308+ MI_CH_Fm,
1309+ MI_CH_Fsm,
1310diff --git a/keyboards/giabalanai/keymaps/giabarinaix2led/readme.md b/keyboards/giabalanai/keymaps/giabarinaix2led/readme.md
1311new file mode 100644
1312index 0000000000000000000000000000000000000000..89139ec1b3b6056b47c05f02a95c2725bca4f825
1313--- /dev/null
1314+++ b/keyboards/giabalanai/keymaps/giabarinaix2led/readme.md
1315@@ -0,0 +1 @@
1316+# A keymap for giabarinaix2 with LEDs.
1317diff --git a/keyboards/giabalanai/keymaps/giabarinaix2led/rules.mk b/keyboards/giabalanai/keymaps/giabarinaix2led/rules.mk
1318new file mode 100644
1319index 0000000000000000000000000000000000000000..d8dc6a10e76afd2f2aed15a1efb49f16405f212c
1320--- /dev/null
1321+++ b/keyboards/giabalanai/keymaps/giabarinaix2led/rules.mk
1322@@ -0,0 +1,3 @@
1323+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
1324+
1325+ENCODER_MAP_ENABLE = yes # replacing ENCODERS_CW_KEY method to this on 2022/08/31.
1326diff --git a/keyboards/giabalanai/keymaps/party/keymap.c b/keyboards/giabalanai/keymaps/party/keymap.c
1327new file mode 100644
1328index 0000000000000000000000000000000000000000..5a4361e5ae5098b767dea3b44ce0469e7079a42f
1329--- /dev/null
1330+++ b/keyboards/giabalanai/keymaps/party/keymap.c
1331@@ -0,0 +1,792 @@
1332+/* Copyright 2020 3araht
1333+ *
1334+ * This program is free software: you can redistribute it and/or modify
1335+ * it under the terms of the GNU General Public License as published by
1336+ * the Free Software Foundation, either version 2 of the License, or
1337+ * (at your option) any later version.
1338+ *
1339+ * This program is distributed in the hope that it will be useful,
1340+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
1341+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1342+ * GNU General Public License for more details.
1343+ *
1344+ * You should have received a copy of the GNU General Public License
1345+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
1346+ */
1347+#include QMK_KEYBOARD_H
1348+#include "print.h"
1349+#include "version.h"
1350+
1351+// Alias layout macros that expand groups of keys.
1352+#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
1353+
1354+#define DF_QWER DF(_QWERTY)
1355+#define DF_COLE DF(_COLEMAK)
1356+#define MO_ADJ MO(_ADJUST)
1357+// Long press: go to _FN layer, tap: MUTE
1358+#define FN_MUTE LT(_FN, KC_MUTE)
1359+#define SHIF_UP RSFT_T(KC_UP)
1360+#define ADJ_EIS LT(_ADJUST,KC_LANG2)
1361+#define MIS_KAN LT(_MISC,KC_LANG1)
1362+
1363+// Used to set octave to MI_OCT_0
1364+extern midi_config_t midi_config;
1365+uint8_t midi_bass_ch = 0, midi_chord_ch = 0; // By default, all use the same channel.
1366+
1367+// UNISON flags
1368+static bool melody_dyad_high = false; // true when +1 octave unison dyad is enabled.
1369+static bool melody_dyad_low = false; // true when -1 octave unison dyad is enabled.
1370+
1371+static bool melody_unison_suppress = true; // true: velocity of octave unison note is suppressd to UNISON_VELOCITY_RATIO
1372+
1373+// To record the status of Bass Chord (single or dyad, default: dyad.)
1374+typedef union {
1375+ uint32_t raw;
1376+ struct {
1377+ bool isSingleBass:1;
1378+ };
1379+} user_config_t;
1380+user_config_t user_config;
1381+
1382+#define IS_SINGLE_BASS() (user_config.isSingleBass)
1383+
1384+#ifdef RGBLIGHT_ENABLE
1385+/* used to specify there is no LED on the keylocation. */
1386+# define NO_LED 255
1387+#endif // RGBLIGHT_ENABLE
1388+
1389+
1390+// Defines names for use in layer keycodes and the keymap
1391+enum layer_names {
1392+ _C_SYSTEM_BASE, // MIDI C-system
1393+ _FAKE_B_SYSTEM, // MIDI fake B-system doesn't have correct assignments on top two rows. The bottom 3 rows are B-system.
1394+ _C_SYSTEM_BASS2ROW, // counter bass system
1395+ _C_SYSTEM_ENTIRELY, // single notes for both left and right keybaords.
1396+ _C_SYSTEM_FREEBASS, // C-system Free Bass
1397+ _CHROMATONE,
1398+ _CFLIP_BASS2ROW, // 180 degree flipped layout on right side keyboard
1399+ _QWERTY,
1400+ _COLEMAK,
1401+ _ADJUST, // for Fn keys, etc.
1402+ _FN // for changing layers, octaves, etc.
1403+};
1404+
1405+// Defines the keycodes used by our macros in process_record_user
1406+enum custom_keycodes {
1407+
1408+ // MIDI Chord Keycodes - Root notes
1409+ MY_CHORD_MIN = SAFE_RANGE,
1410+
1411+ MI_CH_Cr = MY_CHORD_MIN,
1412+ MI_CH_Csr,
1413+ MI_CH_Dbr = MI_CH_Csr,
1414+ MI_CH_Dr,
1415+ MI_CH_Dsr,
1416+ MI_CH_Ebr = MI_CH_Dsr,
1417+ MI_CH_Er,
1418+ MI_CH_Fr,
1419+ MI_CH_Fsr,
1420+ MI_CH_Gbr = MI_CH_Fsr,
1421+ MI_CH_Gr,
1422+ MI_CH_Gsr,
1423+ MI_CH_Abr = MI_CH_Gsr,
1424+ MI_CH_Ar,
1425+ MI_CH_Asr,
1426+ MI_CH_Bbr = MI_CH_Asr,
1427+ MI_CH_Br,
1428+
1429+ // MIDI Chord Keycodes - Major
1430+
1431diff --git a/keyboards/giabalanai/keymaps/party/readme.md b/keyboards/giabalanai/keymaps/party/readme.md
1432new file mode 100644
1433index 0000000000000000000000000000000000000000..797fed76f83e52a9f2f140e1d70bf6863771b5d0
1434--- /dev/null
1435+++ b/keyboards/giabalanai/keymaps/party/readme.md
1436@@ -0,0 +1,3 @@
1437+# The fancy LED ver. for giabalanai
1438+# warning: There is little space left for the firmware. You can't do anything further with this firmware.
1439+# Power consumption might exceed 5 V * 500 mA = 2.5 W or so.
1440diff --git a/keyboards/giabalanai/keymaps/party/rgb_matrix_user.inc b/keyboards/giabalanai/keymaps/party/rgb_matrix_user.inc
1441new file mode 100644
1442index 0000000000000000000000000000000000000000..40ce7148d319865c7e1e2b4b4929dd87154820c3
1443--- /dev/null
1444+++ b/keyboards/giabalanai/keymaps/party/rgb_matrix_user.inc
1445@@ -0,0 +1,57 @@
1446+#ifdef RGB_MATRIX_KEYREACTIVE_ENABLED
1447+RGB_MATRIX_EFFECT(my_solid_reactive_with_CnoteIndicator)
1448+RGB_MATRIX_EFFECT(my_party_rocks)
1449+
1450+# ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS
1451+
1452+bool my_solid_reactive_with_CnoteIndicator(effect_params_t* params) {
1453+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
1454+
1455+ uint16_t max_tick = 65535 / rgb_matrix_config.speed;
1456+ for (uint8_t i = led_min; i < led_max; i++) {
1457+ RGB_MATRIX_TEST_LED_FLAGS();
1458+ HSV hsv = rgb_matrix_config.hsv;
1459+ switch (i) {
1460+ // C note indicator
1461+ case 15:
1462+ case 19:
1463+ case 23:
1464+ case 52:
1465+ case 56:
1466+ case 60:
1467+ case 80: // left hand side, bass C note when counter bass is chosen.
1468+ // HSV_GOLDENROD
1469+ hsv.h = 30;
1470+ hsv.s = 218;
1471+ hsv.v = 218;
1472+ break;
1473+ }
1474+ uint16_t tick = max_tick;
1475+ // Reverse search to find most recent key hit
1476+ for (int8_t j = g_last_hit_tracker.count - 1; j >= 0; j--) {
1477+ if (g_last_hit_tracker.x[j] == g_led_config.point[i].x && g_last_hit_tracker.y[j] == g_led_config.point[i].y && g_last_hit_tracker.tick[j] < tick) {
1478+ tick = g_last_hit_tracker.tick[j];
1479+ break;
1480+ }
1481+ }
1482+
1483+ uint16_t offset = scale16by8(tick, rgb_matrix_config.speed);
1484+ hsv.h += qsub8(130, offset);
1485+ RGB rgb = rgb_matrix_hsv_to_rgb(hsv);
1486+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
1487+ }
1488+ return led_max < DRIVER_LED_TOTAL;
1489+}
1490+
1491+bool my_party_rocks(effect_params_t* params) {
1492+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
1493+ HSV hsv = {rand() & 0xFF, rand() & 0xFF, rgb_matrix_config.hsv.v};
1494+ RGB rgb = rgb_matrix_hsv_to_rgb(hsv);
1495+ // rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
1496+ rgb_matrix_set_color_all(rgb.r, rgb.g, rgb.b);
1497+ return led_max < DRIVER_LED_TOTAL;
1498+}
1499+
1500+
1501+# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
1502+#endif // RGB_MATRIX_KEYREACTIVE_ENABLED
1503diff --git a/keyboards/giabalanai/keymaps/party/rules.mk b/keyboards/giabalanai/keymaps/party/rules.mk
1504new file mode 100644
1505index 0000000000000000000000000000000000000000..c05207feebe5e25e4edc3553902b57c00bb14241
1506--- /dev/null
1507+++ b/keyboards/giabalanai/keymaps/party/rules.mk
1508@@ -0,0 +1,6 @@
1509+# RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
1510+CONSOLE_ENABLE = no # Console for debug
1511+RGB_MATRIX_ENABLE = yes # Use RGB matrix (Don't enable this when RGBLIGHT_ENABLE is used.)
1512+RGB_MATRIX_CUSTOM_USER = yes #
1513+
1514+ENCODER_MAP_ENABLE = yes # replacing ENCODERS_CW_KEY method to this on 2022/08/31.
1515diff --git a/keyboards/giabalanai/keymaps/via/config.h b/keyboards/giabalanai/keymaps/via/config.h
1516new file mode 100644
1517index 0000000000000000000000000000000000000000..a3b77a5b4d0b492982a731854db37dc857a24a87
1518--- /dev/null
1519+++ b/keyboards/giabalanai/keymaps/via/config.h
1520@@ -0,0 +1,3 @@
1521+#pragma once
1522+
1523+#define DYNAMIC_KEYMAP_LAYER_COUNT 3
1524diff --git a/keyboards/giabalanai/keymaps/via/keymap.c b/keyboards/giabalanai/keymaps/via/keymap.c
1525new file mode 100644
1526index 0000000000000000000000000000000000000000..774260d052eca477c2ea1909bb3e452e47894282
1527--- /dev/null
1528+++ b/keyboards/giabalanai/keymaps/via/keymap.c
1529@@ -0,0 +1,260 @@
1530+/* Copyright 2020 3araht
1531+ *
1532+ * This program is free software: you can redistribute it and/or modify
1533+ * it under the terms of the GNU General Public License as published by
1534+ * the Free Software Foundation, either version 2 of the License, or
1535+ * (at your option) any later version.
1536+ *
1537+ * This program is distributed in the hope that it will be useful,
1538+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
1539+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1540+ * GNU General Public License for more details.
1541+ *
1542+ * You should have received a copy of the GNU General Public License
1543+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
1544+ */
1545+#include QMK_KEYBOARD_H
1546+#include "version.h"
1547+
1548+// Alias layout macros that expand groups of keys.
1549+#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
1550+
1551+#define DFCBASE DF(_C_SYSTEM_BASE)
1552+#define DF_QWER DF(_QWERTY)
1553+// Long press: go to _FN layer, tap: MUTE
1554+#define FN_MUTE LT(_FN, KC_MUTE)
1555+
1556+// Used to set octave to MI_OCT_0
1557+extern midi_config_t midi_config;
1558+uint8_t midi_bass_ch = 0, midi_chord_ch = 0; // By default, all use the same channel.
1559+
1560+// Defines names for use in layer keycodes and the keymap
1561+enum layer_names {
1562+ _C_SYSTEM_BASE, // MIDI C-system
1563+ _QWERTY, // just in case
1564+ _FN
1565+};
1566+
1567+// Defines the keycodes used by our macros in process_record_user
1568+enum custom_keycodes {
1569+
1570+ // MIDI Chord Keycodes - Root notes
1571+ MY_CHORD_MIN = SAFE_RANGE,
1572+
1573+ MI_CH_Cr = MY_CHORD_MIN,
1574+ MI_CH_Csr,
1575+ MI_CH_Dbr = MI_CH_Csr,
1576+ MI_CH_Dr,
1577+ MI_CH_Dsr,
1578+ MI_CH_Ebr = MI_CH_Dsr,
1579+ MI_CH_Er,
1580+ MI_CH_Fr,
1581+ MI_CH_Fsr,
1582+ MI_CH_Gbr = MI_CH_Fsr,
1583+ MI_CH_Gr,
1584+ MI_CH_Gsr,
1585+ MI_CH_Abr = MI_CH_Gsr,
1586+ MI_CH_Ar,
1587+ MI_CH_Asr,
1588+ MI_CH_Bbr = MI_CH_Asr,
1589+ MI_CH_Br,
1590+
1591+ // MIDI Chord Keycodes - Major
1592+
1593+ MI_CH_C,
1594+ MI_CH_Cs,
1595+ MI_CH_Db = MI_CH_Cs,
1596+ MI_CH_D,
1597+ MI_CH_Ds,
1598+ MI_CH_Eb = MI_CH_Ds,
1599+ MI_CH_E,
1600+ MI_CH_F,
1601+ MI_CH_Fs,
1602+ MI_CH_Gb = MI_CH_Fs,
1603+ MI_CH_G,
1604+ MI_CH_Gs,
1605+ MI_CH_Ab = MI_CH_Gs,
1606+ MI_CH_A,
1607+ MI_CH_As,
1608+ MI_CH_Bb = MI_CH_As,
1609+ MI_CH_B,
1610+
1611+ // MIDI Chord Keycodes Minor
1612+
1613+ MI_CH_Cm,
1614+ MI_CH_Csm,
1615+ MI_CH_Dbm = MI_CH_Csm,
1616+ MI_CH_Dm,
1617+ MI_CH_Dsm,
1618+ MI_CH_Ebm = MI_CH_Dsm,
1619+ MI_CH_Em,
1620+ MI_CH_Fm,
1621+ MI_CH_Fsm,
1622+ MI_CH_Gbm = MI_CH_Fsm,
1623+ MI_CH_Gm,
1624+ MI_CH_Gsm,
1625+ MI_CH_Abm = MI_CH_Gsm,
1626+ MI_CH_Am,
1627+ MI_CH_Asm,
1628+ MI_CH_Bbm = MI_CH_Asm,
1629diff --git a/keyboards/giabalanai/keymaps/via/readme.md b/keyboards/giabalanai/keymaps/via/readme.md
1630new file mode 100644
1631index 0000000000000000000000000000000000000000..3c599bfe0e37fd54034efa9a2aa495c17297e7f3
1632--- /dev/null
1633+++ b/keyboards/giabalanai/keymaps/via/readme.md
1634@@ -0,0 +1 @@
1635+# The default VIA keymap for giabalanai
1636diff --git a/keyboards/giabalanai/keymaps/via/rules.mk b/keyboards/giabalanai/keymaps/via/rules.mk
1637new file mode 100644
1638index 0000000000000000000000000000000000000000..da4a83087f41949698540d0f0cd2a4f89a4a74ba
1639--- /dev/null
1640+++ b/keyboards/giabalanai/keymaps/via/rules.mk
1641@@ -0,0 +1,3 @@
1642+VIA_ENABLE = yes
1643+
1644+ENCODER_MAP_ENABLE = yes # replacing ENCODERS_CW_KEY method to this on 2022/08/31.
1645diff --git a/keyboards/giabalanai/keymaps/via_giabarinaix2/config.h b/keyboards/giabalanai/keymaps/via_giabarinaix2/config.h
1646new file mode 100644
1647index 0000000000000000000000000000000000000000..01905b8dfec3f60400d89f1a867b5a318ba6991a
1648--- /dev/null
1649+++ b/keyboards/giabalanai/keymaps/via_giabarinaix2/config.h
1650@@ -0,0 +1,27 @@
1651+#pragma once
1652+
1653+#define DYNAMIC_KEYMAP_LAYER_COUNT 3
1654+#define GIABARINAIX2
1655+#ifdef GIABARINAIX2
1656+# undef MATRIX_ROW_PINS_RIGHT
1657+# undef MATRIX_COL_PINS_RIGHT
1658+
1659+# ifdef RGBLIGHT_ENABLE
1660+# undef RGBLED_NUM
1661+# define RGBLED_NUM 120
1662+# undef RGBLIGHT_LED_MAP
1663+# define RGBLIGHT_LED_MAP { \
1664+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, \
1665+ 107, 106, 105, 104, 103, 102, 101, 100, 99, 98, 97, 96, \
1666+ 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, \
1667+ 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, \
1668+ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, \
1669+ \
1670+ 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, \
1671+ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, \
1672+ 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, \
1673+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, \
1674+ 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48 \
1675+ }
1676+# endif
1677+#endif
1678diff --git a/keyboards/giabalanai/keymaps/via_giabarinaix2/info.json b/keyboards/giabalanai/keymaps/via_giabarinaix2/info.json
1679new file mode 100644
1680index 0000000000000000000000000000000000000000..20a52326dd6c29bc54e1ebd18ef05229ee8b9030
1681--- /dev/null
1682+++ b/keyboards/giabalanai/keymaps/via_giabarinaix2/info.json
1683@@ -0,0 +1,146 @@
1684+{
1685+ "keyboard_name": "giabarinaix2",
1686+ "manufacturer": "3araht",
1687+ "url": "https://github.com/3araht",
1688+ "maintainer": "3araht",
1689+ "usb": {
1690+ "vid": "0xFEED",
1691+ "pid": "0xF4B2",
1692+ "device_version": "0.0.1"
1693+ },
1694+ "layouts": {
1695+ "LAYOUT": {
1696+ "layout": [
1697+ {"label": "l00", "x": 0, "y": 0},
1698+ {"label": "l01", "x": 1, "y": 0},
1699+ {"label": "l02", "x": 2, "y": 0},
1700+ {"label": "l03", "x": 3, "y": 0},
1701+ {"label": "l04", "x": 4, "y": 0},
1702+ {"label": "l05", "x": 5, "y": 0},
1703+ {"label": "l06", "x": 6, "y": 0},
1704+ {"label": "l07", "x": 7, "y": 0},
1705+ {"label": "l08", "x": 8, "y": 0},
1706+ {"label": "l09", "x": 9, "y": 0},
1707+ {"label": "l0a", "x": 10, "y": 0},
1708+ {"label": "l0b", "x": 11, "y": 0},
1709+
1710+ {"label": "r00", "x": 14.5, "y": 0},
1711+ {"label": "r01", "x": 15.5, "y": 0},
1712+ {"label": "r02", "x": 16.5, "y": 0},
1713+ {"label": "r03", "x": 17.5, "y": 0},
1714+ {"label": "r04", "x": 18.5, "y": 0},
1715+ {"label": "r05", "x": 19.5, "y": 0},
1716+ {"label": "r06", "x": 20.5, "y": 0},
1717+ {"label": "r07", "x": 21.5, "y": 0},
1718+ {"label": "r08", "x": 22.5, "y": 0},
1719+ {"label": "r09", "x": 23.5, "y": 0},
1720+ {"label": "r0a", "x": 24.5, "y": 0},
1721+ {"label": "r0b", "x": 25.5, "y": 0},
1722+
1723+ {"label": "l10", "x": 0.5, "y": 1},
1724+ {"label": "l11", "x": 1.5, "y": 1},
1725+ {"label": "l12", "x": 2.5, "y": 1},
1726+ {"label": "l13", "x": 3.5, "y": 1},
1727+ {"label": "l14", "x": 4.5, "y": 1},
1728+ {"label": "l15", "x": 5.5, "y": 1},
1729+ {"label": "l16", "x": 6.5, "y": 1},
1730+ {"label": "l17", "x": 7.5, "y": 1},
1731+ {"label": "l18", "x": 8.5, "y": 1},
1732+ {"label": "l19", "x": 9.5, "y": 1},
1733+ {"label": "l1a", "x": 10.5, "y": 1},
1734+ {"label": "l1b", "x": 11.5, "y": 1},
1735+
1736+ {"label": "r10", "x": 15, "y": 1},
1737+ {"label": "r11", "x": 16, "y": 1},
1738+ {"label": "r12", "x": 17, "y": 1},
1739+ {"label": "r13", "x": 18, "y": 1},
1740+ {"label": "r14", "x": 19, "y": 1},
1741+ {"label": "r15", "x": 20, "y": 1},
1742+ {"label": "r16", "x": 21, "y": 1},
1743+ {"label": "r17", "x": 22, "y": 1},
1744+ {"label": "r18", "x": 23, "y": 1},
1745+ {"label": "r19", "x": 24, "y": 1},
1746+ {"label": "r1a", "x": 25, "y": 1},
1747+ {"label": "r1b", "x": 26, "y": 1},
1748+
1749+ {"label": "l20", "x": 1, "y": 2},
1750+ {"label": "l21", "x": 2, "y": 2},
1751+ {"label": "l22", "x": 3, "y": 2},
1752+ {"label": "l23", "x": 4, "y": 2},
1753+ {"label": "l24", "x": 5, "y": 2},
1754+ {"label": "l25", "x": 6, "y": 2},
1755+ {"label": "l26", "x": 7, "y": 2},
1756+ {"label": "l27", "x": 8, "y": 2},
1757+ {"label": "l28", "x": 9, "y": 2},
1758+ {"label": "l29", "x": 10, "y": 2},
1759+ {"label": "l2a", "x": 11, "y": 2},
1760+ {"label": "l2b", "x": 12, "y": 2},
1761+
1762+ {"label": "r20", "x": 15.5, "y": 2},
1763+ {"label": "r21", "x": 16.5, "y": 2},
1764+ {"label": "r22", "x": 17.5, "y": 2},
1765+ {"label": "r23", "x": 18.5, "y": 2},
1766+ {"label": "r24", "x": 19.5, "y": 2},
1767+ {"label": "r25", "x": 20.5, "y": 2},
1768+ {"label": "r26", "x": 21.5, "y": 2},
1769+ {"label": "r27", "x": 22.5, "y": 2},
1770+ {"label": "r28", "x": 23.5, "y": 2},
1771+ {"label": "r29", "x": 24.5, "y": 2},
1772+ {"label": "r2a", "x": 25.5, "y": 2},
1773+ {"label": "r2b", "x": 26.5, "y": 2},
1774+
1775+ {"label": "l30", "x": 1.5, "y": 3},
1776+ {"label": "l31", "x": 2.5, "y": 3},
1777+ {"label": "l32", "x": 3.5, "y": 3},
1778+ {"label": "l33", "x": 4.5, "y": 3},
1779+ {"label": "l34", "x": 5.5, "y": 3},
1780+ {"label": "l35", "x": 6.5, "y": 3},
1781+ {"label": "l36", "x": 7.5, "y": 3},
1782+ {"label": "l37", "x": 8.5, "y": 3},
1783diff --git a/keyboards/giabalanai/keymaps/via_giabarinaix2/keymap.c b/keyboards/giabalanai/keymaps/via_giabarinaix2/keymap.c
1784new file mode 100644
1785index 0000000000000000000000000000000000000000..afe1faff1b0305cbdad0225c491fd67b2ff9fa87
1786--- /dev/null
1787+++ b/keyboards/giabalanai/keymaps/via_giabarinaix2/keymap.c
1788@@ -0,0 +1,262 @@
1789+/* Copyright 2020 3araht
1790+ *
1791+ * This program is free software: you can redistribute it and/or modify
1792+ * it under the terms of the GNU General Public License as published by
1793+ * the Free Software Foundation, either version 2 of the License, or
1794+ * (at your option) any later version.
1795+ *
1796+ * This program is distributed in the hope that it will be useful,
1797+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
1798+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1799+ * GNU General Public License for more details.
1800+ *
1801+ * You should have received a copy of the GNU General Public License
1802+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
1803+ */
1804+#include QMK_KEYBOARD_H
1805+#include "version.h"
1806+
1807+// Alias layout macros that expand groups of keys.
1808+#define LAYOUT_wrapper_giabarinaix2(...) LAYOUT_giabarinaix2(__VA_ARGS__)
1809+
1810+#define DFCBASE DF(_C_SYSTEM_BASE)
1811+#define DF_QWER DF(_QWERTY)
1812+// Long press: go to _FN layer, tap: MUTE
1813+#define FN_MUTE LT(_FN, KC_MUTE)
1814+
1815+// Used to set octave to MI_OCT_0
1816+extern midi_config_t midi_config;
1817+uint8_t midi_bass_ch = 0, midi_chord_ch = 0; // By default, all use the same channel.
1818+
1819+// Defines names for use in layer keycodes and the keymap
1820+enum layer_names {
1821+ _C_SYSTEM_BASE, // MIDI C-system
1822+ _QWERTY, // just in case
1823+ _FN
1824+};
1825+
1826+// Defines the keycodes used by our macros in process_record_user
1827+enum custom_keycodes {
1828+
1829+ // MIDI Chord Keycodes - Root notes
1830+ MY_CHORD_MIN = SAFE_RANGE,
1831+
1832+ MI_CH_Cr = MY_CHORD_MIN,
1833+ MI_CH_Csr,
1834+ MI_CH_Dbr = MI_CH_Csr,
1835+ MI_CH_Dr,
1836+ MI_CH_Dsr,
1837+ MI_CH_Ebr = MI_CH_Dsr,
1838+ MI_CH_Er,
1839+ MI_CH_Fr,
1840+ MI_CH_Fsr,
1841+ MI_CH_Gbr = MI_CH_Fsr,
1842+ MI_CH_Gr,
1843+ MI_CH_Gsr,
1844+ MI_CH_Abr = MI_CH_Gsr,
1845+ MI_CH_Ar,
1846+ MI_CH_Asr,
1847+ MI_CH_Bbr = MI_CH_Asr,
1848+ MI_CH_Br,
1849+
1850+ // MIDI Chord Keycodes - Major
1851+
1852+ MI_CH_C,
1853+ MI_CH_Cs,
1854+ MI_CH_Db = MI_CH_Cs,
1855+ MI_CH_D,
1856+ MI_CH_Ds,
1857+ MI_CH_Eb = MI_CH_Ds,
1858+ MI_CH_E,
1859+ MI_CH_F,
1860+ MI_CH_Fs,
1861+ MI_CH_Gb = MI_CH_Fs,
1862+ MI_CH_G,
1863+ MI_CH_Gs,
1864+ MI_CH_Ab = MI_CH_Gs,
1865+ MI_CH_A,
1866+ MI_CH_As,
1867+ MI_CH_Bb = MI_CH_As,
1868+ MI_CH_B,
1869+
1870+ // MIDI Chord Keycodes Minor
1871+
1872+ MI_CH_Cm,
1873+ MI_CH_Csm,
1874+ MI_CH_Dbm = MI_CH_Csm,
1875+ MI_CH_Dm,
1876+ MI_CH_Dsm,
1877+ MI_CH_Ebm = MI_CH_Dsm,
1878+ MI_CH_Em,
1879+ MI_CH_Fm,
1880+ MI_CH_Fsm,
1881+ MI_CH_Gbm = MI_CH_Fsm,
1882+ MI_CH_Gm,
1883+ MI_CH_Gsm,
1884+ MI_CH_Abm = MI_CH_Gsm,
1885+ MI_CH_Am,
1886+ MI_CH_Asm,
1887+ MI_CH_Bbm = MI_CH_Asm,
1888diff --git a/keyboards/giabalanai/keymaps/via_giabarinaix2/readme.md b/keyboards/giabalanai/keymaps/via_giabarinaix2/readme.md
1889new file mode 100644
1890index 0000000000000000000000000000000000000000..04c1613d530aa3cdff9372fb41de9c86dd49a8a6
1891--- /dev/null
1892+++ b/keyboards/giabalanai/keymaps/via_giabarinaix2/readme.md
1893@@ -0,0 +1 @@
1894+# The default keymap for giabarinaix2, VIA version.
1895diff --git a/keyboards/giabalanai/keymaps/via_giabarinaix2/rules.mk b/keyboards/giabalanai/keymaps/via_giabarinaix2/rules.mk
1896new file mode 100644
1897index 0000000000000000000000000000000000000000..f4836fd4f203fb8aa2ab2fddb507a3803c79bd4b
1898--- /dev/null
1899+++ b/keyboards/giabalanai/keymaps/via_giabarinaix2/rules.mk
1900@@ -0,0 +1,4 @@
1901+VIA_ENABLE = yes
1902+ENCODER_ENABLE = no # encoder on mute button
1903+
1904+ENCODER_MAP_ENABLE = yes # replacing ENCODERS_CW_KEY method to this on 2022/08/31.
1905diff --git a/keyboards/giabalanai/readme.md b/keyboards/giabalanai/readme.md
1906new file mode 100644
1907index 0000000000000000000000000000000000000000..30b1b60cd1b03ebfb04f0c8616ce825b62065760
1908--- /dev/null
1909+++ b/keyboards/giabalanai/readme.md
1910@@ -0,0 +1,24 @@
1911+# giabalanai
1912+
1913+<p align=center>
1914+<img width="700" alt="giabalanai_logo" src="https://github.com/3araht/giabalanai/blob/main/pictures/giabalanai_logo.png">
1915+</p>
1916+
1917+
1918+
1919+giabalanai keyboard is a simple-design Chromatic Button Accordion-ish MIDI keyboard (60 bass + C-system 62 keys = 38 notes) that doesn't have bellows nor register switches.
1920+
1921+* Keyboard Maintainer: [3araht](https://github.com/3araht)
1922+* Hardware Supported: giabalanai keyboard, a split keyboard mainly work as MIDI keyboard.
1923+* Hardware Availability: [Yushakobo](https://yushakobo.jp/shop/consign_giabalanai/) or [BOOTH](https://3araht.booth.pm/). Click [here](https://www.tenso.com/en/static/lp_shop_booth) for BOOTH overseas shipping!
1924+
1925+
1926+Make example for this keyboard (after setting up your build environment):
1927+
1928+ make giabalanai:default
1929+
1930+Flashing example for this keyboard:
1931+
1932+ make giabalanai:default:flash
1933+
1934diff --git a/keyboards/giabalanai/rules.mk b/keyboards/giabalanai/rules.mk
1935new file mode 100644
1936index 0000000000000000000000000000000000000000..b642aa9aa3a4a77c161468b71bd69f2838d9f8ec
1937--- /dev/null
1938+++ b/keyboards/giabalanai/rules.mk
1939@@ -0,0 +1,26 @@
1940+# MCU name
1941+MCU = atmega32u4
1942+
1943+# Bootloader selection
1944+BOOTLOADER = caterina
1945+
1946+# Build Options
1947+# change yes to no to disable
1948+#
1949+BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
1950+MOUSEKEY_ENABLE = no # Mouse keys
1951+EXTRAKEY_ENABLE = yes # Audio control and System control
1952+CONSOLE_ENABLE = no # Console for debug
1953+COMMAND_ENABLE = no # Commands for debug and configuration
1954+NKRO_ENABLE = no # Enable N-Key Rollover
1955+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
1956+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
1957+AUDIO_ENABLE = no # Audio output
1958+MIDI_ENABLE = yes # MIDI support
1959+ENCODER_ENABLE = yes # encoder on mute button
1960+SPLIT_KEYBOARD = yes # Enables split keyboard support
1961+# RGB_MATRIX_ENABLE is not suitable for giabalanai keyboard on the right side (there are dulpicate keys).
1962+RGB_MATRIX_ENABLE = no # Use RGB matrix (Don't enable this when RGBLIGHT_ENABLE is used.)
1963+RGB_MATRIX_DRIVER = WS2812 # 2021/01/23 added.
1964+
1965+LTO_ENABLE = yes