Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OPUS #2

Open
wants to merge 147 commits into
base: master
Choose a base branch
from
Open

Conversation

SciLor
Copy link

@SciLor SciLor commented Aug 12, 2020

No description provided.

jaenek and others added 30 commits July 28, 2020 17:18
ESP32 doesn't have the redirect following capability, don't try and turn it on.
Valgrind detects an error in TSF.h, not yet fixed.  This could be
causing issues on the ESP32.
Valgrind identified cases where the chunk read position came out to be
-1, which was causing a read of memory before the actual cache buffers.
This could result in add'l noise on playback.
Re-enable ESP32 builds in CI

Fix examples which do not compile on ESP32
Thanks to Marc Madaule for the patch adding FatFS for the ESP32 as a
file source.
Velocity in the MIDI format goes from 1...127, so scale the volume of
the note generator by /128 instead of /256.   Increases volume of all
notes by 2x linearly (3dB).

Found by Marc Madaule
Patch 21c07c0bcd702e7adf3db349ac926914b98d17ce was applied to the TSF's
original code, but not to the fixed-point generator used by the ESP8266.
Apply it to the FP unit as well.

Spotted by Marc Madaule
Add ported versions of the Opus codec, OpusFile parser, and OGG demuxer
from Xiph.org.

Only works on the ESP32 due to memory limitations (of opusfile,
strangely enough, and not because of opus compression).

Adds a basic example and a host test.

Fixes #278
As noted by Marc Madaule (thanks!), the mono AAC decode was not
functioning properly.  Adjust the output stuff loop to fix.
Bugfixes to AAC and Opus codec addition
* test/run on host to null device

* compilation fix
* separate malloc structures

* add desync() for user when randomly seeking in the input file
fix corner cases leading to exceptions when seeking

* additional test when trying to crash-shake everything
with a rotary encoder seeking into the currently played file

* use private instead of static

* remove temporary debug code
PlatformIO requires these dependencies to be explicitly mentioned. Please check the version numbers of the libraries specified are correct. However, v1.0 for each allows for successful builds. Thanks!
When reusing the AudioGeneratorMP3 object to play multiple files with errors, the error count was never reset.
Also, if 3 errors are encountered, it would stop running but never clean up the buffers.
Code courtesy of Martin Laclaustra.

Uses the ULP coprocessor on the ESP32 to send samples to the onboard
DACs, freeing the I2S port for other uses.

Connect left output to pin 25, right to pin 26.
earlephilhower and others added 30 commits January 28, 2023 14:32
Corrected format to formant.
* Fix GCC12.3 new warnings for RP2040

* Remove OPUS encoder, not supported on embedded
Implement the renamed network client and other API changes when built
under the 3.x branch of the Arduino ESP32 core.

Disable building TSF on the ESP32, the Xtensa G++ backend bug is still there.

Minimal changes to get I2S to build under new IDF.  Deprecated but
not removed, so warnings are expected but should not be fatal in
use.

Fixes #683
* Fix pedantic GCC14 warnings on calloc order
* Ensure AAC read-in doesn't overflow internal structures when the file is corrupted/illegal.
…266 (empirically tested) (#554)

* Performance improvement
- new tsf_note_on_fast returning playIndex and removing lowpass filter setup since it is not being processed in tsf_voice_render_fast anyway but is consuming a lot of cpu
- new tsf_note_off_fast using playIndex to stop voices faster
- Removing lowpass filter setup from tsf_voice_render_fast since it is not being processed
- Math tweaks trying to avoid complex math operations (specially conversions) at voice render stage
- Precalculating *F32P32 values to avoid doing them at voice render stage
* Fixing data type
* Initializing play indexes
---------
Co-authored-by: Edgar <[email protected]>
dot_a_linkage seems to cause issues with CI
U64 big/little endian mismatch for ARM cores.  Remove the whole PowerPC support option as there aren't any commerically significant PPC embedded systems still being developed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.