AphantaZach
Joined 10 months ago
Joined 10 months ago
The issue is that we can't control the delivery.
Streaming platforms use adaptive bitrate. If a user's bandwidth dips on mobile, the player might switch to a lower tier where the model starts aggressively quantizing the Side channel (L-R) to save space.
Since the binaural effect relies entirely on that Side channel difference, I wanted to remove the variable entirely.
By generating it client-side with the Web Audio API, we get mathematical certainty regardless of the user's connection speed.
Most codecs (MP3/AAC) use "Joint Stereo" (Mid/Side coding) to save bandwidth. Since binaural beats rely entirely on the subtle phase difference between Left/ Right channels, compression algorithms tend to treat that data as redundant and smooth it over.
I didn't want to leave it to chance, so I moved the stack to the Web Audio API. It generates the sine waves in real-time (client-side), ensuring mathematical precision and perfect channel isolation.
Happy to answer questions about the physics or implementation.
Fixes Deployed: Ghost Typing: You were spot on. I was defining the modal inside the main render loop. Moved it out, so the input is stable now.
Audio Focus: Removed the visibilitychange listener. It should now persist on multi-monitor setups without cutting out.
Texture Toggle: Added a specific button to toggle between "Neural Grain" (noise) and "Pure Light" (solid strobe) so you can customize the pattern.
Volume Taper: Switched the gain slider to logarithmic scaling so the jump from 0-10% isn't deafening.
UI Clutter: The "Tap to Minimize" overlay now fades out automatically after 3 seconds.
On Vibe Coding... guilty as charged.
This project evolved rapidly from a hacky passion project to help myself focus, into an attempt to build something worth sharing with others. I built the initial engine to prioritize the DSP/audio math, and the React architecture definitely suffered
Would love to know if the multi-monitor issue is resolved on your end now.
I look at this tool less like a 'magic brain pill' and more like a metronome for a musician. A metronome doesn't make you play better, but it mechanically forces you to stick to a tempo. This app just saturates your visual cortex with a steady rhythm so your brain stops scanning the room for distractions. It’s essentially a distraction-cancellation for focus.
As for the 'emotional regulation' bit—I do admit that comes off as marketing speak(not my background!) It really just refers to wavelength impact: Red light avoids triggering melanopsin (good for winding down), while Cyan/Blue light triggers wakefulness (good for mornings). No magic stones involved
The core concept is Photic Driving (the "Frequency Following Response"). There is decent literature (e.g., Herrmann, 2001) showing that the visual cortex effectively synchronizes its firing rate to match high-amplitude external flickers (like a 14Hz strobe).
My goal with this tool is to induce Transient Hypofrontality (down-regulation of the prefrontal cortex), which is often associated with "Flow States" (Dietrich, 2003).
To be clear: I haven't run a clinical trial. I built it to replicate the "Ganzflicker" effects (Reeder, 2021) in a browser environment to help with my own Aphantasia. Subjectively, it helps me clear cognitive noise faster than silence, but I'm releasing it for free to see if that holds true for others or if it's just placebo.
Just pushed a fix to wrap it in a conditional check. It should be live in ~2 minutes. Thanks for the stack trace!
The main difference with ASMR is that it uses multiple spatial cues (reverb, tone) which survive compression well.
Entrainment is more fragile. For a cognitive tool, I wanted to engineer that risk out of the system entirely.