Skip to content

TohnJravolta/Noise_Gen

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

License

Stars

2 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors