Firmware for HexBoard MIDI controller
Diffstat (limited to 'Constants.h')
-rw-r--r--Constants.h140
1 files changed, 140 insertions, 0 deletions
diff --git a/Constants.h b/Constants.h
new file mode 100644
index 0000000..a38732b
--- /dev/null
+++ b/Constants.h
@@ -0,0 +1,140 @@
+// hardware pins
+#define SDAPIN 16
+#define SCLPIN 17
+#define LED_PIN 22
+#define ROT_PIN_A 20
+#define ROT_PIN_B 21
+#define ROT_PIN_C 24
+#define MPLEX_1_PIN 4
+#define MPLEX_2_PIN 5
+#define MPLEX_4_PIN 2
+#define MPLEX_8_PIN 3
+#define COLUMN_PIN_0 6
+#define COLUMN_PIN_1 7
+#define COLUMN_PIN_2 8
+#define COLUMN_PIN_3 9
+#define COLUMN_PIN_4 10
+#define COLUMN_PIN_5 11
+#define COLUMN_PIN_6 12
+#define COLUMN_PIN_7 13
+#define COLUMN_PIN_8 14
+#define COLUMN_PIN_9 15
+#define TONEPIN 23
+
+// grid related
+#define LED_COUNT 140
+#define COLCOUNT 10
+#define ROWCOUNT 14
+
+#define HEX_DIRECTION_EAST 0
+#define HEX_DIRECTION_NE 1
+#define HEX_DIRECTION_NW 2
+#define HEX_DIRECTION_WEST 3
+#define HEX_DIRECTION_SW 4
+#define HEX_DIRECTION_SE 5
+
+#define CMDBTN_0 0
+#define CMDBTN_1 20
+#define CMDBTN_2 40
+#define CMDBTN_3 60
+#define CMDBTN_4 80
+#define CMDBTN_5 100
+#define CMDBTN_6 120
+#define CMDCOUNT 7
+
+// microtonal related
+#define TUNINGCOUNT 13
+
+#define TUNING_12EDO 0
+#define TUNING_17EDO 1
+#define TUNING_19EDO 2
+#define TUNING_22EDO 3
+#define TUNING_24EDO 4
+#define TUNING_31EDO 5
+#define TUNING_41EDO 6
+#define TUNING_53EDO 7
+#define TUNING_72EDO 8
+#define TUNING_BP 9
+#define TUNING_ALPHA 10
+#define TUNING_BETA 11
+#define TUNING_GAMMA 12
+
+#define MAX_SCALE_DIVISIONS 72
+#define ALL_TUNINGS 255
+
+// MIDI-related
+#define CONCERT_A_HZ 440.0
+#define PITCH_BEND_SEMIS 2
+#define CMDB 192
+#define UNUSED_NOTE 255
+#define CC_MSG_COOLDOWN_MICROSECONDS 32768
+
+// buzzer related
+#define TONE_SL 3
+#define TONE_CH 1
+#define WAVEFORM_SQUARE 0
+#define WAVEFORM_SAW 1
+#define POLL_INTERVAL_IN_MICROSECONDS 32
+#define POLYPHONY_LIMIT 15
+#define ALARM_NUM 2
+#define ALARM_IRQ TIMER_IRQ_2
+#define BUZZ_OFF 0
+#define BUZZ_MONO 1
+#define BUZZ_ARPEGGIO 2
+#define BUZZ_POLY 3
+
+// LED related
+
+// value / brightness ranges from 0..255
+// black = 0, full strength = 255
+
+#define VALUE_BLACK 0
+#define VALUE_LOW 64
+#define VALUE_SHADE 128
+#define VALUE_NORMAL 192
+#define VALUE_FULL 255
+
+// saturation ranges from 0..255
+// 0 = black and white
+// 255 = full chroma
+
+#define SAT_BW 0
+#define SAT_TINT 32
+#define SAT_DULL 85
+#define SAT_MODERATE 170
+#define SAT_VIVID 255
+
+// hue is an angle from 0.0 to 359.9
+// there is a transform function to map "perceptual"
+// hues to RGB. the hue values below are perceptual.
+#define HUE_NONE 0.0
+#define HUE_RED 0.0
+#define HUE_ORANGE 36.0
+#define HUE_YELLOW 72.0
+#define HUE_LIME 108.0
+#define HUE_GREEN 144.0
+#define HUE_CYAN 180.0
+#define HUE_BLUE 216.0
+#define HUE_INDIGO 252.0
+#define HUE_PURPLE 288.0
+#define HUE_MAGENTA 324.0
+
+#define RAINBOW_MODE 0
+#define TIERED_COLOR_MODE 1
+
+// animations
+#define ANIMATE_NONE 0
+#define ANIMATE_STAR 1
+#define ANIMATE_SPLASH 2
+#define ANIMATE_ORBIT 3
+#define ANIMATE_OCTAVE 4
+#define ANIMATE_BY_NOTE 5
+
+// menu-related
+#define MENU_ITEM_HEIGHT 10
+#define MENU_PAGE_SCREEN_TOP_OFFSET 10
+#define MENU_VALUES_LEFT_OFFSET 78
+
+// debug
+#define DIAGNOSTIC_OFF 0
+#define DIAGNOSTIC_ON 1 \ No newline at end of file