chore(scripts): remove obsolete nerdletter numbers station scripts
Deleted multiple iterative versions of the numbers station MP4 generator scripts, including platform-specific and experimental variants, as they are no longer required.
This commit is contained in:
parent
203f7b1300
commit
9f23497156
@ -1,37 +0,0 @@
|
||||
#!/bin/bash
|
||||
# NERDLETTER NUMBERS STATION MP4 GENERATOR
|
||||
# Lincolnshire Poacher style — retro drama for the Day Book crowd
|
||||
|
||||
MESSAGE="$1" # e.g. "HLXIB JACJP ERXHN EFM"
|
||||
PAGE="$2" # e.g. 001
|
||||
EPISODE="${3:-01}" # Secret Message number
|
||||
|
||||
OUTFILE="nerdletter_secret_${EPISODE}_page${PAGE}.mp4"
|
||||
TMP_WAV="temp_voice.wav"
|
||||
TMP_VIDEO="temp_bg.mp4"
|
||||
|
||||
echo "=== NERDLETTER SECRET TRANSMISSION #${EPISODE} ==="
|
||||
echo "Page ${PAGE} — Generating spoken MP4..."
|
||||
|
||||
# 1. Create spoken audio (female voice, slow, numbers-station style)
|
||||
echo "NERDLETTER SECRET MESSAGE ${EPISODE}. USE DAY BOOK PAGE ${PAGE}. ${MESSAGE}" | \
|
||||
espeak-ng -ven+f3 -s120 -k20 -a 150 -w "$TMP_WAV" \
|
||||
--punct="" --sep=" " 2>/dev/null
|
||||
|
||||
# 2. Create simple retro video background (black screen with green text, 15 seconds)
|
||||
ffmpeg -f lavfi -i color=black:s=1280x720:d=15 \
|
||||
-vf "drawtext=font='Courier':fontsize=48:fontcolor=green@0.9:text='NERDLETTER SECRET TRANSMISSION #${EPISODE}':x=(w-text_w)/2:y=80,
|
||||
drawtext=font='Courier':fontsize=36:fontcolor=green@0.8:text='USE DAY BOOK PAGE ${PAGE}':x=(w-text_w)/2:y=160,
|
||||
drawtext=font='Courier':fontsize=42:fontcolor=lime:text='${MESSAGE}':x=(w-text_w)/2:y=280:box=1:boxcolor=black@0.6:boxborderw=10,
|
||||
drawtext=font='Courier':fontsize=28:fontcolor=green@0.7:text='DESTROY PAGE AFTER USE':x=(w-text_w)/2:y=620" \
|
||||
-c:v libx264 -t 15 -pix_fmt yuv420p "$TMP_VIDEO" -y
|
||||
|
||||
# 3. Combine voice + video
|
||||
ffmpeg -i "$TMP_VIDEO" -i "$TMP_WAV" -c:v copy -c:a aac -shortest "$OUTFILE" -y
|
||||
|
||||
# Cleanup
|
||||
rm -f "$TMP_WAV" "$TMP_VIDEO"
|
||||
|
||||
echo "✅ Done! → ${OUTFILE}"
|
||||
echo "Upload this to the website with the ciphertext text below it."
|
||||
|
||||
@ -1,36 +0,0 @@
|
||||
#!/bin/bash
|
||||
# NERDLETTER NUMBERS STATION MP4 GENERATOR — Letter-by-Letter Edition
|
||||
# Real cold-war numbers station pronunciation
|
||||
|
||||
MESSAGE="$1"
|
||||
PAGE="$2"
|
||||
EPISODE="${3:-01}"
|
||||
OUTFILE="nerdletter_secret_${EPISODE}_page${PAGE}.mp4"
|
||||
|
||||
echo "=== NERDLETTER SECRET TRANSMISSION #${EPISODE} ==="
|
||||
echo "Page ${PAGE} — Generating spoken MP4..."
|
||||
|
||||
# === CRITICAL FIX: Convert groups to spaced letters for proper pronunciation ===
|
||||
SPACED_MESSAGE=$(echo "$MESSAGE" | sed 's/\([A-Z]\)/\1 /g' | sed 's/ / /g')
|
||||
|
||||
# Spoken announcement (clear and dramatic)
|
||||
TEXT_TO_SPEAK="NERDLETTER SECRET MESSAGE ${EPISODE}. USE DAY BOOK PAGE ${PAGE}. ${SPACED_MESSAGE}"
|
||||
|
||||
echo "$TEXT_TO_SPEAK" | \
|
||||
espeak-ng -ven+f3 -s105 -k40 -a 180 -w temp_voice.wav --punct="" 2>/dev/null
|
||||
|
||||
# Video with retro green text
|
||||
ffmpeg -f lavfi -i color=black:s=1280x720:d=22 -c:v libx264 -t 22 -pix_fmt yuv420p temp_bg.mp4 -y
|
||||
|
||||
ffmpeg -i temp_bg.mp4 -i temp_voice.wav \
|
||||
-vf "drawtext=font='Courier':fontsize=52:fontcolor=green@0.95:text='NERDLETTER SECRET TRANSMISSION #${EPISODE}':x=(w-text_w)/2:y=80, \
|
||||
drawtext=font='Courier':fontsize=38:fontcolor=green@0.85:text='USE DAY BOOK PAGE ${PAGE}':x=(w-text_w)/2:y=170, \
|
||||
drawtext=font='Courier':fontsize=46:fontcolor=lime@0.95:text='${MESSAGE}':x=(w-text_w)/2:y=280:box=1:boxcolor=black@0.75:boxborderw=15, \
|
||||
drawtext=font='Courier':fontsize=32:fontcolor=green@0.75:text='DESTROY PAGE AFTER USE — SUBSCRIBERS ONLY':x=(w-text_w)/2:y=640" \
|
||||
-c:v libx264 -c:a aac -shortest "$OUTFILE" -y
|
||||
|
||||
# Cleanup
|
||||
rm -f temp_voice.wav temp_bg.mp4
|
||||
|
||||
echo "✅ Done! → ${OUTFILE}"
|
||||
echo "Now each group should be spoken letter-by-letter like a real numbers station."
|
||||
@ -1,31 +0,0 @@
|
||||
#!/bin/bash
|
||||
# NERDLETTER NUMBERS STATION MP4 GENERATOR — macOS Fixed
|
||||
# Lincolnshire Poacher style, using drawtext (more reliable on Homebrew)
|
||||
|
||||
MESSAGE="$1"
|
||||
PAGE="$2"
|
||||
EPISODE="${3:-01}"
|
||||
OUTFILE="nerdletter_secret_${EPISODE}_page${PAGE}.mp4"
|
||||
|
||||
echo "=== NERDLETTER SECRET TRANSMISSION #${EPISODE} ==="
|
||||
echo "Page ${PAGE} — Generating spoken MP4..."
|
||||
|
||||
# 1. Spoken audio (classic numbers station voice)
|
||||
echo "NERDLETTER SECRET MESSAGE ${EPISODE}. USE DAY BOOK PAGE ${PAGE}. ${MESSAGE}" | \
|
||||
espeak-ng -ven+f3 -s115 -k25 -a 160 -w temp_voice.wav --punct="" 2>/dev/null
|
||||
|
||||
# 2. Create background video + burn text with drawtext (no subtitles filter needed)
|
||||
ffmpeg -f lavfi -i color=black:s=1280x720:d=18 -c:v libx264 -t 18 -pix_fmt yuv420p temp_bg.mp4 -y
|
||||
|
||||
ffmpeg -i temp_bg.mp4 -i temp_voice.wav \
|
||||
-vf "drawtext=font='Courier New':fontsize=48:fontcolor=green@0.95:text='NERDLETTER SECRET TRANSMISSION #${EPISODE}':x=(w-text_w)/2:y=80, \
|
||||
drawtext=font='Courier New':fontsize=36:fontcolor=green@0.85:text='USE DAY BOOK PAGE ${PAGE}':x=(w-text_w)/2:y=160, \
|
||||
drawtext=font='Courier New':fontsize=42:fontcolor=lime@0.95:text='${MESSAGE}':x=(w-text_w)/2:y=260:box=1:boxcolor=black@0.7:boxborderw=12, \
|
||||
drawtext=font='Courier New':fontsize=28:fontcolor=green@0.7:text='DESTROY PAGE AFTER USE':x=(w-text_w)/2:y=620" \
|
||||
-c:v libx264 -c:a aac -shortest "$OUTFILE" -y
|
||||
|
||||
# Cleanup
|
||||
rm -f temp_voice.wav temp_bg.mp4
|
||||
|
||||
echo "✅ Done! → ${OUTFILE}"
|
||||
echo "Upload this MP4 + the text groups to the website."
|
||||
@ -1,41 +0,0 @@
|
||||
#!/bin/bash
|
||||
# NERDLETTER NUMBERS STATION MP4 GENERATOR — macOS friendly
|
||||
# Lincolnshire Poacher style for the retro crowd
|
||||
|
||||
MESSAGE="$1"
|
||||
PAGE="$2"
|
||||
EPISODE="${3:-01}"
|
||||
OUTFILE="nerdletter_secret_${EPISODE}_page${PAGE}.mp4"
|
||||
|
||||
echo "=== NERDLETTER SECRET TRANSMISSION #${EPISODE} ==="
|
||||
echo "Page ${PAGE} — Generating spoken MP4..."
|
||||
|
||||
# 1. Spoken audio (classic numbers-station female voice)
|
||||
echo "NERDLETTER SECRET MESSAGE ${EPISODE}. USE DAY BOOK PAGE ${PAGE}. ${MESSAGE}" | \
|
||||
espeak-ng -ven+f3 -s115 -k25 -a 160 -w temp_voice.wav --punct="" 2>/dev/null
|
||||
|
||||
# 2. Simple retro video (black background + green text) — no drawtext needed
|
||||
ffmpeg -f lavfi -i color=black:s=1280x720:d=18 -c:v libx264 -t 18 -pix_fmt yuv420p temp_bg.mp4 -y
|
||||
|
||||
# Overlay text using subtitles (much more reliable on Homebrew ffmpeg)
|
||||
cat > temp_sub.srt << EOF
|
||||
1
|
||||
00:00:01,000 --> 00:00:18,000
|
||||
NERDLETTER SECRET TRANSMISSION #${EPISODE}
|
||||
USE DAY BOOK PAGE ${PAGE}
|
||||
|
||||
${MESSAGE}
|
||||
|
||||
DESTROY PAGE AFTER USE
|
||||
EOF
|
||||
|
||||
# 3. Burn in subtitles + combine audio
|
||||
ffmpeg -i temp_bg.mp4 -i temp_voice.wav -vf subtitles=temp_sub.srt:force_style='Fontname=Courier New,Fontsize=42,PrimaryColour=&H00FF00&,BackColour=&H80000000&,BorderStyle=3' \
|
||||
-c:v libx264 -c:a aac -shortest "$OUTFILE" -y
|
||||
|
||||
# Cleanup
|
||||
rm -f temp_voice.wav temp_bg.mp4 temp_sub.srt
|
||||
|
||||
echo "✅ Done! → ${OUTFILE}"
|
||||
echo "Upload this MP4 to the website. Subscribers will feel like they're tuning into a real numbers station."
|
||||
|
||||
@ -1,54 +0,0 @@
|
||||
#!/bin/bash
|
||||
# NERDLETTER NUMBERS STATION MP4 GENERATOR — ULTIMATE DRAMA EDITION
|
||||
# Slow letter-by-letter + shortwave static + Lincolnshire Poacher intro
|
||||
|
||||
MESSAGE="$1"
|
||||
PAGE="$2"
|
||||
EPISODE="${3:-01}"
|
||||
OUTFILE="nerdletter_secret_${EPISODE}_page${PAGE}.mp4"
|
||||
|
||||
echo "=== NERDLETTER SECRET TRANSMISSION #${EPISODE} ==="
|
||||
echo "Page ${PAGE} — Generating spoken MP4 with full drama..."
|
||||
|
||||
# === 1. Spaced letters for slow, deliberate pronunciation ===
|
||||
SPACED=$(echo "$MESSAGE" | sed 's/\([A-Z]\)/\1 /g' | sed 's/ / /g')
|
||||
|
||||
# === 2. Full text to speak (very slow & spooky) ===
|
||||
TEXT_TO_SPEAK="NERDLETTER SECRET MESSAGE ${EPISODE}. USE DAY BOOK PAGE ${PAGE}. ${SPACED}"
|
||||
|
||||
echo "$TEXT_TO_SPEAK" | \
|
||||
espeak-ng -ven+f3 -s80 -k50 -a 200 -w voice_main.wav --punct="" 2>/dev/null
|
||||
|
||||
# === 3. Download / prepare assets (run once) ===
|
||||
if [ ! -f poacher_intro.wav ]; then
|
||||
echo "Downloading public-domain Lincolnshire Poacher intro (short 12-second clip)..."
|
||||
# Using a free direct link from The Conet Project style recording (public domain use)
|
||||
wget -q -O poacher_intro.wav "https://archive.org/download/The-Conet-Project/The%20Conet%20Project%20-%20Recordings%20of%20Shortwave%20Numbers%20Stations%20%281997%29%20%5B2013%20-%2015th%20Anniversary%20Bonus%20Disc%20Edition%5D%20%5BFLAC%5D/Disc%201/06%20-%20The%20Lincolnshire%20Poacher.flac" || \
|
||||
echo "Manual download needed — see note below"
|
||||
fi
|
||||
|
||||
if [ ! -f static.wav ]; then
|
||||
echo "Generating shortwave static..."
|
||||
ffmpeg -f lavfi -i "anoisesrc=d=25:c=0.3" -af "highpass=f=3000,lowpass=f=8000" -t 25 static.wav -y 2>/dev/null
|
||||
fi
|
||||
|
||||
# === 4. Mix audio: Poacher intro + static + voice ===
|
||||
ffmpeg -i poacher_intro.wav -i static.wav -i voice_main.wav \
|
||||
-filter_complex "[0:a]volume=0.65[a1];[1:a]volume=0.25[a2];[a1][a2]amix=inputs=2:duration=first[a3];[a3][2:a]amix=inputs=2:duration=first,volume=1.1" \
|
||||
-c:a pcm_s16le -y final_audio.wav 2>/dev/null
|
||||
|
||||
# === 5. Video with retro text ===
|
||||
ffmpeg -f lavfi -i color=black:s=1280x720:d=28 -c:v libx264 -t 28 -pix_fmt yuv420p temp_bg.mp4 -y
|
||||
|
||||
ffmpeg -i temp_bg.mp4 -i final_audio.wav \
|
||||
-vf "drawtext=font='Courier':fontsize=50:fontcolor=green@0.95:text='NERDLETTER SECRET TRANSMISSION #${EPISODE}':x=(w-text_w)/2:y=80, \
|
||||
drawtext=font='Courier':fontsize=36:fontcolor=green@0.85:text='USE DAY BOOK PAGE ${PAGE}':x=(w-text_w)/2:y=170, \
|
||||
drawtext=font='Courier':fontsize=44:fontcolor=lime@0.95:text='${MESSAGE}':x=(w-text_w)/2:y=270:box=1:boxcolor=black@0.75:boxborderw=15, \
|
||||
drawtext=font='Courier':fontsize=30:fontcolor=green@0.75:text='DESTROY PAGE AFTER USE — SUBSCRIBERS ONLY':x=(w-text_w)/2:y=640" \
|
||||
-c:v libx264 -c:a aac -shortest "$OUTFILE" -y
|
||||
|
||||
# Cleanup
|
||||
rm -f voice_main.wav final_audio.wav temp_bg.mp4
|
||||
|
||||
echo "✅ Done! → ${OUTFILE}"
|
||||
echo "Full cold-war numbers station experience achieved."
|
||||
@ -1,59 +0,0 @@
|
||||
#!/bin/bash
|
||||
# NERDLETTER NUMBERS STATION — FIXED LETTER-BY-LETTER + PAUSES
|
||||
|
||||
MESSAGE="$1"
|
||||
PAGE="$2"
|
||||
EPISODE="${3:-01}"
|
||||
OUTFILE="nerdletter_secret_${EPISODE}_page${PAGE}.mp4"
|
||||
|
||||
echo "=== NERDLETTER SECRET TRANSMISSION #${EPISODE} ==="
|
||||
|
||||
# 1. Intro voice
|
||||
INTRO="NERDLETTER SECRET MESSAGE ${EPISODE}. USE DAY BOOK PAGE ${PAGE}."
|
||||
echo "$INTRO" | espeak-ng -ven+f3 -s80 -k50 -a 200 -w intro.wav --punct="" 2>/dev/null
|
||||
|
||||
# 2. Build full groups voice letter-by-letter with pauses
|
||||
> groups_voice.wav # start fresh
|
||||
|
||||
for group in $MESSAGE; do
|
||||
echo "Processing group: $group"
|
||||
for ((i=0; i<${#group}; i++)); do
|
||||
letter="${group:$i:1}"
|
||||
echo "$letter" | espeak-ng -ven+f3 -s74 -k65 -a 210 -w temp.wav 2>/dev/null
|
||||
cat temp.wav >> groups_voice.wav
|
||||
rm temp.wav
|
||||
done
|
||||
# 1 second pause after each group
|
||||
ffmpeg -f lavfi -i "anullsrc=r=22050" -t 1.05 silence.wav -y 2>/dev/null
|
||||
cat silence.wav >> groups_voice.wav
|
||||
rm silence.wav
|
||||
done
|
||||
|
||||
# Combine intro + groups
|
||||
ffmpeg -i intro.wav -i groups_voice.wav -filter_complex "[0:a][1:a]concat=n=2:v=0:a=1" -c:a pcm_s16le -y voice.wav 2>/dev/null
|
||||
|
||||
echo "✅ Full voice track built (letter-by-letter with pauses)"
|
||||
|
||||
# 3. Static (if missing)
|
||||
if [ ! -f static.wav ]; then
|
||||
ffmpeg -f lavfi -i "anoisesrc=d=50:c=0.22" -af "highpass=f=2500,lowpass=f=9000,volume=0.22" -t 50 static.wav -y 2>/dev/null
|
||||
fi
|
||||
|
||||
# 4. Final mix: Poacher tune → Voice, static under everything
|
||||
ffmpeg -i poacher_intro.wav -i static.wav -filter_complex "[0:a][1:a]amix=inputs=2:duration=first" -c:a pcm_s16le -y tune_static.wav 2>/dev/null
|
||||
|
||||
ffmpeg -i tune_static.wav -i voice.wav -filter_complex "[0:a][1:a]concat=n=2:v=0:a=1" -c:a pcm_s16le -y final_audio.wav 2>/dev/null
|
||||
|
||||
# 5. Video
|
||||
DUR=48
|
||||
ffmpeg -f lavfi -i color=black:s=1280x720:d=$DUR -c:v libx264 -t $DUR -pix_fmt yuv420p temp_bg.mp4 -y
|
||||
|
||||
ffmpeg -i temp_bg.mp4 -i final_audio.wav \
|
||||
-vf "drawtext=font='Courier':fontsize=50:fontcolor=green@0.95:text='NERDLETTER SECRET TRANSMISSION #${EPISODE}':x=(w-text_w)/2:y=80, \
|
||||
drawtext=font='Courier':fontsize=36:fontcolor=green@0.85:text='USE DAY BOOK PAGE ${PAGE}':x=(w-text_w)/2:y=170, \
|
||||
drawtext=font='Courier':fontsize=44:fontcolor=lime@0.95:text='${MESSAGE}':x=(w-text_w)/2:y=270:box=1:boxcolor=black@0.75:boxborderw=15, \
|
||||
drawtext=font='Courier':fontsize=30:fontcolor=green@0.75:text='DESTROY PAGE AFTER USE — SUBSCRIBERS ONLY':x=(w-text_w)/2:y=640" \
|
||||
-c:v libx264 -c:a aac -shortest "$OUTFILE" -y
|
||||
|
||||
rm -f intro.wav groups_voice.wav tune_static.wav temp_bg.mp4
|
||||
echo "✅ DONE! → ${OUTFILE}"
|
||||
@ -1,58 +0,0 @@
|
||||
#!/bin/bash
|
||||
# NERDLETTER NUMBERS STATION — FINAL SEQUENCE EDITION
|
||||
# Poacher tune → Voice announcement → Static throughout
|
||||
|
||||
MESSAGE="$1"
|
||||
PAGE="$2"
|
||||
EPISODE="${3:-01}"
|
||||
OUTFILE="nerdletter_secret_${EPISODE}_page${PAGE}.mp4"
|
||||
|
||||
echo "=== NERDLETTER SECRET TRANSMISSION #${EPISODE} ==="
|
||||
echo "Building full sequence with Poacher intro first..."
|
||||
|
||||
# 1. Spaced letters for slow pronunciation
|
||||
SPACED=$(echo "$MESSAGE" | sed 's/\([A-Z]\)/\1 /g' | sed 's/ / /g')
|
||||
|
||||
TEXT_TO_SPEAK="NERDLETTER SECRET MESSAGE ${EPISODE}. USE DAY BOOK PAGE ${PAGE}. ${SPACED}"
|
||||
|
||||
echo "$TEXT_TO_SPEAK" | \
|
||||
espeak-ng -ven+f3 -s82 -k50 -a 200 -w voice.wav --punct="" 2>/dev/null
|
||||
|
||||
# 2. Ensure assets exist
|
||||
if [ ! -f poacher_intro.wav ]; then
|
||||
echo "⚠️ poacher_intro.wav not found — please add a 10-15 second clip manually."
|
||||
echo " (Download from The Conet Project and trim first 12 seconds)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f static.wav ]; then
|
||||
echo "Generating continuous shortwave static..."
|
||||
ffmpeg -f lavfi -i "anoisesrc=d=40:c=0.28" -af "highpass=f=2800,lowpass=f=8500,volume=0.22" -t 40 static.wav -y 2>/dev/null
|
||||
fi
|
||||
|
||||
# 3. Create sequenced audio: Poacher → Voice (with static under everything)
|
||||
ffmpeg -i poacher_intro.wav -i voice.wav -i static.wav \
|
||||
-filter_complex "
|
||||
[0:a]volume=0.75[poach];
|
||||
[1:a]volume=1.05[voice];
|
||||
[2:a]volume=0.28[stat];
|
||||
[poach][stat]amix=duration=first[a1];
|
||||
[a1][voice]acrossfade=d=1.2:o=1:c1=exp:c2=exp[a2];
|
||||
[stat][a2]amix=duration=longest,volume=1.1[final]
|
||||
" -c:a pcm_s16le -y final_audio.wav 2>/dev/null
|
||||
|
||||
# 4. Video (long enough for intro + voice)
|
||||
ffmpeg -f lavfi -i color=black:s=1280x720:d=32 -c:v libx264 -t 32 -pix_fmt yuv420p temp_bg.mp4 -y
|
||||
|
||||
ffmpeg -i temp_bg.mp4 -i final_audio.wav \
|
||||
-vf "drawtext=font='Courier':fontsize=50:fontcolor=green@0.95:text='NERDLETTER SECRET TRANSMISSION #${EPISODE}':x=(w-text_w)/2:y=80, \
|
||||
drawtext=font='Courier':fontsize=36:fontcolor=green@0.85:text='USE DAY BOOK PAGE ${PAGE}':x=(w-text_w)/2:y=170, \
|
||||
drawtext=font='Courier':fontsize=44:fontcolor=lime@0.95:text='${MESSAGE}':x=(w-text_w)/2:y=270:box=1:boxcolor=black@0.75:boxborderw=15, \
|
||||
drawtext=font='Courier':fontsize=30:fontcolor=green@0.75:text='DESTROY PAGE AFTER USE — SUBSCRIBERS ONLY':x=(w-text_w)/2:y=640" \
|
||||
-c:v libx264 -c:a aac -shortest "$OUTFILE" -y
|
||||
|
||||
# Cleanup
|
||||
rm -f voice.wav final_audio.wav temp_bg.mp4
|
||||
|
||||
echo "✅ Done! → ${OUTFILE}"
|
||||
echo "Sequence: Poacher tune first → Voice → Static throughout"
|
||||
@ -1,55 +0,0 @@
|
||||
#!/bin/bash
|
||||
# NERDLETTER NUMBERS STATION — SIMPLE & RELIABLE SEQUENCE
|
||||
# Poacher intro first → Voice → Static continuous underneath
|
||||
|
||||
MESSAGE="$1"
|
||||
PAGE="$2"
|
||||
EPISODE="${3:-01}"
|
||||
OUTFILE="nerdletter_secret_${EPISODE}_page${PAGE}.mp4"
|
||||
|
||||
echo "=== NERDLETTER SECRET TRANSMISSION #${EPISODE} ==="
|
||||
|
||||
# 1. Spaced letters + text
|
||||
SPACED=$(echo "$MESSAGE" | sed 's/\([A-Z]\)/\1 /g' | sed 's/ / /g')
|
||||
TEXT_TO_SPEAK="NERDLETTER SECRET MESSAGE ${EPISODE}. USE DAY BOOK PAGE ${PAGE}. ${SPACED}"
|
||||
|
||||
echo "$TEXT_TO_SPEAK" | espeak-ng -ven+f3 -s82 -k50 -a 200 -w voice.wav --punct="" 2>/dev/null
|
||||
|
||||
# 2. Make sure assets exist
|
||||
if [ ! -f poacher_intro.wav ]; then
|
||||
echo "❌ Missing poacher_intro.wav — add a 12-15 second clip"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f static.wav ]; then
|
||||
echo "Generating static..."
|
||||
ffmpeg -f lavfi -i "anoisesrc=d=40:c=0.25" -af "highpass=f=2800,lowpass=f=8500,volume=0.22" -t 40 static.wav -y 2>/dev/null
|
||||
fi
|
||||
|
||||
# 3. Simple sequential mix: Poacher → Voice, with static under both
|
||||
ffmpeg -i poacher_intro.wav -i voice.wav -i static.wav \
|
||||
-filter_complex "
|
||||
[0:a]volume=0.72[poach];
|
||||
[1:a]volume=1.05[voice];
|
||||
[2:a]volume=0.25[stat];
|
||||
[poach][stat]amix=duration=first[a1];
|
||||
[voice][stat]amix=duration=first[a2];
|
||||
[a1][a2]concat=v=0:a=1[out]
|
||||
" -map "[out]" -c:a pcm_s16le -y final_audio.wav 2>/dev/null
|
||||
|
||||
# 4. Video
|
||||
DURATION=32
|
||||
ffmpeg -f lavfi -i color=black:s=1280x720:d=$DURATION -c:v libx264 -t $DURATION -pix_fmt yuv420p temp_bg.mp4 -y
|
||||
|
||||
ffmpeg -i temp_bg.mp4 -i final_audio.wav \
|
||||
-vf "drawtext=font='Courier':fontsize=50:fontcolor=green@0.95:text='NERDLETTER SECRET TRANSMISSION #${EPISODE}':x=(w-text_w)/2:y=80, \
|
||||
drawtext=font='Courier':fontsize=36:fontcolor=green@0.85:text='USE DAY BOOK PAGE ${PAGE}':x=(w-text_w)/2:y=170, \
|
||||
drawtext=font='Courier':fontsize=44:fontcolor=lime@0.95:text='${MESSAGE}':x=(w-text_w)/2:y=270:box=1:boxcolor=black@0.75:boxborderw=15, \
|
||||
drawtext=font='Courier':fontsize=30:fontcolor=green@0.75:text='DESTROY PAGE AFTER USE — SUBSCRIBERS ONLY':x=(w-text_w)/2:y=640" \
|
||||
-c:v libx264 -c:a aac -shortest "$OUTFILE" -y
|
||||
|
||||
# Cleanup
|
||||
rm -f voice.wav final_audio.wav temp_bg.mp4
|
||||
|
||||
echo "✅ Done! → ${OUTFILE}"
|
||||
echo "Sequence: Poacher tune → Voice announcement, static throughout"
|
||||
@ -1,55 +0,0 @@
|
||||
#!/bin/bash
|
||||
# NERDLETTER NUMBERS STATION — RELIABLE SEQUENCE
|
||||
# Poacher intro (first) → Voice (letter-by-letter) → Static continuous
|
||||
|
||||
MESSAGE="$1"
|
||||
PAGE="$2"
|
||||
EPISODE="${3:-01}"
|
||||
OUTFILE="nerdletter_secret_${EPISODE}_page${PAGE}.mp4"
|
||||
|
||||
echo "=== NERDLETTER SECRET TRANSMISSION #${EPISODE} ==="
|
||||
|
||||
# 1. Prepare voice (slow letter-by-letter)
|
||||
SPACED=$(echo "$MESSAGE" | sed 's/\([A-Z]\)/\1 /g' | sed 's/ / /g')
|
||||
TEXT_TO_SPEAK="NERDLETTER SECRET MESSAGE ${EPISODE}. USE DAY BOOK PAGE ${PAGE}. ${SPACED}"
|
||||
|
||||
echo "$TEXT_TO_SPEAK" | espeak-ng -ven+f3 -s80 -k55 -a 200 -w voice.wav --punct="" 2>/dev/null
|
||||
|
||||
# 2. Assets check
|
||||
if [ ! -f poacher_intro.wav ]; then
|
||||
echo "❌ Missing poacher_intro.wav — add a 10-15 second clip"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f static.wav ]; then
|
||||
echo "Generating continuous static..."
|
||||
ffmpeg -f lavfi -i "anoisesrc=d=45:c=0.22" -af "highpass=f=2500,lowpass=f=9000,volume=0.20" -t 45 static.wav -y 2>/dev/null
|
||||
fi
|
||||
|
||||
# 3. Reliable audio mix: Poacher → Voice, static under everything
|
||||
ffmpeg -i poacher_intro.wav -i voice.wav -i static.wav \
|
||||
-filter_complex "
|
||||
[0:a]volume=0.70[poach];
|
||||
[1:a]volume=1.10[voice];
|
||||
[2:a]volume=0.24[stat];
|
||||
[poach][stat]amix=duration=first:dropout_transition=2[a1];
|
||||
[voice][stat]amix=duration=first:dropout_transition=2[a2];
|
||||
[a1][a2]concat=v=0:a=1[out]
|
||||
" -map "[out]" -c:a pcm_s16le -y final_audio.wav 2>/dev/null
|
||||
|
||||
# 4. Video (long enough)
|
||||
DUR=34
|
||||
ffmpeg -f lavfi -i color=black:s=1280x720:d=$DUR -c:v libx264 -t $DUR -pix_fmt yuv420p temp_bg.mp4 -y
|
||||
|
||||
ffmpeg -i temp_bg.mp4 -i final_audio.wav \
|
||||
-vf "drawtext=font='Courier':fontsize=50:fontcolor=green@0.95:text='NERDLETTER SECRET TRANSMISSION #${EPISODE}':x=(w-text_w)/2:y=80, \
|
||||
drawtext=font='Courier':fontsize=36:fontcolor=green@0.85:text='USE DAY BOOK PAGE ${PAGE}':x=(w-text_w)/2:y=170, \
|
||||
drawtext=font='Courier':fontsize=44:fontcolor=lime@0.95:text='${MESSAGE}':x=(w-text_w)/2:y=270:box=1:boxcolor=black@0.75:boxborderw=15, \
|
||||
drawtext=font='Courier':fontsize=30:fontcolor=green@0.75:text='DESTROY PAGE AFTER USE — SUBSCRIBERS ONLY':x=(w-text_w)/2:y=640" \
|
||||
-c:v libx264 -c:a aac -shortest "$OUTFILE" -y
|
||||
|
||||
# Cleanup
|
||||
rm -f voice.wav final_audio.wav temp_bg.mp4
|
||||
|
||||
echo "✅ Done! → ${OUTFILE}"
|
||||
echo "Poacher first → Voice → Static throughout"
|
||||
@ -1,51 +0,0 @@
|
||||
#!/bin/bash
|
||||
# NERDLETTER NUMBERS STATION — SUPER SIMPLE & RELIABLE
|
||||
# Step-by-step mix so we can see exactly what’s happening
|
||||
|
||||
MESSAGE="$1"
|
||||
PAGE="$2"
|
||||
EPISODE="${3:-01}"
|
||||
OUTFILE="nerdletter_secret_${EPISODE}_page${PAGE}.mp4"
|
||||
|
||||
echo "=== NERDLETTER SECRET TRANSMISSION #${EPISODE} ==="
|
||||
|
||||
# 1. Voice track (slow letter-by-letter)
|
||||
SPACED=$(echo "$MESSAGE" | sed 's/\([A-Z]\)/\1 /g' | sed 's/ / /g')
|
||||
TEXT_TO_SPEAK="NERDLETTER SECRET MESSAGE ${EPISODE}. USE DAY BOOK PAGE ${PAGE}. ${SPACED}"
|
||||
|
||||
echo "$TEXT_TO_SPEAK" | espeak-ng -ven+f3 -s78 -k60 -a 210 -w voice.wav --punct="" 2>/dev/null
|
||||
echo "✅ Voice track created ($(wc -c < voice.wav) bytes)"
|
||||
|
||||
# 2. Static
|
||||
if [ ! -f static.wav ]; then
|
||||
echo "Generating static..."
|
||||
ffmpeg -f lavfi -i "anoisesrc=d=45:c=0.22" -af "highpass=f=2500,lowpass=f=9000,volume=0.20" -t 45 static.wav -y 2>/dev/null
|
||||
fi
|
||||
|
||||
# 3. Mix in TWO simple steps
|
||||
echo "Mixing Poacher + Voice + Static..."
|
||||
|
||||
# Step 3a: Poacher + Static
|
||||
ffmpeg -i poacher_intro.wav -i static.wav -filter_complex "[0:a][1:a]amix=inputs=2:duration=first:dropout_transition=3" -c:a pcm_s16le -y poacher_static.wav 2>/dev/null
|
||||
|
||||
# Step 3b: Add voice after Poacher ends
|
||||
ffmpeg -i poacher_static.wav -i voice.wav -filter_complex "[0:a][1:a]concat=n=2:v=0:a=1" -c:a pcm_s16le -y final_audio.wav 2>/dev/null
|
||||
|
||||
echo "✅ Final audio created ($(wc -c < final_audio.wav) bytes)"
|
||||
|
||||
# 4. Video
|
||||
DUR=38
|
||||
ffmpeg -f lavfi -i color=black:s=1280x720:d=$DUR -c:v libx264 -t $DUR -pix_fmt yuv420p temp_bg.mp4 -y
|
||||
|
||||
ffmpeg -i temp_bg.mp4 -i final_audio.wav \
|
||||
-vf "drawtext=font='Courier':fontsize=50:fontcolor=green@0.95:text='NERDLETTER SECRET TRANSMISSION #${EPISODE}':x=(w-text_w)/2:y=80, \
|
||||
drawtext=font='Courier':fontsize=36:fontcolor=green@0.85:text='USE DAY BOOK PAGE ${PAGE}':x=(w-text_w)/2:y=170, \
|
||||
drawtext=font='Courier':fontsize=44:fontcolor=lime@0.95:text='${MESSAGE}':x=(w-text_w)/2:y=270:box=1:boxcolor=black@0.75:boxborderw=15, \
|
||||
drawtext=font='Courier':fontsize=30:fontcolor=green@0.75:text='DESTROY PAGE AFTER USE — SUBSCRIBERS ONLY':x=(w-text_w)/2:y=640" \
|
||||
-c:v libx264 -c:a aac -shortest "$OUTFILE" -y
|
||||
|
||||
# Cleanup
|
||||
rm -f voice.wav poacher_static.wav temp_bg.mp4
|
||||
|
||||
echo "✅ Done! → ${OUTFILE}"
|
||||
echo "Check the length of final_audio.wav — it should be much longer than just the Poacher tune."
|
||||
@ -1,36 +0,0 @@
|
||||
#!/bin/bash
|
||||
# NERDLETTER — CLEAN TUNE + VOICE + STATIC
|
||||
|
||||
MESSAGE="$1"
|
||||
PAGE="$2"
|
||||
EPISODE="${3:-01}"
|
||||
OUTFILE="nerdletter_secret_${EPISODE}_page${PAGE}.mp4"
|
||||
|
||||
SPACED=$(echo "$MESSAGE" | sed 's/\([A-Z]\)/\1 /g' | sed 's/ / /g')
|
||||
TEXT_TO_SPEAK="NERDLETTER SECRET MESSAGE ${EPISODE}. USE DAY BOOK PAGE ${PAGE}. ${SPACED}"
|
||||
|
||||
echo "$TEXT_TO_SPEAK" | espeak-ng -ven+f3 -s78 -k60 -a 210 -w voice.wav --punct="" 2>/dev/null
|
||||
|
||||
# Mix: Tune → Voice, static underneath
|
||||
ffmpeg -i poacher_intro.wav -i voice.wav -i static.wav \
|
||||
-filter_complex "
|
||||
[0:a]volume=0.65[tune];
|
||||
[1:a]volume=1.15[voice];
|
||||
[2:a]volume=0.22[stat];
|
||||
[tune][stat]amix=duration=first[a1];
|
||||
[voice][stat]amix=duration=first[a2];
|
||||
[a1][a2]concat=n=2:v=0:a=1[out]
|
||||
" -map "[out]" -c:a pcm_s16le -y final_audio.wav 2>/dev/null
|
||||
|
||||
DUR=38
|
||||
ffmpeg -f lavfi -i color=black:s=1280x720:d=$DUR -c:v libx264 -t $DUR -pix_fmt yuv420p temp_bg.mp4 -y
|
||||
|
||||
ffmpeg -i temp_bg.mp4 -i final_audio.wav \
|
||||
-vf "drawtext=font='Courier':fontsize=50:fontcolor=green@0.95:text='NERDLETTER SECRET TRANSMISSION #${EPISODE}':x=(w-text_w)/2:y=80, \
|
||||
drawtext=font='Courier':fontsize=36:fontcolor=green@0.85:text='USE DAY BOOK PAGE ${PAGE}':x=(w-text_w)/2:y=170, \
|
||||
drawtext=font='Courier':fontsize=44:fontcolor=lime@0.95:text='${MESSAGE}':x=(w-text_w)/2:y=270:box=1:boxcolor=black@0.75:boxborderw=15, \
|
||||
drawtext=font='Courier':fontsize=30:fontcolor=green@0.75:text='DESTROY PAGE AFTER USE — SUBSCRIBERS ONLY':x=(w-text_w)/2:y=640" \
|
||||
-c:v libx264 -c:a aac -shortest "$OUTFILE" -y
|
||||
|
||||
rm -f voice.wav temp_bg.mp4
|
||||
echo "✅ Done! → ${OUTFILE}"
|
||||
@ -1,46 +0,0 @@
|
||||
#!/bin/bash
|
||||
# NERDLETTER NUMBERS STATION — FINAL PERFECT VERSION
|
||||
|
||||
MESSAGE="$1"
|
||||
PAGE="$2"
|
||||
EPISODE="${3:-01}"
|
||||
OUTFILE="nerdletter_secret_${EPISODE}_page${PAGE}.mp4"
|
||||
|
||||
echo "=== NERDLETTER SECRET TRANSMISSION #${EPISODE} ==="
|
||||
|
||||
# 1. Create voice with 1-second pauses between groups
|
||||
SPACED_GROUPS=$(echo "$MESSAGE" | sed 's/\([A-Z]\{5\}\)/\1 /g' | sed 's/ / /g')
|
||||
TEXT_TO_SPEAK="NERDLETTER SECRET MESSAGE ${EPISODE}. USE DAY BOOK PAGE ${PAGE}. <break time=\"800ms\"/> ${SPACED_GROUPS// / <break time=\"1000ms\"/> }"
|
||||
|
||||
echo "$TEXT_TO_SPEAK" | espeak-ng -ven+f3 -s76 -k55 -a 205 -w voice.wav --punct="" --ssml 2>/dev/null
|
||||
|
||||
# 2. Assets
|
||||
if [ ! -f static.wav ]; then
|
||||
ffmpeg -f lavfi -i "anoisesrc=d=50:c=0.22" -af "highpass=f=2500,lowpass=f=9000,volume=0.20" -t 50 static.wav -y 2>/dev/null
|
||||
fi
|
||||
|
||||
# 3. Mix with gentle overlap
|
||||
ffmpeg -i poacher_intro.wav -i voice.wav -i static.wav \
|
||||
-filter_complex "
|
||||
[0:a]volume=0.68,atrim=0:14[a0]; # tune ~14 seconds
|
||||
[1:a]volume=1.12[a1];
|
||||
[2:a]volume=0.23[stat];
|
||||
[a0][stat]amix=duration=first[a_tune];
|
||||
[a1][stat]amix=duration=first[a_voice];
|
||||
[a_tune][a_voice]acrossfade=d=2.5:o=1[cross];
|
||||
[cross][stat]amix=duration=longest[out]
|
||||
" -map "[out]" -c:a pcm_s16le -y final_audio.wav 2>/dev/null
|
||||
|
||||
# 4. Video
|
||||
DUR=42
|
||||
ffmpeg -f lavfi -i color=black:s=1280x720:d=$DUR -c:v libx264 -t $DUR -pix_fmt yuv420p temp_bg.mp4 -y
|
||||
|
||||
ffmpeg -i temp_bg.mp4 -i final_audio.wav \
|
||||
-vf "drawtext=font='Courier':fontsize=50:fontcolor=green@0.95:text='NERDLETTER SECRET TRANSMISSION #${EPISODE}':x=(w-text_w)/2:y=80, \
|
||||
drawtext=font='Courier':fontsize=36:fontcolor=green@0.85:text='USE DAY BOOK PAGE ${PAGE}':x=(w-text_w)/2:y=170, \
|
||||
drawtext=font='Courier':fontsize=44:fontcolor=lime@0.95:text='${MESSAGE}':x=(w-text_w)/2:y=270:box=1:boxcolor=black@0.75:boxborderw=15, \
|
||||
drawtext=font='Courier':fontsize=30:fontcolor=green@0.75:text='DESTROY PAGE AFTER USE — SUBSCRIBERS ONLY':x=(w-text_w)/2:y=640" \
|
||||
-c:v libx264 -c:a aac -shortest "$OUTFILE" -y
|
||||
|
||||
rm -f voice.wav temp_bg.mp4
|
||||
echo "✅ Done! → ${OUTFILE}"
|
||||
@ -1,44 +0,0 @@
|
||||
#!/bin/bash
|
||||
# NERDLETTER NUMBERS STATION — ULTRA SIMPLE & RELIABLE FINAL VERSION
|
||||
|
||||
MESSAGE="$1"
|
||||
PAGE="$2"
|
||||
EPISODE="${3:-01}"
|
||||
OUTFILE="nerdletter_secret_${EPISODE}_page${PAGE}.mp4"
|
||||
|
||||
echo "=== NERDLETTER SECRET TRANSMISSION #${EPISODE} ==="
|
||||
|
||||
# 1. Voice with pauses between groups
|
||||
SPACED=$(echo "$MESSAGE" | sed 's/\([A-Z]\{5\}\)/\1 /g')
|
||||
TEXT_TO_SPEAK="NERDLETTER SECRET MESSAGE ${EPISODE}. USE DAY BOOK PAGE ${PAGE}. ${SPACED}"
|
||||
|
||||
echo "$TEXT_TO_SPEAK" | espeak-ng -ven+f3 -s76 -k60 -a 210 -w voice.wav --punct="" 2>/dev/null
|
||||
echo "✅ Voice created"
|
||||
|
||||
# 2. Mix tune + voice + static in simple steps
|
||||
echo "Mixing audio..."
|
||||
|
||||
# Tune + static
|
||||
ffmpeg -i poacher_intro.wav -i static.wav -filter_complex "[0:a][1:a]amix=inputs=2:duration=first" -c:a pcm_s16le -y tune_static.wav -y 2>/dev/null
|
||||
|
||||
# Append voice after tune
|
||||
ffmpeg -i tune_static.wav -i voice.wav -filter_complex "[0:a][1:a]concat=n=2:v=0:a=1" -c:a pcm_s16le -y final_audio.wav 2>/dev/null
|
||||
|
||||
echo "✅ Final audio ready ($(du -h final_audio.wav | cut -f1))"
|
||||
|
||||
# 3. Video
|
||||
DUR=42
|
||||
ffmpeg -f lavfi -i color=black:s=1280x720:d=$DUR -c:v libx264 -t $DUR -pix_fmt yuv420p temp_bg.mp4 -y
|
||||
|
||||
ffmpeg -i temp_bg.mp4 -i final_audio.wav \
|
||||
-vf "drawtext=font='Courier':fontsize=50:fontcolor=green@0.95:text='NERDLETTER SECRET TRANSMISSION #${EPISODE}':x=(w-text_w)/2:y=80, \
|
||||
drawtext=font='Courier':fontsize=36:fontcolor=green@0.85:text='USE DAY BOOK PAGE ${PAGE}':x=(w-text_w)/2:y=170, \
|
||||
drawtext=font='Courier':fontsize=44:fontcolor=lime@0.95:text='${MESSAGE}':x=(w-text_w)/2:y=270:box=1:boxcolor=black@0.75:boxborderw=15, \
|
||||
drawtext=font='Courier':fontsize=30:fontcolor=green@0.75:text='DESTROY PAGE AFTER USE — SUBSCRIBERS ONLY':x=(w-text_w)/2:y=640" \
|
||||
-c:v libx264 -c:a aac -shortest "$OUTFILE" -y
|
||||
|
||||
# Cleanup
|
||||
rm -f voice.wav tune_static.wav temp_bg.mp4
|
||||
|
||||
echo "✅ DONE! → ${OUTFILE}"
|
||||
echo "Play it and enjoy the full numbers-station experience."
|
||||
@ -1,55 +0,0 @@
|
||||
|
||||
#!/bin/bash
|
||||
# NERDLETTER NUMBERS STATION — MAXIMUM RELIABILITY VERSION
|
||||
|
||||
MESSAGE="$1"
|
||||
PAGE="$2"
|
||||
EPISODE="${3:-01}"
|
||||
OUTFILE="nerdletter_secret_${EPISODE}_page${PAGE}.mp4"
|
||||
|
||||
echo "=== NERDLETTER SECRET TRANSMISSION #${EPISODE} ==="
|
||||
|
||||
# 1. Build voice by speaking each letter individually + long pauses between groups
|
||||
VOICE_TEXT="NERDLETTER SECRET MESSAGE ${EPISODE}. USE DAY BOOK PAGE ${PAGE}."
|
||||
echo "$VOICE_TEXT" | espeak-ng -ven+f3 -s78 -k60 -a 200 -w intro_voice.wav --punct="" 2>/dev/null
|
||||
|
||||
# Add each group letter-by-letter with pauses
|
||||
for group in $MESSAGE; do
|
||||
for ((i=0; i<${#group}; i++)); do
|
||||
letter="${group:$i:1}"
|
||||
echo "$letter" | espeak-ng -ven+f3 -s72 -k70 -a 210 -w temp_letter.wav --punct="" 2>/dev/null
|
||||
cat temp_letter.wav >> groups_voice.wav
|
||||
rm -f temp_letter.wav
|
||||
done
|
||||
# 1-second pause after each group
|
||||
ffmpeg -f lavfi -i "anullsrc=r=22050" -t 1.0 silence.wav -y 2>/dev/null
|
||||
cat silence.wav >> groups_voice.wav
|
||||
rm -f silence.wav
|
||||
done
|
||||
|
||||
# Combine intro + groups
|
||||
ffmpeg -i intro_voice.wav -i groups_voice.wav -filter_complex "[0:a][1:a]concat=n=2:v=0:a=1" -c:a pcm_s16le -y voice.wav 2>/dev/null
|
||||
|
||||
echo "✅ Voice track built letter-by-letter with pauses"
|
||||
|
||||
# 2. Mix with tune + static
|
||||
ffmpeg -i poacher_intro.wav -i static.wav -filter_complex "[0:a][1:a]amix=inputs=2:duration=first" -c:a pcm_s16le -y tune_static.wav 2>/dev/null
|
||||
|
||||
ffmpeg -i tune_static.wav -i voice.wav -filter_complex "[0:a][1:a]concat=n=2:v=0:a=1" -c:a pcm_s16le -y final_audio.wav 2>/dev/null
|
||||
|
||||
# 3. Video
|
||||
DUR=45
|
||||
ffmpeg -f lavfi -i color=black:s=1280x720:d=$DUR -c:v libx264 -t $DUR -pix_fmt yuv420p temp_bg.mp4 -y
|
||||
|
||||
ffmpeg -i temp_bg.mp4 -i final_audio.wav \
|
||||
-vf "drawtext=font='Courier':fontsize=50:fontcolor=green@0.95:text='NERDLETTER SECRET TRANSMISSION #${EPISODE}':x=(w-text_w)/2:y=80, \
|
||||
drawtext=font='Courier':fontsize=36:fontcolor=green@0.85:text='USE DAY BOOK PAGE ${PAGE}':x=(w-text_w)/2:y=170, \
|
||||
drawtext=font='Courier':fontsize=44:fontcolor=lime@0.95:text='${MESSAGE}':x=(w-text_w)/2:y=270:box=1:boxcolor=black@0.75:boxborderw=15, \
|
||||
drawtext=font='Courier':fontsize=30:fontcolor=green@0.75:text='DESTROY PAGE AFTER USE — SUBSCRIBERS ONLY':x=(w-text_w)/2:y=640" \
|
||||
-c:v libx264 -c:a aac -shortest "$OUTFILE" -y
|
||||
|
||||
# Cleanup
|
||||
rm -f intro_voice.wav groups_voice.wav tune_static.wav temp_bg.mp4
|
||||
|
||||
echo "✅ DONE! → ${OUTFILE}"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user