Socket
Book a DemoInstallSign in
Socket

fourier-transform

Package Overview
Dependencies
Maintainers
5
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

fourier-transform

Minimalistic and efficient FFT implementation

latest
Source
npmnpm
Version
1.1.2
Version published
Weekly downloads
3.2K
-40.32%
Maintainers
5
Weekly downloads
 
Created
Source

fourier-transform stable Build Status

Minimalistic and efficient FFT implementation for 2n-size inputs. Includes regular and asm.js versions.

npm install fourier-transform

var ft = require('fourier-transform');
var db = require('decibels');

var frequency = 440;
var size = 1024;
var sampleRate = 44100;
var waveform = new Float32Array(size);
for (var i = 0; i < size; i++) {
	waveform[i] = Math.sin(frequency * Math.PI * 2 * (i / sampleRate));
}

//get normalized magnitudes for frequencies from 0 to 22050 with interval 44100/1024 ≈ 43Hz
var spectrum = ft(waveform);

//convert to decibels
var decibels = spectrum.map((value) => db.fromGain(value))

To use asm.js version, require as require('fourier-transform/asm'). That is ~35% faster.

Thanks

To all the existing fft packages, without them this one would not be possible. Special thanks to @corbanbrook for the most efficient implementation in dsp.js. This package is based on dsp.js RFFT, which is based on RealFFT.

Contribute

If you find it slow, difficult or broken, please post an issue. If you have ideas or know-hows for better implementation - PR’s are welcome.

Keywords

fourier

FAQs

Package last updated on 28 May 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts