spleennooname / threejs-meydajs-fftspectrum

:notes: :musical_note: :musical_score: Real-time FFT spectrum analyzer with ThreeJS, MeydaJS, RxJS.

Home Page:https://fft-spectrum.netlify.app/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

 ╭━━━┳━━━┳━━━━╮╱╱╱╱╱╱╱╱╱╱╱╱╭╮
 ┃╭━━┫╭━━┫╭╮╭╮┃╱╱╱╱╱╱╱╱╱╱╱╭╯╰╮
 ┃╰━━┫╰━━╋╯┃┃╰╯╭━━┳━━┳━━┳━┻╮╭╋━┳╮╭┳╮╭╮
 ┃╭━━┫╭━━╯╱┃┃╱╱┃━━┫╭╮┃┃━┫╭━┫┃┃╭┫┃┃┃╰╯┃
 ┃┃╱╱┃┃╱╱╱╱┃┃╱╱┣━━┃╰╯┃┃━┫╰━┫╰┫┃┃╰╯┃┃┃┃
 ╰╯╱╱╰╯╱╱╱╱╰╯╱╱╰━━┫╭━┻━━┻━━┻━┻╯╰━━┻┻┻╯
  ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱┃┃ real-time audio features extraction
  ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╰╯ && FFT spectrum analyzer

threejs r141 meyda v5.4.0 rxjs 7.5.5

demo 720p - chrome osx

demo 1080p - chrome windows10

demo

longstoryshort: the microphone detects the audio, meydajs extracts metrics features used to drive threejs webgl stuff.

  • Start project with npm run dev
  • open another tab with youtube music / bring any sound source closer to the microphone
  • ✨Magic✨

What are audio features? Read here

setup

npm i

dev

(expose http://localhost:3000 )

npm run dev

build

npm run build

Tech stack

  • ThreeJS
  • RXJS
  • MeydaJS

    Meyda is a JavaScript audio feature extraction library. It works with the Web Audio API (or plain old JavaScript arrays) to expose information about the timbre and perceived qualities of sound. Meyda supports both offline feature extraction as well as real-time feature extraction using the Web Audio API.

  • Vite

todo

  • use InstancedMesh for FFT Spectrum
  • refactor with rxjs

License

MIT

About

:notes: :musical_note: :musical_score: Real-time FFT spectrum analyzer with ThreeJS, MeydaJS, RxJS.

https://fft-spectrum.netlify.app/

License:MIT License


Languages

Language:JavaScript 72.0%Language:HTML 19.4%Language:SCSS 8.6%