Files
lockstep/TODO.md

61 lines
2.2 KiB
Markdown

## TODO
* PlaybackEngine - Buffer overrun on output for channel (1.000000)
- we are feeding too much data into 'stretcher'
* E attributionTag not declared in manifest of at.lockstep
* analyze the (secondly or so) noise beeps in the mp3 playback
- introduced with this commit
- is it librubberband, my failure to feed it properly (buffer exhaustion), or sth else?
- the sizes of my buffers?
* correct sampling rate of libmpg123 vs. 48000 Hz using librubberband
* record accelero and write recording to file
* set feedForDelay in musicFeedThread() in PlaybackEngine.cpp
- LOGI("feed %d silence samples", num_samples);
- set the sleep delay
- ideally, set the buf size
* check playback buf size, and reduce buffer sizes
- LOGI("onAudioReady() frames=%d", frames);
* reduce lib size, librubberband is 1.3 M (one .so file)
- maybe we are compiling too many source files
- # TODO: see Android.mk in librubberband and copy options from `LOCAL_CFLAGS`
O> 16 KB paging for NDK libs
* target SDK level 35
* record the accelero and check why repeated fast beats result in occasional detection outages
- guess: the threshold gets pushed so high that the later beats are not detected properly
- maybe we need the `*0.6` factor after all (but verify this!)
* minimum amplitude for accelero (avoid detecting e.g. when phone is lying flat and you hammer on the table)
* filter away bad SQI areas of the signal (do not detect steps if we have bad SQI)
## Nice-To
* myband PlaybackEngine.cpp has latency management and other audio performance related features.
Check if the app can be improved (audio wise) by using that code instead.
* Sampling rate for accelerometer - do we need to measure actual sensor FPS, or is it stable 50 Hz?
* re-calculate IIR filter coefficients. probably not critical for 50 Hz vs. 60 Hz.
* re-visit sampling rate and channel count.
MixingPlayer currently forces both to 48000 and 2 respectively,
regardless of what Android says would be optimal.
* nice-to nice-to: ramp up audio pipelines twice - once to collect params, another one to use those
## Technical Debt
* remove duplication of `mp3file_open()` in `mp3file_open_fd()`
* malloc() nullptr result handling
## Before release
* check librubberband license