I built this because existing market sonification tools usually just map price to pitch, resulting more noise than music. I wanted a system that translated market sentiment into music that I would actually want to listen to in the background while I work.
THE LOGIC (State Machine)
Instead of raw pitch mapping, I built a deterministic state machine that normalizes live data into 60 distinct audio permutations based on three vectors:
1. Sentiment: Candle color streaks (Doom -> Euphoric)
2. Energy: Momentum/Volatility (Still -> Explosive)
3. Texture: Volume vs 20 MA (Sparse -> Chaotic)
If the market enters a "Doom / Explosive / Chaotic" state, the engine triggers heavy distortion and minor keys. If it flips to "Euphoric / Still," it crossfades into ambient major pads.
THE ENGINEERING
Consensus Engine: Websockets from Kraken, Binance, and OKX to form an aggregated price and filter out "scam wicks". I specifically chose crypto feeds because they offer continuous high-volume stream instead of closing at 4pm but it could really be based on anything.
Audio Pipeline: Two-stage agentic workflow (Generation -> Critique) to create lyrics and style, which are then generated in Suno. To ensure zero latency and to reduce costs, I pre-generated a library of ~500 tracks mapped to the 60 state permutations. The app handles the crossfading between these states in real-time.
Stack: Next.js, CCXT (socket normalization), and Cloudflare R2.
THE "TIME MACHINE"
The part that I actually enjoy the most are the historical playlists. E.g. you can load the FTX crash (https://liquidityfm.org/replay/ftx-collapse-2022) or the Post-Covid rally candle-by-candle to hear what panic or euphoria actually sounds like. I'm also oddly proud of the CRT mode although tbh I rarely run with it.
It is free to use, no signup required. Let me know if you have any questions or suggestions for improvement!