diff --git a/src/application/index.js b/src/application/index.js
index 19b3a8beb..db3803748 100644
--- a/src/application/index.js
+++ b/src/application/index.js
@@ -8,7 +8,7 @@ import windowHandler from "./window-handler";
import use from "./use";
import PromiseWorker from "promise-worker-transferable";
-
+import Vue from "vue";
import { ipcRenderer, remote } from "electron";
let imageBitmap;
@@ -25,6 +25,20 @@ export default class ModV {
use = use;
debug = false;
ready = false;
+ features = Vue.observable({
+ energy: 0,
+ rms: 0,
+ zcr: 0,
+ spectralCentroid: 0,
+ spectralFlatness: 0,
+ spectralSlope: 0,
+ spectralRolloff: 0,
+ spectralSpread: 0,
+ spectralSkewness: 0,
+ spectralKurtosis: 0,
+ perceptualSpread: 0,
+ perceptualSharpness: 0
+ });
_store = store;
store = {
@@ -227,6 +241,11 @@ export default class ModV {
const features = this.meyda.get(featuresToGet);
this.updateBeatDetektor(delta, features);
this.$worker.postMessage({ type: "meyda", payload: features });
+
+ for (let i = 0; i < featuresToGet.length; i += 1) {
+ const feature = featuresToGet[i];
+ this.features[feature] = features[feature];
+ }
}
setSize({ width, height }) {
diff --git a/src/application/worker/store/modules/meyda.js b/src/application/worker/store/modules/meyda.js
index 86903bbd0..eba5dee08 100644
--- a/src/application/worker/store/modules/meyda.js
+++ b/src/application/worker/store/modules/meyda.js
@@ -9,7 +9,21 @@ import {
import uuidv4 from "uuid/v4";
const state = {
- features: ["complexSpectrum"],
+ features: [
+ "complexSpectrum",
+ "rms",
+ "zcr",
+ "energy",
+ "spectralCentroid",
+ "spectralFlatness",
+ "spectralSlope",
+ "spectralRolloff",
+ "spectralSpread",
+ "spectralSkewness",
+ "spectralKurtosis",
+ "perceptualSpread",
+ "perceptualSharpness"
+ ],
smoothingIds: [],
MAX_SMOOTHING,
SMOOTHING_STEP
diff --git a/src/components/Control.vue b/src/components/Control.vue
index 0f05af9e1..d79b5562c 100644
--- a/src/components/Control.vue
+++ b/src/components/Control.vue
@@ -94,15 +94,17 @@ export default {
},
methods: {
- queueLoop() {
- this.dirty = false;
+ async queueLoop() {
const { id, prop, queued } = this;
- this.$modV.store.dispatch("modules/updateProp", {
+ await this.$modV.store.dispatch("modules/updateProp", {
moduleId: id,
prop,
data: queued
});
+
+ this.queued = null;
+ this.dirty = false;
},
focusInput() {
diff --git a/src/components/InputLinkComponents/AudioFeatures.vue b/src/components/InputLinkComponents/AudioFeatures.vue
index c78f40584..d0f15371d 100644
--- a/src/components/InputLinkComponents/AudioFeatures.vue
+++ b/src/components/InputLinkComponents/AudioFeatures.vue
@@ -5,7 +5,7 @@
Audio Feature
-
+
+
+ ({{ $modV.features[feature] && $modV.features[feature].toFixed(2) }})
+
@@ -70,7 +73,6 @@ export default {
"spectralSpread",
"spectralSkewness",
"spectralKurtosis",
- "loudness",
"perceptualSpread",
"perceptualSharpness"
],
diff --git a/src/components/Preview.vue b/src/components/Preview.vue
index f0f50dd41..2ad1c8053 100644
--- a/src/components/Preview.vue
+++ b/src/components/Preview.vue
@@ -59,7 +59,7 @@ export default {
return;
}
- this.resize();
+ this.resize(entries);
});
}).observe(container);