diff --git a/android-audio-library/src/main/java/com/github/axet/audiolibrary/app/MainApplication.java b/android-audio-library/src/main/java/com/github/axet/audiolibrary/app/MainApplication.java index b5494f8..9884783 100644 --- a/android-audio-library/src/main/java/com/github/axet/audiolibrary/app/MainApplication.java +++ b/android-audio-library/src/main/java/com/github/axet/audiolibrary/app/MainApplication.java @@ -19,7 +19,6 @@ public class MainApplication extends Application { public static final String PREFERENCE_THEME = "theme"; public static final String PREFERENCE_CHANNELS = "channels"; - @Override public void onCreate() { super.onCreate(); diff --git a/android-audio-library/src/main/java/com/github/axet/audiolibrary/app/RawSamples.java b/android-audio-library/src/main/java/com/github/axet/audiolibrary/app/RawSamples.java index bd565da..e5ae92d 100644 --- a/android-audio-library/src/main/java/com/github/axet/audiolibrary/app/RawSamples.java +++ b/android-audio-library/src/main/java/com/github/axet/audiolibrary/app/RawSamples.java @@ -1,13 +1,6 @@ package com.github.axet.audiolibrary.app; import android.media.AudioFormat; -import android.util.Log; - -import org.apache.commons.math3.complex.Complex; -import org.apache.commons.math3.transform.DftNormalization; -import org.apache.commons.math3.transform.FastFourierTransformer; -import org.apache.commons.math3.transform.TransformType; -import org.apache.commons.math3.util.MathArrays; import java.io.BufferedOutputStream; import java.io.File; @@ -21,13 +14,6 @@ import java.nio.ByteOrder; import java.nio.channels.FileChannel; public class RawSamples { - public static int AUDIO_FORMAT = AudioFormat.ENCODING_PCM_16BIT; - - // quite root gives me 20db - public static int NOISE_DB = 20; - // max 90 dB detection for android mic - public static int MAXIMUM_DB = 90; - File in; InputStream is; @@ -69,7 +55,7 @@ public class RawSamples { try { readBuffer = new byte[(int) getBufferLen(bufReadSize)]; is = new FileInputStream(in); - is.skip(offset * (AUDIO_FORMAT == AudioFormat.ENCODING_PCM_16BIT ? 2 : 1)); + is.skip(offset * (Sound.AUDIO_FORMAT == AudioFormat.ENCODING_PCM_16BIT ? 2 : 1)); } catch (IOException e) { throw new RuntimeException(e); } @@ -109,11 +95,11 @@ public class RawSamples { } public static long getSamples(long len) { - return len / (AUDIO_FORMAT == AudioFormat.ENCODING_PCM_16BIT ? 2 : 1); + return len / (Sound.AUDIO_FORMAT == AudioFormat.ENCODING_PCM_16BIT ? 2 : 1); } public static long getBufferLen(long samples) { - return samples * (AUDIO_FORMAT == AudioFormat.ENCODING_PCM_16BIT ? 2 : 1); + return samples * (Sound.AUDIO_FORMAT == AudioFormat.ENCODING_PCM_16BIT ? 2 : 1); } public void trunk(long pos) { diff --git a/android-audio-library/src/main/java/com/github/axet/audiolibrary/app/Sound.java b/android-audio-library/src/main/java/com/github/axet/audiolibrary/app/Sound.java index c8934c9..543b3e5 100644 --- a/android-audio-library/src/main/java/com/github/axet/audiolibrary/app/Sound.java +++ b/android-audio-library/src/main/java/com/github/axet/audiolibrary/app/Sound.java @@ -8,6 +8,11 @@ import android.media.AudioTrack; import android.preference.PreferenceManager; public class Sound extends com.github.axet.androidlibrary.sound.Sound { + public static int AUDIO_FORMAT = AudioFormat.ENCODING_PCM_16BIT; + // quite root gives me 20db + public static int NOISE_DB = 20; + // max 90 dB detection for android mic + public static int MAXIMUM_DB = 90; public Sound(Context context) { super(context); @@ -47,9 +52,7 @@ public class Sound extends com.github.axet.androidlibrary.sound.Sound { // http://stackoverflow.com/questions/27602492 // // with MODE_STATIC setNotificationMarkerPosition not called - AudioTrack track = new AudioTrack(AudioManager.STREAM_MUSIC, sampleRate, - c, RawSamples.AUDIO_FORMAT, - len * (Short.SIZE / 8), AudioTrack.MODE_STREAM); + AudioTrack track = new AudioTrack(AudioManager.STREAM_MUSIC, sampleRate, c, AUDIO_FORMAT, len * (Short.SIZE / 8), AudioTrack.MODE_STREAM); track.write(buf, 0, len); if (track.setNotificationMarkerPosition(end) != AudioTrack.SUCCESS) throw new RuntimeException("unable to set marker"); diff --git a/android-audio-library/src/main/java/com/github/axet/audiolibrary/encoders/Factory.java b/android-audio-library/src/main/java/com/github/axet/audiolibrary/encoders/Factory.java index bcaa45f..7f281b7 100644 --- a/android-audio-library/src/main/java/com/github/axet/audiolibrary/encoders/Factory.java +++ b/android-audio-library/src/main/java/com/github/axet/audiolibrary/encoders/Factory.java @@ -6,6 +6,7 @@ import android.os.Build; import com.github.axet.audiolibrary.R; import com.github.axet.audiolibrary.app.RawSamples; +import com.github.axet.audiolibrary.app.Sound; import java.io.File; import java.util.ArrayList; @@ -89,7 +90,7 @@ public class Factory { } // default raw - int c = RawSamples.AUDIO_FORMAT == AudioFormat.ENCODING_PCM_16BIT ? 2 : 1; + int c = Sound.AUDIO_FORMAT == AudioFormat.ENCODING_PCM_16BIT ? 2 : 1; return c * rate; } } diff --git a/android-audio-library/src/main/java/com/github/axet/audiolibrary/widgets/FFTChartView.java b/android-audio-library/src/main/java/com/github/axet/audiolibrary/widgets/FFTChartView.java index 86d60e7..fa98488 100644 --- a/android-audio-library/src/main/java/com/github/axet/audiolibrary/widgets/FFTChartView.java +++ b/android-audio-library/src/main/java/com/github/axet/audiolibrary/widgets/FFTChartView.java @@ -6,6 +6,7 @@ import android.graphics.Color; import android.util.AttributeSet; import com.github.axet.audiolibrary.app.RawSamples; +import com.github.axet.audiolibrary.app.Sound; public class FFTChartView extends FFTView { public static final String TAG = FFTChartView.class.getSimpleName(); @@ -66,7 +67,7 @@ public class FFTChartView extends FFTView { min = Math.min(v, min); max = Math.max(v, max); - v = (RawSamples.MAXIMUM_DB + v) / RawSamples.MAXIMUM_DB; + v = (Sound.MAXIMUM_DB + v) / Sound.MAXIMUM_DB; float endX = startX; float endY = (float) (h - h * v); diff --git a/android-audio-library/src/main/java/com/github/axet/audiolibrary/widgets/PitchView.java b/android-audio-library/src/main/java/com/github/axet/audiolibrary/widgets/PitchView.java index f0e04d7..680f4f5 100644 --- a/android-audio-library/src/main/java/com/github/axet/audiolibrary/widgets/PitchView.java +++ b/android-audio-library/src/main/java/com/github/axet/audiolibrary/widgets/PitchView.java @@ -13,6 +13,7 @@ import android.view.ViewGroup; import com.github.axet.androidlibrary.widgets.ThemeUtils; import com.github.axet.audiolibrary.R; import com.github.axet.audiolibrary.app.RawSamples; +import com.github.axet.audiolibrary.app.Sound; import java.util.LinkedList; import java.util.List; @@ -338,7 +339,7 @@ public class PitchView extends ViewGroup { } void update(int end) { - dB = getDB(end) / RawSamples.MAXIMUM_DB; + dB = getDB(end) / Sound.MAXIMUM_DB; String str = ""; @@ -420,7 +421,7 @@ public class PitchView extends ViewGroup { if (isInEditMode()) { for (int i = 0; i < 3000; i++) { - data.add(-Math.sin(i) * RawSamples.MAXIMUM_DB); + data.add(-Math.sin(i) * Sound.MAXIMUM_DB); } } @@ -495,7 +496,7 @@ public class PitchView extends ViewGroup { public double getDB(int i) { double db = data.get(i); - db = RawSamples.MAXIMUM_DB + db; + db = Sound.MAXIMUM_DB + db; return db; } @@ -504,12 +505,12 @@ public class PitchView extends ViewGroup { double db = getDB(i); // do not show below NOISE_DB - db = db - RawSamples.NOISE_DB; + db = db - Sound.NOISE_DB; if (db < 0) db = 0; - int rest = RawSamples.MAXIMUM_DB - RawSamples.NOISE_DB; + int rest = Sound.MAXIMUM_DB - Sound.NOISE_DB; db = db / rest; diff --git a/android-audio-library/src/main/res/drawable-xxxhdpi/ic_create_black_24dp.xml b/android-audio-library/src/main/res/drawable/ic_create_black_24dp.xml similarity index 100% rename from android-audio-library/src/main/res/drawable-xxxhdpi/ic_create_black_24dp.xml rename to android-audio-library/src/main/res/drawable/ic_create_black_24dp.xml diff --git a/android-audio-library/src/main/res/drawable-xxxhdpi/ic_mic_24dp.xml b/android-audio-library/src/main/res/drawable/ic_mic_24dp.xml similarity index 100% rename from android-audio-library/src/main/res/drawable-xxxhdpi/ic_mic_24dp.xml rename to android-audio-library/src/main/res/drawable/ic_mic_24dp.xml diff --git a/android-audio-library/src/main/res/drawable-xxxhdpi/round_button_dark.xml b/android-audio-library/src/main/res/drawable/round_button_dark.xml similarity index 100% rename from android-audio-library/src/main/res/drawable-xxxhdpi/round_button_dark.xml rename to android-audio-library/src/main/res/drawable/round_button_dark.xml diff --git a/android-audio-library/src/main/res/drawable-xxxhdpi/round_button_light.xml b/android-audio-library/src/main/res/drawable/round_button_light.xml similarity index 100% rename from android-audio-library/src/main/res/drawable-xxxhdpi/round_button_light.xml rename to android-audio-library/src/main/res/drawable/round_button_light.xml diff --git a/app/src/main/java/com/github/axet/audiorecorder/activities/RecordingActivity.java b/app/src/main/java/com/github/axet/audiorecorder/activities/RecordingActivity.java index a18b3e1..830d779 100644 --- a/app/src/main/java/com/github/axet/audiorecorder/activities/RecordingActivity.java +++ b/app/src/main/java/com/github/axet/audiorecorder/activities/RecordingActivity.java @@ -426,7 +426,7 @@ public class RecordingActivity extends AppCompatActivity { int rate = Integer.parseInt(shared.getString(MainApplication.PREFERENCE_RATE, "")); int m = MainApplication.getChannels(this); - int c = RawSamples.AUDIO_FORMAT == AudioFormat.ENCODING_PCM_16BIT ? 2 : 1; + int c = Sound.AUDIO_FORMAT == AudioFormat.ENCODING_PCM_16BIT ? 2 : 1; long perSec = (c * m * rate); long sec = free / perSec * 1000; @@ -588,12 +588,12 @@ public class RecordingActivity extends AppCompatActivity { rs.open(samplesTime); - int min = AudioRecord.getMinBufferSize(sampleRate, MainApplication.getMode(RecordingActivity.this), RawSamples.AUDIO_FORMAT); + int min = AudioRecord.getMinBufferSize(sampleRate, MainApplication.getMode(RecordingActivity.this), Sound.AUDIO_FORMAT); if (min <= 0) { throw new RuntimeException("Unable to initialize AudioRecord: Bad audio values"); } - recorder = new AudioRecord(MediaRecorder.AudioSource.MIC, sampleRate, MainApplication.getMode(RecordingActivity.this), RawSamples.AUDIO_FORMAT, min * 2); + recorder = new AudioRecord(MediaRecorder.AudioSource.MIC, sampleRate, MainApplication.getMode(RecordingActivity.this), Sound.AUDIO_FORMAT, min * 2); if (recorder.getState() != AudioRecord.STATE_INITIALIZED) { throw new RuntimeException("Unable to initialize AudioRecord"); } @@ -723,7 +723,6 @@ public class RecordingActivity extends AppCompatActivity { @Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); - switch (requestCode) { case 1: if (permitted(permissions)) { @@ -764,7 +763,7 @@ public class RecordingActivity extends AppCompatActivity { EncoderInfo getInfo() { final int channels = MainApplication.getChannels(this); - final int bps = RawSamples.AUDIO_FORMAT == AudioFormat.ENCODING_PCM_16BIT ? 16 : 8; + final int bps = Sound.AUDIO_FORMAT == AudioFormat.ENCODING_PCM_16BIT ? 16 : 8; return new EncoderInfo(channels, sampleRate, bps); } diff --git a/app/src/main/res/drawable-hdpi/ic_done.png b/app/src/main/res/drawable-hdpi/ic_done.png deleted file mode 100644 index 2254355..0000000 Binary files a/app/src/main/res/drawable-hdpi/ic_done.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/ic_info_black_24dp.png b/app/src/main/res/drawable-hdpi/ic_info_black_24dp.png deleted file mode 100644 index da56077..0000000 Binary files a/app/src/main/res/drawable-hdpi/ic_info_black_24dp.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/ic_notifications_black_24dp.png b/app/src/main/res/drawable-hdpi/ic_notifications_black_24dp.png deleted file mode 100644 index e200012..0000000 Binary files a/app/src/main/res/drawable-hdpi/ic_notifications_black_24dp.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/ic_sync_black_24dp.png b/app/src/main/res/drawable-hdpi/ic_sync_black_24dp.png deleted file mode 100644 index a5ebdbd..0000000 Binary files a/app/src/main/res/drawable-hdpi/ic_sync_black_24dp.png and /dev/null differ diff --git a/app/src/main/res/drawable-mdpi/ic_done.png b/app/src/main/res/drawable-mdpi/ic_done.png deleted file mode 100644 index 20c459d..0000000 Binary files a/app/src/main/res/drawable-mdpi/ic_done.png and /dev/null differ diff --git a/app/src/main/res/drawable-mdpi/ic_info_black_24dp.png b/app/src/main/res/drawable-mdpi/ic_info_black_24dp.png deleted file mode 100644 index 5ef3dc0..0000000 Binary files a/app/src/main/res/drawable-mdpi/ic_info_black_24dp.png and /dev/null differ diff --git a/app/src/main/res/drawable-mdpi/ic_notifications_black_24dp.png b/app/src/main/res/drawable-mdpi/ic_notifications_black_24dp.png deleted file mode 100644 index b36475d..0000000 Binary files a/app/src/main/res/drawable-mdpi/ic_notifications_black_24dp.png and /dev/null differ diff --git a/app/src/main/res/drawable-mdpi/ic_sync_black_24dp.png b/app/src/main/res/drawable-mdpi/ic_sync_black_24dp.png deleted file mode 100644 index 9685e8e..0000000 Binary files a/app/src/main/res/drawable-mdpi/ic_sync_black_24dp.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/ic_done.png b/app/src/main/res/drawable-xhdpi/ic_done.png deleted file mode 100644 index a068d7a..0000000 Binary files a/app/src/main/res/drawable-xhdpi/ic_done.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/ic_info_black_24dp.png b/app/src/main/res/drawable-xhdpi/ic_info_black_24dp.png deleted file mode 100644 index 46ed12a..0000000 Binary files a/app/src/main/res/drawable-xhdpi/ic_info_black_24dp.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/ic_notifications_black_24dp.png b/app/src/main/res/drawable-xhdpi/ic_notifications_black_24dp.png deleted file mode 100644 index 7de8581..0000000 Binary files a/app/src/main/res/drawable-xhdpi/ic_notifications_black_24dp.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/ic_sync_black_24dp.png b/app/src/main/res/drawable-xhdpi/ic_sync_black_24dp.png deleted file mode 100644 index 860a5db..0000000 Binary files a/app/src/main/res/drawable-xhdpi/ic_sync_black_24dp.png and /dev/null differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_done.png b/app/src/main/res/drawable-xxhdpi/ic_done.png deleted file mode 100644 index a375a37..0000000 Binary files a/app/src/main/res/drawable-xxhdpi/ic_done.png and /dev/null differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_info_black_24dp.png b/app/src/main/res/drawable-xxhdpi/ic_info_black_24dp.png deleted file mode 100644 index a81eeb9..0000000 Binary files a/app/src/main/res/drawable-xxhdpi/ic_info_black_24dp.png and /dev/null differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_notifications_black_24dp.png b/app/src/main/res/drawable-xxhdpi/ic_notifications_black_24dp.png deleted file mode 100644 index ab8a9c4..0000000 Binary files a/app/src/main/res/drawable-xxhdpi/ic_notifications_black_24dp.png and /dev/null differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_sync_black_24dp.png b/app/src/main/res/drawable-xxhdpi/ic_sync_black_24dp.png deleted file mode 100644 index f799008..0000000 Binary files a/app/src/main/res/drawable-xxhdpi/ic_sync_black_24dp.png and /dev/null differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_info_black_24dp.png b/app/src/main/res/drawable-xxxhdpi/ic_info_black_24dp.png deleted file mode 100644 index c8f86b9..0000000 Binary files a/app/src/main/res/drawable-xxxhdpi/ic_info_black_24dp.png and /dev/null differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_notifications_black_24dp.png b/app/src/main/res/drawable-xxxhdpi/ic_notifications_black_24dp.png deleted file mode 100644 index 86f89d7..0000000 Binary files a/app/src/main/res/drawable-xxxhdpi/ic_notifications_black_24dp.png and /dev/null differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_sync_black_24dp.png b/app/src/main/res/drawable-xxxhdpi/ic_sync_black_24dp.png deleted file mode 100644 index b9f56f3..0000000 Binary files a/app/src/main/res/drawable-xxxhdpi/ic_sync_black_24dp.png and /dev/null differ diff --git a/app/src/main/res/drawable/ic_done_black_24dp.xml b/app/src/main/res/drawable/ic_done_black_24dp.xml new file mode 100644 index 0000000..7affe9b --- /dev/null +++ b/app/src/main/res/drawable/ic_done_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable-v21/ic_info_black_24dp.xml b/app/src/main/res/drawable/ic_info_black_24dp.xml similarity index 100% rename from app/src/main/res/drawable-v21/ic_info_black_24dp.xml rename to app/src/main/res/drawable/ic_info_black_24dp.xml diff --git a/app/src/main/res/drawable-v21/ic_notifications_black_24dp.xml b/app/src/main/res/drawable/ic_notifications_black_24dp.xml similarity index 100% rename from app/src/main/res/drawable-v21/ic_notifications_black_24dp.xml rename to app/src/main/res/drawable/ic_notifications_black_24dp.xml diff --git a/app/src/main/res/drawable-v21/ic_sync_black_24dp.xml b/app/src/main/res/drawable/ic_sync_black_24dp.xml similarity index 100% rename from app/src/main/res/drawable-v21/ic_sync_black_24dp.xml rename to app/src/main/res/drawable/ic_sync_black_24dp.xml diff --git a/app/src/main/res/layout/activity_recording.xml b/app/src/main/res/layout/activity_recording.xml index 5ea4b9a..46a0ffb 100644 --- a/app/src/main/res/layout/activity_recording.xml +++ b/app/src/main/res/layout/activity_recording.xml @@ -117,7 +117,8 @@ android:layout_width="40dp" android:layout_height="40dp" android:background="?attr/roundButton" - android:src="@drawable/ic_done" /> + android:tint="@android:color/white" + android:src="@drawable/ic_done_black_24dp" />