About AirShout
AirShout is an iOS application that enables real-time voice transmission from your iPhone or iPad to other devices. Simply tap the talk button to start broadcasting your voice to selected output devices; tap again to stop.
Whether you want to shout announcements through HomePods in different rooms, have a quick intercom chat with family members on the same network, or stream audio to any AirPlay-enabled device, AirShout provides a seamless experience.
Key Features
🎯
Tap to Toggle
Tap the button to start or stop voice transmission
📊
Real-Time Waveform
Visual feedback showing your voice level in real-time
🔊
Haptic Feedback
Tactile confirmation when you start and stop speaking
🎧
Background Audio
Continues transmission even when app is in background
Three Transmission Methods
AirShout supports three different transmission methods to suit various use cases and device configurations.
1. AirPlay
Built-in
The default transmission method uses Apple's AirPlay technology to stream audio directly to AirPlay-enabled devices such as Apple TV, HomePod, or any AirPlay-compatible speaker.
How it works:
Microphone → AVAudioEngine → AVAudioPlayerNode → AirPlay Device
↓
Audio Level Calculation → Real-time Waveform Display
Audio Specifications:
| Parameter | Value |
| Sample Rate | 44100 Hz |
| Channels | Stereo |
| Bit Depth | 16-bit |
| Format | Linear PCM |
Requirements:
- AirPlay device on the same WiFi network
- iOS device with microphone access
2. P2P (Multipeer Connectivity)
LAN P2P
For direct voice communication between iOS devices on the same local network without requiring any server infrastructure. Uses Apple's Multipeer Connectivity framework for automatic peer discovery and encrypted communication.
How it works:
Microphone → AVAudioEngine.inputNode → Chunk (50ms)
↓
MCSession.send() [unreliable] → Other Devices
↓
AVAudioPlayerNode → Speaker
Audio Specifications:
| Parameter | Value |
| Sample Rate | 44100 Hz |
| Channels | Mono |
| Bit Depth | 16-bit |
| Chunk Size | 50ms (2205 samples) |
| Format | Raw PCM Data |
Key Benefits:
- No server required - Pure peer-to-peer communication
- Auto discovery - Devices found automatically on LAN
- Built-in encryption - MCSession provides automatic encryption
- Low latency - Target end-to-end latency under 100ms
3. TCP Network
Manual TCP
For reliable, direct TCP connections between devices. Manual IP/port input - no automatic discovery. Once connected, audio streams over TCP with guaranteed delivery.
How it works:
[Manual Setup]
User enters: IP Address + Port
[Connection Phase]
TCP Listener ←→ TCP Connection
[Streaming Phase]
Microphone → TCP Connection → AVAudioPlayerNode → Speaker
Protocol Format:
[Magic: 2 bytes][Version: 1 byte][Type: 1 byte][Timestamp: 4 bytes][Length: 2 bytes][Payload: n bytes]
Features:
- Manual connection - Enter target device IP and port directly
- Reliable delivery - TCP ensures all audio packets arrive in order
- Packet processing - Handles packet fragmentation and reassembly
Technical Architecture
Core Components
| Component | Responsibility |
| AirPlayAudioManager | AirPlay-specific audio routing and playback via AVAudioEngine |
| P2PAudioManager | Multipeer Connectivity session and P2P audio streaming |
| NetworkManager | TCP server/client, audio streaming over TCP |
| PacketProcessor | TCP packet assembly/disassembly, protocol parsing |
| AudioLevelProcessor | Audio level calculation for waveform display |
| AudioSessionConfig | AVAudioSession configuration and permission handling |
Thread Safety
AirShout uses dedicated serial queues for different subsystems to ensure thread safety:
- engineQueue - Audio engine operations
- connectionsQueue - TCP connection management
- mcQueue - Multipeer Connectivity operations
- MainActor - UI updates only
Requirements
- iOS Device - iPhone or iPad (simulator not supported)
- iOS Version - iOS 15.0 or later
- Microphone - Required for voice transmission
- Network - All devices on same WiFi for AirPlay/TCP; LAN for P2P
Privacy
AirShout is designed with privacy in mind. Audio is processed locally and transmitted only to selected devices. For more information, see our Privacy Policy.