Skip to content

rulingAnts/audio_concat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Audio Concatenator

A cross-platform desktop app for loading a folder of audio files, arranging them in any order, and joining them into a single WAV file with a short click sound between each file — useful for creating stimulus lists, demos, and audio databases.

Full documentation →


Features

  • Load a folder of audio files (WAV, MP3, FLAC, AIFF, OGG, M4A)
  • Drag-and-drop reordering with multi-select (Shift+Click, Ctrl/Cmd+Click)
  • Simple sort mode — sort by name, numerical order, date created/modified/accessed
  • Suffix Order — sub-sort files that share a base name by an ordered list of substring/regex patterns (designed for Dekereke databases where each stimulus has multiple tagged variants)
  • Advanced (Regex) sort mode — multi-layer regex sort with configurable capture groups, sort-as modes (natural text, numeric, alphabetical), and per-layer direction
  • Output bit depth: 16-bit (default), 24-bit, or 32-bit WAV
  • Non-blocking join (runs on a background thread)
  • Works as a plain Python script or as a PyInstaller portable app (Windows, macOS, Linux)

Requirements

pip install PySide6 pydub numpy

Running

python app.py

Building a portable app (PyInstaller)

pip install pyinstaller
pyinstaller --onefile app.py

Place ffmpeg (and optionally ffprobe) binaries inside bin/ before packaging so they are bundled automatically. See bin/README.md for the .spec snippet and where to download static builds.


Project structure

app.py            Main GUI (PySide6)
joiner.py         Audio join worker (pydub, numpy)
ffmpeg_utils.py   ffmpeg/ffprobe binary discovery
bin/              Placeholder for bundled ffmpeg binaries
docs/             GitHub Pages documentation site

License

GNU Affero General Public License v3.0 — see LICENSE.
Copyright 2026 Seth Johnston.

Built with assistance from Claude by Anthropic.

Packages

 
 
 

Contributors

Languages