Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jaydeep-godhani/soundwavevisualizer
A customizable iOS equalizer view with animated bars, perfect for music visualizations and audio-related apps.
https://github.com/jaydeep-godhani/soundwavevisualizer
animatedequalizer animation audiovisualizer beatanimation customanimation customaudiovisualizer customequalizerview customview equalizer equalizerview-ios ios iosequalizer soundvisualizer soundwavevisualizer swift uikit uiview visualeffects xcode
Last synced: 7 days ago
JSON representation
A customizable iOS equalizer view with animated bars, perfect for music visualizations and audio-related apps.
- Host: GitHub
- URL: https://github.com/jaydeep-godhani/soundwavevisualizer
- Owner: jaydeep-godhani
- License: mit
- Created: 2025-01-17T10:58:36.000Z (18 days ago)
- Default Branch: main
- Last Pushed: 2025-01-17T15:17:04.000Z (18 days ago)
- Last Synced: 2025-01-28T14:20:04.888Z (7 days ago)
- Topics: animatedequalizer, animation, audiovisualizer, beatanimation, customanimation, customaudiovisualizer, customequalizerview, customview, equalizer, equalizerview-ios, ios, iosequalizer, soundvisualizer, soundwavevisualizer, swift, uikit, uiview, visualeffects, xcode
- Language: Swift
- Homepage:
- Size: 1.16 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# SoundWaveVisualizer
![GitHub repo size](https://img.shields.io/github/repo-size/jaydeep-godhani/SoundWaveVisualizer)
![GitHub stars](https://img.shields.io/github/stars/jaydeep-godhani/SoundWaveVisualizer?style=social)
![GitHub forks](https://img.shields.io/github/forks/jaydeep-godhani/SoundWaveVisualizer?style=social)**EqualizerView** is a custom iOS UIView component that simulates a dynamic equalizer animation. It allows you to display multiple bars representing an audio equalizer, with visual states for play, pause, and stop, along with customizable bar count and spacing. This view can be used in music or audio-related apps to provide users with a visual representation of sound.
## Features
- Customizable number of bars (`barCount`).
- Adjustable space between bars (`barSpacing`).
- Supports three visual states: Play, Pause, and Stop.
- Smooth animations with the option for animation control (`animated` flag).
- Can be easily integrated into your app's UI.
- Automatically adjusts the view based on app state when entering the foreground.## Installation
This is an Xcode project, so you can directly clone or download the project into your workspace.
### Clone the Repository
```bash
git clone https://github.com/jaydeep-godhani/SoundWaveVisualizer.git
```
Alternatively, you can download the project as a ZIP file from the GitHub repository page.### Integrating into Your Project
To integrate the `EqualizerView` into your own Xcode project:
1. Download or clone the repository.
2. Copy the `EqualizerView.swift` file into your project.
3. Add `EqualizerView` to your storyboard or use it programmatically in your view controllers.## Usage
### Step 1: Add `EqualizerView` to your storyboard or XIB file
You can use the `EqualizerView` as a custom view in your storyboard or XIB file. Make sure to set the class to `EqualizerView` and customize the properties like `barCount` and `barSpacing` from the Attributes inspector.### Step 2: Programmatic Usage
You can also initialize `EqualizerView` programmatically.
```swift
let equalizerView = EqualizerView(frame: CGRect(x: 0, y: 0, width: 300, height: 100))
equalizerView.barCount = 5
equalizerView.barSpacing = 2.0
equalizerView.tintColor = .blue
view.addSubview(equalizerView)
```### Step 3: Update the State
Use the `setState(_:animated:)` method to update the visual state of the equalizer.
```swift
equalizerView.setState(.play, animated: true) // Start the animation
equalizerView.setState(.pause, animated: true) // Pause the animation
equalizerView.setState(.stop, animated: true) // Stop the animation
```## Customization
- **barCount**: Set the number of bars to be drawn in the equalizer.
- **barSpacing**: Adjust the spacing between bars.
- **tintColor**: Set the color of the bars (supports dynamic tinting).
- **State Management**: Control the animation states using `.play`, `.pause`, and `.stop`.## App State Awareness
The `EqualizerView` is aware of the app's state. When the app enters the foreground, the visual state of the equalizer will be updated to match its current state.
## Contributions
We welcome contributions! If you find a bug, have an idea for a new extension, or want to improve the documentation, feel free to fork the repo and create a pull request.
## License
This project is licensed under the MIT License - see the `LICENSE` file for details.