Comments (4)
Hello, I was curious about this one so I compared the FFT in jsyn to the output from Apache commons and the DFT from https://www.nayuki.io/page/how-to-implement-the-discrete-fourier-transform and those two match to many decimal places while not obvious to spot a match with the jsyn FFT. Is the jsyn version doing something special or should they match? I'm up for trying to fix if any interest.
from jsyn.
So only six years after you said it, I can now only see a problem with the scaling. If I effectively disable it (-1 for sign and double the output) all three implementations match. I'm not sure what the sign or the scaling is for. Looking at places it is called one just has a TODO next to it "transform(1, n, ar, ai); // TODO -1 or 1"
from jsyn.
The scaling for the FFT and IFFT is kind of arbitrary.
I have seen lots of different approaches.
We want the IFFT(FFT) to return the original signal.
JSyn scales the FFT by 2/n and IFFT by 1/2. code
from jsyn.
James was seeing smearing across bins, which I am not seeing. But I am seeing errors in scaling.
from jsyn.
Related Issues (20)
- Resolve version numbers between JSyn and build.gradle HOT 1
- Ant build Failing due to slf4j dependency HOT 1
- Sometimes WaveRecorder doesn't stop the StreamingThread when used with realTime = false HOT 5
- port TJ_Devices from old JSyn to new API for multi-channel demo
- move old Roadmap to GitHub Wiki
- Impulse does not always trigger EnvelopeAttackDecay HOT 1
- FMOperator and other legacy JSyn circuits HOT 2
- Need DoubleTable( FloatSample ) constructor
- Glitch When Playing Through Bluetooth HOT 1
- Different amplitude value for a VariableRateDataReader HOT 1
- use ByteBuffer wrap() and order() for WAV and AIFF
- Publish JSyn on Maven HOT 9
- Fix contributor name on NOTICE.txt HOT 1
- Starting a Synthesizer with Port Audio and a device input count of greater then two crashes HOT 3
- Port TJ_Devices.java to new repo HOT 1
- LineIn not working on MacOS Big Sur
- ExponentialRamp crashes on negative input
- Selecting a module moves it slightly HOT 1
- Add capability to WaveRecorder, and maybe WaveFileWriter, to write to an OutputStream
- Tests failing HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jsyn.