forked from marcel-licence/esp32_drum_computer
-
Notifications
You must be signed in to change notification settings - Fork 0
/
config.h
128 lines (108 loc) · 4.45 KB
/
config.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
/*
* Copyright (c) 2021 Marcel Licence
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* Dieses Programm ist Freie Software: Sie können es unter den Bedingungen
* der GNU General Public License, wie von der Free Software Foundation,
* Version 3 der Lizenz oder (nach Ihrer Wahl) jeder neueren
* veröffentlichten Version, weiter verteilen und/oder modifizieren.
*
* Dieses Programm wird in der Hoffnung bereitgestellt, dass es nützlich sein wird, jedoch
* OHNE JEDE GEWÄHR,; sogar ohne die implizite
* Gewähr der MARKTFÄHIGKEIT oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK.
* Siehe die GNU General Public License für weitere Einzelheiten.
*
* Sie sollten eine Kopie der GNU General Public License zusammen mit diesem
* Programm erhalten haben. Wenn nicht, siehe <https://www.gnu.org/licenses/>.
*/
/**
* @file config.h
* @author Marcel Licence
* @date 12.05.2021
*
* @brief This file contains the project configuration
*
* All definitions are visible in the entire project
*
* Put all your project settings here (defines, numbers, etc.)
* configurations which are requiring knowledge of types etc.
* shall be placed in z_config.ino (will be included at the end)
*/
#ifndef CONFIG_H_
#define CONFIG_H_
/*
* you can select one of the pre-defined boards
* look into ML_SynthTools in ml_boards.h for more information
* @see https://github.com/marcel-licence/ML_SynthTools
*/
//#define BOARD_ML_V1 /* activate this when using the ML PCB V1 */
#define BOARD_ESP32_AUDIO_KIT_AC101 /* activate this when using the ESP32 Audio Kit v2.2 with the AC101 codec */
//#define BOARD_ESP32_AUDIO_KIT_ES8388 /* activate this when using the ESP32 Audio Kit v2.2 with the ES8388 codec */
//#define BOARD_ESP32_DOIT /* activate this when using the DOIT ESP32 DEVKIT V1 board */
/* can be used to pass line in through audio processing to output */
//#define AUDIO_PASS_THROUGH
/* this changes latency but also speed of processing */
#define SAMPLE_BUFFER_SIZE 48
/* this will force using const velocity for all notes, remove this to get dynamic velocity */
#define MIDI_USE_CONST_VELOCITY
/* this variable defines the max length of the delay and also the memory consumption */
//future use: #define MAX_DELAY (SAMPLE_RATE/2) /* 1/2s -> @ 44100 samples */
/* you can receive MIDI messages via serial-USB connection */
/*
* you could use for example https://projectgus.github.io/hairless-midiserial/
* to connect your MIDI device via computer to the serial port
*/
#define MIDI_RECV_FROM_SERIAL
/* activate MIDI via USB (please look into usbMidiHost.ino for more information) */
//#define MIDI_VIA_USB_ENABLED
/* use this to display a scope on the oled display */
//#define OLED_OSC_DISP_ENABLED
/*
* keep in mind that activation of adc will also change your controls on startup!
*/
//#define ADC_TO_MIDI_ENABLED /* this will enable the adc module */
#define ADC_TO_MIDI_LOOKUP_SIZE 8 /* should match ADC_INPUTS */
//#define ARP_MODULE_ENABLED /* allow using arp module */
#define MIDI_SYNC_MASTER /* turn this off to use external midi clock signal */
//#define MIDI_CTRL_ENABLED /* used for virtual split point */
/*
* include the board configuration
* there you will find the most hardware depending pin settings
*/
#include <ml_boards.h> /* requires library ML_SynthTools from https://github.com/marcel-licence/ML_SynthTools */
#ifdef BOARD_ML_V1
#elif (defined BOARD_ESP32_AUDIO_KIT_AC101)
#elif (defined BOARD_ESP32_AUDIO_KIT_ES8388)
#elif (defined BOARD_ESP32_DOIT)
#else
/* there is room left for other configurations */
/*
* DIN MIDI Pinout
*/
#define MIDI_PORT2_ACTIVE
#define MIDI_RX2_PIN 21 /* U2RRXD */
//#define MIDI_TX2_PIN 17
#endif
/*
* You can modify the sample rate as you want
*/
#ifdef ESP32_AUDIO_KIT
#define SAMPLE_RATE 44100
#define SAMPLE_SIZE_16BIT
#else
#define SAMPLE_RATE 48000
#define SAMPLE_SIZE_16BIT /* 32 bit seems not to work at the moment */
#endif
#endif /* CONFIG_H_ */