Open microbit-carlos opened 2 months ago
With this example code, setting the recording rate to 320 samples per second works, but setting it to 319 hangs when recording and never "stops".
#include "MicroBit.h" #include "StreamRecording.h" MicroBit uBit; const int SAMPLE_RATE = 319; const int BUFFER_LEN = SAMPLE_RATE * 5; int main() { uBit.init(); SplitterChannel *splitterChannel = uBit.audio.splitter->createChannel(); splitterChannel->requestSampleRate( SAMPLE_RATE ); StreamRecording *recording = new StreamRecording(*splitterChannel, BUFFER_LEN); // Setting the mixer channel to a different sampling rate doesn't make a difference MixerChannel *recordingChannel = uBit.audio.mixer.addChannel(*recording, SAMPLE_RATE); recordingChannel->setVolume(75.0); MicroBitAudio::requestActivation(); while (true) { if (uBit.buttonA.isPressed()) { recording->erase(); recording->recordAsync(); while (recording->isRecording()) { uBit.display.print("R"); uBit.sleep(5); } uBit.display.clear(); } else if (uBit.buttonB.isPressed()) { recording->playAsync(); while (recording->isPlaying()) { uBit.display.print("P"); uBit.sleep(20); } uBit.display.clear(); } uBit.sleep(200); } }
To replicate:
With this example code, setting the recording rate to 320 samples per second works, but setting it to 319 hangs when recording and never "stops".
To replicate: