A small collection of terminal-based audio visualizers for Windows. Most scripts can capture system audio via WASAPI loopback (using PyAudioWPatch). Some scripts may fall back to microphone input if loopback is unavailable.
Tip: Run the launcher first:
vis_ui.py.
- Multiple visualizer modes (spectrum-like, oscilloscope/XY, circular, EEG-style, fire effect, etc.)
- Windows system-audio capture via WASAPI loopback (PyAudioWPatch)
- Terminal UI (ANSI colors via
colorama)
- Windows 10/11 recommended (WASAPI loopback)
- Python 3.9+ (3.10+ recommended)
Install dependencies:
pip install numpy colorama PyAudioWPatchOr from the included file:
pip install -r requirements.txtThis repo includes an automated setup script that can create a vis command usable from any terminal.
Run one of:
setup.cmd allIn PowerShell, run it with:
.\setup.cmd allall: installs a globalviscommand viapipx(recommended) and also enables the optional PATH-based launcherpipx: only installs the globalviscommand viapipxbat: creates avis.batlauncher and adds this folder to your UserPATH
Notes:
- The
batmode generatesvis.batlocally (it is not committed to the repo). - If
pipxinstallsvis.exe, the script also addsC:\Users\<you>\.local\binto your UserPATHif needed.
Open a NEW terminal after setup so PATH changes take effect.
python vis_ui.pyUse the on-screen controls to select and start a visualizer.
python vis.py
python vis_os.py
python vis_fire.py
python vis_circular.py
python vis_circular_braile.py
python vis_eeg.py
python vis_eeg_central.pyControls can vary slightly per visualizer, but commonly:
Left/Right(orUp/Down): switch items/modes (in the launcher)Enter: start selected visualizer (in the launcher)qorESC: exit
Some visualizers also support additional keys (e.g., gain/threshold adjustments). Check the script header/docstring and the bottom status line while running.
vis_ui.py— menu/launcher that runs the other visualizersvis.py— basic terminal visualizervis_os.py— XY / oscilloscope-style visualizervis_fire.py— fire / particle-based visualizervis_circular.py— circular oscilloscope-style visualizervis_circular_braile.py— circular “braille”/dot-style visualizervis_eeg.py— EEG-style bands visualizervis_eeg_central.py— EEG-style bands with center baseline
Install it:
pip install PyAudioWPatch- Make sure you’re on Windows.
- Ensure audio is playing on the default output device.
- Try running the script as a normal user first; if needed, try as Administrator.
- If you have multiple output devices (headphones/speakers/HDMI), switch the default output device and try again.
The XY visualizer needs two channels. Try a stereo output device, or disable “mono audio” in Windows accessibility settings.
- These are terminal visualizers; performance depends on terminal rendering speed.
- WASAPI loopback is Windows-specific; non-Windows behavior may be limited or may require microphone input.
MIT License
The ideas, design, and decisions in this project are my own. I used ChatGPT as an acceleration tool to translate those ideas into code (drafting, refactoring, and iteration). I reviewed and edited the output before committing.
This software is provided "AS IS", without warranty of any kind. You are solely responsible for how you use it, including verifying correctness, security, and suitability for your purposes. The author(s) shall not be liable for any claim, damages, or other liability arising from the use of this software, to the extent permitted by law.