Closed 01GOD closed 1 month ago
Please, make sure that you clone the latest version of main. I checked the project, it is compiled in IDE v.2.3.3 and v.1.8.9 successfully. I now added IF's for ESP32 / ESP32S3 variants.
Updated ESP32 board library to 3.0.3. Yes, that is the newest.
And then tried compiling again using Arduino IDE 2.3.2. I can update to 2.3.3, but maybe it's a macOS issue. Really weird errors that make it look as though stdlib isn't in it, so I tried adding includes for Arduino.h and stdlib.h, but that didn't make it compile either. Only other thing that seems logical is maybe there is something is trying to get an output from that method it errors on.
Here is that debug log:
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:345:13: error: variable or field 'instr_noteon' declared void
345 | static void instr_noteon(byte instr, byte value, byte do_glide, byte do_accent) {
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:345:26: error: reference to 'byte' is ambiguous
345 | static void instr_noteon(byte instr, byte value, byte do_glide, byte do_accent) {
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:345:38: error: reference to 'byte' is ambiguous
345 | static void instr_noteon(byte instr, byte value, byte do_glide, byte do_accent) {
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:345:50: error: reference to 'byte' is ambiguous
345 | static void instr_noteon(byte instr, byte value, byte do_glide, byte do_accent) {
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:345:65: error: reference to 'byte' is ambiguous
345 | static void instr_noteon(byte instr, byte value, byte do_glide, byte do_accent) {
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:363:6: error: variable or field 'sequencer_step' declared void
363 | void sequencer_step(byte step) {
| ^~~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:363:21: error: reference to 'byte' is ambiguous
363 | void sequencer_step(byte step) {
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:448:8: error: reference to 'byte' is ambiguous
448 | static byte generate_note_set(uint8_t note_set) {
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:468:8: error: reference to 'byte' is ambiguous
468 | static byte flip(byte percent_chance) {
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:472:48: error: reference to 'byte' is ambiguous
472 | static void generate_melody(uint8_t note_set, byte note_set_len,
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:472:48: error: 'byte' has not been declared
472 | static void generate_melody(uint8_t note_set, byte note_set_len,
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:472:85: error: reference to 'byte' is ambiguous
472 | static void generate_melody(uint8_t note_set, byte note_set_len,
| ^
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:472:85: error: 'byte' has not been declared
472 | static void generate_melody(uint8_t note_set, byte note_set_len,
| ^
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:734:6: error: variable or field 'mem_generate_melody' declared void
734 | void mem_generate_melody(byte mem, byte voice) {
| ^~~~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:734:26: error: reference to 'byte' is ambiguous
734 | void mem_generate_melody(byte mem, byte voice) {
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:734:36: error: reference to 'byte' is ambiguous
734 | void mem_generate_melody(byte mem, byte voice) {
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:751:6: error: variable or field 'mem_generate_melody_and_seed' declared void
751 | void mem_generate_melody_and_seed(byte mem, byte voice) {
| ^~~~~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:751:35: error: reference to 'byte' is ambiguous
751 | void mem_generate_melody_and_seed(byte mem, byte voice) {
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:751:45: error: reference to 'byte' is ambiguous
751 | void mem_generate_melody_and_seed(byte mem, byte voice) {
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:758:6: error: variable or field 'mem_generate_note_set' declared void
758 | void mem_generate_note_set(byte mem) {
| ^~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:758:28: error: reference to 'byte' is ambiguous
758 | void mem_generate_note_set(byte mem) {
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:778:6: error: variable or field 'mem_generate_all' declared void
778 | void mem_generate_all(byte mem) {
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:778:23: error: reference to 'byte' is ambiguous
778 | void mem_generate_all(byte mem) {
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:785:39: error: reference to 'byte' is ambiguous
785 | void print_pattern(struct Pattern p, byte is_drum) {
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:785:39: error: 'byte' has not been declared
785 | void print_pattern(struct Pattern p, byte is_drum) {
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:797:6: error: variable or field 'print_memory' declared void
797 | void print_memory(byte mem) {
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:797:19: error: reference to 'byte' is ambiguous
797 | void print_memory(byte mem) {
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino: In function 'void setup()':
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino:125:5: error: 'USBSerial' was not declared in this scope; did you mean 'Serial'?
125 | USBSerial.begin(115200);
| ^~~~~
| Serial
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino: In function 'void audio_task1(void)':
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino:36:28: error: 'USBSerial' was not declared in this scope; did you mean 'Serial'?
36 | #define DEBUG(...) USBSerial.println(__VA_ARGS__)
| ^~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino:199:3: note: in expansion of macro 'DEBUG'
199 | DEBUG ("TASK 1 Started");
| ^~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino: At global scope:
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:145:3: error: reference to 'byte' is ambiguous
145 | byte pin;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:151:3: error: reference to 'byte' is ambiguous
151 | byte midi_channel;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:152:3: error: reference to 'byte' is ambiguous
152 | byte is_drum, drum_note;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:153:18: error: reference to 'byte' is ambiguous
153 | void (noteon)(byte chan, byte note, byte vel);
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:153:18: error: 'byte' has not been declared
153 | void (noteon)(byte chan, byte note, byte vel);
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:153:29: error: reference to 'byte' is ambiguous
153 | void (noteon)(byte chan, byte note, byte vel);
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:153:29: error: 'byte' has not been declared
153 | void (noteon)(byte chan, byte note, byte vel);
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:153:40: error: reference to 'byte' is ambiguous
153 | void (noteon)(byte chan, byte note, byte vel);
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:153:40: error: 'byte' has not been declared
153 | void (noteon)(byte chan, byte note, byte vel);
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:154:19: error: reference to 'byte' is ambiguous
154 | void (noteoff)(byte chan, byte note);
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:154:19: error: 'byte' has not been declared
154 | void (noteoff)(byte chan, byte note);
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:154:30: error: reference to 'byte' is ambiguous
154 | void (noteoff)(byte chan, byte note);
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:154:30: error: 'byte' has not been declared
154 | void (noteoff)(byte chan, byte note);
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:155:3: error: reference to 'byte' is ambiguous
155 | byte playing_note;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:165:3: error: reference to 'byte' is ambiguous
165 | byte length = 0;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:177:3: error: reference to 'byte' is ambiguous
177 | byte note_set[MaxNoteSet];
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:178:3: error: reference to 'byte' is ambiguous
178 | byte num_notes_in_set;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:183:8: error: reference to 'byte' is ambiguous
183 | static byte cur_memory;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:190:8: error: reference to 'byte' is ambiguous
190 | static byte button_divider;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:194:14: error: reference to 'byte' is ambiguous
194 | static const byte button_pins[ButLast] = {
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:206:13: error: variable or field 'send_midi_noteon' declared void
206 | static void send_midi_noteon(byte chan, byte note, byte vol) {
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:206:30: error: reference to 'byte' is ambiguous
206 | static void send_midi_noteon(byte chan, byte note, byte vol) {
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:206:41: error: reference to 'byte' is ambiguous
206 | static void send_midi_noteon(byte chan, byte note, byte vol) {
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:206:52: error: reference to 'byte' is ambiguous
206 | static void send_midi_noteon(byte chan, byte note, byte vol) {
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:216:13: error: variable or field 'send_midi_noteoff' declared void
216 | static void send_midi_noteoff(byte chan, byte note) {
| ^~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:216:31: error: reference to 'byte' is ambiguous
216 | static void send_midi_noteoff(byte chan, byte note) {
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:216:42: error: reference to 'byte' is ambiguous
216 | static void send_midi_noteoff(byte chan, byte note) {
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino: In function 'void init_midi()':
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:233:30: error: 'button_pins' was not declared in this scope; did you mean 'buttons'?
233 | init_button(&buttons[i], button_pins[i], i + 1 );
| ^~~
| buttons
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino: At global scope:
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:241:13: error: variable or field 'send_midi_control' declared void
241 | static void send_midi_control(byte chan, byte cc_number, byte cc_value) {
| ^~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:241:31: error: reference to 'byte' is ambiguous
241 | static void send_midi_control(byte chan, byte cc_number, byte cc_value) {
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:241:42: error: reference to 'byte' is ambiguous
241 | static void send_midi_control(byte chan, byte cc_number, byte cc_value) {
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:241:58: error: reference to 'byte' is ambiguous
241 | static void send_midi_control(byte chan, byte cc_number, byte cc_value) {
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino: In function 'void read_button(Button)':
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:291:69: error: 'struct Button' has no member named 'pin'
291 | button->history = (button->history << 1) | (digitalRead(button->pin) == HIGH);
| ^~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino: At global scope:
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:297:48: error: reference to 'byte' is ambiguous
297 | static void init_button(struct Button button, byte pin, uint8_t num)
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:297:48: error: 'byte' has not been declared
297 | static void init_button(struct Button button, byte pin, uint8_t num)
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino: In function 'void init_button(Button, int, uint8_t)':
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:300:11: error: 'struct Button' has no member named 'pin'
300 | button->pin = pin;
| ^~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino: At global scope:
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:309:13: error: variable or field 'instr_noteoff' declared void
309 | static void instr_noteoff(byte instr) {
| ^~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:309:27: error: reference to 'byte' is ambiguous
309 | static void instr_noteoff(byte instr) {
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino: In function 'void instr_allnotesoff()':
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:321:5: error: 'instr_noteoff' was not declared in this scope; did you mean 'instr_allnotesoff'?
321 | instr_noteoff(i);
| ^~~~~
| instr_allnotesoff
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino: At global scope:
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:325:13: error: variable or field 'instr_noteon_raw' declared void
325 | static void instr_noteon_raw(byte instr, byte note, byte vol, byte do_glide) {
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:325:30: error: reference to 'byte' is ambiguous
325 | static void instr_noteon_raw(byte instr, byte note, byte vol, byte do_glide) {
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:325:42: error: reference to 'byte' is ambiguous
325 | static void instr_noteon_raw(byte instr, byte note, byte vol, byte do_glide) {
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:325:53: error: reference to 'byte' is ambiguous
325 | static void instr_noteon_raw(byte instr, byte note, byte vol, byte do_glide) {
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:325:63: error: reference to 'byte' is ambiguous
325 | static void instr_noteon_raw(byte instr, byte note, byte vol, byte do_glide) {
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:345:13: error: variable or field 'instr_noteon' declared void
345 | static void instr_noteon(byte instr, byte value, byte do_glide, byte do_accent) {
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:345:26: error: reference to 'byte' is ambiguous
345 | static void instr_noteon(byte instr, byte value, byte do_glide, byte do_accent) {
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:345:38: error: reference to 'byte' is ambiguous
345 | static void instr_noteon(byte instr, byte value, byte do_glide, byte do_accent) {
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:345:50: error: reference to 'byte' is ambiguous
345 | static void instr_noteon(byte instr, byte value, byte do_glide, byte do_accent) {
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:345:65: error: reference to 'byte' is ambiguous
345 | static void instr_noteon(byte instr, byte value, byte do_glide, byte do_accent) {
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:363:6: error: variable or field 'sequencer_step' declared void
363 | void sequencer_step(byte step) {
| ^~~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:363:21: error: reference to 'byte' is ambiguous
363 | void sequencer_step(byte step) {
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:448:8: error: reference to 'byte' is ambiguous
448 | static byte generate_note_set(uint8_t note_set) {
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:468:8: error: reference to 'byte' is ambiguous
468 | static byte flip(byte percent_chance) {
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:472:48: error: reference to 'byte' is ambiguous
472 | static void generate_melody(uint8_t note_set, byte note_set_len,
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:472:48: error: 'byte' has not been declared
472 | static void generate_melody(uint8_t note_set, byte note_set_len,
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:473:47: error: reference to 'byte' is ambiguous
473 | uint8_t pattern, byte pattern_len,
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:473:47: error: 'byte' has not been declared
473 | uint8_t pattern, byte pattern_len,
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino: In function 'void generate_melody(uint8_t, int, uint8_t, int, uint16_t, uint16_t)':
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:483:9: error: 'flip' was not declared in this scope
483 | if (flip(chance)) {
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino: At global scope:
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:734:6: error: variable or field 'mem_generate_melody' declared void
734 | void mem_generate_melody(byte mem, byte voice) {
| ^~~~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:734:26: error: reference to 'byte' is ambiguous
734 | void mem_generate_melody(byte mem, byte voice) {
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:734:36: error: reference to 'byte' is ambiguous
734 | void mem_generate_melody(byte mem, byte voice) {
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:751:6: error: variable or field 'mem_generate_melody_and_seed' declared void
751 | void mem_generate_melody_and_seed(byte mem, byte voice) {
| ^~~~~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:751:35: error: reference to 'byte' is ambiguous
751 | void mem_generate_melody_and_seed(byte mem, byte voice) {
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:751:45: error: reference to 'byte' is ambiguous
751 | void mem_generate_melody_and_seed(byte mem, byte voice) {
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:758:6: error: variable or field 'mem_generate_note_set' declared void
758 | void mem_generate_note_set(byte mem) {
| ^~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:758:28: error: reference to 'byte' is ambiguous
758 | void mem_generate_note_set(byte mem) {
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:778:6: error: variable or field 'mem_generate_all' declared void
778 | void mem_generate_all(byte mem) {
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:778:23: error: reference to 'byte' is ambiguous
778 | void mem_generate_all(byte mem) {
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:785:39: error: reference to 'byte' is ambiguous
785 | void print_pattern(struct Pattern p, byte is_drum) {
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:785:39: error: 'byte' has not been declared
785 | void print_pattern(struct Pattern p, byte is_drum) {
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino: In function 'void print_pattern(Pattern, int)':
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino:35:27: error: 'USBSerial' was not declared in this scope; did you mean 'Serial'?
35 | #define DEBF(...) USBSerial.printf(VA_ARGS)
| ^~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:788:5: note: in expansion of macro 'DEBF'
788 | DEBF("%3d ", p->notes[i]);
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino:35:27: error: 'USBSerial' was not declared in this scope; did you mean 'Serial'?
35 | #define DEBF(...) USBSerial.printf(VA_ARGS)
| ^~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:792:7: note: in expansion of macro 'DEBF'
792 | DEBF(" %c%c \r\n", (p->accent & (1u << i)) ? 'A' : ' ', (p->glide & (1u << i)) ? '~' : ' ');
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino: At global scope:
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:797:6: error: variable or field 'print_memory' declared void
797 | void print_memory(byte mem) {
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:797:19: error: reference to 'byte' is ambiguous
797 | void print_memory(byte mem) {
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino: In function 'void init_patterns()':
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:813:5: error: 'mem_generate_all' was not declared in this scope
813 | mem_generate_all(i);
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino: At global scope:
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:822:8: error: reference to 'byte' is ambiguous
822 | static byte midi_playing, midi_tick, midi_step;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino: In function 'void decide_on_break()':
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:839:13: error: 'struct sBreak' has no member named 'length'
839 | Break.length = 4;
| ^~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:840:41: error: 'struct sBreak' has no member named 'length'
840 | Break.after = Break.start + Break.length;
| ^~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:843:11: error: 'flip' was not declared in this scope
843 | if (flip(50)) {
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:846:15: error: 'struct sBreak' has no member named 'length'
846 | Break.length = 1;
| ^~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:847:43: error: 'struct sBreak' has no member named 'length'
847 | Break.after = Break.start + Break.length;
| ^~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:850:11: error: 'flip' was not declared in this scope
850 | if (flip(30)) {
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:854:15: error: 'struct sBreak' has no member named 'length'
854 | Break.length = 2;
| ^~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:855:43: error: 'struct sBreak' has no member named 'length'
855 | Break.after = Break.start + Break.length;
| ^~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:858:11: error: 'flip' was not declared in this scope
858 | if (flip(30)) {
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:862:15: error: 'struct sBreak' has no member named 'length'
862 | Break.length = 3;
| ^~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:863:43: error: 'struct sBreak' has no member named 'length'
863 | Break.after = Break.start + Break.length;
| ^~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:866:11: error: 'flip' was not declared in this scope
866 | if (flip(30)) {
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:870:15: error: 'struct sBreak' has no member named 'length'
870 | Break.length = 4;
| ^~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:871:43: error: 'struct sBreak' has no member named 'length'
871 | Break.after = Break.start + Break.length;
| ^~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:874:11: error: 'flip' was not declared in this scope
874 | if (flip(15)) {
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:878:15: error: 'struct sBreak' has no member named 'length'
878 | Break.length = 1;
| ^~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:879:43: error: 'struct sBreak' has no member named 'length'
879 | Break.after = Break.start + Break.length;
| ^~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:882:11: error: 'flip' was not declared in this scope
882 | if (flip(15)) {
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:886:15: error: 'struct sBreak' has no member named 'length'
886 | Break.length = 2;
| ^~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:887:43: error: 'struct sBreak' has no member named 'length'
887 | Break.after = Break.start + Break.length;
| ^~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:890:11: error: 'flip' was not declared in this scope
890 | if (flip(10)) {
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:894:15: error: 'struct sBreak' has no member named 'length'
894 | Break.length = 1;
| ^~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:895:43: error: 'struct sBreak' has no member named 'length'
895 | Break.after = Break.start + Break.length;
| ^~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:904:11: error: 'flip' was not declared in this scope
904 | if (flip(80)) mem_generate_melody_and_seed(cur_memory, 0);
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:904:50: error: 'cur_memory' was not declared in this scope
904 | if (flip(80)) mem_generate_melody_and_seed(cur_memory, 0);
| ^~~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:904:21: error: 'mem_generate_melody_and_seed' was not declared in this scope
904 | if (flip(80)) mem_generate_melody_and_seed(cur_memory, 0);
| ^~~~~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:905:11: error: 'flip' was not declared in this scope
905 | if (flip(60)) mem_generate_melody_and_seed(cur_memory, 1);
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:905:50: error: 'cur_memory' was not declared in this scope
905 | if (flip(60)) mem_generate_melody_and_seed(cur_memory, 1);
| ^~~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:905:21: error: 'mem_generate_melody_and_seed' was not declared in this scope
905 | if (flip(60)) mem_generate_melody_and_seed(cur_memory, 1);
| ^~~~~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:906:11: error: 'flip' was not declared in this scope
906 | if (flip(15)) mem_generate_note_set(cur_memory);
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:906:43: error: 'cur_memory' was not declared in this scope
906 | if (flip(15)) mem_generate_note_set(cur_memory);
| ^~~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:906:21: error: 'mem_generate_note_set' was not declared in this scope
906 | if (flip(15)) mem_generate_note_set(cur_memory);
| ^~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino:35:27: error: 'USBSerial' was not declared in this scope; did you mean 'Serial'?
35 | #define DEBF(...) USBSerial.printf(VA_ARGS__)
| ^~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:910:3: note: in expansion of macro 'DEBF'
910 | DEBF("bar=%d break.len=%d break.status=%d \r\n", bars_played, Break.length, Break.status);
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:910:73: error: 'struct sBreak' has no member named 'length'
910 | DEBF("bar=%d break.len=%d break.status=%d \r\n", bars_played, Break.length, Break.status);
| ^~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino:35:44: note: in definition of macro 'DEBF'
35 | #define DEBF(...) USBSerial.printf(VA_ARGS)
| ^~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino: In function 'void do_midi_start()':
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:915:3: error: 'midi_playing' was not declared in this scope
915 | midi_playing = 1;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:916:3: error: 'midi_tick' was not declared in this scope; did you mean 'midi_tick_ms'?
916 | midi_tick = MIDI_TICKS_PER_16TH - 1;
| ^~~~~
| midi_tick_ms
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:917:3: error: 'midi_step' was not declared in this scope
917 | midi_step = -1;
| ^~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:918:3: error: 'send_midi_control' was not declared in this scope; did you mean 'send_midi_stop'?
918 | send_midi_control(SYNTH1_MIDI_CHAN, 10, 10);
| ^~~~~
| send_midi_stop
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino: In function 'void do_midi_ramps()':
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:950:5: error: 'send_midi_control' was not declared in this scope; did you mean 'send_midi_stop'?
950 | send_midi_control(midiRamps[i].chan, midiRamps[i].cc_number, val);
| ^~~~~
| send_midi_stop
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino:35:27: error: 'USBSerial' was not declared in this scope; did you mean 'Serial'?
35 | #define DEBF(...) USBSerial.printf(VA_ARGS)
| ^~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:952:5: note: in expansion of macro 'DEBF'
952 | DEBF("ramp: %d chan: %d cc: %d = %d \r\n", i, midiRamps[i].chan, midiRamps[i].cc_number, val);
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino: In function 'void check_midi_ramps(boolean)':
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:963:11: error: 'send_midi_control' was not declared in this scope; did you mean 'send_midi_stop'?
963 | send_midi_control(midiRamps[i].chan, midiRamps[i].cc_number, midiRamps[i].def_val);
| ^~~~~
| send_midi_stop
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:994:39: error: 'struct sBreak' has no member named 'length'
994 | midiRamps[i].leftBars = Break.length;
| ^~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:996:106: error: 'struct sBreak' has no member named 'length'
996 | midiRamps[i].stepPer16th = ((float)(midiRamps[i].max_val - midiRamps[i].min_val) / (float)(Break.length * PatternLength));
| ^~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino: In function 'void do_midi_tick()':
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:1004:3: error: 'midi_tick' was not declared in this scope; did you mean 'midi_tick_ms'?
1004 | midi_tick++;
| ^~~~~
| midi_tick_ms
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:1007:5: error: 'midi_step' was not declared in this scope
1007 | midi_step++;
| ^~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:1014:5: error: 'sequencer_step' was not declared in this scope
1014 | sequencer_step(midi_step);
| ^~~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino: In function 'void do_midi_stop()':
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:1021:3: error: 'midi_playing' was not declared in this scope
1021 | midi_playing = 0;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino: At global scope:
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:1029:14: error: reference to 'byte' is ambiguous
1029 | static const byte synth_midi_channels[1] = { SYNTH1_MIDI_CHAN};
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/tools/esp-xs3/2302/xtensa-esp32s3-elf/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
/Users/infinity/Library/Arduino15/packages/esp32/hardware/esp32/3.0.3/cores/esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino: In function 'void init_instruments()':
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:1036:10: error: 'Instrument' {aka 'struct Instrument'} has no member named 'midi_channel'
1036 | ins->midi_channel = synth_midi_channels[i];
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:1036:25: error: 'synth_midi_channels' was not declared in this scope
1036 | ins->midi_channel = synth_midi_channels[i];
| ^~~~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:1037:10: error: 'Instrument' {aka 'struct Instrument'} has no member named 'is_drum'
1037 | ins->is_drum = 0;
| ^~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:1038:19: error: 'send_midi_noteon' was not declared in this scope; did you mean 'send_midi_stop'?
1038 | ins->noteon = send_midi_noteon;
| ^~~~
| send_midi_stop
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:1039:20: error: 'send_midi_noteoff' was not declared in this scope; did you mean 'send_midi_stop'?
1039 | ins->noteoff = send_midi_noteoff;
| ^~~~~
| send_midi_stop
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino: In function 'void run_ui()':
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino:35:27: error: 'USBSerial' was not declared in this scope; did you mean 'Serial'?
35 | #define DEBF(...) USBSerial.printf(VA_ARGS)
| ^~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:1067:9: note: in expansion of macro 'DEBF'
1067 | DEBF("copy %d to %d\r\n", source_memory, i);
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino:35:27: error: 'USBSerial' was not declared in this scope; did you mean 'Serial'?
35 | #define DEBF(...) USBSerial.printf(__VA_ARGS)
| ^~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:1072:9: note: in expansion of macro 'DEBF'
1072 | DEBF("switching to memory %d", i);
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:1074:9: error: 'cur_memory' was not declared in this scope; did you mean 'source_memory'?
1074 | cur_memory = i;
| ^~~~~~
| source_memory
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:1081:34: error: 'cur_memory' was not declared in this scope; did you mean 'source_memory'?
1081 | mem_generate_melody_and_seed(cur_memory, 0);
| ^~~~~~
| source_memory
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:1081:5: error: 'mem_generate_melody_and_seed' was not declared in this scope
1081 | mem_generate_melody_and_seed(cur_memory, 0);
| ^~~~~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:1082:5: error: 'print_memory' was not declared in this scope
1082 | print_memory(cur_memory);
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:1085:34: error: 'cur_memory' was not declared in this scope; did you mean 'source_memory'?
1085 | mem_generate_melody_and_seed(cur_memory, 1);
| ^~~~~~
| source_memory
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:1085:5: error: 'mem_generate_melody_and_seed' was not declared in this scope
1085 | mem_generate_melody_and_seed(cur_memory, 1);
| ^~~~~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:1086:5: error: 'print_memory' was not declared in this scope
1086 | print_memory(cur_memory);
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:1089:27: error: 'cur_memory' was not declared in this scope; did you mean 'source_memory'?
1089 | mem_generate_note_set(cur_memory);
| ^~~~~~
| source_memory
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:1089:5: error: 'mem_generate_note_set' was not declared in this scope
1089 | mem_generate_note_set(cur_memory);
| ^~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:1090:5: error: 'print_memory' was not declared in this scope
1090 | print_memory(cur_memory);
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:1094:18: error: 'cur_memory' was not declared in this scope; did you mean 'source_memory'?
1094 | print_memory(cur_memory);
| ^~~~~~
| source_memory
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:1094:5: error: 'print_memory' was not declared in this scope
1094 | print_memory(cur_memory);
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:1099:9: error: 'midi_playing' was not declared in this scope
1099 | if (midi_playing) {
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino:36:28: error: 'USBSerial' was not declared in this scope; did you mean 'Serial'?
36 | #define DEBUG(...) USBSerial.println(VA_ARGS)
| ^~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:1101:7: note: in expansion of macro 'DEBUG'
1101 | DEBUG("stopping midi");
| ^~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino:35:27: error: 'USBSerial' was not declared in this scope; did you mean 'Serial'?
35 | #define DEBF(...) USBSerial.printf(VA_ARGS)
| ^~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:1106:7: note: in expansion of macro 'DEBF'
1106 | DEBF("starting midi clock, dt=%lu", midi_tick_ms);
| ^~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino: In function 'void run_tick()':
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:1118:3: error: 'button_divider' was not declared in this scope
1118 | button_divider++;
| ^~~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:1129:7: error: 'midi_playing' was not declared in this scope
1129 | if (midi_playing && (now - last_midi_tick) >= midi_tick_ms) {
| ^~~~
exit status 1
Compilation error: variable or field 'send_midi_noteon' declared void
Ah I see. This port is not yet adapted for core v.3.x.x, please, revert to v.2.0.17, this one should compile ok.
Ah I see. This port is not yet adapted for core v.3.x.x, please, revert to v.2.0.17, this one should compile ok.
Ah! OK.
Surprising that board updates from Expressif in that IDE aren't backward compatible. I imagine STM and Atmega MCUs don't have that issue.
I installed ESP32 board library 2.0.17.
Still a compiler error though, sadly. What library is "USBSerial" from?
Here is the console log of that error:
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino: In function 'void setup()':
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino:125:5: error: 'USBSerial' was not declared in this scope
USBSerial.begin(115200);
^~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino:125:5: note: suggested alternative: 'Serial'
USBSerial.begin(115200);
^~~~~
Serial
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino: In function 'void audio_task1(void*)':
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino:36:28: error: 'USBSerial' was not declared in this scope
^~~~~~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino:199:3: note: in expansion of macro 'DEBUG' DEBUG ("TASK 1 Started"); ^~~~~ /Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino:36:28: note: suggested alternative: 'Serial'
^~~~~~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino:199:3: note: in expansion of macro 'DEBUG' DEBUG ("TASK 1 Started"); ^~~~~ /Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino: In function 'void sequencer_step(byte)': /Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino:36:28: error: 'USBSerial' was not declared in this scope
^~~~~~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:394:5: note: in expansion of macro 'DEBUG' DEBUG("CRASH!!!!!!!!!!!!!!!!!!!!!"); ^~~~~ /Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino:36:28: note: suggested alternative: 'Serial'
^~~~~~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:394:5: note: in expansion of macro 'DEBUG' DEBUG("CRASH!!!!!!!!!!!!!!!!!!!!!"); ^~~~~ /Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino:36:28: error: 'USBSerial' was not declared in this scope
^~~~~~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:411:5: note: in expansion of macro 'DEBUG' DEBUG(step); ^~~~~ /Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino:36:28: note: suggested alternative: 'Serial'
^~~~~~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:411:5: note: in expansion of macro 'DEBUG' DEBUG(step); ^~~~~ /Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino: In function 'void print_pattern(Pattern*, byte)': /Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino:35:27: error: 'USBSerial' was not declared in this scope
^~~~~~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:788:5: note: in expansion of macro 'DEBF' DEBF("%3d ", p->notes[i]); ^~~~ /Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino:35:27: note: suggested alternative: 'Serial'
^~~~~~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:788:5: note: in expansion of macro 'DEBF' DEBF("%3d ", p->notes[i]); ^~~~ /Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino:35:27: error: 'USBSerial' was not declared in this scope
^~~~~~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:792:7: note: in expansion of macro 'DEBF' DEBF(" %c%c \r\n", (p->accent & (1u << i)) ? 'A' : ' ', (p->glide & (1u << i)) ? '~' : ' '); ^~~~ /Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino:35:27: note: suggested alternative: 'Serial'
^~~~~~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:792:7: note: in expansion of macro 'DEBF' DEBF(" %c%c \r\n", (p->accent & (1u << i)) ? 'A' : ' ', (p->glide & (1u << i)) ? '~' : ' '); ^~~~ /Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino: In function 'void print_memory(byte)': /Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino:35:27: error: 'USBSerial' was not declared in this scope
^~~~~~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:800:3: note: in expansion of macro 'DEBF' DEBF("--- memory %d ---", mem); ^~~~ /Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino:35:27: note: suggested alternative: 'Serial'
^~~~~~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:800:3: note: in expansion of macro 'DEBF' DEBF("--- memory %d ---", mem); ^~~~ /Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino: In function 'void decide_on_break()': /Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino:35:27: error: 'USBSerial' was not declared in this scope
^~~~~~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:910:3: note: in expansion of macro 'DEBF' DEBF("bar=%d break.len=%d break.status=%d \r\n", bars_played, Break.length, Break.status); ^~~~ /Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino:35:27: note: suggested alternative: 'Serial'
^~~~~~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:910:3: note: in expansion of macro 'DEBF' DEBF("bar=%d break.len=%d break.status=%d \r\n", bars_played, Break.length, Break.status); ^~~~ /Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino: In function 'void do_midi_ramps()': /Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino:35:27: error: 'USBSerial' was not declared in this scope
^~~~~~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:952:5: note: in expansion of macro 'DEBF' DEBF("ramp: %d chan: %d cc: %d = %d \r\n", i, midiRamps[i].chan, midiRamps[i].cc_number, val); ^~~~ /Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino:35:27: note: suggested alternative: 'Serial'
^~~~~~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:952:5: note: in expansion of macro 'DEBF' DEBF("ramp: %d chan: %d cc: %d = %d \r\n", i, midiRamps[i].chan, midiRamps[i].cc_number, val); ^~~~ /Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino: In function 'void run_ui()': /Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino:35:27: error: 'USBSerial' was not declared in this scope
^~~~~~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:1067:9: note: in expansion of macro 'DEBF' DEBF("copy %d to %d\r\n", source_memory, i); ^~~~ /Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino:35:27: note: suggested alternative: 'Serial'
^~~~~~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:1067:9: note: in expansion of macro 'DEBF' DEBF("copy %d to %d\r\n", source_memory, i); ^~~~ /Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino:35:27: error: 'USBSerial' was not declared in this scope
^~~~~~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:1072:9: note: in expansion of macro 'DEBF' DEBF("switching to memory %d", i); ^~~~ /Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino:35:27: note: suggested alternative: 'Serial'
^~~~~~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:1072:9: note: in expansion of macro 'DEBF' DEBF("switching to memory %d", i); ^~~~ /Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino:36:28: error: 'USBSerial' was not declared in this scope
^~~~~~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:1101:7: note: in expansion of macro 'DEBUG' DEBUG("stopping midi"); ^~~~~ /Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino:36:28: note: suggested alternative: 'Serial'
^~~~~~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:1101:7: note: in expansion of macro 'DEBUG' DEBUG("stopping midi"); ^~~~~ /Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino:35:27: error: 'USBSerial' was not declared in this scope
^~~~~~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:1106:7: note: in expansion of macro 'DEBF' DEBF("starting midi clock, dt=%lu", midi_tick_ms); ^~~~ /Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino:35:27: note: suggested alternative: 'Serial'
^~~~~~~~~
/Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/AcidBanger.ino:1106:7: note: in expansion of macro 'DEBF' DEBF("starting midi clock, dt=%lu", midi_tick_ms); ^~~~ /Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/USBSerial.ino: At global scope: /Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/USBSerial.ino:5:6: error: redefinition of 'void setup()' void setup() {} ^~~~~ /Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino:121:6: note: 'void setup()' previously defined here void setup() { ^~~~~ /Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/USBSerial.ino:6:6: error: redefinition of 'void loop()' void loop() {} ^~~~ /Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino:166:6: note: 'void loop()' previously defined here void loop() { ^~~~
exit status 1
Compilation error: 'USBSerial' was not declared in this scope
Tried simply commenting out those calls, but then there were many, many other compiler errors. I assume wrote macros to replace DEBUG() with Serial.println or similar somewhere, but maybe didn't include that file in the repo.
Anyway, now compiler is complaining about zigbee mode on the one that was compiling before, so maybe switching between board library versions wasn't something that IDE can handle properly.
Depending on what mcu you have, select either esp32 devboard or esp32s3 devboard, and download latest repo of open303 port
I thankfully got it to compile by adding this to that main .ino:
Thanks again for posting that port! I recommend having a look at that work-in-progress diode ladder port I worked on for most of yesterday night. Actually I worked on it A LOT yesterday using that HORRIBLY formatted PDF (that added a bunch of nonsense and bizarre line breaks and so on when copied from), and then today remembered that there was a repo with generally the same as PDF, so started modifying those files instead.
That is here: https://github.com/01GOD/Porting_VADiodeLadderFilter_To_Embedded_C
PS: Hearing that was a reminder that a vanilla silver box of that type sounds relatively basic compared to when compressor and bass boost and an MXR and reverb are added.
Initial opinion is that the AcidBox filter (combo?) and that VADiodeLadder filter emulation filter sound noticeably more accurate. I suspect this filter maybe uses less CPU than that VADiodeLadder filter emulation though.
This filter sounds more like somebody is imitating by making sounds through a talkbox in some ways.
Downgrading from double to float reduced accuracy, and now the port requires tuning
Ah! Yes, it sounds out of tune.
Tried adding an LVGL GUI and, although it sounded better than when added a GUI to that other project, it was playing VERY slowly and the CPU was supposedly at about 98% constantly.
There is a way to make the synth run on one core and the GUI run on the other core? (without WIFI)
Oddly it still had that high CPU usage when the jukebox feature was stopped.
Would removing all the external MIDI portion or anything else non-essential lower the CPU usage a lot?
Vaguely pondering using a second ESP32, but that would maybe involve designing a dual MCU cap touch PCB. Sounds doable, although somewhat burly to make. Adding a tiny S3 such as the Seeed Xiao board and powering it from the other board's USB port seems to be an option though.
Tried adding an LVGL GUI and, although it sounded better than when added a GUI to that other project, it was playing VERY slowly and the CPU was supposedly at about 98% constantly.
There is a way to make the synth run on one core and the GUI run on the other core? (without WIFI)
Oddly it still had that high CPU usage when the jukebox feature was stopped.
It's definitely possible to run it on selected cores, when using RTOS tasks
Looked at RTOS tasks some today and it seems putting a lot of tasks on second core would make it run much more efficiently on ESP32. Supposedly the "run arduino on core 0" means that ALL of the code in Arduino IDE runs on only that core. That obviously seems SO inefficient.
Here is a supposed example of multi-core tasks for assignment: `// Task handle for the task to be created TaskHandle_t Task1;
// Function to be called as a task void Task1code( void * parameter ) { for(;;) { Serial.println("Task 1 is running on core " + String(xPortGetCoreID())); delay(1000); } }
void setup() { // Initialize serial communication Serial.begin(115200); // Create a task that will be executed in the Task1code() function, with priority 1, and executed on core 1 xTaskCreatePinnedToCore( Task1code, / Task function. / "Task1", / name of task. / 10000, / Stack size of task / NULL, / parameter of the task / 1, / priority of the task / &Task1, / Task handle to keep track of created task / 1); / pin task to core 1 / delay(500); }
void loop() { // Print which core the loop is running on Serial.println("Arduino loop is running on core " + String(xPortGetCoreID())); delay(1000); }`
Yes, correct, and actually you are not obliged to use Arduino loop(), you can kill it with vTaskDelete(NULL) like this
Loop() {
vTaskDelete(NULL);
}
There is also more advanced technique to manage tasks with so called event loops, which can help with balancing cores' load.
Yes, correct, and actually you are not obliged to use Arduino loop(), you can kill it with vTaskDelete(NULL) like this
Loop() { vTaskDelete(NULL); }
There is also more advanced technique to manage tasks with so called event loops, which can help with balancing cores' load.
Pondering if that or designing a dual ESP32 PCB is easier to get a GUI on some synths.
Frankly speaking I would prefer RP2040 as a control mcu, cause it has all the USB host functions, while ESP32-S3's host abilities is still under development.
Frankly speaking I would prefer RP2040 as a control mcu, cause it has all the USB host functions, while ESP32-S3's host abilities is still under development.
Ah. So using an RP2040 as a synth makes MIDI control through USB from a computer easy? I assume that is what "USB host functions" would be for in that use case.
Nope. When connecting to a PC, MCU acts as a USB device, not as a host. Host functionality makes it possible connecting USB MIDI keyboard to the MCU directly.
Nope. When connecting to a PC, MCU acts as a USB device, not as a host. Host functionality makes it possible connecting USB MIDI keyboard to the MCU directly.
OK, realized I had that concept backwards. Seems obvious that the computer with DAW would be "host" and a peripheral would be a "device".
So using an RP2040 as a synth makes MIDI control from a "USB host", such as a computer, easier than with an ESP32?
ESP32 has that USB host ability no matter one or two connectors are present. But the library components are still under development and are quite raw i'd say.
ESP32 has that USB host ability no matter one or two connectors are present. But the library components are still under development and are quite raw i'd say.
Ah. So it's recommendable to use Arduino MIDI Library for making ESP32 synths that are controllable from a laptop DAW through MIDI over USB? (until the ESP32 library is completed enough)
I'd do so
Ever tried putting the filter on an FPGA? Seems like that can be a nice solution to use with many different MCU. A diode ladder filter ASIC would be nice also. I made some SMT boards that had been posted on youtube, but the 2 that I made sadly didn't function yet (maybe because of chinese components though).
FPGA and ASIC aren't yet my hobbies. Also this doesn't seem to be affordable, so a bit out of DIY theme.
The cost used to be a reason I hadn’t done any FPGA programming, although now thankfully the “Tang Nano 1K” is low cost, and it can run a full color tetris emulation.
So I got one of those yesterday. Main issue now is how to transfer data between the boards.Doing a serial bitstream seems slow, but I have’t run the maths of 16 bits at clock speed for latency info. The cool thing about using fpga for filters is that it can likely be multiple filterrs with no latency, so that should compensate for data transfer speed. Recommend a better way to transfer data to it?
Plan is to only put filter on the fpga. Doing i2s from fpga sounds complicated though, so was thinking may start by sending processed data back to ESP32.
Anyway, sounds complicated (although sounds easier in some ways than yesterday, when had a pile of wires connected up to try to make a +~ 12V diode ladder filter on a PCB function) and the wireless communication between ESP32 boards may still be best solution to that GUI speed issue.
I should maybe quit attempting that for now, unless I commit to making a dual ESP32 board with a touchscreen. Yesterday a voltage converter was smoking on the first ESP32 PCB that I designed that sorta functions though, and a supposed expert at PCB design looked at schematic and couldn’t clearly find the reason why, so I maybe should base boards on known functional open source schematics next time.
On Thu, Aug 15, 2024 at 3:33 AM copych @.***> wrote:
FPGA and ASIC aren't yet my hobbies. Also this doesn't seem to be affordable, so a bit out of DIY theme.
— Reply to this email directly, view it on GitHub https://github.com/copych/ESP32_Open303/issues/2#issuecomment-2289717384, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACJ7JDVX266CMNCKAON4P43ZROWJ3AVCNFSM6AAAAABMBUPJNWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEOBZG4YTOMZYGQ . You are receiving this because you authored the thread.Message ID: @.***>
The matter is that accordingly to Wiki, i2s stands for Inter-Integrated Circuit Sound and intended for transmitting two-channel digital audio as PCM between integrated circuit components. So in your case you'll first have to direct the i2s stream to FPGA filter and then back to ESP32, fully occupying one ESP's duplex i2s port, leaving the second port for output (in theory). I don't think that you need to invent something instead of i2s, cause AFAIK i2s ports of ESP32 are using hardware and DMA, so any alternatives would probably be less CPU effective. And maybe there's already some i2s implementation for Tang Nano (which really seems to be affordable).
The matter is that accordingly to Wiki, i2s stands for Inter-Integrated Circuit Sound and intended for transmitting two-channel digital audio as PCM between integrated circuit components. So in your case you'll first have to direct the i2s stream to FPGA filter and then back to ESP32, fully occupying one ESP's duplex i2s port, leaving the second port for output (in theory). I don't think that you need to invent something instead of i2s, cause AFAIK i2s ports of ESP32 are using hardware and DMA, so any alternatives would probably be less CPU effective. And maybe there's already some i2s implementation for Tang Nano (which really seems to be affordable).
Thanks for explaining that! Yes, after I saw full color tetris running with a gamepad on the lowest cost tang nano, I decided to get one.
By the way, it seems generally recommendable to make all of the secondary C and CPP and Header files (aside from the main .ino of a project) .c or .cpp or .h respectively, and declaring all the functions in a .h file for each. That overcomes the hassle of the Arduino compiler failing to include all the .ino files (as it has HORRIBLY been doing tonight, even after restarting it multiple times...sigh...). I think there are scripts for auto-generating header files.
By the way, tried PlatformIO yet? Wondering if it has less hassles and better reliability than the Arduino IDE. (Tired of setting board parameters in Tools menu every time I plug in same board and tired of having to restart that IDE because of it not finding .ino files in same dir and so on)
It comes in its place once you get the logics of arduino :-/ All contents of header (.h, .hpp) files are globally visible once included, while [.ino] files are joined in alphabetical order before compiling and threated as a single [.cpp] file. In [.h] files you include what you need to declare, and in [.c, .cpp, .ino] you include what you need to implement the declared. About PlatformIO. I was excited when I first tried the thing, but after some usage I reverted to Arduino. The reasons are the following:
It comes in its place once you get the logics of arduino :-/ All contents of header (.h, .hpp) files are globally visible once included, while [.ino] files are joined in alphabetical order before compiling and threated as a single [.cpp] file. In [.h] files you include what you need to declare, and in [.c, .cpp, .ino] you include what you need to implement the declared. About PlatformIO. I was excited when I first tried the thing, but after some usage I reverted to Arduino. The reasons are the following:
- People have problems with cloning projects in PlatformIO
- Instability. You may have successfully compile your project today, save it, but after a month has passed you may find a dozen of strange error messages, and it's not just wrong lib version...
Yesterday was VERY busy (so is today), so excuse the delay in replying. Yesterday THANKFULLY got the first functional MCU PCB design I have made functioning. That's an ESP32 S3 board, so I may hook up a DAC to it later (waiting for a replacement cap as some of the chinese caps seemed faulty) and plug in a knob and run one of these on that.
Thanks for that warning about PlatformIO! Hopefully it's much more stable and reliable recently. Tried the Expressif IDE also?
Basically what had happened in Arduino IDE was compiler said it couldn't find: synth1_generate()
, although that was in an included .ino. That said, the .ino that is in is alphabetically AFTER the ino it was called from. But that usually compiled, so I don't know why it wasn't. There was some zigbee option causing compiler errors before that, so had deleted the arduino settings files and then that other compiler error happened a while after that (although some other things compiled).
Haven't done a lot of C++ programming and when made C++ specific-ish header files it was in Objective-C++, so don't think there were .hpp there. Had thought that .h files work with .cpp files also. Anyway, found a C headers generator script here (although bizarrely python wasn't already installed and then the installer wanted to install 15GB or so...blame apple, so I haven't tried that): https://github.com/eriknyquist/cheaders
On IDEs. I have tried Espressif IDE, but this was a nightmare when clean installed IDE just won't comple examples and won't even let you choose a target board. After some tribe dancing I cancelled and moved to VS Code (actually, PlatformIO and Arduino IDE 2.X are based on VS Code) About the errors like you described, you can place an empty forward function declaration in the beginning before the first call, if you are sure that you have an implementation somewhere in the project.
On IDEs. I have tried Espressif IDE, but this was a nightmare when clean installed IDE just won't comple examples and won't even let you choose a target board. After some tribe dancing I cancelled and moved to VS Code (actually, PlatformIO and Arduino IDE 2.X are based on VS Code) About the errors like you described, you can place an empty forward function declaration in the beginning before the first call, if you are sure that you have an implementation somewhere in the project.
Right, adding a quick declaration instead of a header file. That can be alright for getting things functioning.
Ah, didn't know it's based on VS Code. By the way, today saw posts about USB MIDI host mode on: https://github.com/touchgadget/esp32-usb-host-demos/issues/1
Is that USB host code for S3 boards already included in AcidBox now?
Nope, I haven't succeeded with getting the example to work, so I postponed adding the USB host to the AcidBox. Also I am not sure that we have enough CPU cycles left to fit these routines, so I'm gonna test it someday again.
Nope, I haven't succeeded with getting the example to work, so I postponed adding the USB host to the AcidBox. Also I am not sure that we have enough CPU cycles left to fit these routines, so I'm gonna test it someday again.
Ah, tried it also? I should notify that repo about the specifics of those issues...oh wait, there weren't many specifics...aside from the TX light turning on after it was loaded.
By the way, using only one bass synth to have MUCH better performance and CPU space is totally reasonable to do. Can add an easy #define flag for that option.
Additional info, AFAIK PlatformIO cancelles support for the new ESP Arduino core.
Ah, not so informed about that.
On Fri, Aug 23, 2024 at 3:58 PM copych @.***> wrote:
Additional info, AFAIK PlatformIO cancelles support for the new ESP Arduino core.
— Reply to this email directly, view it on GitHub https://github.com/copych/ESP32_Open303/issues/2#issuecomment-2306514361, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACJ7JDSULZ7KWCSQTXU4UFDZS3TRPAVCNFSM6AAAAABMBUPJNWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMBWGUYTIMZWGE . You are receiving this because you authored the thread.Message ID: @.***>
Closing. Feel free to re-open.
OK. Thanks for notifying about that PlatformIO issue.
On Sat, Aug 24, 2024 at 6:56 AM copych @.***> wrote:
Closing. Feel free to re-open.
— Reply to this email directly, view it on GitHub https://github.com/copych/ESP32_Open303/issues/2#issuecomment-2307903517, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACJ7JDTS3YW4HEPT2MPXA53ZS643PAVCNFSM6AAAAABMBUPJNWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMBXHEYDGNJRG4 . You are receiving this because you authored the thread.Message ID: @.***>
Hi,
Thanks for attempting to add that jukebox mode. Notifying that there was a compiler error in Arduino IDE 2.3.2:
I assume there was maybe a function call somewhere that tried to get send_midi_noteon() to output something. The compiler sadly wasn't very precise about the error.
If it compiles properly there on another version of Arduino IDE, then thanks in advance for notifying what version number.