Professional sound level monitoring for iOS
Real-time decibel measurements • Frequency spectrum analysis • Multiple visualization modes
DecibelPeak is a sophisticated iOS application for monitoring and analyzing sound levels in real-time. Whether you're an audio professional, researcher, or just curious about your acoustic environment, DecibelPeak provides accurate decibel measurements with beautiful, intuitive visualizations.
👆 Click image above to download and watch the demo video (28MB, 60fps)
See DecibelPeak in action with real-time monitoring and multiple visualization modes
- Real-time Decibel Monitoring: Accurate sound level measurements from 20 to 130 dB
- Color-Coded Levels: Instant visual feedback with green (quiet), yellow (moderate), orange (loud), and red (dangerous) indicators
- Auto-Start: Automatically begins monitoring when microphone permissions are granted
- Portrait & Landscape: Optimized layouts for both orientations
- Waveform - Classic oscilloscope view of audio signal
- Spectrum - Real-time amplitude spectrum display
- FFT Bars - Frequency analysis with vertical bar chart (64 frequency bands, 20 Hz - 20 kHz)
- FFT Circle - Circular frequency visualization
- Waterfall - Spectrogram showing frequency changes over time
- dB Curve - Historical decibel level tracking
Auto-scrolls through visualizations every 3 seconds, or tap to manually cycle
- Circular Gauge: Beautiful analog-style meter with 270° arc
- Sound Level Indicators: Three-tier visual feedback system (Quiet/Moderate/Loud)
- Contextual Labels: Dynamic descriptions based on current sound level
- Dark Theme: Elegant gradient design optimized for any lighting condition
- Responsive Design: Perfectly adapted layouts for all iPhone models
- Sample Rate: 44.1 kHz
- Buffer Size: 1024 samples
- FFT Analysis: Using Apple's Accelerate framework for optimized performance
- Window Function: Hanning window for frequency analysis
- Update Rate: 30 FPS for real-time responsiveness
- RMS-based Calibration: Accurate decibel calculations with smoothing
- SwiftUI: Modern declarative UI framework
- AVFoundation: Professional-grade audio capture
- Accelerate: Hardware-accelerated FFT computations
- ObservableObject Pattern: Reactive data flow
- Timer-based Updates: Separate timers for display and history tracking
// Real-time audio processing with FFT analysis
private func processAudioBuffer(_ buffer: AVAudioPCMBuffer) {
// RMS calculation for decibel measurement
let rms = sqrt(channelDataArray.map { $0 * $0 }.reduce(0, +) / Float(channelDataArray.count))
let avgPower = 20 * log10(max(0.00001, rms))
let calibratedDb = avgPower + 100
// FFT analysis for frequency visualization
let fftMagnitudes = fftAnalyzer.analyze(samples: channelDataArray)
let bands = fftAnalyzer.getFrequencyBands(magnitudes: fftMagnitudes, bandCount: 64)
}The easiest way to get DecibelPeak is from the App Store:
Requirements:
- iOS 17.0 or later
- Microphone access permission
Requirements:
- iOS 17.0 or later
- Xcode 16.4 or later
- Swift 5.0 or later
- Apple Developer Account (for device deployment)
Installation:
- Clone the repository:
git clone https://github.com/AndreFrelicot/DecibelPeak.git
cd DecibelPeak- Open the project in Xcode:
open DecibelPeak.xcodeproj-
Select your development team in the project settings
-
Build and run on your device or simulator
On first launch, DecibelPeak will request microphone access. Grant permission to enable sound monitoring. The app will automatically start monitoring once permission is granted.
- Start Monitoring: Tap the microphone button or the app will auto-start with permissions
- View Measurements: Watch the circular gauge for real-time decibel readings
- Explore Visualizations: Tap the visualization area to cycle through different views
- Check Levels: Observe the three-tier indicator (Quiet/Moderate/Loud) at the bottom
- Stop Monitoring: Tap the stop button to pause measurements
| Range | Color | Description | Examples |
|---|---|---|---|
| 20-60 dB | 🟢 Green | Quiet | Library, whisper, normal conversation |
| 60-85 dB | 🟡 Yellow | Moderate | Busy traffic, vacuum cleaner |
| 85-100 dB | 🟠 Orange | Loud | Lawn mower, motorcycle |
| 100+ dB | 🔴 Red | Dangerous | Concert, chainsaw, thunder |
⚠️ Note: Prolonged exposure to sounds above 85 dB can cause hearing damage.
DecibelPeak/
├── DecibelPeak/
│ ├── DecibelPeakApp.swift # App entry point
│ ├── ContentView.swift # Main UI with responsive layouts
│ ├── AudioManager.swift # Audio capture and processing
│ ├── FFTAnalyzer.swift # Frequency analysis engine
│ ├── CircularGaugeView.swift # Analog gauge component
│ ├── WaveformCarouselView.swift # Visualization carousel
│ ├── WaveformView.swift # Waveform display
│ ├── FFTVisualizationView.swift # FFT visualization components
│ ├── Localizable.xcstrings # Localized strings
│ └── Assets.xcassets/ # App icons and colors
├── DecibelPeakTests/ # Unit tests
└── DecibelPeakUITests/ # UI tests
DecibelPeak supports multiple languages through Localizable.xcstrings. To add a new language:
- Open
Localizable.xcstringsin Xcode - Click the "+" button to add a language
- Translate the strings for your locale
Contributions are welcome! Here are some ways you can contribute:
- 🐛 Report bugs and issues
- 💡 Suggest new features or visualizations
- 🌍 Add translations for new languages
- 📝 Improve documentation
- 🔧 Submit pull requests
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is available for personal and educational use. For commercial use, please contact the author.
André Frélicot
- GitHub: @AndreFrelicot
- Bundle ID:
dev.andrefrelicot.decibelpeak
- Built with SwiftUI and AVFoundation
- FFT implementation using Apple's Accelerate framework
- Inspired by professional audio measurement tools
If you encounter any issues or have questions:
- Check the Issues page
- Create a new issue with a detailed description
- Include your iOS version and device model
Made with ❤️ for the iOS audio community



