1
0
Fork 0

Added tarsos library for onset detection of audio; tried to implement ComplexOnsetDetector but ffmpeg is needed.

This commit is contained in:
Jonathan Chan 2016-08-05 00:14:52 -07:00
parent b43910328e
commit 8f5ac74823
3 changed files with 24 additions and 3 deletions

View File

@ -20,9 +20,10 @@ android {
} }
dependencies { dependencies {
compile fileTree(dir: 'libs', include: ['*.jar']) compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12' testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:24.1.1' compile 'com.android.support:appcompat-v7:24.1.1'
compile 'com.android.support:support-v4:24.1.1' compile 'com.android.support:support-v4:24.1.1'
compile 'com.android.support:design:24.1.1' compile 'com.android.support:design:24.1.1'
compile files('libs/TarsosDSP-Android-latest.jar')
} }

Binary file not shown.

View File

@ -25,6 +25,11 @@ import android.view.View;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
import be.tarsos.dsp.AudioDispatcher;
import be.tarsos.dsp.io.android.AudioDispatcherFactory;
import be.tarsos.dsp.onsets.ComplexOnsetDetector;
import be.tarsos.dsp.onsets.OnsetHandler;
import java.util.Random; import java.util.Random;
import java.util.Timer; import java.util.Timer;
import java.util.TimerTask; import java.util.TimerTask;
@ -300,7 +305,7 @@ public class MainActivity extends AppCompatActivity {
}); });
} }
}; };
timer.schedule(timerTask, 350, 555); timer.schedule(timerTask, 300, 555);
mediaPlayer = MediaPlayer.create(this, R.raw.ievan_polkka); mediaPlayer = MediaPlayer.create(this, R.raw.ievan_polkka);
mediaPlayer.setLooping(true); mediaPlayer.setLooping(true);
mediaPlayer.start(); mediaPlayer.start();
@ -317,13 +322,28 @@ public class MainActivity extends AppCompatActivity {
}); });
} }
}; };
timer.schedule(timerTask, 200, 425); timer.schedule(timerTask, 180, 425);
mediaPlayer = MediaPlayer.create(this, R.raw.nyan); mediaPlayer = MediaPlayer.create(this, R.raw.nyan);
mediaPlayer.setLooping(true); mediaPlayer.setLooping(true);
mediaPlayer.start(); mediaPlayer.start();
//testOnsets();
break; break;
} }
} }
public void testOnsets() {
// needs ffmpeg???
AudioDispatcher dispatcher = AudioDispatcherFactory.fromPipe("/res/raw/nyan.mp3", 44100,5000,2500);
ComplexOnsetDetector cod = new ComplexOnsetDetector(521, 0.3, 256.0/44100.0*4.0, -70);
dispatcher.addAudioProcessor(cod);
cod.setHandler(new OnsetHandler() {
@Override
public void handleOnset(double v, double v1) {
System.out.println(v);
}
});
}
//endregion //endregion
//region ACTIVITIES //region ACTIVITIES