Recorder › SyncRecord
thumb_up Follow me on GitHub to get notifications about my projects (like Fossdroid Core), thanks! close

SyncRecord

Create synchronised ad-hoc microphone arrays using multiple smartphones.
Version: 1.1.0
Added: 23-08-2026
Updated: 23-08-2026
SyncRecord is an open-source Android application designed to transform a group of spatially distributed smartphones into a single, synchronised, ad-hoc microphone array. This tool addresses the high cost and scalability limitations of traditional hardware microphone arrays, offering a low-cost solution for acoustic research, sound source localisation, and multi-device audio acquisition.

Core Functionality The system achieves temporal alignment and spatial localisation by utilising audible pseudo-random binary sequence (PRBS) signals. Devices emit these sequences, and the system employs cross-correlation techniques on the captured audio to extract propagation delay information. Under test conditions, this approach reduces temporal misalignment across recordings to within 52 samples at 48 kHz (approx. 42 µs) and estimates inter-device distances to within 14mm.

Key Features:
- Ad-hoc mic array creation: Easily initiate a session with a master device and invite other participants via a unique alphanumeric session ID (UID).
- Synchronised Recording: Captures raw, unprocessed audio (using MediaRecorder.AudioSource.UNPROCESSED) from all devices simultaneously.
- Automatic calibration: Performs server-side signal processing to estimate inter-device distances and correct time offsets automatically.
- Flexible deployment: Connects to a cloud-based demonstration server or allows users to deploy their own locally-hosted server instance. Local deployment minimises latency and provides full control over data handling.
- Privacy first: Prioritises transient data handling. In cloud mode, audio data is deleted immediately after the session ends. No user logins are required.

Operational modes:
1. Synchronised recording: Combines localisation and recording, delivering time-aligned, multi-channel audio archives ready for further analysis.
2. Localise array devices: Determines the geometric layout of devices without storing continuous audio streams.
3. Unsynchronised recording: Standard multi-channel capture without automatic synchronisation.

Technical details and requirements:
- Server architecture: This app requires a backend server component for signal processing and session management. You can use the public demonstration server (syncrecord.eu:3000) or deploy your own local instance using the Node.js and Python scripts available in the repository. A docker container is also available.
- Hardware: Requires support for unprocessed audio capture. Note that built-in smartphone microphones are directional; for optimal performance, position devices within audible range and orient them towards the centre of the array.
- License: Source code is available under the MIT License.

Learn more: For detailed methodology, signal processing equations, and evaluation results, please read our pre-print research paper: https://zenodo.org/records/20398119
Repository with server-side files: https://github.com/PadraicMCE/SyncRecord
code Source file_download Download