Skip to content

SoundStat is a free and open-source desktop application for comprehensive audio analysis and transformation. Built with Electron, it provides audio statistics, waveform visualization, and format conversion tools in an intuitive interface.

Notifications You must be signed in to change notification settings

jbaudru/SoundStat-soft

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

17 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

SoundStat ๐ŸŽต

Electron JavaScript HTML5 CSS3 Node.js FFmpeg

License: MIT Open Source

SoundStat is a free and open-source desktop application for comprehensive audio analysis and transformation. Built with Electron, it provides professional-grade audio statistics, waveform visualization, and format conversion tools in an intuitive interface.

Download for Windows

Download for Windows

Also available for macOS and Linux - View All Releases


๐Ÿ“ธ Screenshot

SoundStat Interface

SoundStat's intuitive interface

SoundStat Interface

SoundStat's audio analysis results with waveform visualization

โœจ Features

๐Ÿ” Audio Analysis

  • BPM Detection: Automatic tempo detection with confidence scoring
  • Key Detection: Musical key identification with dominant frequency analysis
  • Tonality Analysis: Major/Minor scale detection using chroma vector analysis
  • Waveform Visualization: Real-time interactive waveform display with playback controls
  • Audio Statistics: Comprehensive metrics including:
    • Peak and RMS levels
    • Dynamic range analysis
    • Spectral centroid (brightness)
    • Zero-crossing rate (noisiness)
    • Duration and format information

๐Ÿ› ๏ธ Audio Transformation

  • Format Conversion: Convert between WAV, MP3, FLAC, and AIFF
  • Channel Configuration: Mono โ†” Stereo conversion
  • Bit Depth Conversion: 16-bit, 24-bit, and 32-bit options
  • Sample Rate Conversion: 44.1 kHz, 48 kHz, and 96 kHz options
  • Volume Normalization: Automatic level adjustment with target dB settings

๐ŸŽฏ User Experience

  • Drag & Drop Interface: Simple file loading
  • Progressive Analysis: Real-time progress updates
  • Cross-Platform: Works on Windows, macOS, and Linux
  • No Internet Required: Fully offline application

๐Ÿ“‹ Prerequisites

Required Software

FFmpeg is required for full functionality (non-WAV file support and conversion features):

Windows

# Using Chocolatey
choco install ffmpeg

# Using Scoop
scoop install ffmpeg

# Or download from: https://ffmpeg.org/download.html

macOS

# Using Homebrew
brew install ffmpeg

# Using MacPorts
sudo port install ffmpeg

Linux

# Ubuntu/Debian
sudo apt update
sudo apt install ffmpeg

# CentOS/RHEL/Fedora
sudo yum install ffmpeg
# or
sudo dnf install ffmpeg

# Arch Linux
sudo pacman -S ffmpeg

Node.js Requirements

  • Node.js 16.x or higher
  • npm 7.x or higher

๐Ÿš€ Installation

Option 1: Clone and Run

# Clone the repository
git clone https://github.com/jbaudru/SoundStat-soft.git
cd SoundStat-soft/audio_soft

# Install dependencies
npm install

# Set up FFmpeg (optional - provides installation guidance)
npm run setup-ffmpeg

# Start the application
npm start

Option 2: Download Release

  1. Visit the Releases page
  2. Download the latest version for your platform
  3. Install and run

๐ŸŽฎ Usage

Basic Analysis

  1. Launch SoundStat
  2. Upload Audio: Drag & drop your audio file or use the file picker
  3. View Results: Analysis starts automatically with real-time progress
  4. Interact: Click play to hear your audio while viewing the waveform

Audio Transformation

  1. Go to Tool Section: Click the "Tool" menu item
  2. Select File: Choose from your uploaded files
  3. Configure Settings: Set output format, bit depth, sample rate, etc.
  4. Transform: Click "Transform Audio" and save the result

Supported Formats

  • Input: WAV, MP3, FLAC, AIFF, OGG (requires FFmpeg for non-WAV)
  • Output: WAV, MP3, FLAC, AIFF

๐Ÿงช Technical Details

Audio Analysis Algorithms

  • BPM Detection: Onset detection with autocorrelation
  • Key Detection: FFT-based fundamental frequency analysis
  • Tonality Detection: Krumhansl-Schmuckler key profiles with chroma vector analysis
  • Spectral Analysis: Cooley-Tukey FFT implementation

Performance Optimization

  • Multi-threading: Worker threads for CPU-intensive tasks
  • Progressive Rendering: Chunked waveform generation
  • Memory Management: Efficient audio buffer handling
  • Adaptive Sampling: Dynamic sample rate adjustment for large files

๐Ÿค Contributing

We welcome contributions! Here's how you can help:

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Make your changes
  4. Test thoroughly
  5. Commit your changes: git commit -m 'Add amazing feature'
  6. Push to the branch: git push origin feature/amazing-feature
  7. Open a Pull Request

Development Setup

# Clone your fork
git clone https://github.com/your-username/SoundStat-soft.git
cd SoundStat-soft/audio_soft

# Install dependencies
npm install

# Run in development mode
npm start

๐Ÿ“œ License

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

๐Ÿ‘จโ€๐Ÿ’ป Author

Developed by ce2lo

๐Ÿ™ Acknowledgments

  • FFmpeg team for the powerful multimedia framework
  • Electron team for the cross-platform desktop app framework
  • The open-source community for inspiration and feedback

๐Ÿ“ TODO List

High Priority

  • Minor/Major detection โœ… Completed
  • BPM detection range optimization (70-190 BPM)
  • Default waveform templates
  • Conversion tool (MP3 to WAV, AIFF, FLAC) โœ… Completed
  • Stereo to mono, mono to stereo conversion โœ… Completed
  • Volume normalization โœ… Completed
  • Bit depth conversion (16-bit, 24-bit, 32-bit) โœ… Completed
  • Sample rate conversion (44.1kHz, 48kHz, 96kHz) โœ… Completed

Medium Priority

  • Batch processing for multiple files
  • Spectral analysis visualization
  • Audio comparison tool
  • Export analysis reports (PDF/CSV)
  • Keyboard shortcuts
  • Dark/Light theme toggle

Low Priority

  • Plugin system for custom analyzers
  • Real-time audio input analysis
  • Cloud storage integration
  • Audio fingerprinting
  • Machine learning-based genre detection
  • Multi-language support
  • Command-line interface

Technical Improvements

  • Performance optimization for large files (>100MB)
  • Memory usage optimization
  • Unit test coverage
  • Automated builds/releases
  • Error handling improvements
  • Accessibility features
  • Code documentation

โญ If you find SoundStat useful, please consider giving it a star on GitHub!

About

SoundStat is a free and open-source desktop application for comprehensive audio analysis and transformation. Built with Electron, it provides audio statistics, waveform visualization, and format conversion tools in an intuitive interface.

Topics

Resources

Stars

Watchers

Forks

Languages