diff --git a/audino/frontend/package.json b/audino/frontend/package.json
index ef3eb7eb..f46583c0 100644
--- a/audino/frontend/package.json
+++ b/audino/frontend/package.json
@@ -24,13 +24,14 @@
"popper.js": "^1.16.1",
"prop-types": "^15.7.2",
"react": "^16.13.1",
- "react-bootstrap": "^1.0.1",
+ "react-bootstrap": "^1.6.3",
"react-dom": "^16.13.1",
"react-helmet": "^6.0.0",
"react-redux": "^7.2.6",
"react-router": "^5.2.0",
"react-router-dom": "^5.3.0",
"react-scripts": "3.4.1",
+ "resize-image-data": "^0.3.0",
"redux": "^4.1.2",
"uuid": "^8.3.2",
"wavesurfer.js": "^5.2.0"
diff --git a/audino/frontend/scripts/run-dev.sh b/audino/frontend/scripts/run-dev.sh
index 97875833..f4e91f24 100644
--- a/audino/frontend/scripts/run-dev.sh
+++ b/audino/frontend/scripts/run-dev.sh
@@ -9,6 +9,7 @@ echo "npm install"
cd "${app}" && npm install
cd "${app}" && npm install jszip
cd "${app}" && npm install file-saver
+ cd "${app}" && npm i resize-image-data
} || {
echo "package update broke install, deleting node_modules"
cd "${app}" && rm -rf node_modules
diff --git a/audino/frontend/src/components/annotate/navbutton.js b/audino/frontend/src/components/annotate/navbutton.js
index a10366c2..526bb9f8 100644
--- a/audino/frontend/src/components/annotate/navbutton.js
+++ b/audino/frontend/src/components/annotate/navbutton.js
@@ -34,7 +34,7 @@ const NavButton = props => {
previous_pages[num_of_prev] = dataId;
localStorage.setItem('previous_links', JSON.stringify(previous_pages));
localStorage.setItem('count', JSON.stringify(next_page_num));
-
+ console.log("configed browser settings")
if (noMore) {
window.location.href = `${path}/projects/${projectId}/data`;
} else {
@@ -69,6 +69,7 @@ const NavButton = props => {
})
.then(response => {
const { data_id } = response.data;
+ console.log("successfully prepared next data point")
loadNextPage(response.status === 202, data_id);
})
.catch(e => {
diff --git a/audino/frontend/src/components/annotate/sampleRateChanger.js b/audino/frontend/src/components/annotate/sampleRateChanger.js
new file mode 100644
index 00000000..37bbfc93
--- /dev/null
+++ b/audino/frontend/src/components/annotate/sampleRateChanger.js
@@ -0,0 +1,58 @@
+import React from 'react';
+import { Button } from '../button';
+
+const SampleRateChanger = props => {
+ const {annotate, state} = props
+ const {wavesurfer, filename, spectrogram} = state
+ const [text, setText] = React.useState("")
+ const [hz, setHz] = React.useState(0)
+ const [hz2, setHz2] = React.useState(Number(wavesurfer.backend.offlineAc.sampleRate/1000))
+
+ const handleSubmit = () => {
+ const int = parseInt(text, 10)
+
+ const newState = annotate.initalState;
+ newState["sampleRate"] = int || 44100
+ wavesurfer.load(`/audios/${filename}`, null, null, null, int );
+ }
+
+ const inputText = e => {
+ setText(e.target.value)
+ }
+
+ const ChangeColorChange = e => {
+ setHz(e.target.value)
+ wavesurfer.empty()
+ wavesurfer.load(`/audios/${filename}`, null, null, null, e.target.value * 1000);
+ }
+
+ return (
+
+ {
+ setHz(e.target.value)
+ spectrogram.scale(e.target.value, hz2, wavesurfer.backend.offlineAc.sampleRate/1000)
+ }} />
+ {
+ setHz2(e.target.value);
+ spectrogram.scale(0, e.target.value, Math.ceil(wavesurfer.backend.offlineAc.sampleRate/1000))
+ /*Object.values(wavesurfer.regions.list).forEach(segment => {
+ segment.scale(e.target.value * 1000)
+ })*/
+ }}
+ />
+ {hz/2 + " - " + hz2/2 + " khz"}
+
+ )
+};
+
+export default SampleRateChanger;
diff --git a/audino/frontend/src/components/annotate/zoom.js b/audino/frontend/src/components/annotate/zoom.js
new file mode 100644
index 00000000..a4f484f8
--- /dev/null
+++ b/audino/frontend/src/components/annotate/zoom.js
@@ -0,0 +1,39 @@
+import React from 'react';
+import StickySlider from '../stickySlider';
+const Zoom = props => {
+ const {annotate} = props
+ const {state} = annotate;
+ const {isRendering, wavesurfer, zoomOn} = state
+
+ /*wavesurfer.on('zoom', pxPerSec => {
+ wavesurfer.spectrogram._onUpdate(pxPerSec * wavesurfer.getDuration());
+ })*/
+
+ const handleZoom = value => {
+ console.log("hello", wavesurfer, state, annotate, props)
+ wavesurfer.zoom(value);
+ wavesurfer.spectrogram._onUpdate()
+ }
+
+ return (
+
+ {zoomOn ?
+
+ handleZoom(value)}
+ stickyPos={[0, 200]}
+ threshold={5}
+ />
+
+ : null}
+
+
+
+ );
+};
+
+export default Zoom;
diff --git a/audino/frontend/src/components/sideMenu.js b/audino/frontend/src/components/sideMenu.js
index 46b6da4e..67869c3c 100644
--- a/audino/frontend/src/components/sideMenu.js
+++ b/audino/frontend/src/components/sideMenu.js
@@ -6,7 +6,8 @@ import { Button, IconButton } from './button';
import SpectroChanger from './annotate/spectroChanger';
import ChangePlayback from './annotate/extraFeatures/changePlayback';
import PreviousAnnotationButton from './annotate/extraFeatures/previousAnnotationButton';
-
+import SampleRateChanger from './annotate/sampleRateChanger';
+import Zoom from './annotate/zoom';
const SideMenuTab = props => {
const { tab, icon, tabOpen, setTab } = props;
const swapTabs = tab => {
@@ -100,6 +101,8 @@ const SideMenu = props => {
{toUnsavedClipOn && annotate.UnsavedButton ? annotate.UnsavedButton.render() : null}
+
+