diff --git a/.gitignore b/.gitignore index bfbfd07..9a2635b 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,4 @@ app/src/main/obj/ .cxx /txts +/data \ No newline at end of file diff --git a/app/src/main/cpp/PlaybackEngine.cpp b/app/src/main/cpp/PlaybackEngine.cpp index 877d095..e292615 100644 --- a/app/src/main/cpp/PlaybackEngine.cpp +++ b/app/src/main/cpp/PlaybackEngine.cpp @@ -231,7 +231,9 @@ void PlaybackEngine::musicFeedThread() { } if(haveTimeRatio.load()) { - stretcher.setTimeRatio(timeRatio.load()); + double ratio = timeRatio.load(); + stretcher.setTimeRatio(ratio); + stretcher.setPitchScale(ratio); haveTimeRatio.store(false); } @@ -313,6 +315,7 @@ void PlaybackEngine::musicFeedThread() { // next iteration will play silence closeMusicFile(); stretcher.setTimeRatio(1.0); // buffer size for playing silence is computed from 'playbackRate', so reset timeRatio + stretcher.setPitchScale(1.0); stretcher.process(buf_ptr, 0, true); // set end of playback mPlayer->stopAudio(); continue; @@ -322,6 +325,7 @@ void PlaybackEngine::musicFeedThread() { LOGI("finished reading mp3 file (MPG123_DONE)"); closeMusicFile(); stretcher.setTimeRatio(1.0); // buffer size for playing silence is computed from 'playbackRate', so reset timeRatio + stretcher.setPitchScale(1.0); stretcher.process(buf_ptr, 0, true); // set end of playback mPlayer->stopAudio(); continue; diff --git a/app/src/main/java/at/lockstep/app/LstForegroundService.java b/app/src/main/java/at/lockstep/app/LstForegroundService.java index 7aed02f..b17a593 100644 --- a/app/src/main/java/at/lockstep/app/LstForegroundService.java +++ b/app/src/main/java/at/lockstep/app/LstForegroundService.java @@ -259,6 +259,8 @@ public class LstForegroundService extends Service implements SensorEventListener stepDetector.filter(event.timestamp, event.values); // collect accelerometer recording - adjust timebase to 0.0 sec beginning recording.add(new SensorData(event.timestamp - recordingStartTime, event.values)); + // TODO: acquires at 8 ms intervals ... 125 Hz?! + // TODO: must compute actual sampling rate. and either downsample, or adapt the IIR filter parameters. (& length??) - easier to resample. } @Override