Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎵 NoiseGen - Lightweight Noise Generator

A minimal, efficient white noise generator with customizable sound profiles and accessibility focus

License: MIT Platform .NET Framework

NoiseGen Interface


📖 Overview

NoiseGen is a lightweight, terminal-based noise generator designed for minimal system footprint and maximum customization. Perfect for focus, relaxation, or sleep, it generates true random noise in real-time rather than looping pre-recorded sounds.

Now featuring a dedicated Color Blind Mode for enhanced accessibility.


🌟 What Makes NoiseGen Unique?

While many noise generators exist, NoiseGen is built differently:

  • 🎚️ Live TUI Mixing Board: Most CLI tools are "one-shot" commands. NoiseGen gives you a live, interactive dashboard to adjust volumes and toggle channels on the fly without restarting.
  • 🔢 Pure Algorithmic Synthesis: No use of audio loops. All sound is generated in real-time using pure mathematics (White, Pink, Brown noise and Binaural Beats), ensuring zero "loop seams" or repeating patterns.
  • 🪶 Zero Distraction, Zero Bloat: No heavy browser tabs or complex GUI frameworks. It runs in a tiny corner of your terminal with a memory footprint smaller than an empty Chrome tab.
  • 🎨 Accessibility First: Unlike most terminal apps, NoiseGen includes a dedicated Color Blind Mode as a primary feature, ensuring the visual mixer is usable by everyone.

✨ Key Features

  • 🖥️ Terminal UI: Clean, visual interface with performance monitoring
  • 🎚️ Multiple Noise Types: White, Pink, and Brown noise generators
  • 🧠 Binaural Beats: Focus (14Hz Beta), Relax (7Hz Alpha), Sleep (4Hz Theta)
  • 💾 Profile Management: Save, load, and delete custom sound configurations
  • 🎨 Color Blind Mode: High-contrast, color-blind friendly visual palette
  • Ultra-Lightweight: Minimal RAM core (~15MB) and CPU usage (<1%)
  • 🎛️ Precision Control: Real-time incremental volume adjustments
  • 🔄 True Random Generation: No loops, seamless audio playback via low-level WinMM API

🚀 Quick Start

Prerequisites

  • Windows (7/8/10/11) with .NET Framework 4.0 or higher
  • C# Compiler (included with .NET Framework)

Installation

  1. Clone the repository

    git clone https://github.com/TohnJravolta/NOISE_GEN.git
    cd NOISE_GEN
  2. Build the application

    build.bat

    This will compile all source files and create NoiseGen.exe

  3. Run the application

    NoiseGen.exe

🎮 Usage

Controls

Key Action
/ / Tab Navigate channels (Shift+Tab for up)
/ Adjust volume (±1% per step, hold for rapid adjustment)
Space / Enter Toggle channel ON/OFF
P Open Profile Menu (Load/Delete)
S Save current configuration as a profile
R Reset all settings to defaults
M Mute/Unmute Master Volume
C Toggle Color Blind Mode
Esc Quit application / Cancel menu

🎨 Visual Modes

Regular Mode (Default)

  • ON Status: Green 🟢
  • OFF Status: Red 🔴 (High Visibility)
  • Gradient: Green (Low) → Yellow (Med) → Red (Loud)

Color Blind Mode

  • Palette: High-contrast scheme avoiding Red/Green combinations.
  • Gradient: White (Low) → Cyan (Med) → Yellow (High Visibility)
  • Toggle: Press C to switch modes. The setting is automatically saved!

💾 Profile Management

Saving a Profile

  1. Press S to enter save mode.
  2. Type a name (letters, numbers, _, - allowed).
  3. Press Enter to save.

Loading a Profile

  1. Press P to open the bridged profile menu.
  2. Use / to select.
  3. Press Enter to load.

Deleting a Profile

  1. Open the profile menu (P).
  2. Highlight the profile you wish to remove.
  3. Press Delete.
  4. Confirm with Y (Yes) or cancel with N (No).

Note: Your last session is automatically saved and restored on next launch!


🎨 Noise Types explained

Type Description Best For
White Noise Equal energy across all frequencies Masking background sounds
Pink Noise More energy in lower frequencies Natural, soothing sound
Brown Noise Even more bass-heavy Deep relaxation, sleep
Focus (14Hz Beta) Binaural beat for alertness Concentration, studying
Relax (7Hz Alpha) Binaural beat for calm Meditation, stress relief
Sleep (4Hz Theta) Binaural beat for deep rest Falling asleep

💡 Tip: Mix multiple noise types for your perfect sound environment!


🛠️ Technical Details

Architecture

NoiseGen is built with a focus on stability and performance:

  • Program.cs - State machine, input buffering (with async key-hold), and artifact-free UI drawing.
  • AudioEngine.cs - Memory-safe audio playback using low-level WinMM buffers and manual pinning.
  • Generators.cs - Math-based noise algorithms for seamless playback.
  • ConfigManager.cs - C# 5 compatible INI management.

Building & Testing

  • Build: Run build.bat to compile NoiseGen.exe.
  • Test: Run test.bat or NoiseGen.exe --test to verify generators and persistence.

📁 Project Structure

NOISE_GEN/
├── Source/
│   ├── Program.cs          # Main application & TUI
│   ├── AudioEngine.cs      # Audio processing & Drivers
│   ├── Generators.cs       # Noise & Binaural algorithms
│   ├── ConfigManager.cs    # Configuration persistence
│   └── TestSuite.cs        # Automated self-tests
├── build.bat               # Simple build script
├── test.bat                # Test execution script
└── README.md               # Documentation

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

TL;DR: You can use, modify, and distribute this software freely, just keep the attribution! 🎉


🙏 Acknowledgments

  • Built using Low-Level WinMM API for high-performance, lightweight audio playback
  • Inspired by the need for a truly lightweight noise generator
  • Thanks to the open-source community!

Made with ❤️ for focus, relaxation, and accessibility

About

Ultra-light Minimal Terminal Based Noise Generator

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages