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);