Standalone Windows desktop app that batch-processes audio files (typically TTS voice clips) and transforms them into ASMR-style or hypnotic audio using automated effect chains. User picks input folder, selects presets across tabs, hits Start, gets processed files in the output folder. No audio knowledge required. Built for laypersons producing ASMR/hypnosis content in bulk.
By Reactorcore — https://reactorcore.itch.io/ | https://linktr.ee/reactorcore
| Component | Choice |
|---|---|
| Language | Python 3.11+ |
| GUI | ttkbootstrap with a fully custom registered theme ("asmrify") |
| Audio processing | FFmpeg via subprocess |
| Config | JSON (config.json, auto-created on first run) |
| Distribution | PyInstaller --onedir → ASMRifier.exe |
All processing phases are complete. Phase 4 (Polish & Release) is done:
- Error handling is layperson-friendly; corrupted/unreadable files are skipped with a clear message.
README.md,promo.md, andbuild_exe.batare present at the project root.assets/icon.icois populated.AUDIO_EXTENSIONSis defined once incore/batch.pyand imported where needed.
Next action: run build_exe.bat to produce release\ASMRifier\, zip it, upload to itch.io.
main.py — entry point
gui/
app.py — main window, header, footer, notebook
theme.py — PALETTE, font constants, _inject_asmrify_theme(), apply_theme()
tabs/
process.py — Process tab + _make_scrollable_tab() helper
main_preset.py — Main Preset tab
voice_pitch.py — Voice & Pitch tab
space_movement.py — Space & Movement tab
atmosphere.py — Atmosphere tab
tempo_intensity.py — Tempo & Intensity tab
binaural.py — Binaural tab
settings.py — Settings tab
utils/
config.py — load_config() / save_config()
ffmpeg_check.py — check_ffmpeg()
audio_probe.py — probe_audio() / to_temp_wav()
core/
presets.py — numeric preset dicts for all main types and addons
processor.py — build_filter_chain() / process_file()
batch.py — run_batch() / AUDIO_EXTENSIONS (canonical definition)
noise_gen.py — generate_noise()
lfo.py — generate_pitch_wobble_wav() / generate_pan_envelope_wav()
binaural.py — generate_binaural_wav() / generate_binaural_filter()
assets/
icon.ico — app icon (also present at project root for fallback)
Custom ttkbootstrap theme. Key facts:
_inject_asmrify_theme()must be called beforettk.Window()— seegui/app.py- All colors are in
PALETTEingui/theme.py— edit there, nowhere else - Palette: deep violet-plum backgrounds, soft lavender accents, desaturated semantic colors
- Font: Georgia (serif) throughout; Consolas for the log/mono widget
- See
!standard python RC/ttkbootstrap_custom_theme.mdfor the full pattern explanation
| File | Contents |
|---|---|
build_phases.md |
Phase checklist — check this to see what's done and what's next |
gui_spec.md |
Full tab/control layout spec |
audio_effects.md |
Processing chain, preset FFmpeg values, binaural spec (Phase 2 reference) |
misc_notes.md |
FFmpeg, PyInstaller, release notes |
To continue from where we left off: read CLAUDE.md and docs/build_phases.md.