diff --git a/.github/workflows/arduino-cli-ci.yml b/.github/workflows/arduino-cli-ci.yml index 1abe66b..ec1fb06 100644 --- a/.github/workflows/arduino-cli-ci.yml +++ b/.github/workflows/arduino-cli-ci.yml @@ -8,6 +8,9 @@ on: branches: [ "main" ] workflow_dispatch: +env: + FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true + jobs: build: name: Build ${{ matrix.board.arduino_board }} - ${{ matrix.board.name }} - ${{ matrix.sketch.name }} @@ -26,7 +29,7 @@ jobs: - name: "ESP32 Dev Module" fname: "esp32" fqbn: "esp32:esp32:esp32" - core: "esp32:esp32@3.3.7" + core: "esp32:esp32@3.3.1" urls: "https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json" family: "ESP32" extra_libs: "" @@ -35,7 +38,7 @@ jobs: - name: "ESP32S2 Dev Module" fname: "esp32s2" fqbn: "esp32:esp32:esp32s2" - core: "esp32:esp32@3.3.7" + core: "esp32:esp32@3.3.1" urls: "https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json" family: "ESP32" extra_libs: "" @@ -44,7 +47,7 @@ jobs: - name: "LOLIN S2 Mini" fname: "lolin_s2_mini" fqbn: "esp32:esp32:lolin_s2_mini" - core: "esp32:esp32@3.3.7" + core: "esp32:esp32@3.3.1" urls: "https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json" family: "ESP32" extra_libs: "" @@ -53,7 +56,7 @@ jobs: - name: "ESP32S3 Dev Module" fname: "esp32s3" fqbn: "esp32:esp32:esp32s3" - core: "esp32:esp32@3.3.7" + core: "esp32:esp32@3.3.1" urls: "https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json" family: "ESP32" extra_libs: "" @@ -62,7 +65,7 @@ jobs: - name: "ESP32C3 Dev Module" fname: "esp32c3" fqbn: "esp32:esp32:esp32c3" - core: "esp32:esp32@3.3.7" + core: "esp32:esp32@3.3.1" urls: "https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json" family: "ESP32" extra_libs: "" @@ -71,7 +74,7 @@ jobs: - name: "XIAO_ESP32C3" fname: "xiao_esp32c3" fqbn: "esp32:esp32:XIAO_ESP32C3" - core: "esp32:esp32@3.3.7" + core: "esp32:esp32@3.3.1" urls: "https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json" extra_libs: "" options: "" diff --git a/src/cortex-m0plus/libML_SynthTools_RP2040.a b/src/cortex-m0plus/libML_SynthTools_RP2040.a index 43e8578..30004cf 100644 Binary files a/src/cortex-m0plus/libML_SynthTools_RP2040.a and b/src/cortex-m0plus/libML_SynthTools_RP2040.a differ diff --git a/src/cortex-m33/libML_SynthTools_RP2350.a b/src/cortex-m33/libML_SynthTools_RP2350.a index 5a516cd..ff31c32 100644 Binary files a/src/cortex-m33/libML_SynthTools_RP2350.a and b/src/cortex-m33/libML_SynthTools_RP2350.a differ diff --git a/src/esp32/libML_SynthTools.a b/src/esp32/libML_SynthTools.a index 9fafca4..30ff94a 100644 Binary files a/src/esp32/libML_SynthTools.a and b/src/esp32/libML_SynthTools.a differ diff --git a/src/esp32c3/libML_SynthTools.a b/src/esp32c3/libML_SynthTools.a index 58d13c8..dd854b4 100644 Binary files a/src/esp32c3/libML_SynthTools.a and b/src/esp32c3/libML_SynthTools.a differ diff --git a/src/esp32s2/libML_SynthTools.a b/src/esp32s2/libML_SynthTools.a index 99afb55..93fa673 100644 Binary files a/src/esp32s2/libML_SynthTools.a and b/src/esp32s2/libML_SynthTools.a differ diff --git a/src/esp32s3/libML_SynthTools.a b/src/esp32s3/libML_SynthTools.a index 0e16f16..521d596 100644 Binary files a/src/esp32s3/libML_SynthTools.a and b/src/esp32s3/libML_SynthTools.a differ diff --git a/src/libML_SynthTools_RP2040.a b/src/libML_SynthTools_RP2040.a index 43e8578..30004cf 100644 Binary files a/src/libML_SynthTools_RP2040.a and b/src/libML_SynthTools_RP2040.a differ diff --git a/src/libML_SynthTools_RP2350.a b/src/libML_SynthTools_RP2350.a index 5a516cd..ff31c32 100644 Binary files a/src/libML_SynthTools_RP2350.a and b/src/libML_SynthTools_RP2350.a differ diff --git a/src/ml_tracker_s3m.h b/src/ml_tracker_s3m.h new file mode 100644 index 0000000..73d7ecd --- /dev/null +++ b/src/ml_tracker_s3m.h @@ -0,0 +1,65 @@ +/* + * ML SynthTools Lib - A modular synthesizer library including organ, electric piano, + * oscillators, and sound synthesis tools. + * + * Copyright (C) 2026 Marcel Licence + * + * This file is part of the ML SynthTools Lib library and is licensed under the ML SynthTools Lib License. + * + * You may use this file in non-commercial projects, provided that this header + * and all authorship attributions remain intact. + * + * For commercial use, please contact marcel.licence.o@gmail.com for licensing terms. + * + * The source code of this library is not included. Reverse-engineering, + * decompiling, or any attempt to access the source code from the compiled files + * is strictly prohibited. + * + * ML SynthTools Lib is provided "as is," without warranty of any kind. See the LICENSE + * file for the full license text. + */ + +/** + * @file ml_tracker_s3m.h + * @author Marcel Licence + * @date 02.03.2024 + * + * @brief s3m tracker module + * + * @see Pi Pico: https://www.youtube.com/shorts/D_jD9efA5I0 + * @see Pi Pico 2: https://www.youtube.com/shorts/2_cdIPhUEkY + */ + + +#ifndef SRC_ML_TRACKER_S3M_H_ +#define SRC_ML_TRACKER_S3M_H_ + + +#include + + +bool TrackerS3MLoadFile(void); +bool TrackerS3MLoadData(const uint8_t *data, uint32_t len); +void TrackerS3MSetup(uint32_t sample_rate); +void TrackerS3MStartPlayback(void); +void TrackerS3MProcess(uint64_t passed); +void TrackerS3MProcessSamples(Q1_14 *chL, Q1_14 *chrR, uint64_t count); +uint32_t TrackerS3MGetMemSize(void); +void TrackerS3MUseStaticBuffer(void); +void TrackerS3MSetBuffer(void *buffer); +bool TrackerS3M_IsActive(void); + +void TrackerS3M_NoteOn(uint8_t ch, uint8_t note, uint8_t vel); +void TrackerS3M_NoteOff(uint8_t ch, uint8_t note, uint8_t vel __attribute__((unused))); +void TrackerS3M_NoteOff(uint8_t ch, uint8_t note); + +void TrackerS3M_Restart(uint8_t param, uint8_t value); +void TrackerS3M_Stop(uint8_t param, uint8_t value); +void TrackerS3M_End(uint8_t param __attribute__((unused)), uint8_t value); +void TrackerS3M_Start(uint8_t param, uint8_t value); + +void TrackerS3M_DebugPrintf(const char *fmt, ...); /*!< weak and can be implemented by the user */ +void TrackerS3M_DebugFlush(void); /*!< weak and can be implemented by the user */ + + +#endif /* SRC_ML_TRACKER_S3M_H_ */