> *DISCLAIMER* : this question is somehow related to [this other question of mine][1], but the latter did not have any satisfying > answer. I'm working on an audio DSP project with the STM32F4xx, using **4 audio inputs** and **1 audio output**. I need to - read each input - process each input's signal, - mix the processed signals together - output the result. The *input* is obtained via one of the 3 STM32's **internal DACs**, 1 channel for each input (ie 4 channels to scan in total) and **stored to a buffer using DMA**. The *output* is **converted through a codec** using an I2S bus, at 48kHz. Everytime the codec has finished converting a buffer (or more precisely a half-buffer), it **triggers a callback function** in which I currently have all the DSP code. In the loop, the output samples are computed and sent to the half-buffer to be output using DMA to I2S. Granted that I sample my input at the same rate as my output (48kHz which means that my DAC must be clocked at 4*48kHz=192kHz), ***how can I synchronize the ADC and the DAC conversion***? I have thought of a FIFO inbetween the input and the DSP routine, picking a sample in the queue everytime I need to process one. But I am not sure how to do that when working with chunks of data (a buffer has a depth of 64 samples). Another solution would be to have an input buffer depth of only 1 sample, and to read this sample in the DSP routine but I am not sure weather this would work. Does anyone knows what is the best way to do that? Or even better, how to synchronize the STM32's ADC to an external codec? ***EDIT***: I also thought of using the DAC in "one shot" mode ie triggering a conversion of 64 samples for all the channels everytime my codec raises its "I want samples" flag. Would that work? [1]: https://electronics.stackexchange.com/questions/249220/synchronize-internal-dac-to-i2s-on-stm32f4