Display noise floor in dB

This commit is contained in:
2018-09-28 23:37:44 +01:00
parent f01704535b
commit aa6bca412e

View File

@@ -388,7 +388,7 @@ public class AudiobookRecorder extends JFrame {
statusBar = new JPanel(); statusBar = new JPanel();
add(statusBar, BorderLayout.SOUTH); add(statusBar, BorderLayout.SOUTH);
statusLabel = new JLabel("Noise floor: " + getNoiseFloor()); statusLabel = new JLabel("Noise floor: " + getNoiseFloorDB() + "dB");
statusBar.add(statusLabel); statusBar.add(statusLabel);
buildToolbar(centralPanel); buildToolbar(centralPanel);
@@ -1343,7 +1343,7 @@ public class AudiobookRecorder extends JFrame {
bookTree.expandPath(new TreePath(book.getPath())); bookTree.expandPath(new TreePath(book.getPath()));
toolBar.enableBook(); toolBar.enableBook();
statusLabel.setText("Noise floor: " + getNoiseFloor()); statusLabel.setText("Noise floor: " + getNoiseFloorDB() + "dB");
book.setIcon(Icons.book); book.setIcon(Icons.book);
} }
@@ -1404,6 +1404,16 @@ public class AudiobookRecorder extends JFrame {
return ms; return ms;
} }
public int getNoiseFloorDB() {
int nf = getNoiseFloor();
if (nf == 0) return 0;
double r = nf / 32767d;
double l10 = Math.log10(r);
double db = 20d * l10;
return (int)db;
}
public void recordRoomNoise() { public void recordRoomNoise() {
if (roomNoise.startRecording()) { if (roomNoise.startRecording()) {
@@ -1413,7 +1423,7 @@ public class AudiobookRecorder extends JFrame {
public void run() { public void run() {
roomNoise.stopRecording(); roomNoise.stopRecording();
centralPanel.setFlash(false); centralPanel.setFlash(false);
statusLabel.setText("Noise floor: " + getNoiseFloor()); statusLabel.setText("Noise floor: " + getNoiseFloorDB() + "dB");
} }
}, 5000); // 5 seconds of recording }, 5000); // 5 seconds of recording
} }