Expand description
DAW project file scanner supporting 14+ DAW formats.
Discovers Ableton, Logic, FL Studio, REAPER, Cubase, Pro Tools, Bitwig, Studio One, Reason, Audacity, GarageBand, Ardour, and DAWproject files. Handles macOS package directories (.logicx, .band) and validates GarageBand bundles by internal structure.
.ptx/.ptf are validated by the Pro Tools session BOF signature (PRONOM
fmt/1727 / fmt/1951; Library of Congress FDD fdd000639) so unrelated files
that reuse .ptx (e.g. NVIDIA CUDA assembly) are not listed as DAW projects.
readdir(3) reports symlinks as neither file nor directory; the walker
stats symlink targets and classifies them (broken symlinks are skipped).
ConstantsΒ§
- BACKUP_
DIRS π - Additional directories to skip when not including Ableton backups/crashes. Ableton stores auto-saved backup Live Sets in a βBackupβ folder and crash recovery sets in a βCrashβ folder inside each project directory.
- DAW_
EXTENSIONS π - File extensions for DAW project files. Includes both single-file formats and macOS bundle/package formats.
- PACKAGE_
EXTENSIONS π - Extensions that are macOS packages (directories with these extensions should be treated as files, not recursed into).
- PLUGIN_
BUNDLE_ πEXTENSIONS - Plugin bundle extensions β directories with these extensions should never be recursed into by the DAW scanner. They contain plugin code and presets, not DAW projects.
- PRO_
TOOLS_ πSESSION_ MAGIC - BOF bytes shared by Pro Tools
.ptx(v10+) and.ptf/.ptssession files. See UK National Archives PRONOM fmt/1727 / fmt/1951; LOC FDD fdd000639.
FunctionsΒ§
- daw_
name_ for_ format - ext_
matches - format_
size - get_
daw_ roots - get_
directory_ πsize - get_
directory_ πsize_ depth - is_
daw_ πextension_ lowercase Path::extension()lowercased, no dot β used by the file watcher to matchDAW_EXTENSIONS.- is_
package_ ext - is_
valid_ πband_ package - Validate that a .band directory is actually a GarageBand project.
Checks for
projectDatabinary plist (must start with βbplistβ) AND requires at least one other GarageBand-specific marker to eliminate false positives from other macOS bundles that happen to use .band extension. - is_
valid_ pro_ tools_ session_ file - Returns true if
pathis a regular file whose first bytes match the Pro Tools session format (same check for.ptxand.ptf). - normalize_
macos_ πpath - walk_
dir_ πparallel - walk_
for_ daw