Mercurial > hg > ugly-duckling
changeset 168:19ca3aaf7807
Give spectrogram a step duration
author | Chris Cannam <cannam@all-day-breakfast.com> |
---|---|
date | Mon, 27 Mar 2017 18:17:27 +0100 |
parents | d8f2eb7ac0c5 |
children | a0b13b82cd72 |
files | src/app/spectrogram/Spectrogram.ts |
diffstat | 1 files changed, 9 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/app/spectrogram/Spectrogram.ts Fri Mar 24 16:01:28 2017 +0000 +++ b/src/app/spectrogram/Spectrogram.ts Mon Mar 27 18:17:27 2017 +0100 @@ -9,6 +9,7 @@ class SpectrogramEntity extends Waves.utils.MatrixEntity { private samples: Float32Array; + private sampleRate: number; private framing: Framing; private fft: RealFft; private real: Float32Array; @@ -16,9 +17,10 @@ private columnHeight: number; private window: Float32Array; - constructor(samples: Float32Array, options: Framing & Object) { + constructor(samples: Float32Array, options: Framing & Object, sampleRate: number) { super(); this.samples = samples; + this.sampleRate = sampleRate; this.framing = options; this.real = new Float32Array(this.framing.blockSize); this.nCols = Math.floor(this.samples.length / this.framing.stepSize); //!!! not correct @@ -39,6 +41,10 @@ return this.columnHeight; } + getStepDuration(): number { + return this.framing.stepSize / this.sampleRate; + } + getColumn(n: number): Float32Array { const startSample = n * this.framing.stepSize; @@ -110,7 +116,8 @@ super('entity', new SpectrogramEntity(getSamples(buffer, mergedOptions.channel), - mergedOptions), + mergedOptions, + buffer.sampleRate), mergedOptions); this.configureShape(Waves.shapes.Matrix, {}, mergedOptions);