From 0e0688c6ce02f2f6acb228cf9e746349682f60d6 Mon Sep 17 00:00:00 2001 From: Matt McKegg Date: Mon, 19 Oct 2015 14:27:53 +1300 Subject: [PATCH] slicer: rename "transients" to "peaks" as this reflects the truth better --- lib/{detect-transients.js => detect-peaks.js} | 16 +++++++--------- nodes/slicer-chunk/object.js | 8 ++++---- nodes/slicer-chunk/view.js | 2 +- 3 files changed, 12 insertions(+), 14 deletions(-) rename lib/{detect-transients.js => detect-peaks.js} (78%) diff --git a/lib/detect-transients.js b/lib/detect-peaks.js similarity index 78% rename from lib/detect-transients.js rename to lib/detect-peaks.js index 88cc4bc2..5c71ae54 100644 --- a/lib/detect-transients.js +++ b/lib/detect-peaks.js @@ -1,8 +1,7 @@ module.exports = function (data, count, offset) { - offset = offset || [0,1] + offset = offset || [0, 1] - - var range = (offset[1]-offset[0]) * data.length + var range = (offset[1] - offset[0]) * data.length var step = Math.ceil(range / (count * 2)) var start = Math.floor(offset[0] * data.length) var end = Math.ceil(offset[1] * data.length) @@ -15,15 +14,15 @@ module.exports = function (data, count, offset) { for (var pos = start + step; pos < end; pos += step) { var peak = getPeak(data, pos, frame) - if (peak[0] > peaks[peaks.length-1][0]) { + if (peak[0] > peaks[peaks.length - 1][0]) { peaks.push(peak) } } - var peaks = peaks.sort(function (a, b) { - return a[1]-b[1] - }).slice(-count).sort(function (a,b) { - return a[0]-b[0] + peaks = peaks.sort(function (a, b) { + return a[1] - b[1] + }).slice(-count).sort(function (a, b) { + return a[0] - b[0] }) return peaks.map(function (item) { @@ -39,7 +38,6 @@ function getPeak (data, offset, length) { var lastCross = pos for (var i = offset; i < end; i++) { - if (data[i] === 0 || (i - lastCross > 128 && data[i] < 0.01 && data[i] > -0.01)) { lastCross = i } diff --git a/nodes/slicer-chunk/object.js b/nodes/slicer-chunk/object.js index 32550081..692cbdd4 100644 --- a/nodes/slicer-chunk/object.js +++ b/nodes/slicer-chunk/object.js @@ -9,7 +9,7 @@ var lookup = require('observ-node-array/lookup') var computed = require('observ/computed') var computedNextTick = require('lib/computed-next-tick') var ResolvedValue = require('observ-node-array/resolved-value') -var detectTransients = require('lib/detect-transients') +var detectPeaks = require('lib/detect-peaks') var throttle = require('throttle-observ') var throttleWatch = require('throttle-observ/watch') var extend = require('xtend') @@ -41,11 +41,11 @@ function SlicerChunk (parentContext) { obs.sample.slices = computedNextTick([obs.shape, obs.sample.resolvedBuffer, throttle(obs.sample.offset, 1000), obs.sliceMode, obs.sample.mode], function (shape, buffer, offset, sliceMode, triggerMode) { var count = shape[0] * shape[1] var playToEnd = triggerMode === 'full' - if (sliceMode === 'transient') { + if (sliceMode === 'peak' || sliceMode === 'transient') { if (buffer) { var data = buffer.getChannelData(0) - var transients = detectTransients(data, count, offset) - return sliceOffsets(transients, offset, playToEnd) + var peaks = detectPeaks(data, count, offset) + return sliceOffsets(peaks, offset, playToEnd) } } return divideSlices(count, offset, playToEnd) diff --git a/nodes/slicer-chunk/view.js b/nodes/slicer-chunk/view.js index ac0f3df7..98622d4f 100644 --- a/nodes/slicer-chunk/view.js +++ b/nodes/slicer-chunk/view.js @@ -13,7 +13,7 @@ var renderEqParams = require('../eq/params') var sliceOptions = [ ['Equal Slices', 'divide'], - ['Use Transients', 'transient'] + ['Use Peaks', 'peak'] ] var triggerOptions = [