copych / ESP32_Open303

ESP32 port of the Open303 : TB303 bassline clone. Original is here https://github.com/RobinSchmidt/Open303
MIT License
4 stars 2 forks source link

Compile error: exit status 1 Compilation error: variable or field 'send_midi_noteon' declared void #2

Closed 01GOD closed 1 month ago

01GOD commented 2 months ago

Hi,

Thanks for attempting to add that jukebox mode. Notifying that there was a compiler error in Arduino IDE 2.3.2:

/Open303/AcidBanger.ino:346:13: error: variable or field 'instr_noteon' declared void
  346 | static void instr_noteon(byte instr, byte value, byte do_glide, byte do_accent) {
      |             ^~~~~~~~~~~~
exit status 1  Compilation error: variable or field 'send_midi_noteon' declared void

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.

copych commented 2 months 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.

01GOD commented 2 months ago

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

copych commented 2 months ago

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.

01GOD commented 2 months ago

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.

01GOD commented 2 months ago

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

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' DEBUG ("TASK 1 Started"); ^~~~~ /Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino:36:28: note: suggested alternative: 'Serial'

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' 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

define DEBUG(...) USBSerial.println(__VA_ARGS__)

                        ^~~~~~~~~

/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'

define DEBUG(...) USBSerial.println(__VA_ARGS__)

                        ^~~~~~~~~

/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

define DEBUG(...) USBSerial.println(__VA_ARGS__)

                        ^~~~~~~~~

/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'

define DEBUG(...) USBSerial.println(__VA_ARGS__)

                        ^~~~~~~~~

/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

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' DEBF("%3d ", p->notes[i]); ^~~~ /Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino:35:27: note: suggested alternative: 'Serial'

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' 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

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' 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'

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' 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

define DEBF(...) USBSerial.printf(__VA_ARGS__)

                       ^~~~~~~~~

/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'

define DEBF(...) USBSerial.printf(__VA_ARGS__)

                       ^~~~~~~~~

/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

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' 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'

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' 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

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' 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'

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' 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

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' 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'

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' 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

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' 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'

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' 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

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' DEBUG("stopping midi"); ^~~~~ /Users/infinity/Downloads/ESP32/From GitHub/ESP32_Open303-main 3/Open303/Open303.ino:36:28: note: suggested alternative: 'Serial'

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' 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

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' 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'

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' 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

01GOD commented 2 months ago

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.

copych commented 2 months ago

Depending on what mcu you have, select either esp32 devboard or esp32s3 devboard, and download latest repo of open303 port

01GOD commented 2 months ago

I thankfully got it to compile by adding this to that main .ino:

define DEBUG(x) Serial.println(x)

define USBSerial Serial

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

01GOD commented 2 months ago

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.

01GOD commented 2 months ago

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.

copych commented 2 months ago

Downgrading from double to float reduced accuracy, and now the port requires tuning

01GOD commented 2 months ago

Ah! Yes, it sounds out of tune.

01GOD commented 2 months ago

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.

01GOD commented 2 months ago

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.

copych commented 2 months ago

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

01GOD commented 2 months ago

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); }`

copych commented 2 months ago

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.

01GOD commented 2 months ago

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.

copych commented 2 months ago

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.

01GOD commented 2 months ago

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.

copych commented 2 months ago

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.

01GOD commented 2 months ago

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?

copych commented 1 month ago

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.

01GOD commented 1 month ago

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)

copych commented 1 month ago

I'd do so

01GOD commented 1 month ago

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).

copych commented 1 month ago

FPGA and ASIC aren't yet my hobbies. Also this doesn't seem to be affordable, so a bit out of DIY theme.

01GOD commented 1 month ago

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: @.***>

copych commented 1 month ago

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).

01GOD commented 1 month ago

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.

01GOD commented 1 month ago

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)

copych commented 1 month ago

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:

  1. People have problems with cloning projects in PlatformIO
  2. 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...
01GOD commented 1 month ago

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:

  1. People have problems with cloning projects in PlatformIO
  2. 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

copych commented 1 month ago

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.

01GOD commented 1 month ago

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?

copych commented 1 month ago

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.

01GOD commented 1 month ago

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.

copych commented 1 month ago

Additional info, AFAIK PlatformIO cancelles support for the new ESP Arduino core.

01GOD commented 1 month ago

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: @.***>

copych commented 1 month ago

Closing. Feel free to re-open.

01GOD commented 1 month ago

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: @.***>