Skip to content

Instantly share code, notes, and snippets.

@mumblequatch
mumblequatch / Render_Stale_Subproject_Proxies_Only.lua
Created May 18, 2026 15:44
Reaper Lua: refresh stale .rpp-PROX subproject proxies only (does NOT render the master). Companion to Render_Stale_Subproject_Proxies_Then_Master.lua.
-- Render_Stale_Subproject_Proxies_Only.lua
--
-- Run from a master project. Flow:
-- 1. If the master or any open referenced subproject tab is dirty, prompt
-- to save them all. (Subprojects MUST be saved -- their on-disk .rpp is
-- what gets rendered into the .rpp-PROX.)
-- 2. Build stale list from on-disk mtimes (.rpp newer than .rpp-PROX).
-- Subprojects that are currently dirty AND were NOT saved in step 1
-- are excluded -- we won't render an out-of-date on-disk version when
-- there are unsaved edits in memory.
@mumblequatch
mumblequatch / Jump_Between_Subproject_And_Parent_At_Cursor.lua
Created May 16, 2026 16:37
Reaper: solo-selected toggle + subproject/parent cursor jump
-- Jump between subproject and parent at the matching time position.
-- If the current project has a subproject item under the cursor, jump into
-- that subproject's tab at the corresponding internal time.
-- Otherwise, if the current project is itself referenced as a subproject
-- inside another open project, jump up to the parent at the mapped time.
local function get_source_path(take)
if not take then return nil end
local src = reaper.GetMediaItemTake_Source(take)
if not src then return nil end
@mumblequatch
mumblequatch / Overview_Compact_Zoom_To_Project.lua
Created May 15, 2026 23:48
Reaper: unsolo/unarm/deselect all tracks, compact view, jump to start, zoom out to fit project
-- Overview reset: unsolo, unarm, deselect, compact tracks,
-- jump to project start, zoom out to fit entire project.
reaper.Undo_BeginBlock()
reaper.PreventUIRefresh(1)
local track_count = reaper.CountTracks(0)
-- Per-track: unsolo, disarm record, set to minimum (compact) height
for i = 0, track_count - 1 do
@mumblequatch
mumblequatch / Lock_Unselected_Items.lua
Created May 12, 2026 18:57
REAPER ReaScript: toggle lock on all unselected items (item selection, not time selection)
-- Toggle lock on all unselected items in project
-- Based on ITEM selection (not time selection).
-- Selected items are never touched.
--
-- First run: locks every unselected item
-- Second run: unlocks every unselected item
-- (toggle is decided by whether all unselected items are currently locked)
function main()
local total = reaper.CountMediaItems(0)
@mumblequatch
mumblequatch / convert_to_prores_lt.sh
Created May 12, 2026 15:54
Convert video to ProRes 422 LT for editing in DaVinci Resolve. macOS. Opens Terminal with live percent/speed/ETA. Audio passthrough.
#!/bin/bash
# Convert video file(s) to ProRes 422 LT (.mov) for editing in Resolve.
# - Video: ProRes LT (profile 1), intra-frame, ~100 Mbps
# - Audio: passthrough (-c:a copy), bit-for-bit preserved
# - UI: opens a Terminal window with live percent / speed / ETA.
#
# Usage (dispatch): convert_to_prores_lt.sh <file> [file ...]
# Usage (worker, internal): convert_to_prores_lt.sh --worker <queue-file>
LOG="$HOME/Scripts/convert_to_prores_lt.log"
@mumblequatch
mumblequatch / heros-journey-reference.md
Created April 27, 2026 20:05
Hero's Journey Reference — Campbell, Vogler, and the structures that argue with both

The Hero's Journey — A Reference

Campbell's monomyth, Vogler's adaptation, and the structures that argue with both. Last updated 2026-04-27.

1. The Hero's Journey — Stages and Phases

Joseph Campbell's seventeen-stage monomyth (The Hero with a Thousand Faces, 1949), and Christopher Vogler's twelve-stage screenwriting adaptation (The Writer's Journey, 1992).

Campbell's seventeen stages

@mumblequatch
mumblequatch / lathe-handoff-2026-04-27.md
Created April 27, 2026 19:18
Lathe writing app — handoff snapshot 2026-04-27 (HEAD 9a0b21a, Phase 2 substantially complete)

Lathe — Handoff Snapshot (2026-04-27)

Desktop writing app at ~/code/lathe. Two-pane outline + Fountain editor; plain text on disk; no DB, no cloud.

Stack: Tauri 2.x (Rust) + Svelte 5 (no SvelteKit) + Vite + CodeMirror 6 + TypeScript.

HEAD: 9a0b21a4711c3833b48659d95a47d353969370dd Branch: master, working tree clean. Source zip: ~/Downloads/lathe-source-2026-04-27.zip (tracked files only — git archive HEAD, ~794K).

@mumblequatch
mumblequatch / Audio Fiction with Fred - Master Class Summary.md
Created April 27, 2026 14:25
Audio Fiction with Fred (FinalRune Academy) — 5-week master class notes

#audio-drama #audio-fiction #craft #finalrune #fred-greenhalgh #podcasting #audio-drama/history #audio-drama/writing #audio-drama/casting #audio-drama/directing #audio-drama/recording #audio-drama/editing #audio-drama/sound-design #audio-drama/mixing #audio-drama/foley #audio-drama/distribution #audio-drama/promotion #audio-drama/remote-recording #reaper #pro-tools #audition

Audio Fiction with Fred — Master Class Summary

Course Overview

Five-week online master class taught by Fred Greenhalgh (FinalRune Productions / Dagaz Media) in spring 2020, originally booked as a weekend workshop at University of Southern Maine and rebuilt as a Zoom course when COVID hit. Fred is a veteran indie audio drama producer based in Maine — credits include The Cleansed, Locke & Key (Audible adaptation, recorded with Stephen King), Dark Tome, The Mayan Crystal, Fey & Fiends, and Bloody Mess (the demo project he builds across the course). He came up under mentors William Dufris, Roger Gregg, Tom Lopez (ZBS),

@mumblequatch
mumblequatch / .gitignore
Last active June 29, 2026 17:56
Flux 2 -> fal.ai desktop pipeline (KM hotkey -> form -> fal.ai). v1.1: + LoRA train/inference, Describe->prompt, 7 models. Canonical: github.com/mumblequatch/scripts/tree/main/flux
.venv/
__pycache__/
*.log
state.json
.last_image.txt
*.kmmacros.bak
loras.json
@mumblequatch
mumblequatch / gist:be5b8896d0b0ce5c4173e4f6dd82053b
Created March 11, 2026 17:55
Auphonic batch concatenation: avoid 3-minute minimum billing
# Auphonic Batch Concatenation
## Problem
91% of Auphonic productions were hitting the 3-minute minimum billing floor,
wasting ~80% of credits on short audio clips (typically 3-60 seconds each).
## Solution
Added batch concatenation to `auphonic_automation.py`:
- Accumulates short WAV files arriving in `~/Dropbox/Auphonic/IN/`
- Interactive macOS dialogs show batch status and offer Wait/Send/Cancel