Skip to content

Latest commit

ย 

History

21 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽต SoundWave - Audio Visualisation Studio

A stunning web-based audio visualizer that transforms your music into mesmerizing visual art. Experience sound in a whole new dimension with real-time audio visualization that dances to your rhythm.

Try it out! License: GPL-3.0 Security Scanning CI/CD Pipeline

โœจ Features

๐ŸŽจ Multiple Visualization Types

  • Bars: Classic audio frequency bars with dynamic heights
  • Wave: Smooth flowing waveform display
  • Circular: Mesmerizing circular frequency visualization
  • Particles: Dynamic particle system that responds to audio
  • Spectrum: Full spectrum frequency analysis display

๐ŸŒˆ Beautiful Color Themes

  • Neon Pulse: Vibrant pink and cyan gradients
  • Ocean Waves: Cool blue gradients with wave-like motion
  • Fire Ember: Warm red and orange gradients
  • Galaxy: Purple and blue cosmic gradients
  • Custom Themes: Additional gradient combinations

๐ŸŽค Flexible Audio Input

  • Microphone Input: Real-time visualization of live audio
  • File Upload: Support for MP3, WAV, OGG, and other audio formats
  • Drag & Drop: Easy file uploading interface

๐ŸŽ›๏ธ Advanced Controls

  • Play/Pause: Full playback control for uploaded audio
  • Progress Bar: Seek to any position in your audio
  • Time Display: Current time and total duration
  • Sensitivity Control: Adjust visualization responsiveness
  • Fullscreen Mode: Immersive full-screen experience
  • Theme Toggle: Switch between light and dark modes

๐Ÿ“ฑ Modern Design

  • Responsive Layout: Works perfectly on desktop, tablet, and mobile
  • Smooth Animations: Butter-smooth 60fps animations
  • Glass Morphism: Modern UI with blur effects and transparency
  • Accessibility: Full keyboard navigation and screen reader support

๐Ÿš€ Quick Start

Option 1: Direct Launch

  1. Download or Clone: Get the project files to your computer
  2. Open: Launch home.html for the landing page or index.html for direct app access
  3. Enjoy: Start visualizing your audio immediately!

Option 2: Local Server (Recommended)

# Clone the repository
git clone https://github.com/shirishpothi/soundvisualiser.git
cd sound-visualiser

# Start a local server (Python 3)
python -m http.server 8000

# Or with Node.js
npx serve .

# Open http://localhost:8000 in your browser

๐Ÿ“– How to Use

Important

Please remember to check microphone permissions before using the microphone features.

๐ŸŽต Getting Started

  1. Launch the App: Open the application in your web browser
  2. Choose Your Audio Source:
    • ๐ŸŽค Microphone: Click "Use Microphone" for real-time audio visualization
    • ๐Ÿ“ File Upload: Drag & drop or click "Upload Audio" to select an audio file
    • ๐ŸŽง Supported Formats: MP3, WAV, OGG, M4A, and more

๐ŸŽจ Customization

  1. Select Visualization Style:

    • Choose from Bars, Wave, Circular, Particles, or Spectrum
    • Each style offers unique visual patterns and animations
  2. Pick Your Theme:

    • Browse through multiple color themes
    • Switch between light and dark modes
    • Themes automatically adapt to your visualization style
  3. Fine-tune Settings:

    • ๐ŸŽš๏ธ Sensitivity: Adjust how responsive the visualization is to audio
    • ๐Ÿ”Š Volume: Control audio playback volume
    • โšก Performance: Toggle effects for optimal performance

๐ŸŽฎ Controls

  • Spacebar: Play/Pause audio
  • Left/Right Arrows: Seek backward/forward
  • F: Toggle fullscreen mode
  • T: Cycle through themes
  • V: Change visualization type

๐Ÿ› ๏ธ Technical Implementation

Core Technologies

  • ๐ŸŽต Web Audio API: Advanced audio processing and real-time frequency analysis
  • ๐ŸŽจ Canvas API: High-performance 2D graphics rendering at 60fps
  • โšก JavaScript ES6+: Modern JavaScript with async/await and modules
  • ๐ŸŽญ CSS3: Advanced styling with custom properties, animations, and responsive design
  • ๐Ÿ“ฑ Progressive Web App: Offline capability and mobile optimization

Architecture

  • Modular Design: Separate files for different functionalities
  • Performance Optimized: RequestAnimationFrame for smooth animations
  • Memory Efficient: Proper cleanup and garbage collection
  • Cross-Browser: Polyfills and fallbacks for maximum compatibility

Audio Processing

  • FFT Analysis: Real-time Fast Fourier Transform for frequency data
  • Smoothing Algorithms: Temporal smoothing for stable visualizations
  • Dynamic Range: Automatic gain control and normalization
  • Low Latency: Optimized for real-time audio processing

๐Ÿ“ Project Structure

/
โ”œโ”€โ”€ src/                    # Source code
โ”‚   โ”œโ”€โ”€ styles/            # CSS files
โ”‚   โ”‚   โ”œโ”€โ”€ main.css       # Main app styles (was styles-new.css)
โ”‚   โ”‚   โ”œโ”€โ”€ home.css       # Landing page styles (was home-styles.css)
โ”‚   โ”‚   โ””โ”€โ”€ legacy.css     # Legacy styles (was styles.css)
โ”‚   โ”œโ”€โ”€ scripts/           # JavaScript files
โ”‚   โ”‚   โ”œโ”€โ”€ main.js        # Main app logic (was script.js)
โ”‚   โ”‚   โ”œโ”€โ”€ home.js        # Landing page logic (was home-script.js)
โ”‚   โ”‚   โ””โ”€โ”€ utils/         # Utility modules (ready for future modularization)
โ”‚   โ””โ”€โ”€ assets/            # Static assets (ready for future use)
โ”œโ”€โ”€ config/                # Configuration files
โ”‚   โ”œโ”€โ”€ netlify.toml       # Netlify deployment config
โ”‚   โ”œโ”€โ”€ lighthouserc.json  # Lighthouse CI config
โ”‚   โ””โ”€โ”€ windsurf_deployment.yaml # Windsurf deployment config
โ”œโ”€โ”€ scripts/               # Build/deployment scripts
โ”‚   โ””โ”€โ”€ install.sh         # Installation script
โ”œโ”€โ”€ docs/                  # Documentation
โ”‚   โ””โ”€โ”€ README.md          # Detailed project documentation
โ”œโ”€โ”€ index.html             # Main visualizer app (updated paths)
โ”œโ”€โ”€ home.html              # Landing page (updated paths)
โ”œโ”€โ”€ package.json           # Dependencies and scripts
โ”œโ”€โ”€ package-lock.json      # Dependency lock file
โ””โ”€โ”€ LICENSE                # License file

Directory Overview

  • src/: Contains all source code organized by type
    • styles/: CSS files with clear naming conventions
    • scripts/: JavaScript files with modular structure
    • assets/: Static assets like images, fonts, etc.
  • config/: Configuration files for deployment and CI/CD
  • scripts/: Build and deployment automation scripts
  • docs/: Project documentation and guides

๐ŸŒ Browser Support

Note

SoundWave is designed to work best on Chromium based browsers.

Browser Version Support Level
Chrome 66+ โœ… Full Support
Firefox 60+ โœ… Full Support
Safari 11.1+ โœ… Full Support
Edge 79+ โœ… Full Support
Opera 53+ โœ… Full Support

Required Features

  • Web Audio API
  • Canvas 2D Context
  • ES6 Modules
  • CSS Custom Properties

๐Ÿค Contributing

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

  1. ๐Ÿ› Report Bugs: Open an issue with detailed reproduction steps
  2. ๐Ÿ’ก Suggest Features: Share your ideas for new visualizations or improvements
  3. ๐Ÿ”ง Submit Pull Requests: Fix bugs or add new features
  4. ๐Ÿ“– Improve Documentation: Help make the docs clearer and more comprehensive

Development Setup

# Fork and clone the repository
git clone <enter-fork-url>
cd sound-visualiser

# Install dependencies
npm install

# Start development server
npm run dev

# Create a feature branch
git checkout -b feature/feature-name

# Make your changes and test thoroughly
npm run lint          # Check code quality
npm run format        # Format code
npm run lighthouse    # Test performance

# Commit with descriptive messages
git commit -m "Add amazing new visualization type"

# Push and create a pull request
git push origin feature/feature-name

CI/CD Pipeline

This project uses GitHub Actions for continuous integration and deployment:

๐Ÿ”„ Automated Workflows

  • Code Quality: ESLint, Prettier, HTML validation
  • Security Scanning: CodeQL, dependency audits, vulnerability scans
  • Performance Testing: Lighthouse CI with accessibility checks
  • Automated Deployment: GitHub Pages and Netlify integration

๐Ÿš€ Deployment Targets

  • GitHub Pages: Automatic deployment on main branch
  • Netlify: Preview deployments for pull requests
  • Pull Request Previews: Every PR gets a preview deployment

๐Ÿ›ก๏ธ Security Features

  • Daily security scans
  • Dependency vulnerability monitoring
  • Automated dependency updates via Dependabot
  • SARIF security reporting

๐Ÿ“„ License

This project is licensed under the GPL-3.0 License.

What this means:

  • You can use, modify, and distribute the project for any purpose
  • You must provide attribution to the original creators
  • You cannot use the project for commercial purposes without permission
  • You must include the license and attribution notice in all copies or substantial portions of the project

Attribution

When using or modifying this project, please include:

SoundWave Audio Visualisation Studio
Original work by Shirish
Licensed under GPL-3.0 License

For commercial licensing inquiries, please contact shirish.pothi.27@gmail.com.

๐Ÿ™ Acknowledgments

  • Web Audio API Community: For excellent documentation and examples
  • Canvas API Contributors: For powerful 2D graphics capabilities
  • Open Source Community: For inspiration and best practices
  • Audio Visualization Pioneers: For paving the way in digital audio art
  • You: For being part of the SoundWave journey!

Made with โค๏ธ by Shirish, for the audio visualization community

๐ŸŒŸ Star this project โ€ข ๐Ÿ› Report Bug โ€ข ๐Ÿ’ก Request Feature

About

Transform Your Audio into Visual Art

Resources

Stars

0 stars

Watchers

0 watching

Forks

Used by

Contributors

Languages