Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
frameType: 'signal',
sourceSampleRate: sampleRate,
});
suite.add(`lfo:rms\t\tframeSize: ${frameSize}\t`, {
fn: function() {
for (let i = 0; i < numFrames; i++) {
const start = i * frameSize;
const end = start + frameSize;
const frame = buffer.subarray(start, end);
const res = rms.inputSignal(frame);
}
},
});
Meyda.bufferSize = frameSize;
Meyda.sampleRate = sampleRate;
// #todo - windowing function should be 'rect' to skip windowing...
// https://github.com/meyda/meyda/blob/master/src/utilities.js#L27
suite.add(`meyda:rms\tframeSize: ${frameSize}\t`, {
fn: function() {
for (let i = 0; i < numFrames; i++) {
const start = i * frameSize;
const end = start + frameSize;
const frame = buffer.subarray(start, end);
const res = Meyda.extract('rms', frame);
}
},
});
suite.on('cycle', function(event) {
sourceSampleRate: sampleRate,
});
suite.add(`lfo:rms\t\tframeSize: ${frameSize}\t`, {
fn: function() {
for (let i = 0; i < numFrames; i++) {
const start = i * frameSize;
const end = start + frameSize;
const frame = buffer.subarray(start, end);
const res = rms.inputSignal(frame);
}
},
});
Meyda.bufferSize = frameSize;
Meyda.sampleRate = sampleRate;
// #todo - windowing function should be 'rect' to skip windowing...
// https://github.com/meyda/meyda/blob/master/src/utilities.js#L27
suite.add(`meyda:rms\tframeSize: ${frameSize}\t`, {
fn: function() {
for (let i = 0; i < numFrames; i++) {
const start = i * frameSize;
const end = start + frameSize;
const frame = buffer.subarray(start, end);
const res = Meyda.extract('rms', frame);
}
},
});
suite.on('cycle', function(event) {
log.push(String(event.target));
// Create the audio input stream (audio)
this.audioStream = this.audioContext.createMediaStreamSource(stream)
// Connect the audio stream to the analyser (this is a passthru) (audio->(analyser))
this.audioStream.connect(this.analyserNode)
// Connect the audio stream to the gain node (audio->(analyser)->gain)
this.audioStream.connect(this.gainNode)
// Connect the gain node to the output (audio->(analyser)->gain->destination)
this.gainNode.connect(this.audioContext.destination)
// Set up Meyda
// eslint-disable-next-line new-cap
this.meyda = new Meyda.createMeydaAnalyzer({
audioContext: this.audioContext,
source: this.audioStream,
bufferSize: 512,
windowingFunction: 'rect'
})
// Tell the rest of the script we're all good.
this.mediaSourcesInited = true
resolve(ids)
})
}
this.gainNode.gain.value = 0;
// Create the audio input stream (audio)
this.audioStream = this.audioContext.createMediaStreamSource(stream);
// Connect the audio stream to the analyser (this is a passthru) (audio->(analyser))
this.audioStream.connect(this.analyserNode);
// Connect the audio stream to the gain node (audio->(analyser)->gain)
this.audioStream.connect(this.gainNode);
// Connect the gain node to the output (audio->(analyser)->gain->destination)
this.gainNode.connect(this.audioContext.destination);
// Set up Meyda
this.meyda = new Meyda.createMeydaAnalyzer({
audioContext: this.audioContext,
source: this.audioStream,
bufferSize: 512,
windowingFunction: 'rect'
});
// Tell the rest of the script we're all good.
this.mediaSourcesInited = true;
}
export const extract = signal => {
const signalOfSize = Array.from(signal).slice(0, closestPowerOf2(signal.length));
const features = Meyda.extract(['mfcc', 'spectralCentroid'], signalOfSize)
console.log(features);
return features;
};
fn: function() {
for (let i = 0; i < numFrames; i++) {
const start = i * frameSize;
const end = start + frameSize;
const frame = buffer.subarray(start, end);
const res = Meyda.extract('mfcc', frame);
}
},
});
.map(frame => Meyda.extract('amplitudeSpectrum', frame))
.map(binsPerFrame => getF0(binsPerFrame, sampleRate, humanVoiceRange));
analyser.getAudioFeatures = () => {
analyser.getByteFrequencyData(freqDataArray);
analyser.getFloatTimeDomainData(timeDataFloatArray);
const frequencyData = Array.from(freqDataArray);
Meyda.fftSize = fftSize;
Meyda.bufferSize = fftSize;
const {mfcc, spectralCentroid, rms, loudness} = Meyda.extract([
'mfcc',
'spectralCentroid',
'rms',
'loudness',
],
timeDataFloatArray
);
return {frequencyData, rms, mfcc, spectralCentroid, loudness: loudness.total};
};
return analyser;
.map(frame => Meyda.extract('mfcc', frame));
fn: function() {
for (let i = 0; i < numFrames; i++) {
const start = i * frameSize;
const end = start + frameSize;
const frame = buffer.subarray(start, end);
const res = Meyda.extract('amplitudeSpectrum', frame);
}
},
});