From f4c0aa35e198d974c21649ccc118567c87c315b3 Mon Sep 17 00:00:00 2001 From: Alexey Kuznetsov Date: Tue, 29 Mar 2016 13:40:10 +0300 Subject: [PATCH 1/3] comment --- .../main/java/com/github/axet/audiorecorder/app/RawSamples.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/github/axet/audiorecorder/app/RawSamples.java b/app/src/main/java/com/github/axet/audiorecorder/app/RawSamples.java index 184e813..db9b59e 100644 --- a/app/src/main/java/com/github/axet/audiorecorder/app/RawSamples.java +++ b/app/src/main/java/com/github/axet/audiorecorder/app/RawSamples.java @@ -22,7 +22,7 @@ public class RawSamples { // quite root gives me 20db public static int NOISE_DB = 20; - // max 90 dB for mic + // max 90 dB detection for android mic public static int MAXIMUM_DB = 90; File in; From 40d499301e9825f58637c31d073ebc2f04d6a123 Mon Sep 17 00:00:00 2001 From: Alexey Kuznetsov Date: Tue, 29 Mar 2016 15:09:44 +0300 Subject: [PATCH 2/3] add db indicator --- .../activities/RecordingActivity.java | 4 +- .../axet/audiorecorder/widgets/PitchView.java | 69 +++++++++++++++---- 2 files changed, 58 insertions(+), 15 deletions(-) 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 a030a60..0bc963b 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 @@ -261,7 +261,7 @@ public class RecordingActivity extends AppCompatActivity { pitch.clear(cut / samplesUpdate); for (int i = 0; i < len; i += samplesUpdate) { float dB = RawSamples.getdB(buf, i, samplesUpdate); - pitch.add(RawSamples.filterdB(dB)); + pitch.add(dB); } updateSamples(samplesTime); } @@ -590,7 +590,7 @@ public class RecordingActivity extends AppCompatActivity { handle.post(new Runnable() { @Override public void run() { - pitch.add(RawSamples.filterdB(dB)); + pitch.add(dB); } }); samplesUpdateCount -= samplesUpdate; diff --git a/app/src/main/java/com/github/axet/audiorecorder/widgets/PitchView.java b/app/src/main/java/com/github/axet/audiorecorder/widgets/PitchView.java index d7a4458..7471826 100644 --- a/app/src/main/java/com/github/axet/audiorecorder/widgets/PitchView.java +++ b/app/src/main/java/com/github/axet/audiorecorder/widgets/PitchView.java @@ -5,6 +5,7 @@ import android.content.res.Resources; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; +import android.graphics.Rect; import android.os.Build; import android.os.Handler; import android.util.AttributeSet; @@ -12,6 +13,9 @@ import android.util.Log; import android.util.TypedValue; import android.view.View; import android.view.ViewGroup; +import android.widget.TextView; + +import com.github.axet.audiorecorder.app.RawSamples; import java.util.LinkedList; import java.util.List; @@ -153,8 +157,8 @@ public class PitchView extends ViewGroup { // } for (int i = 0; i < m; i++) { - float left = data.get(i); - float right = data.get(i); + float left = filterdB(i); + float right = filterdB(i); float mid = getHeight() / 2f; @@ -185,6 +189,9 @@ public class PitchView extends ViewGroup { public class PitchCurrentView extends View { Paint paint; + Paint textPaint; + String text; + Rect textBounds; public PitchCurrentView(Context context) { this(context, null); @@ -197,6 +204,11 @@ public class PitchView extends ViewGroup { public PitchCurrentView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); + textPaint = new Paint(); + textPaint.setColor(Color.GRAY); + textPaint.setAntiAlias(true); + textPaint.setTextSize(20f); + paint = new Paint(); paint.setColor(pitchColor); paint.setStrokeWidth(pitchWidth); @@ -207,32 +219,58 @@ public class PitchView extends ViewGroup { int w = MeasureSpec.getSize(widthMeasureSpec); int h = Math.min(MeasureSpec.getSize(heightMeasureSpec), dp2px(pitchDlimiter + getPaddingTop() + getPaddingBottom())); + updateText(); + + h += textBounds.height(); + setMeasuredDimension(w, h); } + public void setText(String text) { + this.text = text; + + textBounds = new Rect(); + textPaint.getTextBounds(this.text, 0, this.text.length(), textBounds); + } + @Override protected void onLayout(boolean changed, int left, int top, int right, int bottom) { super.onLayout(changed, left, top, right, bottom); } + public int getEnd() { + int end = data.size() - 1; + + if (edit != null) { + end = editPos; + } + if (play != null) { + end = (int) playPos; + } + + return end; + } + + void updateText() { + int end = getEnd(); + setText(Integer.toString(data.get(end).intValue()) + " dB"); + } + @Override public void onDraw(Canvas canvas) { if (data.size() > 0) { - int end = data.size() - 1; + int end = getEnd(); - if (edit != null) { - end = editPos; - } - if (play != null) { - end = (int) playPos; - } + updateText(); + int x = getWidth() / 2 - textBounds.width() / 2; + canvas.drawText(text, x, textBounds.height(), textPaint); - float left = data.get(end); - float right = data.get(end); + float left = filterdB(end); + float right = filterdB(end); float mid = getWidth() / 2f; - float y = getHeight() / 2f; + float y = textBounds.bottom + getHeight() / 2f; canvas.drawLine(mid, y, mid - mid * left, y, paint); canvas.drawLine(mid, y, mid + mid * right, y, paint); @@ -275,7 +313,7 @@ public class PitchView extends ViewGroup { if (isInEditMode()) { for (int i = 0; i < 3000; i++) { - data.add((float) Math.random()); + data.add((float) (Math.random() * RawSamples.MAXIMUM_DB)); } } @@ -334,6 +372,11 @@ public class PitchView extends ViewGroup { draw(); } + public float filterdB(int i) { + float f = data.get(i); + return RawSamples.filterdB(f); + } + // draw in edit mode public void draw() { graph.invalidate(); From 514da53a72d41013e9a7f32e307c91d63bef3f4b Mon Sep 17 00:00:00 2001 From: Alexey Kuznetsov Date: Tue, 29 Mar 2016 15:09:49 +0300 Subject: [PATCH 3/3] Bump version 1.1.25 --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index e65afaa..8e4ec3e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -8,8 +8,8 @@ android { applicationId "com.github.axet.audiorecorder" minSdkVersion 16 targetSdkVersion 23 - versionCode 45 - versionName "1.1.24" + versionCode 46 + versionName "1.1.25" } signingConfigs { release {