🥊 Tyson - The Wireless Phone Mic App That Packs a Punch
This is a submission for the Weekend Challenge!
🎙️ What I Built
Let’s be honest: solo content creators are tired of holding their secondary phones awkwardly like makeshift reporter mics or spending $300+ on bulky wireless lavalier setups that require dongles, cases, and endless charging cables.
Enter Tyson (a.k.a. Tai Sun). It's a cross-platform Flutter app designed to turn the smartphone you already own into a dedicated, heavy-hitting wireless microphone system.
By separating the workflow into a dual-device ecosystem, Tyson lets you use one phone as the sharp Camera/Director angle and a second phone as the high-fidelity Mic, delivering studio-quality sound directly from your pocket.
⚡ Key Features (The Heavy Hitters)
Dual-Device Ecosystem: Dedicated Mic Mode (with absolute UI lock to prevent accidental palm-touches) and Camera Mode layout.
Smart Environmental Presets: Instant switching between Indoor and Outdoor profiles. Outdoor mode activates automatic noise gating and suppression to fight ambient chaos (like traffic or wind noise).
Custom Voice Profiles: Tailor your sound signature on the fly with Clean, Voice, Podcast, and Warm DSP configurations.
Seamless QR & Room Code Pairing: Zero-friction device discovery, laying the groundwork for automatic local Hotspot/WebSocket connectivity.
Simulated "Stop & Mux" Flow: Hits the absolute biggest pain point in filmmaking. Once you hit stop, the mic phone automatically simulates background file transfer to the camera phone for instant track alignment.
💡 Inspiration
I was watching creators shoot content and noticed a painful pattern: people either sounded like they were recording inside a tin can, or they looked ridiculous shouting into a phone held two inches from their mouth. Flagsip phones have insane microphone hardware built right into them, yet no one was utilizing it as a standalone, smart wireless receiver.
I decided to build an underdog app that bites the noise right out of your audio—hence the name Tyson.
The Climax: Hitting Stop 🛑 and watching the app automatically package and transfer the audio file to the Director phone.
Live Demo: Want to take it for a spin? The Android APK is built and ready in the repository releases.
🛠️ How I Built It
Tyson was built entirely from scratch over the weekend using a nimble, high-performance stack:
Framework: Flutter (Dart) – Compiled down to native ARM code to keep audio buffer latency tight and UI fluid across iOS and Android.
Audio Capture: The record package, heavily modified with custom system presets for noise suppression and hardware gain control.
Playback Engine: audioplayers for crisp local audio verification.
Pairing UI: qr_flutter for instant cross-device handshake generation.
🏗️ Core Architecture
MIC Transmitter Mode: Background-priority capture state optimized to save battery and reduce thermal throttling while processing real-time audio.
CAMERA Receiver Mode: A dedicated placeholder interface designed to display received audio metadata and eventual video preview syncing.
🥊 Challenges & Knockouts
The Camera Plugin Brawl: The native Flutter camera plugin decided to throw a temper tantrum on my environment configuration during the crunch window. Instead of getting stuck in dependency hell, I pivoted like a pro—focusing 100% of my energy on perfecting the core audio processing, DSP presets, and wireless transfer UX.
Taming the Noise: Getting standard mobile audio APIs to reliably separate background hiss from real human voice without heavy delay took some intense fine-tuning.
🧠 What I Learned
How to handle low-level device audio streams and apply real-time operating system filters without killing the device's battery.
Designing state architecture that cleanly handles simulated network data flows so the code is structurally ready for live WebSockets/UDP streaming next.
Huge thanks to the organizers for putting together this weekend challenge! Time to go refresh the GitHub repo and get back to building. 🥊
GitHub Repository: github.com/AliFikan94/Tyson
Top comments (2)
Some comments may only be visible to logged-in visitors. Sign in to view all comments.