-
Notifications
You must be signed in to change notification settings - Fork 1
OpenGL-accelerated spectrum viewer for JACK Audio Connection Kit
License
adiblol/jackfft
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
jackfft WHAT IT IS ========== jackfft is a JACK client doing short-time spectrum analysis. WHAT IT DOES ============ It displays colored spectrum graph. Both axes are logarithmic. The lower sound frequency, the longer color's wave length. (can be reversed by changing one line in code) More, the hue and brightness also depends on frequency energy (Y value). Assuming 44.1kHz sampling rate, X axe is from about 20Hz to 22050Hz. Y axe is from -42dB to +6dB. HOW IT DOES IT ============== Ignoring memory copying, caching, interfacing JACK, drawing it on the screen etc... jackfft grabs sample from JACK, then passes it through Hann window function. The windowed signal is processed with DCT-I (Discrete Cosine Transform - I). The frequency-domain signal is scaled logarithmically and displayed. WHAT DOES IT USE ================ * JACK for audio input * FFTW for converting from time domain to frequency domain * SDL for cross-platform OpenGL initialization * OpenGL for hardware-accelerated display WHY DID I WRITE IT ================== Seriously, as an exercise (in JACK and FFTW) before writing some dynamics procesor working in frequency domain. You know how modern records are overcompressed; dynamics procesor I want to write will probably be multi-band expander bringing dynamics back to music. See also http://en.wikipedia.org/wiki/Loudness_war WHY WOULD YOU USE IT ==================== jackfft is not another music visualization toy. Unlike regular music player, it calculates high-resolution spectrum with logarithmic X axe. This allows you to see tone changes, harmonics etc. pretty accurately. (for example I was able to precisely see vocal in Soundgarden's 'Ugly Truth') Hardware-accelerated display (no FFT yet, sorry...) saves CPU even if you run jackfft on full screen. HOW TO BUILD AND RUN IT ======================= You will need following packages in Debian (paste it after `aptitude install `): build-essential libc6-dev libjack-jackd2-dev libfftw3-dev libsdl1.2-dev libgl1-mesa-dev libglu1-mesa-dev After installing them read LICENSE (I don't want to be sued for jackfft burning your GPU etc...) and $ make run Connect it to some source using qjackctl or similar software and enjoy! Happy hacking!
About
OpenGL-accelerated spectrum viewer for JACK Audio Connection Kit
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published