A modern, cross-platform audio recording and analysis application built with React Native and Expo. This app provides real-time audio recording, playback, and download functionality with a beautiful, animated user interface.
- ๐ต Real-time Audio Recording - Native MediaRecorder API for high-quality audio capture
- ๐ง Instant Playback - Play recorded audio immediately with HTML5 Audio API
- ๐ฅ Download Recordings - Save audio files in WebM format
- ๐จ Beautiful UI - Dark gradient theme with animated recording indicators
- ๐ฑ Cross-Platform - Works on Web, iOS, and Android
- ๐ Privacy First - All recording happens locally, no data sent to servers
- ๐ฏ User-Friendly - Simple, intuitive interface with clear visual feedback
- โก Performance Optimized - Native browser APIs for maximum efficiency
- Node.js (v14 or higher)
- npm or yarn
- Expo CLI
-
Clone the repository:
git clone https://github.com/4mkbs/Sound-Analyzer-App.git cd Sound-Analyzer-App -
Install dependencies:
npm install
-
Start the development server:
npm run web # For web development npm run android # For Android npm run ios # For iOS
-
Open in browser:
- Web: http://localhost:19006
- Scan QR code with Expo Go app for mobile
- Click the "Start Recording" button
- Allow microphone permissions when prompted
- Watch the pulsing animation while recording
- Click "Stop Recording" when finished
- After recording, click the "Play" button
- Listen to your recorded audio
- Use "Stop" to pause playback
- Click "Download" to save your recording
- Files are saved as
.wavformat - Compatible with all major audio players
- React Native - Cross-platform mobile development
- Expo - Development platform and toolchain
- React - UI component library
- MediaRecorder API - Native browser recording
- getUserMedia API - Microphone access
- HTML5 Audio API - Audio playback
- Web Audio API - Audio processing
- CSS3 - Custom animations and styling
- React Native StyleSheet - Component styling
- Flexbox - Responsive layouts
Sound-Analyzer-App/
โโโ App.js # Main application entry point
โโโ app.json # Expo configuration
โโโ package.json # Dependencies and scripts
โโโ babel.config.js # Babel configuration
โโโ assets/ # Static assets (icons, images)
โโโ component/
โ โโโ Audio.jsx # Main audio component
โ โโโ AudioStyles.css # Audio-specific styles
โ โโโ GlobalStyles.css # Global application styles
โโโ Readme.md # This file
- Recording Controls - Start/Stop recording buttons
- Playback Controls - Play/Pause audio buttons
- Status Display - Real-time recording status
- Error Handling - User-friendly error messages
- Visual Feedback - Animated recording indicators
- Wave Animation - Pulsing recording indicator
- Gradient Themes - Modern dark color scheme
- Responsive Design - Works on all screen sizes
- Smooth Transitions - Animated state changes
The app uses optimized audio settings for best quality:
{
audio: {
echoCancellation: true,
noiseSuppression: true,
sampleRate: 44100,
}
}{
mimeType: "audio/webm;codecs=opus";
}| Browser | Recording | Playback | Download |
|---|---|---|---|
| Chrome 66+ | โ | โ | โ |
| Firefox 29+ | โ | โ | โ |
| Safari 14.1+ | โ | โ | โ |
| Edge 79+ | โ | โ | โ |
- iOS Safari - Full support (iOS 14.3+)
- Android Chrome - Full support
- Expo Go App - Complete functionality
- PWA Ready - Can be installed as web app
- Microphone Access - For audio recording
- Storage Access - For downloading files (automatic)
- Local Processing - All audio stays on your device
- No Cloud Storage - Files not uploaded anywhere
- Permission Control - Users control microphone access
- Temporary URLs - Audio blobs cleaned up automatically
-
"Microphone permission denied"
- Click the microphone icon in browser address bar
- Select "Allow" for microphone access
- Refresh the page
-
"No audio recorded"
- Check if microphone is connected
- Try a different browser
- Ensure microphone isn't used by other apps
-
"Recording not supported"
- Update your browser to latest version
- Try Chrome or Firefox
- Check if HTTPS is enabled
Enable detailed logging by opening browser console (F12) to see:
- Recording status messages
- Audio blob information
- Error details
- Performance metrics
# Start Expo development server
npm start
# For specific platforms
npm run web # Web development
npm run android # Android emulator
npm run ios # iOS simulator# Build web version
expo build:web
# Build mobile apps
expo build:android
expo build:ios- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- MediaRecorder API - Modern browser audio recording
- Expo Team - Cross-platform development platform
- React Native Community - UI components and tools
- Web Audio Community - Audio processing standards
For support, create an issue on GitHub.
- Audio Visualization - Real-time waveform display
- Audio Effects - Echo, reverb, and filters
- Multi-format Export - MP3, WAV, OGG support
- Cloud Storage - Optional cloud backup
- Voice Analysis - Pitch and frequency analysis
- Batch Processing - Multiple file handling
Made with โค๏ธ by 4mkbs
โญ Star this repo if you found it helpful! โญ