initial commit
This commit is contained in:
148
libraries/FastLED/examples/Audio/advanced/README.md
Normal file
148
libraries/FastLED/examples/Audio/advanced/README.md
Normal file
@@ -0,0 +1,148 @@
|
||||
# Audio Reactive Visualizations
|
||||
|
||||
This example demonstrates various audio-reactive visualization modes using FastLED. It processes real-time audio input and creates stunning visual effects synchronized to music.
|
||||
|
||||
## Features
|
||||
|
||||
### Visualization Modes
|
||||
|
||||
1. **Spectrum Bars** - Classic frequency spectrum analyzer with vertical bars
|
||||
2. **Radial Spectrum** - Circular frequency visualization radiating from center
|
||||
3. **Waveform** - Real-time audio waveform display
|
||||
4. **VU Meter** - Traditional volume unit meter with RMS and peak levels
|
||||
5. **Matrix Rain** - Audio-reactive digital rain effect
|
||||
6. **Fire Effect** - Flame simulation that responds to audio intensity
|
||||
7. **Plasma Wave** - Animated plasma patterns modulated by audio
|
||||
|
||||
### Audio Processing
|
||||
|
||||
- **Real-time FFT Analysis** - Frequency spectrum analysis
|
||||
- **Beat Detection** - Automatic beat detection with adjustable sensitivity
|
||||
- **Auto Gain Control** - Automatically adjusts to varying audio levels
|
||||
- **Noise Floor Filtering** - Removes background noise
|
||||
- **Peak Detection** - Tracks audio peaks with smoothing
|
||||
|
||||
### Visual Controls
|
||||
|
||||
- **7 Color Palettes** - Rainbow, Heat, Ocean, Forest, Party, Lava, Cloud
|
||||
- **Brightness Control** - Adjustable LED brightness
|
||||
- **Fade Speed** - Control trail/persistence effects
|
||||
- **Mirror Mode** - Create symmetrical displays
|
||||
- **Beat Flash** - Visual feedback on beat detection
|
||||
|
||||
## Hardware Requirements
|
||||
|
||||
- **Controller**: ESP32, Teensy, or other platform with sufficient memory
|
||||
- **LED Matrix**: 100x100 pixels (10,000 LEDs total)
|
||||
- **Memory**: Requires `SKETCH_HAS_LOTS_OF_MEMORY` (not suitable for Arduino UNO)
|
||||
- **Audio Input**: Microphone or line-in audio source
|
||||
|
||||
## Wiring
|
||||
|
||||
```
|
||||
LED Matrix:
|
||||
- Data Pin: GPIO 3 (configurable via LED_PIN)
|
||||
- Power: 5V (ensure adequate power supply for 10,000 LEDs!)
|
||||
- Ground: Common ground with controller
|
||||
|
||||
Audio Input:
|
||||
- Follow your platform's audio input configuration
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
### Display Settings
|
||||
```cpp
|
||||
#define WIDTH 100 // Matrix width
|
||||
#define HEIGHT 100 // Matrix height
|
||||
#define LED_PIN 3 // Data pin for LEDs
|
||||
#define LED_TYPE WS2812B // LED chipset
|
||||
#define COLOR_ORDER GRB // Color order
|
||||
```
|
||||
|
||||
### Audio Settings
|
||||
```cpp
|
||||
#define SAMPLE_RATE 44100 // Audio sample rate
|
||||
#define FFT_SIZE 512 // FFT size for frequency analysis
|
||||
```
|
||||
|
||||
## UI Controls
|
||||
|
||||
### Master Controls
|
||||
- **Enable Audio** - Toggle audio processing on/off
|
||||
- **Visualization Mode** - Select from 7 different modes
|
||||
|
||||
### Audio Controls
|
||||
- **Audio Gain** - Manual gain adjustment (0.1 - 5.0)
|
||||
- **Noise Floor** - Background noise threshold (0.0 - 1.0)
|
||||
- **Auto Gain** - Enable automatic gain control
|
||||
|
||||
### Visual Controls
|
||||
- **Brightness** - LED brightness (0 - 255)
|
||||
- **Fade Speed** - Trail effect speed (0 - 255)
|
||||
- **Color Palette** - Choose color scheme
|
||||
- **Mirror Mode** - Enable symmetrical display
|
||||
|
||||
### Beat Detection
|
||||
- **Beat Detection** - Enable/disable beat detection
|
||||
- **Beat Sensitivity** - Adjust detection threshold (0.5 - 3.0)
|
||||
- **Beat Flash** - Enable visual flash on beats
|
||||
|
||||
## Usage
|
||||
|
||||
1. Upload the sketch to your controller
|
||||
2. Connect your LED matrix
|
||||
3. Provide audio input (microphone or line-in)
|
||||
4. Use the web UI to control visualizations
|
||||
5. Select different modes and adjust parameters in real-time
|
||||
|
||||
## Performance Tips
|
||||
|
||||
- This example requires significant processing power
|
||||
- Reduce matrix size if experiencing lag
|
||||
- Disable beat detection for lower CPU usage
|
||||
- Use simpler visualization modes on slower processors
|
||||
|
||||
## Customization
|
||||
|
||||
### Adding New Visualizations
|
||||
|
||||
1. Add your mode name to the `visualMode` dropdown
|
||||
2. Create a new `drawYourMode()` function
|
||||
3. Add a case in the main switch statement
|
||||
4. Implement your visualization logic
|
||||
|
||||
### Modifying Color Palettes
|
||||
|
||||
Edit the `getCurrentPalette()` function to add custom palettes:
|
||||
```cpp
|
||||
case 7: return YourCustomPalette_p;
|
||||
```
|
||||
|
||||
### Adjusting Matrix Size
|
||||
|
||||
For different matrix sizes, modify:
|
||||
```cpp
|
||||
#define WIDTH your_width
|
||||
#define HEIGHT your_height
|
||||
```
|
||||
|
||||
## Memory Usage
|
||||
|
||||
This example uses approximately:
|
||||
- 30KB for LED buffer (100x100 RGB)
|
||||
- 2KB for FFT data
|
||||
- 1KB for audio buffers
|
||||
- Additional memory for effect buffers
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
- **No visualization**: Check audio input and "Enable Audio" setting
|
||||
- **Choppy animation**: Reduce matrix size or disable some features
|
||||
- **No beat detection**: Increase beat sensitivity or check audio levels
|
||||
- **Dim display**: Increase brightness or check power supply
|
||||
- **Compilation error**: Ensure platform has sufficient memory
|
||||
|
||||
## Credits
|
||||
|
||||
This example demonstrates the audio processing capabilities of FastLED, including FFT analysis, beat detection, and various visualization techniques suitable for LED art installations, music visualizers, and interactive displays.
|
||||
Reference in New Issue
Block a user