Drop audio files here to analyze
SoundMapper4D — Processing
Initializing...
0%

Recent Sessions

X
0:00.0 / 0:00
Spectrogram + Bird ID
Horizontal View (North Up)
N
Vertical Cross-Section
Time #1 Species Conf. #2 Species Conf. #3 Species Conf. X,Y,Z (m) Mics Unc. (m)

Cross-Correlation Heatmap

Calibrate Recorder Locations

How it works If your recorders have approximate GPS positions (~1 m accuracy), you can refine them to centimeter-level precision using calibration sounds (whistles, tone bursts) played at known high-precision survey points distributed around the array.

You need:
  1. Audio recordings from each recorder (containing the calibration sounds)
  2. A CSV of approximate recorder positions (filename, lat, lon, elevation_m)
  3. A CSV of calibration source positions (source_id, lat, lon, elevation_m, time_in_recording, duration)

Method: Reverse multilateration — for each calibration whistle at a known position, TDOA (time difference of arrival) is measured between all recorder pairs via GCC-PHAT cross-correlation. The recorder positions are then optimized to minimize the mismatch between observed and predicted TDOA using robust nonlinear least-squares (Huber loss). Uncertainty is estimated from the Jacobian covariance matrix.

Tips: Use 3+ calibration sources spread around the array for best results. More sources = lower uncertainty. Sources should be at known positions with <5 cm precision.
Columns: filename, lat, lon, elevation_m
Columns: source_id, lat, lon, elevation_m, time_in_recording (seconds), duration (seconds, optional, default 1.0)

Upload Field Recordings

πŸ“‹ What you need & what you get
# Mics Output Typical accuracy
1Species ID only β€” no spatial fixPlaced at recorder location
2Rough directional estimate (hyperbola)~50 m horizontal
3Full 3D position fix (multilateration)~10–30 m
4+3D fix with outlier rejection<5 m (optimal geometry)
Each mic needs: one audio file + its GPS lat, lon, elevation (m). Start time is optional (used for clock sync when available).
ℹ️ The downloaded results CSV contains columns like northing, easting, height, lat, lon β€” these are computed outputs (the estimated 3D position of each detected bird). You do not prepare these as inputs.
🎧 New here? Download the demo dataset β€” 10 real field recordings + demo_mic_positions.csv. Use the Upload GPS CSV tab: select all WAVs, select the CSV, click Analyze. No manual entry needed.
πŸ“ Only have approximate GPS (~1 m)? Use the Calibrate Recorders button first to refine positions to centimeter-level precision using calibration sounds at known survey points. Then use the calibrated CSV here.
Enter GPS Manually
Upload GPS CSV
One file per microphone. Enter the GPS location for each mic below.
One file per microphone. Filenames must match the filename or mic_id column in your CSV.
Required: filename, lat, lon, elevation_m, start_time.
start_time format: YYYY-MM-DDThh:mm:ss.sssΒ±hh:mm (e.g. 2019-01-25T13:12:23.000-05:00). Ms precision needed for TDOA. SM3 users: copy date/time from filename (e.g. 20190125$131223 β†’ 2019-01-25T13:12:23.000), set ms to .000 and add your timezone offset.
Optional: channel (Left/Right/Mono). ⬇ Download demo dataset β€” includes a ready-to-use demo_mic_positions.csv as a template.
Optional: Location override (for BirdNET species filtering)
By default, the first mic's lat/lon is used for BirdNET species filtering. Override here if your array location differs from what's in the CSV.
Auto-derived from SM3 filenames or audio file metadata when possible. Set manually if your files lack embedded date info.