Compare commits
9 Commits
58903726c0
...
832f310be7
Author | SHA1 | Date |
---|---|---|
Infinity | 832f310be7 | |
Earle F. Philhower, III | 492a5beba4 | |
Earle F. Philhower, III | 89a5a07712 | |
Earle F. Philhower, III | b3c41668a2 | |
Earle F. Philhower, III | 139fba4116 | |
Earle F. Philhower, III | b7d89058dd | |
Earle F. Philhower, III | e306df208c | |
Earle F. Philhower, III | f6c0d562f8 | |
Infinity | a9f6935aae |
|
@ -20,10 +20,10 @@ jobs:
|
||||||
matrix:
|
matrix:
|
||||||
chunk: [0, 1, 2, 3, 4]
|
chunk: [0, 1, 2, 3, 4]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
submodules: true
|
submodules: true
|
||||||
- uses: actions/setup-python@v2
|
- uses: actions/setup-python@v5
|
||||||
with:
|
with:
|
||||||
python-version: '3.x'
|
python-version: '3.x'
|
||||||
- name: Build Sketches
|
- name: Build Sketches
|
||||||
|
@ -43,10 +43,10 @@ jobs:
|
||||||
matrix:
|
matrix:
|
||||||
chunk: [0, 1, 2, 3, 4]
|
chunk: [0, 1, 2, 3, 4]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
submodules: true
|
submodules: true
|
||||||
- uses: actions/setup-python@v2
|
- uses: actions/setup-python@v5
|
||||||
with:
|
with:
|
||||||
python-version: '3.x'
|
python-version: '3.x'
|
||||||
- name: Build Sketches
|
- name: Build Sketches
|
||||||
|
@ -66,10 +66,10 @@ jobs:
|
||||||
matrix:
|
matrix:
|
||||||
chunk: [0, 1, 2, 3, 4]
|
chunk: [0, 1, 2, 3, 4]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
submodules: true
|
submodules: true
|
||||||
- uses: actions/setup-python@v2
|
- uses: actions/setup-python@v4
|
||||||
with:
|
with:
|
||||||
python-version: '3.x'
|
python-version: '3.x'
|
||||||
- name: Build Sketches
|
- name: Build Sketches
|
||||||
|
@ -87,10 +87,10 @@ jobs:
|
||||||
name: Host tests
|
name: Host tests
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
submodules: true
|
submodules: true
|
||||||
- uses: actions/setup-python@v2
|
- uses: actions/setup-python@v5
|
||||||
with:
|
with:
|
||||||
python-version: '3.x'
|
python-version: '3.x'
|
||||||
- name: Run host tests
|
- name: Run host tests
|
||||||
|
@ -115,7 +115,7 @@ jobs:
|
||||||
lint:
|
lint:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v4
|
||||||
- uses: arduino/arduino-lint-action@v1
|
- uses: arduino/arduino-lint-action@v1
|
||||||
with:
|
with:
|
||||||
library-manager: 'update'
|
library-manager: 'update'
|
||||||
|
@ -128,7 +128,7 @@ jobs:
|
||||||
run:
|
run:
|
||||||
shell: bash
|
shell: bash
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
submodules: true
|
submodules: true
|
||||||
- name: Run codespell
|
- name: Run codespell
|
||||||
|
|
|
@ -196,7 +196,7 @@ char AudioGeneratorFLAC::error_cb_str[64];
|
||||||
void AudioGeneratorFLAC::error_cb(const FLAC__StreamDecoder *decoder, FLAC__StreamDecoderErrorStatus status)
|
void AudioGeneratorFLAC::error_cb(const FLAC__StreamDecoder *decoder, FLAC__StreamDecoderErrorStatus status)
|
||||||
{
|
{
|
||||||
(void) decoder;
|
(void) decoder;
|
||||||
strncpy_P(error_cb_str, FLAC__StreamDecoderErrorStatusString[status], 64);
|
strncpy_P(error_cb_str, FLAC__StreamDecoderErrorStatusString[status], sizeof(AudioGeneratorFLAC::error_cb_str) - 1);
|
||||||
cb.st((int)status, error_cb_str);
|
cb.st((int)status, error_cb_str);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -236,13 +236,13 @@ bool AudioGeneratorRTTTL::GetNextNote()
|
||||||
ptr++;
|
ptr++;
|
||||||
note++;
|
note++;
|
||||||
}
|
}
|
||||||
|
if (!ReadInt(&scale)) {
|
||||||
|
scale = defaultOctave;
|
||||||
|
}
|
||||||
if ((ptr < len) && (buff[ptr] == '.')) {
|
if ((ptr < len) && (buff[ptr] == '.')) {
|
||||||
ptr++;
|
ptr++;
|
||||||
dur += dur / 2;
|
dur += dur / 2;
|
||||||
}
|
}
|
||||||
if (!ReadInt(&scale)) {
|
|
||||||
scale = defaultOctave;
|
|
||||||
}
|
|
||||||
// Eat any trailing whitespace and comma
|
// Eat any trailing whitespace and comma
|
||||||
SkipWhitespace();
|
SkipWhitespace();
|
||||||
if ((ptr < len) && (buff[ptr]==',')) {
|
if ((ptr < len) && (buff[ptr]==',')) {
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
See: https://www.epanorama.net/documents/audio/spdif.html
|
See: https://www.epanorama.net/documents/audio/spdif.html
|
||||||
|
|
||||||
Original idea and sources:
|
Original idea and sources:
|
||||||
Forum thread dicussing implementation
|
Forum thread discussing implementation
|
||||||
https://forum.pjrc.com/threads/28639-S-pdif
|
https://forum.pjrc.com/threads/28639-S-pdif
|
||||||
Teensy Audio Library
|
Teensy Audio Library
|
||||||
https://github.com/PaulStoffregen/Audio/blob/master/output_spdif2.cpp
|
https://github.com/PaulStoffregen/Audio/blob/master/output_spdif2.cpp
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
See: https://www.epanorama.net/documents/audio/spdif.html
|
See: https://www.epanorama.net/documents/audio/spdif.html
|
||||||
|
|
||||||
Original idea and sources:
|
Original idea and sources:
|
||||||
Forum thread dicussing implementation
|
Forum thread discussing implementation
|
||||||
https://forum.pjrc.com/threads/28639-S-pdif
|
https://forum.pjrc.com/threads/28639-S-pdif
|
||||||
Teensy Audio Library
|
Teensy Audio Library
|
||||||
https://github.com/PaulStoffregen/Audio/blob/master/output_spdif2.cpp
|
https://github.com/PaulStoffregen/Audio/blob/master/output_spdif2.cpp
|
||||||
|
|
|
@ -54,7 +54,7 @@
|
||||||
* (see comment on Dequantize() for more info)
|
* (see comment on Dequantize() for more info)
|
||||||
*/
|
*/
|
||||||
#define DEF_NFRACBITS (DQ_FRACBITS_OUT - 2 - 2 - 15)
|
#define DEF_NFRACBITS (DQ_FRACBITS_OUT - 2 - 2 - 15)
|
||||||
#define CSHIFT 12 /* coefficients have 12 leading sign bits for early-terminating mulitplies */
|
#define CSHIFT 12 /* coefficients have 12 leading sign bits for early-terminating multiplies */
|
||||||
|
|
||||||
static __inline short ClipToShort(int x, int fracBits)
|
static __inline short ClipToShort(int x, int fracBits)
|
||||||
{
|
{
|
||||||
|
|
|
@ -352,19 +352,18 @@ struct fixedfloat {
|
||||||
|
|
||||||
root_table[3 + x] = 2^(x/4)
|
root_table[3 + x] = 2^(x/4)
|
||||||
*/
|
*/
|
||||||
|
static mad_fixed_t const root_table_val[7] PROGMEM = {
|
||||||
|
MAD_F(0x09837f05) /* 2^(-3/4) == 0.59460355750136 */,
|
||||||
|
MAD_F(0x0b504f33) /* 2^(-2/4) == 0.70710678118655 */,
|
||||||
|
MAD_F(0x0d744fcd) /* 2^(-1/4) == 0.84089641525371 */,
|
||||||
|
MAD_F(0x10000000) /* 2^( 0/4) == 1.00000000000000 */,
|
||||||
|
MAD_F(0x1306fe0a) /* 2^(+1/4) == 1.18920711500272 */,
|
||||||
|
MAD_F(0x16a09e66) /* 2^(+2/4) == 1.41421356237310 */,
|
||||||
|
MAD_F(0x1ae89f99) /* 2^(+3/4) == 1.68179283050743 */
|
||||||
|
};
|
||||||
static inline mad_fixed_t root_table(int i)
|
static inline mad_fixed_t root_table(int i)
|
||||||
{
|
{
|
||||||
static mad_fixed_t const root_table_val[7] PROGMEM = {
|
return root_table_val[i];
|
||||||
MAD_F(0x09837f05) /* 2^(-3/4) == 0.59460355750136 */,
|
|
||||||
MAD_F(0x0b504f33) /* 2^(-2/4) == 0.70710678118655 */,
|
|
||||||
MAD_F(0x0d744fcd) /* 2^(-1/4) == 0.84089641525371 */,
|
|
||||||
MAD_F(0x10000000) /* 2^( 0/4) == 1.00000000000000 */,
|
|
||||||
MAD_F(0x1306fe0a) /* 2^(+1/4) == 1.18920711500272 */,
|
|
||||||
MAD_F(0x16a09e66) /* 2^(+2/4) == 1.41421356237310 */,
|
|
||||||
MAD_F(0x1ae89f99) /* 2^(+3/4) == 1.68179283050743 */
|
|
||||||
};
|
|
||||||
volatile uint32_t a = *(uint32_t*)&root_table_val[i];
|
|
||||||
return *(mad_fixed_t*)&a;
|
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
coefficients for aliasing reduction
|
coefficients for aliasing reduction
|
||||||
|
@ -374,28 +373,26 @@ static inline mad_fixed_t root_table(int i)
|
||||||
cs[i] = 1 / sqrt(1 + c[i]^2)
|
cs[i] = 1 / sqrt(1 + c[i]^2)
|
||||||
ca[i] = c[i] / sqrt(1 + c[i]^2)
|
ca[i] = c[i] / sqrt(1 + c[i]^2)
|
||||||
*/
|
*/
|
||||||
|
static mad_fixed_t const cs_val[8] PROGMEM = {
|
||||||
|
+MAD_F(0x0db84a81) /* +0.857492926 */, +MAD_F(0x0e1b9d7f) /* +0.881741997 */,
|
||||||
|
+MAD_F(0x0f31adcf) /* +0.949628649 */, +MAD_F(0x0fbba815) /* +0.983314592 */,
|
||||||
|
+MAD_F(0x0feda417) /* +0.995517816 */, +MAD_F(0x0ffc8fc8) /* +0.999160558 */,
|
||||||
|
+MAD_F(0x0fff964c) /* +0.999899195 */, +MAD_F(0x0ffff8d3) /* +0.999993155 */
|
||||||
|
};
|
||||||
static inline mad_fixed_t cs(int i)
|
static inline mad_fixed_t cs(int i)
|
||||||
{
|
{
|
||||||
static mad_fixed_t const cs_val[8] PROGMEM = {
|
return cs_val[i];
|
||||||
+MAD_F(0x0db84a81) /* +0.857492926 */, +MAD_F(0x0e1b9d7f) /* +0.881741997 */,
|
|
||||||
+MAD_F(0x0f31adcf) /* +0.949628649 */, +MAD_F(0x0fbba815) /* +0.983314592 */,
|
|
||||||
+MAD_F(0x0feda417) /* +0.995517816 */, +MAD_F(0x0ffc8fc8) /* +0.999160558 */,
|
|
||||||
+MAD_F(0x0fff964c) /* +0.999899195 */, +MAD_F(0x0ffff8d3) /* +0.999993155 */
|
|
||||||
};
|
|
||||||
volatile uint32_t a = *(uint32_t*)&cs_val[i];
|
|
||||||
return *(mad_fixed_t*)&a;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static mad_fixed_t const ca_val[8] PROGMEM = {
|
||||||
|
-MAD_F(0x083b5fe7) /* -0.514495755 */, -MAD_F(0x078c36d2) /* -0.471731969 */,
|
||||||
|
-MAD_F(0x05039814) /* -0.313377454 */, -MAD_F(0x02e91dd1) /* -0.181913200 */,
|
||||||
|
-MAD_F(0x0183603a) /* -0.094574193 */, -MAD_F(0x00a7cb87) /* -0.040965583 */,
|
||||||
|
-MAD_F(0x003a2847) /* -0.014198569 */, -MAD_F(0x000f27b4) /* -0.003699975 */
|
||||||
|
};
|
||||||
static inline mad_fixed_t ca(int i)
|
static inline mad_fixed_t ca(int i)
|
||||||
{
|
{
|
||||||
static mad_fixed_t const ca_val[8] PROGMEM = {
|
return ca_val[i];
|
||||||
-MAD_F(0x083b5fe7) /* -0.514495755 */, -MAD_F(0x078c36d2) /* -0.471731969 */,
|
|
||||||
-MAD_F(0x05039814) /* -0.313377454 */, -MAD_F(0x02e91dd1) /* -0.181913200 */,
|
|
||||||
-MAD_F(0x0183603a) /* -0.094574193 */, -MAD_F(0x00a7cb87) /* -0.040965583 */,
|
|
||||||
-MAD_F(0x003a2847) /* -0.014198569 */, -MAD_F(0x000f27b4) /* -0.003699975 */
|
|
||||||
};
|
|
||||||
volatile uint32_t a = *(uint32_t*)&ca_val[i];
|
|
||||||
return *(mad_fixed_t*)&a;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -417,32 +414,31 @@ mad_fixed_t const imdct_s[6][6] PROGMEM = {
|
||||||
|
|
||||||
window_l[i] = sin((PI / 36) * (i + 1/2))
|
window_l[i] = sin((PI / 36) * (i + 1/2))
|
||||||
*/
|
*/
|
||||||
|
static mad_fixed_t const window_l_val[36] PROGMEM = {
|
||||||
|
MAD_F(0x00b2aa3e) /* 0.043619387 */, MAD_F(0x0216a2a2) /* 0.130526192 */,
|
||||||
|
MAD_F(0x03768962) /* 0.216439614 */, MAD_F(0x04cfb0e2) /* 0.300705800 */,
|
||||||
|
MAD_F(0x061f78aa) /* 0.382683432 */, MAD_F(0x07635284) /* 0.461748613 */,
|
||||||
|
MAD_F(0x0898c779) /* 0.537299608 */, MAD_F(0x09bd7ca0) /* 0.608761429 */,
|
||||||
|
MAD_F(0x0acf37ad) /* 0.675590208 */, MAD_F(0x0bcbe352) /* 0.737277337 */,
|
||||||
|
MAD_F(0x0cb19346) /* 0.793353340 */, MAD_F(0x0d7e8807) /* 0.843391446 */,
|
||||||
|
|
||||||
|
MAD_F(0x0e313245) /* 0.887010833 */, MAD_F(0x0ec835e8) /* 0.923879533 */,
|
||||||
|
MAD_F(0x0f426cb5) /* 0.953716951 */, MAD_F(0x0f9ee890) /* 0.976296007 */,
|
||||||
|
MAD_F(0x0fdcf549) /* 0.991444861 */, MAD_F(0x0ffc19fd) /* 0.999048222 */,
|
||||||
|
MAD_F(0x0ffc19fd) /* 0.999048222 */, MAD_F(0x0fdcf549) /* 0.991444861 */,
|
||||||
|
MAD_F(0x0f9ee890) /* 0.976296007 */, MAD_F(0x0f426cb5) /* 0.953716951 */,
|
||||||
|
MAD_F(0x0ec835e8) /* 0.923879533 */, MAD_F(0x0e313245) /* 0.887010833 */,
|
||||||
|
|
||||||
|
MAD_F(0x0d7e8807) /* 0.843391446 */, MAD_F(0x0cb19346) /* 0.793353340 */,
|
||||||
|
MAD_F(0x0bcbe352) /* 0.737277337 */, MAD_F(0x0acf37ad) /* 0.675590208 */,
|
||||||
|
MAD_F(0x09bd7ca0) /* 0.608761429 */, MAD_F(0x0898c779) /* 0.537299608 */,
|
||||||
|
MAD_F(0x07635284) /* 0.461748613 */, MAD_F(0x061f78aa) /* 0.382683432 */,
|
||||||
|
MAD_F(0x04cfb0e2) /* 0.300705800 */, MAD_F(0x03768962) /* 0.216439614 */,
|
||||||
|
MAD_F(0x0216a2a2) /* 0.130526192 */, MAD_F(0x00b2aa3e) /* 0.043619387 */,
|
||||||
|
};
|
||||||
static inline mad_fixed_t window_l(int i)
|
static inline mad_fixed_t window_l(int i)
|
||||||
{
|
{
|
||||||
static mad_fixed_t const window_l_val[36] PROGMEM = {
|
return window_l_val[i];
|
||||||
MAD_F(0x00b2aa3e) /* 0.043619387 */, MAD_F(0x0216a2a2) /* 0.130526192 */,
|
|
||||||
MAD_F(0x03768962) /* 0.216439614 */, MAD_F(0x04cfb0e2) /* 0.300705800 */,
|
|
||||||
MAD_F(0x061f78aa) /* 0.382683432 */, MAD_F(0x07635284) /* 0.461748613 */,
|
|
||||||
MAD_F(0x0898c779) /* 0.537299608 */, MAD_F(0x09bd7ca0) /* 0.608761429 */,
|
|
||||||
MAD_F(0x0acf37ad) /* 0.675590208 */, MAD_F(0x0bcbe352) /* 0.737277337 */,
|
|
||||||
MAD_F(0x0cb19346) /* 0.793353340 */, MAD_F(0x0d7e8807) /* 0.843391446 */,
|
|
||||||
|
|
||||||
MAD_F(0x0e313245) /* 0.887010833 */, MAD_F(0x0ec835e8) /* 0.923879533 */,
|
|
||||||
MAD_F(0x0f426cb5) /* 0.953716951 */, MAD_F(0x0f9ee890) /* 0.976296007 */,
|
|
||||||
MAD_F(0x0fdcf549) /* 0.991444861 */, MAD_F(0x0ffc19fd) /* 0.999048222 */,
|
|
||||||
MAD_F(0x0ffc19fd) /* 0.999048222 */, MAD_F(0x0fdcf549) /* 0.991444861 */,
|
|
||||||
MAD_F(0x0f9ee890) /* 0.976296007 */, MAD_F(0x0f426cb5) /* 0.953716951 */,
|
|
||||||
MAD_F(0x0ec835e8) /* 0.923879533 */, MAD_F(0x0e313245) /* 0.887010833 */,
|
|
||||||
|
|
||||||
MAD_F(0x0d7e8807) /* 0.843391446 */, MAD_F(0x0cb19346) /* 0.793353340 */,
|
|
||||||
MAD_F(0x0bcbe352) /* 0.737277337 */, MAD_F(0x0acf37ad) /* 0.675590208 */,
|
|
||||||
MAD_F(0x09bd7ca0) /* 0.608761429 */, MAD_F(0x0898c779) /* 0.537299608 */,
|
|
||||||
MAD_F(0x07635284) /* 0.461748613 */, MAD_F(0x061f78aa) /* 0.382683432 */,
|
|
||||||
MAD_F(0x04cfb0e2) /* 0.300705800 */, MAD_F(0x03768962) /* 0.216439614 */,
|
|
||||||
MAD_F(0x0216a2a2) /* 0.130526192 */, MAD_F(0x00b2aa3e) /* 0.043619387 */,
|
|
||||||
};
|
|
||||||
volatile uint32_t a = *(uint32_t*)&window_l_val[i];
|
|
||||||
return *(mad_fixed_t*)&a;
|
|
||||||
}
|
}
|
||||||
# endif /* ASO_IMDCT */
|
# endif /* ASO_IMDCT */
|
||||||
|
|
||||||
|
@ -452,18 +448,17 @@ static inline mad_fixed_t window_l(int i)
|
||||||
|
|
||||||
window_s[i] = sin((PI / 12) * (i + 1/2))
|
window_s[i] = sin((PI / 12) * (i + 1/2))
|
||||||
*/
|
*/
|
||||||
|
static mad_fixed_t const window_s_val[12] PROGMEM = {
|
||||||
|
MAD_F(0x0216a2a2) /* 0.130526192 */, MAD_F(0x061f78aa) /* 0.382683432 */,
|
||||||
|
MAD_F(0x09bd7ca0) /* 0.608761429 */, MAD_F(0x0cb19346) /* 0.793353340 */,
|
||||||
|
MAD_F(0x0ec835e8) /* 0.923879533 */, MAD_F(0x0fdcf549) /* 0.991444861 */,
|
||||||
|
MAD_F(0x0fdcf549) /* 0.991444861 */, MAD_F(0x0ec835e8) /* 0.923879533 */,
|
||||||
|
MAD_F(0x0cb19346) /* 0.793353340 */, MAD_F(0x09bd7ca0) /* 0.608761429 */,
|
||||||
|
MAD_F(0x061f78aa) /* 0.382683432 */, MAD_F(0x0216a2a2) /* 0.130526192 */,
|
||||||
|
};
|
||||||
static inline mad_fixed_t window_s(int i)
|
static inline mad_fixed_t window_s(int i)
|
||||||
{
|
{
|
||||||
static mad_fixed_t const window_s_val[12] PROGMEM = {
|
return window_s_val[i];
|
||||||
MAD_F(0x0216a2a2) /* 0.130526192 */, MAD_F(0x061f78aa) /* 0.382683432 */,
|
|
||||||
MAD_F(0x09bd7ca0) /* 0.608761429 */, MAD_F(0x0cb19346) /* 0.793353340 */,
|
|
||||||
MAD_F(0x0ec835e8) /* 0.923879533 */, MAD_F(0x0fdcf549) /* 0.991444861 */,
|
|
||||||
MAD_F(0x0fdcf549) /* 0.991444861 */, MAD_F(0x0ec835e8) /* 0.923879533 */,
|
|
||||||
MAD_F(0x0cb19346) /* 0.793353340 */, MAD_F(0x09bd7ca0) /* 0.608761429 */,
|
|
||||||
MAD_F(0x061f78aa) /* 0.382683432 */, MAD_F(0x0216a2a2) /* 0.130526192 */,
|
|
||||||
};
|
|
||||||
volatile uint32_t a = *(uint32_t*)&window_s_val[i];
|
|
||||||
return *(mad_fixed_t*)&a;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -473,19 +468,18 @@ static inline mad_fixed_t window_s(int i)
|
||||||
is_ratio[i] = tan(i * (PI / 12))
|
is_ratio[i] = tan(i * (PI / 12))
|
||||||
is_table[i] = is_ratio[i] / (1 + is_ratio[i])
|
is_table[i] = is_ratio[i] / (1 + is_ratio[i])
|
||||||
*/
|
*/
|
||||||
|
static mad_fixed_t const is_table_val[7] PROGMEM = {
|
||||||
|
MAD_F(0x00000000) /* 0.000000000 */,
|
||||||
|
MAD_F(0x0361962f) /* 0.211324865 */,
|
||||||
|
MAD_F(0x05db3d74) /* 0.366025404 */,
|
||||||
|
MAD_F(0x08000000) /* 0.500000000 */,
|
||||||
|
MAD_F(0x0a24c28c) /* 0.633974596 */,
|
||||||
|
MAD_F(0x0c9e69d1) /* 0.788675135 */,
|
||||||
|
MAD_F(0x10000000) /* 1.000000000 */
|
||||||
|
};
|
||||||
static inline mad_fixed_t is_table(int i)
|
static inline mad_fixed_t is_table(int i)
|
||||||
{
|
{
|
||||||
static mad_fixed_t const is_table_val[7] PROGMEM = {
|
return is_table_val[i];
|
||||||
MAD_F(0x00000000) /* 0.000000000 */,
|
|
||||||
MAD_F(0x0361962f) /* 0.211324865 */,
|
|
||||||
MAD_F(0x05db3d74) /* 0.366025404 */,
|
|
||||||
MAD_F(0x08000000) /* 0.500000000 */,
|
|
||||||
MAD_F(0x0a24c28c) /* 0.633974596 */,
|
|
||||||
MAD_F(0x0c9e69d1) /* 0.788675135 */,
|
|
||||||
MAD_F(0x10000000) /* 1.000000000 */
|
|
||||||
};
|
|
||||||
volatile uint32_t a = *(uint32_t*)&is_table_val[i];
|
|
||||||
return *(mad_fixed_t*)&a;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1739,7 +1733,10 @@ void sdctII(mad_fixed_t const x[18], mad_fixed_t X[18])
|
||||||
s = *(volatile mad_fixed_t*)(volatile uint32_t*)&scale[i + 2]; tmp[i + 2] = mad_f_mul(x[i + 2] - x[18 - (i + 2) - 1], s); //scale[i + 2]);
|
s = *(volatile mad_fixed_t*)(volatile uint32_t*)&scale[i + 2]; tmp[i + 2] = mad_f_mul(x[i + 2] - x[18 - (i + 2) - 1], s); //scale[i + 2]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#pragma GCC diagnostic push
|
||||||
|
#pragma GCC diagnostic ignored "-Wstringop-overflow"
|
||||||
fastsdct(tmp, &X[1]);
|
fastsdct(tmp, &X[1]);
|
||||||
|
#pragma GCC diagnostic pop
|
||||||
|
|
||||||
/* output accumulation */
|
/* output accumulation */
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
#if 0
|
||||||
//#ifdef HAVE_CONFIG_H
|
//#ifdef HAVE_CONFIG_H
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
//#endif
|
//#endif
|
||||||
|
@ -2781,3 +2781,4 @@ void opus_encoder_destroy(OpusEncoder *st)
|
||||||
{
|
{
|
||||||
opus_free(st);
|
opus_free(st);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
#if 0
|
||||||
//#ifdef HAVE_CONFIG_H
|
//#ifdef HAVE_CONFIG_H
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
//#endif
|
//#endif
|
||||||
|
@ -1326,3 +1326,4 @@ void opus_multistream_encoder_destroy(OpusMSEncoder *st)
|
||||||
{
|
{
|
||||||
opus_free(st);
|
opus_free(st);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
#if 0
|
||||||
//#ifdef HAVE_CONFIG_H
|
//#ifdef HAVE_CONFIG_H
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
//#endif
|
//#endif
|
||||||
|
@ -465,4 +465,4 @@ bad_arg:
|
||||||
va_end(ap);
|
va_end(ap);
|
||||||
return OPUS_BAD_ARG;
|
return OPUS_BAD_ARG;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
|
@ -62,6 +62,8 @@ static OPUS_INLINE void silk_NLSF2A_find_poly(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#pragma GCC diagnostic push
|
||||||
|
#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
|
||||||
/* compute whitening filter coefficients from normalized line spectral frequencies */
|
/* compute whitening filter coefficients from normalized line spectral frequencies */
|
||||||
void silk_NLSF2A(
|
void silk_NLSF2A(
|
||||||
opus_int16 *a_Q12, /* O monic whitening filter coefficients in Q12, [ d ] */
|
opus_int16 *a_Q12, /* O monic whitening filter coefficients in Q12, [ d ] */
|
||||||
|
@ -143,4 +145,4 @@ void silk_NLSF2A(
|
||||||
free(Q);
|
free(Q);
|
||||||
free(a32_QA1);
|
free(a32_QA1);
|
||||||
}
|
}
|
||||||
|
#pragma GCC diagnostic pop
|
||||||
|
|
|
@ -24,6 +24,7 @@ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
POSSIBILITY OF SUCH DAMAGE.
|
POSSIBILITY OF SUCH DAMAGE.
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
|
#if 0
|
||||||
|
|
||||||
//#ifdef HAVE_CONFIG_H
|
//#ifdef HAVE_CONFIG_H
|
||||||
#include "../config.h"
|
#include "../config.h"
|
||||||
|
@ -574,3 +575,4 @@ opus_int silk_Encode( /* O Returns error co
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -34,6 +34,7 @@ POSSIBILITY OF SUCH DAMAGE.
|
||||||
#include "../../celt/stack_alloc.h"
|
#include "../../celt/stack_alloc.h"
|
||||||
#include "../tuning_parameters.h"
|
#include "../tuning_parameters.h"
|
||||||
|
|
||||||
|
#if 0
|
||||||
/* Low Bitrate Redundancy (LBRR) encoding. Reuse all parameters but encode with lower bitrate */
|
/* Low Bitrate Redundancy (LBRR) encoding. Reuse all parameters but encode with lower bitrate */
|
||||||
static OPUS_INLINE void silk_LBRR_encode_FIX(
|
static OPUS_INLINE void silk_LBRR_encode_FIX(
|
||||||
silk_encoder_state_FIX *psEnc, /* I/O Pointer to Silk FIX encoder state */
|
silk_encoder_state_FIX *psEnc, /* I/O Pointer to Silk FIX encoder state */
|
||||||
|
@ -446,3 +447,4 @@ static OPUS_INLINE void silk_LBRR_encode_FIX(
|
||||||
silk_memcpy( psEncCtrl->Gains_Q16, TempGains_Q16, psEnc->sCmn.nb_subfr * sizeof( opus_int32 ) );
|
silk_memcpy( psEncCtrl->Gains_Q16, TempGains_Q16, psEnc->sCmn.nb_subfr * sizeof( opus_int32 ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
|
@ -1481,7 +1481,7 @@ static int op_open_seekable2(OggOpusFile *_of){
|
||||||
/*Clear out the current logical bitstream decoder.*/
|
/*Clear out the current logical bitstream decoder.*/
|
||||||
static void op_decode_clear(OggOpusFile *_of){
|
static void op_decode_clear(OggOpusFile *_of){
|
||||||
/*We don't actually free the decoder.
|
/*We don't actually free the decoder.
|
||||||
We might be able to re-use it for the next link.*/
|
We might be able to reuse it for the next link.*/
|
||||||
_of->op_count=0;
|
_of->op_count=0;
|
||||||
_of->od_buffer_size=0;
|
_of->od_buffer_size=0;
|
||||||
_of->prev_packet_gp=-1;
|
_of->prev_packet_gp=-1;
|
||||||
|
@ -1749,7 +1749,7 @@ opus_int64 op_raw_total(const OggOpusFile *_of,int _li){
|
||||||
ogg_int64_t op_pcm_total(const OggOpusFile *_of,int _li){
|
ogg_int64_t op_pcm_total(const OggOpusFile *_of,int _li){
|
||||||
OggOpusLink *links;
|
OggOpusLink *links;
|
||||||
ogg_int64_t pcm_total;
|
ogg_int64_t pcm_total;
|
||||||
ogg_int64_t diff;
|
ogg_int64_t diff = 0;
|
||||||
int nlinks;
|
int nlinks;
|
||||||
nlinks=_of->nlinks;
|
nlinks=_of->nlinks;
|
||||||
if(OP_UNLIKELY(_of->ready_state<OP_OPENED)
|
if(OP_UNLIKELY(_of->ready_state<OP_OPENED)
|
||||||
|
|
|
@ -70,23 +70,13 @@ function install_esp32()
|
||||||
local ide_path=$1
|
local ide_path=$1
|
||||||
pip install pyserial
|
pip install pyserial
|
||||||
pip3 install pyserial
|
pip3 install pyserial
|
||||||
cd $ide_path/hardware
|
mkdir -p ~/bin
|
||||||
mkdir espressif
|
pushd ~/bin
|
||||||
cd espressif
|
wget -q https://downloads.arduino.cc/arduino-cli/arduino-cli_latest_Linux_64bit.tar.gz
|
||||||
git clone https://github.com/espressif/arduino-esp32.git esp32
|
tar xvf arduino-cli_latest_Linux_64bit.tar.gz
|
||||||
pushd esp32
|
export PATH=$PATH:$PWD
|
||||||
# Set custom warnings for all builds
|
|
||||||
|
|
||||||
echo "compiler.c.extra_flags=-Wall -Wextra -Werror $debug_flags" > platform.local.txt
|
|
||||||
echo "compiler.cpp.extra_flags=-Wall -Wextra -Werror $debug_flags" >> platform.local.txt
|
|
||||||
echo -e "\n----platform.local.txt----"
|
|
||||||
cat platform.local.txt
|
|
||||||
git submodule update --init
|
|
||||||
cd tools
|
|
||||||
python3 get.py
|
|
||||||
export PATH="$ide_path/hardware/espressif/esp32/tools/xtensa-esp32-elf/bin/:$PATH"
|
|
||||||
popd
|
popd
|
||||||
cd esp32
|
arduino-cli core install --additional-urls https://espressif.github.io/arduino-esp32/package_esp32_index.json esp32:esp32
|
||||||
}
|
}
|
||||||
|
|
||||||
function install_arduino()
|
function install_arduino()
|
||||||
|
@ -99,6 +89,20 @@ function install_arduino()
|
||||||
install_libraries
|
install_libraries
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function skip_esp32()
|
||||||
|
{
|
||||||
|
local ino=$1
|
||||||
|
local skiplist=""
|
||||||
|
# Add items to the following list with "\n" netween them to skip running. No spaces, tabs, etc. allowed
|
||||||
|
read -d '' skiplist << EOL || true
|
||||||
|
/MixerSample/
|
||||||
|
EOL
|
||||||
|
echo $ino | grep -q -F "$skiplist"
|
||||||
|
echo $(( 1 - $? ))
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if [ "$BUILD_MOD" == "" ]; then
|
if [ "$BUILD_MOD" == "" ]; then
|
||||||
export BUILD_MOD=1
|
export BUILD_MOD=1
|
||||||
export BUILD_REM=0
|
export BUILD_REM=0
|
||||||
|
@ -117,10 +121,18 @@ if [ "$BUILD_TYPE" = "build" ]; then
|
||||||
elif [ "$BUILD_TYPE" = "build_esp32" ]; then
|
elif [ "$BUILD_TYPE" = "build_esp32" ]; then
|
||||||
install_arduino
|
install_arduino
|
||||||
install_esp32 "$HOME/arduino_ide"
|
install_esp32 "$HOME/arduino_ide"
|
||||||
export FQBN="espressif:esp32:esp32:PSRAM=enabled,PartitionScheme=huge_app"
|
export testcnt=0
|
||||||
mkdir -p "$GITHUB_WORKSPACE/hardware"
|
for i in $(find ~/Arduino/libraries/ESP8266Audio -name "*.ino"); do
|
||||||
ln -s "$GITHUB_WORKSPACE/../" "$GITHUB_WORKSPACE/libraries"
|
testcnt=$(( ($testcnt + 1) % $BUILD_MOD ))
|
||||||
source "$HOME/arduino_ide/hardware/espressif/esp32/.github/scripts/sketch_utils.sh" chunk_build -ai "$HOME/arduino_ide" -au "$GITHUB_WORKSPACE" -fqbn "$FQBN" -t esp32 -p "$GITHUB_WORKSPACE" -i $BUILD_REM -m $BUILD_MOD
|
if [ $testcnt -ne $BUILD_REM ]; then
|
||||||
|
continue # Not ours to do
|
||||||
|
fi
|
||||||
|
if [[ $(skip_esp32 $i) = 1 ]]; then
|
||||||
|
echo -e "\n ------------ Skipping $i ------------ \n";
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
arduino-cli compile --fqbn esp32:esp32:esp32 --warnings all $i
|
||||||
|
done
|
||||||
elif [ "$BUILD_TYPE" = "build_rp2040" ]; then
|
elif [ "$BUILD_TYPE" = "build_rp2040" ]; then
|
||||||
install_arduino
|
install_arduino
|
||||||
install_rp2040 "$HOME/arduino_ide"
|
install_rp2040 "$HOME/arduino_ide"
|
||||||
|
|
Loading…
Reference in New Issue