-
Notifications
You must be signed in to change notification settings - Fork 27
Hi, are the pots working fine? I have tested to connect 8 pots via a analog-multiplexer ... #12
Hi CopyCH, as we do not have a lot of free GPIOs, i allways try to use I2C-Multiplexer or in this case I tried to use a Multiplexer like Marcel Licence uses ... it seems that any additional task ruins the audio-quality.
Therefore, my question as I did not check Your solution with the 3 Pots.
if all should run on one single ESP32, then there is a dirty solution, - I moved all code for Audio to the Core1 and Core0 does all the controls like Buttons, Pots and perhaps Display. The bad side, the audio is only "acceptable" by 34500 KHz, at 44100 it is bad again. Perhaps it makes sense to split the project into 2 cores to get best quality and more functions if we cannot fix that.
All reactions
Hi @ErichHeinemann thanks for the attention! In fact I have started testing ESP32 sound synthesis abilities from your forked Marcel Licence drum sampler.
About the pots: I myself have successfully tested 5 pots directly connected to the GPIOs.
About multiplexing: I think that running I2C bus is time-consuming itself, while simple (like CD74HC4067) analog multiplexer's routine should "fit between" the audio tasks.
About the multithreading: I already use both Core0 and Core1 for synthesis and FX and mixing, so there's almost equal core loading.
You can check the output with #define DEBUG_TIMING to have an idea on how mush does it take to generate, process and mix.
Routines are quite optimiz...
Replies: 1 comment
Hi @ErichHeinemann thanks for the attention! In fact I have started testing ESP32 sound synthesis abilities from your forked Marcel Licence drum sampler.
About the pots: I myself have successfully tested 5 pots directly connected to the GPIOs.
About multiplexing: I think that running I2C bus is time-consuming itself, while simple (like CD74HC4067) analog multiplexer's routine should "fit between" the audio tasks.
About the multithreading: I already use both Core0 and Core1 for synthesis and FX and mixing, so there's almost equal core loading.
You can check the output with #define DEBUG_TIMING to have an idea on how mush does it take to generate, process and mix.
Routines are quite optimized, float division is almost eliminated, most of more or less complex functions are in tables now, so there's not much "room" left.