riekane/modular_call_detection
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
Modular Call Detection App
==========================
What this is
------------
A refactored MATLAB GUI for loading multichannel microphone data, detecting
call peaks on a selected channel, manually adding/removing marks, optionally
loading track timing, and saving reviewed detections.
Folder structure
----------------
app/ Main app class
core/ File IO, detection, call structure, track loading
plot/ Rendering functions
ui/ Figure creation
utils/ Validation and settings
demo/ Synthetic demo-file generator
Minimum signal file requirements
--------------------------------
Your MAT file must contain:
sig [samples x channels]
fs sampling rate (scalar)
Optional fields that are used if present:
sig_t
sig_rough, sig_rough_t, shift_gap
chsel
call, aux_data, track
Quick test with synthetic data
------------------------------
1) Add the project to the MATLAB path:
addpath(genpath('PATH_TO/modular_call_detection'))
2) Create a demo file:
demoPath = make_demo_mic_file(fullfile(tempdir, 'call_detection_demo'));
3) Launch the app:
app = run_modular_call_detection();
4) In the GUI, click Load File and choose demoPath.
5) Click Detect Calls.
- Leave threshold blank to pick interactively, or enter a value directly.
6) Use Add Mark / Remove Marks In Box / channel controls.
7) Click Save Results.
Suggested test workflow
-----------------------
- Start with the demo file.
- Choose the strongest channel.
- Run Detect Calls.
- For interactive threshold selection, click slightly above the baseline of
the envelope trace and below the tallest peaks.
- Save detections and inspect the saved *_detected.mat file.
Notes
-----
- Detection is intentionally simple and conservative.
- The overview plot uses max(abs(signal)) blocks for a better channel summary.
- This refactor avoids GUIDE and .fig dependencies.
Updated input support:
- The app now supports both .mat and .wav microphone files.
- WAV files are converted internally into the same fields the app expects (sig, fs, sig_t, num_ch_in_file, chsel).
- Prior detection results are saved and reloaded as <basefilename>_detected.mat for both MAT and WAV inputs.