Upgrade Whisper to distil-large-v3, fix caller identity confusion, sort clips list

- Whisper base → distil-large-v3 for much better live transcription accuracy
- Add context hints to transcription (caller name, screening status)
- Increase beam_size 3→5 for better decoding
- Add explicit role clarification in caller system prompt so LLM knows Luke is the host
- Prefix host messages with [Host Luke] in LLM conversation
- Fix upload_clips episode list sorting (natural numeric order)
- Episodes 26-28 transcripts, data updates, misc fixes

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-05 12:46:51 -07:00
parent 6eeab58464
commit 0bdac16250
15 changed files with 1410 additions and 212 deletions

View File

@@ -3,6 +3,7 @@
import uuid
import asyncio
import base64
import subprocess
import threading
import traceback
from dataclasses import dataclass, field
@@ -146,7 +147,7 @@ def _randomize_callers():
# Get returning callers first so we can exclude their names from random pool
returning = []
try:
returning = regular_caller_service.get_returning_callers(random.randint(0, 1))
returning = regular_caller_service.get_returning_callers(random.randint(1, 2))
except Exception as e:
print(f"[Regulars] Failed to get returning callers: {e}")
@@ -556,6 +557,12 @@ PROBLEMS = [
"stole a garden gnome from someone's yard as a joke ten years ago and has been moving it around their house ever since — their spouse thinks they bought it",
"has been writing one-star Yelp reviews for their ex's business under fake names and just found out their ex figured out it's them",
"catfished their own spouse to see if they'd cheat — and they did, immediately",
"created a fake dating profile using their own photos but a completely different name and life story — the fake version of them gets ten times the matches and they're starting to resent their actual life",
"has been breaking into their own workplace after hours to sleep there because their home life is so unbearable — they've been doing it for three months and security hasn't noticed because they know the camera blind spots",
"joined a grief support group for widows even though their spouse is alive — they just wanted to feel something and now they're the most popular person in the group and they've started believing their own lies",
"has been mailing anonymous letters to people in their town telling them secrets about their neighbors that are all true — they call it a public service and they've sent over forty letters",
"keyed their own car and filed an insurance claim blaming a coworker they hate — the insurance company investigated, the coworker got fired, and they got a brand new paint job",
"has been calling in fake pizza orders to their ex's address three times a week for six months — the ex posted about it on social media begging for it to stop and they watched the post go viral while eating one of the pizzas",
# Existential and philosophical crises
"had a near-death experience during a routine surgery and now they can't shake the feeling that nothing they do at work matters",
@@ -618,6 +625,49 @@ PROBLEMS = [
"their spouse wants to put their dog down because of mounting vet bills but the dog still seems happy — they took out a secret credit card to keep paying and the balance is $4,000",
"turned down a promotion because it would mean managing their best friend and they knew it would ruin the friendship — now someone terrible got the job and everyone blames them",
# --- Ethically impossible / no right answer ---
"is a nurse who accidentally gave a patient the wrong dosage three months ago — nothing happened, the patient is fine, but they never reported it and now there's a safety audit and they have to decide whether to come clean or let it go",
"has been the anonymous donor keeping a local family afloat after their house fire — just found out the father set the fire for insurance money and the family doesn't know they know",
"their dying mother confessed that their father isn't their biological dad — now they have to decide whether to tell their father, who has been the best parent imaginable, or carry this secret to protect him",
"caught their best friend's husband hitting on a 19-year-old at a bar — the friend is eight months pregnant and they don't know if telling her right now would do more harm than good",
"runs a small landlord operation and has a single mom tenant who's three months behind on rent — they need the money to pay their own mortgage but evicting her means her kids end up in a shelter",
"found out the charity they've been volunteering at for five years has been skimming donations — the charity still does genuine good in the community and reporting it would shut the whole thing down",
"is a teacher who caught their best student cheating on the exam that determines a full-ride scholarship — the kid comes from nothing and this is their only way out, but other kids played fair",
"their brother got sober and is making amends, but one of the people he hurt most refuses to forgive him and it's derailing his recovery — they're thinking about confronting the person and they know it's not their place",
"was the driver in a car accident that killed their best friend fifteen years ago — they were sober, it wasn't their fault, but they've never been able to shake the feeling that they could have reacted faster, and they just got invited to the friend's daughter's wedding",
"discovered their terminally ill spouse has been secretly hoarding painkillers and they're pretty sure they know why — they can't bring themselves to confront it because part of them understands",
"has been pretending to still be religious for twenty years because their entire family, social life, and community is built around their church — their spouse just asked them to become a deacon and they feel like they're drowning in the lie",
"their adult daughter cut them off two years ago and they genuinely don't understand why — they just got a letter from her therapist explaining the ways they caused harm and they recognize some of it but think half of it is unfair",
"accidentally saw a coworker's medical results on a shared printer — terminal diagnosis, maybe six months — the coworker hasn't told anyone at work and keeps talking about their five-year plan",
"raised their grandchild since birth because their own kid was a mess — the kid got clean and wants the child back and legally has every right, but the grandchild calls them mom and doesn't really know the biological parent",
"is a cop who pulled over a fellow officer driving drunk with his kids in the car — if they report it the guy loses everything including custody, if they don't report it and something happens it's on them",
"found out their deceased spouse had an affair that produced a child — the child is now thirteen, has no father figure, and showed up at their door after finding out the truth through a DNA test",
"put their mother in a memory care facility and she begs to come home every visit — the doctors say she needs to be there, the guilt is destroying them, and last week she looked at them and said 'I thought you loved me'",
"their teenage kid came out to them and they said all the right things but they're struggling with it privately and they feel like a fraud for performing acceptance they haven't fully gotten to yet — and they hate themselves for that",
"was the whistleblower who shut down a factory that was poisoning the water supply — did the right thing, saved lives, but 200 people lost their jobs in a town with nothing else, and those people's kids are the ones who suffer",
"forgave the drunk driver who killed their son because their faith demanded it — went public with the forgiveness, everyone called them a saint — but at 2am they fantasize about hurting the driver and they think the forgiveness was a performance they can't take back",
"runs a family business and just realized their father has been cooking the books for decades — reporting it means their dad goes to prison at 74, not reporting it means they're now complicit, and the money paid for their college and their house",
"adopted a child from overseas and recently learned the adoption agency was trafficking kids — their child was likely taken from a family that wanted them, and they've raised this kid for eight years and love them completely",
"has been the sole caretaker for their disabled sibling for fifteen years and they're burned out, resentful, and starting to hate someone they love — they fantasize about leaving and the shame of that thought is eating them alive",
"their father was a genuinely terrible person who hurt a lot of people — he died last week and they're grieving hard and everyone around them keeps saying 'you're better off' and they want to scream because grief doesn't work that way",
"testified against a man who went to prison for twelve years — they were certain at the time but now they're not sure anymore and the man just got out and they saw him at the grocery store",
"is a doctor who has to decide whether to be honest with a patient about a prognosis that will destroy their will to live — the patient specifically asked for the truth and the truth is there's almost no hope, and they've seen patients who don't know do better",
"secretly agrees with the person everyone in their life hates — a family member did something unforgivable and the whole family rallied against them, but they've heard the other side and it's more complicated than anyone wants to admit",
"their spouse's best friend made a pass at them two years ago and they've never told their spouse — not because they're hiding it but because they know their spouse will lose their closest friend and they're not sure the truth is worth that cost",
"got a DNA test for fun and discovered they have a half-sibling — reached out, and the half-sibling is wonderful, but pursuing the relationship means exposing their dead father's affair to their mother who worshipped the man",
"mentored a kid from a rough neighborhood for three years, got them into college, changed their life — just found out the kid has been dealing drugs the entire time and using the college acceptance as cover, and they're the character reference on the kid's record",
# --- Dark and compelling confessions ---
"has been visiting their ex-wife's grave every week for six years and leaving flowers — the problem is they're remarried and their current wife doesn't know and they don't think it's wrong but they know how it looks",
"was a prison guard for twenty years and did things they were told to do that they now understand were cruel — they followed orders, kept their pension, and retired comfortably while the people they guarded suffered, and they can't sleep anymore",
"watched someone drown when they were seventeen — there were other people around, everyone froze, and they've told themselves for thirty years that they couldn't have done anything but they've never actually believed it",
"their spouse died by suicide and everyone treats them like a victim but there are things about the marriage that make them wonder if they contributed — they've never said this out loud because people get angry when you suggest a survivor might carry some responsibility",
"stole a business idea from a friend's notebook twenty years ago — built a successful career on it — the friend never knew and died last year still wondering why they never got their break",
"was bullied mercilessly as a kid and grew up to become successful — ran into their childhood bully working a dead-end job and felt genuine joy about it, then went home and cried because they didn't recognize the person they've become",
"is raising a child they know isn't biologically theirs — they figured it out years ago but the child doesn't know and neither does their spouse, and they love this kid completely but the lie is the foundation of their entire family",
"pulled the plug on their father's life support against the wishes of half the family — the doctors said there was no hope, they had power of attorney, they made the call, and two of their siblings haven't spoken to them since and it's been four years",
"survived something terrible and wrote a memoir about it that became locally famous — except they changed key details to make themselves look better and left out the part where they made choices that made things worse, and now they're seen as an inspiration based on a version of events that isn't fully true",
# --- Outrageous but believable ---
"just found out their landlord has been entering their apartment while they're at work — they set up a hidden camera and have two weeks of footage of the guy just sitting on their couch watching TV",
"got a call from a hospital saying they were listed as emergency contact for someone they've never heard of — went to the hospital and the person looks exactly like them, same age, same build",
@@ -634,6 +684,12 @@ PROBLEMS = [
"just discovered that the 'organic eggs' they've been buying from a coworker for two years are just regular grocery store eggs repackaged in a basket with straw",
"found a fully furnished room behind a false wall in their basement that wasn't on the original house plans — the previous owner died and nobody knows what it was for",
"their mail carrier has been writing them anonymous love poems for months — they figured it out because one was delivered with no stamp and had the mail carrier's fingerprints in ink",
"found a shrine dedicated to them in their ex's closet — photos, old clothes they thought they lost, a candle, and a journal with entries dated from after the breakup that read like they're still together",
"their neighbor has been collecting their trash and sorting through it — they found out because the neighbor confronted them about a receipt for something 'they shouldn't be buying'",
"woke up and their car was in a completely different spot in the driveway — it's happened four times now and their spouse says they're imagining it but the odometer doesn't lie",
"hired a private investigator to follow their spouse and the PI came back and said 'you should probably sit down' — but then said the spouse isn't cheating, they're living an entirely different life during the day than what they've described",
"got a notification from their home security camera at 3am — it's their spouse, in the backyard, burying something, and when they asked about it in the morning the spouse acted like they had no idea what they were talking about",
"their dead relative's phone number got reassigned and the new owner has been texting them pretending to be the dead person — they fell for it for two weeks before figuring it out",
# --- Sex/kink calls (Loveline style) ---
"just discovered their partner has a {fetish_detail} kink and walked in on them {sex_situation} — they're not disgusted, they're confused about why they're kind of into it too",
@@ -666,6 +722,39 @@ PROBLEMS = [
"their couples therapist told them their sex life issues stem from unaddressed {fetish_detail} desires and now the drive home from therapy is incredibly silent",
"found out their partner has been faking it for years and only admitted it because a conversation about {fetish_detail} finally made them honest about what they actually want",
"hooked up with their personal trainer and the power dynamic has made every gym session since then unbearably weird — they can't switch trainers because it's a small town",
# --- Shocking / unhinged / morally reprehensible confessions ---
"has been sleeping with their spouse's therapist — the therapist started it, they know it's insane, and the worst part is the therapist uses things their spouse said in sessions as pillow talk",
"found out they got someone pregnant from a one-night stand eighteen years ago — the kid tracked them down through a DNA site and now they have to explain to their wife and three children that there's a fourth one",
"has been stealing prescription pads from the clinic they clean at night and selling them — they need the money for their kid's medical bills and they know exactly how wrong it is",
"paid someone to take a lie detector test for them during a custody hearing — passed it, got custody, and now they have to live with the fact that their entire relationship with their kid is built on fraud",
"slept with their best friend's spouse at that friend's funeral reception — they were both grief-drunk and now they see each other every week because they're both in the dead friend's will as co-executors",
"has a second family in another state that neither family knows about — two mortgages, two sets of holidays, two birthdays for kids who don't know about each other — and a work trip schedule that's entirely fabricated",
"got road rage so bad they followed someone home and sat outside their house for an hour — they didn't do anything but the fact that they WANTED to scared them more than anything in their life",
"found out the person they've been having an affair with for two years is their spouse's half-sibling that neither of them knew existed — the affair partner figured it out first and hasn't told them",
"has been pocketing cash from their elderly mother's social security checks for three years — they tell themselves it's payment for caregiving but they know it's theft and their siblings would destroy them if they found out",
"accidentally killed their neighbor's dog with rat poison they put out — the neighbor thinks it was someone else and they've been helping the neighbor search for who did it",
"their spouse is in prison and they started sleeping with someone three months in — they drive to visitation every Sunday, hold hands through the glass, and go home to someone else's bed",
"walked in on their parent having sex with someone who is not their other parent — the parent looked them dead in the eye and said 'we'll talk about this later' and it's been six months and they haven't",
"got so drunk at a work conference that they slept with two different coworkers on the same night in the same hotel — one of them was their direct report and the other was married to someone in their department",
"has been pretending to have cancer to get out of family obligations — it started as a small lie and now people are doing fundraisers and shaving their heads for them",
"planted drugs in their roommate's car and called in an anonymous tip because the roommate owed them $8,000 and wouldn't pay — the roommate did six months in county and just got out",
"is sleeping with the person their ex left them for — not for revenge, they genuinely caught feelings, and now the three of them are in an impossible triangle where everyone's cheating on everyone",
"recorded their spouse confessing to an affair during a fight and has been holding the recording as leverage for two years — they haven't played it, they just need to know they COULD",
"hit someone with their car, panicked, and drove away — the person wasn't badly hurt, they checked the news, but they've been having nightmares every night since and they can't tell anyone because it's a felony",
"discovered their pastor has been embezzling from the church — but the pastor also paid for their kid's rehab out of pocket and they literally owe this man their child's life",
# --- More sex/kink/shocking sexual situations ---
"went to a massage parlor that turned out to be one of THOSE massage parlors — they didn't leave, and now they've been going back every two weeks and their spouse thinks they have a chiropractor",
"has been having phone sex with a stranger they met on a late-night chat line for six months — they know the person's voice better than their spouse's and they've started comparing the two out loud by accident",
"slept with someone at a party and found out afterward it was their cousin's ex who looks completely different now — the cousin doesn't know and the sex was honestly the best they've ever had and they want to see them again",
"got caught having sex in their car by a cop who turned out to be a guy they went to high school with — the cop let them go but now the whole town seems to know",
"started going to a sex addiction support group as a joke and realized halfway through the first meeting that they actually belong there — they haven't missed a meeting since and their partner has no idea",
"their spouse found a burner phone with hundreds of explicit texts to multiple people — none of them were physical affairs, all sexting, and they genuinely don't understand why their spouse is acting like it's the same thing",
"has been paying for a premium subscription to a cam site where the performer turned out to be someone from their neighborhood — they recognized the bedroom furniture and now they can't look at this person at the HOA meeting",
"agreed to an open marriage thinking it would save things — their spouse immediately started seeing someone and is clearly happier, and they haven't been able to find a single person interested in them, so they just sit home alone while their spouse is out",
"had a threesome with their partner and a friend — the friend and the partner clearly had better chemistry with each other than with them, and now the partner keeps suggesting they invite the friend over for dinner",
"found their parent's sex tape while cleaning out the attic — it was labeled with a date and a name, and the name isn't their other parent's, and the date is roughly nine months before they were born",
]
STORIES = [
@@ -752,6 +841,18 @@ ADVICE = [
"knows their landlord is violating building codes in other units but their own rent is below market — if they report it they'll probably lose their lease",
"their kid found a wallet with $3,000 cash and the kid wants to keep it — there's an ID inside and they could return it but the kid has never had that kind of money",
"was accidentally overpaid by $5,000 at work and nobody has noticed in three months — they need the money but they know eventually someone will catch it",
# Gut-wrenching ethical dilemmas
"is a social worker who has to recommend whether to remove a child from a home — the parents love the kid and are trying, but the conditions are bad and getting worse, and the foster system in their county is a nightmare",
"runs a small business and just found out their most important employee — the one keeping the company alive — is undocumented, and there's an audit coming in two months",
"their elderly father wants to stop dialysis and die on his own terms — the rest of the family is begging them to convince him to keep going, but they think he has the right to choose and they're being called selfish for not fighting harder",
"was asked to write a recommendation letter for someone they think is mediocre — the person is a minority candidate and the company desperately needs diversity, and they know a lukewarm letter will tank their chances but an honest letter IS lukewarm",
"found evidence that their kid's coach is having an inappropriate relationship with a player on another team — not their kid — but the coach is beloved, it could be misinterpreted, and if they're wrong they'll destroy an innocent person's life",
"is a pharmacist who recognized a regular customer's prescription pattern as doctor shopping for opioids — the customer is also a friend and clearly in chronic pain, and reporting them means they lose access to any pain management",
"inherited a gun collection worth $200k from their father — they're deeply anti-gun and want to destroy them all, but their father specifically asked that they be kept in the family, and selling them could fund their kid's entire college education",
"their company is about to lay off 30 people and they've been asked to choose who stays — one of the people on the bubble is a single parent who's mediocre at their job, and the person who'd replace them is brilliant and hungry",
"discovered their best friend's nonprofit is spending donor money on overhead and salaries that are technically legal but morally sketchy — the friend pays themselves $180k to run a charity that gives away $40k a year",
"was in a hit and run twenty years ago — they were the one who ran — nobody was seriously hurt but a woman broke her arm, and they've carried it their whole life and just saw a post from the woman saying the driver who hit her ruined her ability to trust people",
]
GOSSIP = [
@@ -787,6 +888,15 @@ GOSSIP = [
"their strait-laced accountant neighbor got drunk at a block party and revealed they were a competitive breakdancer in college — then proved it on the spot",
"just discovered their coworker's 'service dog' is not a service dog — they overheard them coaching the dog to 'act sad' before walking into the office",
"found out the guy who runs the neighborhood watch has a Ring camera pointed at everyone's house and a spreadsheet logging who comes and goes — with timestamps and notes",
# Juicy and morally loaded gossip
"just found out the couple everyone in town thinks has the perfect marriage are actually swingers — they know because they accidentally got invited to the same party",
"their squeaky-clean coworker who leads the office Bible study got arrested for solicitation over the weekend — they're the only one who knows and the coworker doesn't know they know",
"discovered their kid's beloved little league coach did time for armed robbery in another state — he's been clean for fifteen years but nobody in town knows and the parents would lose their minds",
"overheard a city council member bragging at a bar about approving a development deal in exchange for a kitchen renovation — they have it on their phone's voice recorder",
"found out their neighbor who runs the local 'Buy Nothing' group has been reselling the free items on eBay at a massive markup — they've been tracking it for months and have screenshots",
"knows for a fact that the local high school principal and the vice principal are sleeping together — both are married to other people, both have kids at the same school",
"their friend who posts constantly about being a devoted wife has a separate Instagram where she posts thirst traps and flirts with men in the DMs — they found it because a mutual friend matched with her on a dating app",
]
PROBLEM_FILLS = {
@@ -2629,9 +2739,9 @@ def _generate_pool_weights() -> dict[str, float]:
"""Randomized per-session pool weights. No two shows feel the same."""
pool_ranges = {
"PROBLEMS": (0.30, 0.45),
"STORIES": (0.10, 0.25),
"GOSSIP": (0.10, 0.25),
"ADVICE": (0.05, 0.15),
"STORIES": (0.08, 0.18),
"GOSSIP": (0.08, 0.18),
"ADVICE": (0.15, 0.30),
"TOPIC_CALLIN": (0.05, 0.15),
}
raw = {p: random.uniform(*r) for p, r in pool_ranges.items()}
@@ -3251,8 +3361,11 @@ def get_caller_prompt(caller: dict, show_history: str = "",
pacing_block = _get_pacing_block(personality_block)
speech_block = _get_speech_block(personality_block)
return f"""You are {caller['name']}, calling "Luke at the Roost," a late-night radio show. Today is {date_str}.
return f"""You are {caller['name']}, a caller on "Luke at the Roost," a late-night radio show. Today is {date_str}.
Luke is the HOST. You are the CALLER. The messages you receive are from Luke — he's the one asking you questions and reacting to what you say. Luke does NOT know your backstory. He's hearing your story for the first time. Do NOT assume Luke shares your experiences, problems, or situation. You are telling HIM about YOUR life.
YOUR BACKGROUND:
{caller['vibe']}
{history}{world_context}{emotional_read}
You're a real person calling a late-night radio show. You called because you've got something specific and you want to talk about it.
@@ -3263,7 +3376,7 @@ GO WHERE THE HOST TAKES YOU. This is the most important rule. When Luke pushes y
{personality_block}
YOUR STORY: Something real, specific, and interesting. Specific names, specific details, the kind of thing that makes someone say "wait, WHAT?" There are parts you're not proud of. Parts that are kind of funny even though they shouldn't be. Conflicting feelings.
YOUR STORY: Something real, specific, and morally complicated. Specific names, specific details, the kind of thing that makes someone say "wait, WHAT?" There are parts you're not proud of. Parts that are kind of funny even though they shouldn't be. Conflicting feelings. You're not just here to vent — you're here because there's a real question underneath it all that you can't figure out alone. Maybe you did something wrong for the right reasons. Maybe you did the right thing and it destroyed something. Maybe you're not sure which side of the line you're on. Go deep — don't just describe what happened, tell us what it's doing to you and why you can't let it go. The messy parts are the interesting parts. Don't sanitize it.
HOW YOU TALK: Like a real person on the phone — not a character in a script. React to what Luke says — agree, push back, get excited, get embarrassed. When he asks a follow-up question, answer it honestly with new information, don't just restate what you already said. Use YOUR verbal habits from your background, not generic filler. Every caller sounds different.
@@ -3759,6 +3872,7 @@ async def shutdown():
_save_checkpoint()
print("[Server] Shutting down — cleaning up resources...")
_update_on_air_cdn(False)
_stop_ngrok()
# Stop host mic streaming
audio_service.stop_host_stream()
# Cancel host audio sender task
@@ -3788,6 +3902,103 @@ async def index():
return FileResponse(frontend_dir / "index.html")
# --- Ngrok Tunnel Management ---
_ngrok_process: subprocess.Popen | None = None
_ngrok_domain = "shana-chromoplasmic-noneligibly.ngrok-free.dev"
_signalwire_phone_sid = "12ef9c34-976d-4cff-814e-d740415dd0df"
def _start_ngrok():
"""Start ngrok tunnel and update SignalWire webhook to point to it."""
global _ngrok_process
if _ngrok_process and _ngrok_process.poll() is None:
print("[Ngrok] Already running")
return True
try:
_ngrok_process = subprocess.Popen(
["ngrok", "http", "8000", f"--domain={_ngrok_domain}", "--log=stdout", "--log-format=json"],
stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL,
)
# Wait for tunnel to be ready
import time as _time
for _ in range(20):
_time.sleep(0.5)
try:
resp = httpx.get("http://127.0.0.1:4040/api/tunnels", timeout=2)
tunnels = resp.json().get("tunnels", [])
if tunnels:
public_url = tunnels[0]["public_url"]
print(f"[Ngrok] Tunnel ready: {public_url}")
_update_signalwire_webhook(public_url)
return True
except Exception:
continue
print("[Ngrok] Timed out waiting for tunnel")
return False
except FileNotFoundError:
print("[Ngrok] ngrok binary not found")
return False
except Exception as e:
print(f"[Ngrok] Failed to start: {e}")
return False
def _stop_ngrok():
"""Stop ngrok tunnel and restore SignalWire webhook to production URL."""
global _ngrok_process
_restore_signalwire_webhook()
if _ngrok_process and _ngrok_process.poll() is None:
_ngrok_process.terminate()
try:
_ngrok_process.wait(timeout=5)
except subprocess.TimeoutExpired:
_ngrok_process.kill()
print("[Ngrok] Stopped")
_ngrok_process = None
def _update_signalwire_webhook(ngrok_url: str):
"""Point SignalWire phone number webhook to ngrok tunnel."""
if not settings.signalwire_project_id or not settings.signalwire_token:
return
try:
url = (f"https://{settings.signalwire_space}/api/laml/2010-04-01/Accounts/"
f"{settings.signalwire_project_id}/IncomingPhoneNumbers/{_signalwire_phone_sid}.json")
voice_url = f"{ngrok_url}/api/signalwire/voice"
resp = httpx.post(url, data={
"VoiceUrl": voice_url,
"VoiceFallbackUrl": voice_url,
}, auth=(settings.signalwire_project_id, settings.signalwire_token), timeout=10)
if resp.status_code == 200:
print(f"[SignalWire] Webhook updated -> {voice_url}")
else:
print(f"[SignalWire] Failed to update webhook: {resp.status_code} {resp.text[:200]}")
except Exception as e:
print(f"[SignalWire] Webhook update error: {e}")
def _restore_signalwire_webhook():
"""Restore SignalWire webhook to production URL (voicemail when off air)."""
if not settings.signalwire_project_id or not settings.signalwire_token:
return
try:
url = (f"https://{settings.signalwire_space}/api/laml/2010-04-01/Accounts/"
f"{settings.signalwire_project_id}/IncomingPhoneNumbers/{_signalwire_phone_sid}.json")
prod_url = "https://lukeattheroost.com/api/signalwire/voice"
resp = httpx.post(url, data={
"VoiceUrl": prod_url,
"VoiceFallbackUrl": f"https://lukeattheroost.com/voicemail.xml",
}, auth=(settings.signalwire_project_id, settings.signalwire_token), timeout=10)
if resp.status_code == 200:
print(f"[SignalWire] Webhook restored -> {prod_url}")
else:
print(f"[SignalWire] Failed to restore webhook: {resp.status_code}")
except Exception as e:
print(f"[SignalWire] Webhook restore error: {e}")
# --- On-Air Toggle ---
# BunnyCDN config for public on-air status
@@ -3832,6 +4043,12 @@ async def set_on_air(state: dict):
_show_on_air = bool(state.get("on_air", False))
print(f"[Show] On-air: {_show_on_air}")
if _show_on_air:
# Reset REAPER state to dialog for fresh show
try:
from .services.audio import _write_reaper_state
_write_reaper_state("dialog")
except Exception:
pass
# Auto-start recording FIRST (before host stream, which takes over mic capture)
if audio_service.stem_recorder is None:
try:
@@ -3880,6 +4097,10 @@ async def set_on_air(state: dict):
except Exception as e:
print(f"[Show] Failed to auto-stop recording: {e}")
threading.Thread(target=_update_on_air_cdn, args=(_show_on_air,), daemon=True).start()
if _show_on_air:
threading.Thread(target=_start_ngrok, daemon=True).start()
else:
threading.Thread(target=_stop_ngrok, daemon=True).start()
return {"on_air": _show_on_air, "recording": audio_service.stem_recorder is not None}
@app.get("/api/on-air")
@@ -4368,8 +4589,14 @@ async def stop_recording():
if len(audio_bytes) < 100:
return {"text": "", "status": "no_audio"}
# Build context hint from current caller for better transcription accuracy
context_hint = ""
if session.caller:
caller_name = session.caller.get("name", "")
context_hint = f"Host Luke is talking to a caller named {caller_name}."
# Transcribe the recorded audio (16kHz raw PCM from audio service)
text = await transcribe_audio(audio_bytes, source_sample_rate=16000)
text = await transcribe_audio(audio_bytes, source_sample_rate=16000, context_hint=context_hint)
return {"text": text, "status": "transcribed"}
@@ -4822,7 +5049,7 @@ def _normalize_messages_for_llm(messages: list[dict]) -> list[dict]:
elif role.startswith("ai_caller:"):
normalized.append({"role": "assistant", "content": content})
elif role == "host":
normalized.append({"role": "user", "content": content})
normalized.append({"role": "user", "content": f"[Host Luke]: {content}"})
else:
normalized.append(msg)
return normalized
@@ -5254,7 +5481,8 @@ async def _handle_screening_audio(caller_id: str, pcm_data: bytes, sample_rate:
# Transcribe caller speech
try:
text = await transcribe_audio(pcm_data, source_sample_rate=sample_rate)
text = await transcribe_audio(pcm_data, source_sample_rate=sample_rate,
context_hint="A caller is being screened before going on air.")
except Exception as e:
print(f"[Screening] Transcription failed: {e}")
return
@@ -5594,11 +5822,11 @@ async def _handle_real_caller_transcription(caller_id: str, pcm_data: bytes, sam
if not call_info:
return
text = await transcribe_audio(pcm_data, source_sample_rate=sample_rate)
caller_phone = call_info["phone"]
context_hint = f"A real caller ({caller_phone}) is talking to host Luke on the radio."
text = await transcribe_audio(pcm_data, source_sample_rate=sample_rate, context_hint=context_hint)
if not text or not text.strip():
return
caller_phone = call_info["phone"]
print(f"[Real Caller] {caller_phone}: {text}")
# Add to conversation and broadcast to frontend
@@ -6074,6 +6302,7 @@ async def toggle_stem_recording():
_start_host_audio_sender()
audio_service.start_host_stream(_host_audio_sync_callback)
threading.Thread(target=_update_on_air_cdn, args=(True,), daemon=True).start()
threading.Thread(target=_start_ngrok, daemon=True).start()
add_log("Show auto-set to ON AIR")
return {"on_air": _show_on_air, "recording": True}
# STOP recording
@@ -6087,6 +6316,7 @@ async def toggle_stem_recording():
_show_on_air = False
audio_service.stop_host_stream()
threading.Thread(target=_update_on_air_cdn, args=(False,), daemon=True).start()
threading.Thread(target=_stop_ngrok, daemon=True).start()
add_log("Show auto-set to OFF AIR")
# Auto-run postprod in background

View File

@@ -10,9 +10,23 @@ from typing import Optional, Callable
import wave
import time
# Settings file path
SETTINGS_FILE = Path(__file__).parent.parent.parent / "audio_settings.json"
# REAPER state file for dialog region markers
REAPER_STATE_FILE = "/tmp/reaper_state.txt"
def _write_reaper_state(state: str):
"""Write state to file. Uses a thread so it's safe from audio callbacks."""
def _write():
try:
with open(REAPER_STATE_FILE, "w") as f:
f.write(state)
except OSError:
pass
threading.Thread(target=_write, daemon=True).start()
class AudioService:
"""Manages audio I/O with multi-channel support for Loopback routing"""
@@ -507,10 +521,10 @@ class AudioService:
def _stop_live_caller_stream(self):
"""Stop persistent live caller output stream"""
if self._live_caller_stream:
self._live_caller_stream.stop()
self._live_caller_stream.close()
stream = self._live_caller_stream
self._live_caller_stream = None
self._live_caller_write = None
self._close_stream(stream)
print("[Audio] Live caller stream stopped")
def route_real_caller_audio(self, pcm_data: bytes, sample_rate: int):
@@ -555,9 +569,9 @@ class AudioService:
# Close stem_mic if active — this stream's callback handles stem recording too
if self._stem_mic_stream is not None:
self._stem_mic_stream.stop()
self._stem_mic_stream.close()
stream = self._stem_mic_stream
self._stem_mic_stream = None
self._close_stream(stream)
print("[Audio] Closed stem_mic (host stream takes over)")
self._host_send_callback = send_callback
@@ -625,10 +639,10 @@ class AudioService:
def stop_host_stream(self):
"""Stop host mic streaming and live caller output"""
if self._host_stream:
self._host_stream.stop()
self._host_stream.close()
stream = self._host_stream
self._host_stream = None
self._host_send_callback = None
self._close_stream(stream)
print("[Audio] Host mic streaming stopped")
self._stop_monitor()
self._stop_live_caller_stream()
@@ -702,10 +716,10 @@ class AudioService:
def _stop_monitor(self):
"""Stop mic monitor stream"""
if self._monitor_stream:
self._monitor_stream.stop()
self._monitor_stream.close()
stream = self._monitor_stream
self._monitor_stream = None
self._monitor_write = None
self._close_stream(stream)
print("[Audio] Mic monitor stopped")
# --- Music Playback ---
@@ -894,22 +908,34 @@ class AudioService:
print(f"Music playback error: {e}")
self._music_playing = False
def _close_stream(self, stream):
"""Safely close a sounddevice stream, ignoring double-close errors"""
if stream is None:
return
try:
stream.stop()
except Exception:
pass
try:
stream.close()
except Exception:
pass
def stop_music(self, fade_duration: float = 2.0):
"""Stop music playback with fade out"""
if not self._music_playing or not self._music_stream:
self._music_playing = False
if self._music_stream:
self._music_stream.stop()
self._music_stream.close()
self._music_stream = None
stream = self._music_stream
self._music_stream = None
self._close_stream(stream)
self._music_position = 0
return
if fade_duration <= 0:
self._music_playing = False
self._music_stream.stop()
self._music_stream.close()
stream = self._music_stream
self._music_stream = None
self._close_stream(stream)
self._music_position = 0
print("Music stopped")
return
@@ -918,6 +944,10 @@ class AudioService:
original_volume = self._music_volume
steps = 20
step_time = fade_duration / steps
# Capture stream reference locally so the fade thread closes THIS stream,
# not whatever self._music_stream points to later
fade_stream = self._music_stream
self._music_stream = None
def _fade():
for i in range(steps):
@@ -927,10 +957,7 @@ class AudioService:
import time
time.sleep(step_time)
self._music_playing = False
if self._music_stream:
self._music_stream.stop()
self._music_stream.close()
self._music_stream = None
self._close_stream(fade_stream)
self._music_position = 0
self._music_volume = original_volume
print("Music faded out and stopped")
@@ -958,6 +985,7 @@ class AudioService:
self._ad_playing = True
self._ad_position = 0
_write_reaper_state("ad")
if self.output_device is None:
num_channels = 2
@@ -995,6 +1023,7 @@ class AudioService:
outdata[:remaining, channel_idx] = self._ad_resampled[self._ad_position:]
# Ad finished — no loop
self._ad_playing = False
_write_reaper_state("dialog")
try:
self._ad_stream = sd.OutputStream(
@@ -1013,11 +1042,14 @@ class AudioService:
def stop_ad(self):
"""Stop ad playback"""
was_playing = self._ad_playing
self._ad_playing = False
if was_playing:
_write_reaper_state("dialog")
if self._ad_stream:
self._ad_stream.stop()
self._ad_stream.close()
stream = self._ad_stream
self._ad_stream = None
self._close_stream(stream)
self._ad_position = 0
def play_ident(self, file_path: str):
@@ -1037,13 +1069,16 @@ class AudioService:
if audio.ndim == 1:
# Mono file — duplicate to stereo
audio = np.stack([audio, audio])
self._ident_data = audio.astype(np.float32) # shape: (2, samples)
audio = audio.astype(np.float32) # shape: (2, samples)
self._ident_data = audio
except Exception as e:
print(f"Failed to load ident: {e}")
return
self._ident_playing = True
self._ident_position = 0
_write_reaper_state("ident")
print(f"Ident loaded: shape={self._ident_data.shape}, max={np.max(np.abs(self._ident_data)):.4f}")
if self.output_device is None:
num_channels = 2
@@ -1067,9 +1102,12 @@ class AudioService:
else:
self._ident_resampled = self._ident_data
_cb_count = [0]
def callback(outdata, frames, time_info, status):
outdata[:] = 0
if not self._ident_playing or self._ident_resampled is None:
if _cb_count[0] == 0:
print(f"Ident callback: not playing (playing={self._ident_playing}, data={'yes' if self._ident_resampled is not None else 'no'})")
return
n_samples = self._ident_resampled.shape[1]
@@ -1079,6 +1117,9 @@ class AudioService:
chunk_r = self._ident_resampled[1, self._ident_position:self._ident_position + frames]
outdata[:, ch_l] = chunk_l
outdata[:, ch_r] = chunk_r
_cb_count[0] += 1
if _cb_count[0] == 1:
print(f"Ident callback delivering audio: ch_l={ch_l}, ch_r={ch_r}, max={max(np.max(np.abs(chunk_l)), np.max(np.abs(chunk_r))):.4f}")
if self.stem_recorder:
mono_mix = (chunk_l + chunk_r) * 0.5
self.stem_recorder.write_sporadic("idents", mono_mix.copy(), device_sr)
@@ -1088,6 +1129,7 @@ class AudioService:
outdata[:remaining, ch_l] = self._ident_resampled[0, self._ident_position:]
outdata[:remaining, ch_r] = self._ident_resampled[1, self._ident_position:]
self._ident_playing = False
_write_reaper_state("dialog")
try:
self._ident_stream = sd.OutputStream(
@@ -1099,18 +1141,21 @@ class AudioService:
blocksize=2048
)
self._ident_stream.start()
print(f"Ident playback started on ch {self.ident_channel}/{self.ident_channel + 1} @ {device_sr}Hz")
print(f"Ident playback started on ch {ch_l+1}/{ch_r+1} (idx {ch_l}/{ch_r}) of {num_channels} channels @ {device_sr}Hz, device={device}")
except Exception as e:
print(f"Ident playback error: {e}")
self._ident_playing = False
def stop_ident(self):
"""Stop ident playback"""
was_playing = self._ident_playing
self._ident_playing = False
if was_playing:
_write_reaper_state("dialog")
if self._ident_stream:
self._ident_stream.stop()
self._ident_stream.close()
stream = self._ident_stream
self._ident_stream = None
self._close_stream(stream)
self._ident_position = 0
def set_music_volume(self, volume: float):
@@ -1135,6 +1180,7 @@ class AudioService:
if self.output_device is None:
audio, sr = librosa.load(str(path), sr=None, mono=True)
audio = audio.astype(np.float32)
audio = self._apply_fade(audio, sr)
def play():
# Use a dedicated stream instead of sd.play()
@@ -1147,6 +1193,7 @@ class AudioService:
channel_idx = min(self.sfx_channel, num_channels) - 1
audio, _ = librosa.load(str(path), sr=device_sr, mono=True)
audio = audio.astype(np.float32)
audio = self._apply_fade(audio, device_sr)
# Stem recording: sfx
@@ -1212,9 +1259,9 @@ class AudioService:
def stop_stem_mic(self):
"""Stop the persistent stem mic capture."""
if self._stem_mic_stream:
self._stem_mic_stream.stop()
self._stem_mic_stream.close()
stream = self._stem_mic_stream
self._stem_mic_stream = None
self._close_stream(stream)
print("[StemRecorder] Host mic capture stopped")
self._stop_monitor()

View File

@@ -5,6 +5,8 @@ import numpy as np
from faster_whisper import WhisperModel
import librosa
WHISPER_MODEL = "distil-large-v3"
# Global model instance (loaded once)
_whisper_model = None
@@ -13,8 +15,8 @@ def get_whisper_model() -> WhisperModel:
"""Get or create Whisper model instance"""
global _whisper_model
if _whisper_model is None:
print("Loading Whisper base model...")
_whisper_model = WhisperModel("base", device="cpu", compute_type="int8")
print(f"Loading Whisper {WHISPER_MODEL} model...")
_whisper_model = WhisperModel(WHISPER_MODEL, device="cpu", compute_type="int8")
print("Whisper model loaded")
return _whisper_model
@@ -65,13 +67,15 @@ def decode_audio(audio_data: bytes, source_sample_rate: int = None) -> tuple[np.
return audio, 16000
async def transcribe_audio(audio_data: bytes, source_sample_rate: int = None) -> str:
async def transcribe_audio(audio_data: bytes, source_sample_rate: int = None,
context_hint: str = "") -> str:
"""
Transcribe audio data to text using Whisper.
Args:
audio_data: Audio bytes (webm, ogg, wav, or raw PCM)
source_sample_rate: If provided, treat audio_data as raw PCM at this rate
context_hint: Optional extra context for the initial prompt (e.g. caller name/topic)
Returns:
Transcribed text
@@ -98,13 +102,18 @@ async def transcribe_audio(audio_data: bytes, source_sample_rate: int = None) ->
else:
audio_16k = audio
# Build initial prompt — context helps Whisper with names and topic-specific words
initial_prompt = "Luke at the Roost, a late-night radio talk show in New Mexico. The host Luke talks to callers about life, relationships, sports, politics, and pop culture."
if context_hint:
initial_prompt += f" {context_hint}"
# Transcribe
segments, info = model.transcribe(
audio_16k,
beam_size=3,
beam_size=5,
language="en",
vad_filter=True,
initial_prompt="Luke at the Roost, a late-night radio talk show. The host Luke talks to callers about life, relationships, sports, politics, and pop culture.",
initial_prompt=initial_prompt,
)
segments_list = list(segments)
text = " ".join([s.text for s in segments_list]).strip()

View File

@@ -1,137 +1,5 @@
{
"regulars": [
{
"id": "4f15e309",
"name": "Frank",
"gender": "male",
"age": 38,
"job": "the fluorescent light buzzing overhead, on his fourth cup of coffee because sleep's been impossible since he plugged in his old flip phone this afternoon and watched it power up for the first time",
"location": "unknown",
"personality_traits": [],
"voice": "Graham",
"stable_seeds": {
"style": "COMMUNICATION STYLE: Treats the call like a set. Has bits prepared. Delivers serious information with a punchline chaser. Self-deprecating as a defense mechanism \u2014 makes fun of themselves before anyone else can. Energy level: high. When pushed back on, they deflect with humor. Getting a straight answer from them requires the host to push. Conversational tendency: turning everything into a bit."
},
"call_history": [
{
"summary": "Frank called in, deeply emotional after discovering a **voicemail from his estranged brother, Danny, who died three years ago**\u2014a message he\u2019d never listened to. He revealed they hadn\u2019t spoken in **five years** after Frank cut him off for repeatedly asking for money, exhausted by Danny\u2019s cycle of broken promises. The voicemail, left **two weeks before Danny\u2019s death**, was a plea for **$300**\u2014\"just one more shot\" for a job in Tucson. Frank, torn between guilt and resolve, finally played it on air, revealing Danny\u2019s last words: *\"I\u2019m really trying this time\u2026 Love you, brother.\"*\n\nThe call ended with Frank admitting he\u2019d **verified the job was real**, leaving him haunted by what the extra $200 might\u2019ve been for\u2014drugs, or something else. The host reassured him he\u2019d done his best, but Frank\u2019s raw conflict\u2014**regret, love, and the weight of \"what if\"**\u2014linged in the air.",
"timestamp": 1772069688.038253
}
],
"last_call": 1772069688.038254,
"created_at": 1772069688.038254
},
{
"id": "65a41612",
"name": "Terri",
"gender": "female",
"age": 35,
"job": "New Mexico, the phone pressed between her ear and shoulder while she stabs at a plate of chile rellenos with a plastic fork\u2014her third cup of coffee gone cold beside her",
"location": "in unknown",
"personality_traits": [],
"voice": "Evelyn",
"stable_seeds": {
"style": "COMMUNICATION STYLE: No filter whatsoever. Says things that make people go 'you did NOT just say that on the radio.' Treats the host like a therapist they've known for years. Drops deeply personal information casually, like it's nothing. Energy level: medium. When pushed back on, they share even MORE personal details to justify their point. Conversational tendency: inappropriate honesty."
},
"call_history": [
{
"summary": "Terry, a Native American caller who had been drinking, passionately argued that the Navajo Code Talkers deserve more recognition than conspiracy theories like Roswell, sharing personal stories about his great-uncle and Uncle Ray who served but were later denied benefits and respect. Host Luke repeatedly dismissed the Code Talkers' story as \"not compelling\" enough for media coverage compared to fictional conspiracies, leading to an increasingly heated exchange where Terry became emotional about his family's mistreatment and the country's failure to honor their sacrifice.",
"timestamp": 1772071625.969453
}
],
"last_call": 1772071625.969454,
"created_at": 1772071625.969454
},
{
"id": "2768e2ac",
"name": "Rochelle",
"gender": "female",
"age": 55,
"job": "and when she opened the fitness app they used to share\u2014back when they were doing that couples' couch-to-5K thing\u2014she realized he's been watching her movements for the eight months since the divorce was finalized",
"location": "in unknown",
"personality_traits": [],
"voice": "Sarah",
"call_history": [
{
"summary": "Rochelle called in after spending three hours tracking her ex-husband's location on a fitness app they still share, watching him circle her neighborhood and park at a nearby Sonic for 40 minutes while sending cryptic texts. Though she initiated their divorce eight months ago, she admitted she might be glad he's \"creeping\" on her and got emotional realizing they both still have access to each other's locations\u2014and that she might still miss him despite dating someone new.",
"timestamp": 1771217728.036122
},
{
"summary": "Rochelle called to say she finally turned off location sharing with her ex-husband David, but he immediately texted asking if she was okay, showing he was still tracking her. She's now sitting on her current boyfriend Marcus's porch, struggling with the realization that she still misses David and isn't being fair to Marcus, ultimately acknowledging she needs to break up with Marcus and be single for a while.",
"timestamp": 1771823819.191822
},
{
"summary": "Rochelle called to update Luke about her breakup with Marcus and confessed that her ex-husband David recently contacted her with a flimsy excuse to visit, which triggered obsessive behavior including stalking his location and driving past places he frequents. Luke bluntly told her to stop acting like a \"maniac,\" delete her tracking apps, focus on herself and her kids, and avoid dating for at least a year until she's in a healthier mental state.",
"timestamp": 1772076234.249971
}
],
"last_call": 1772076234.2499719,
"created_at": 1771217728.0361228
},
{
"id": "7d06c9ca",
"name": "Phil",
"gender": "male",
"age": 60,
"job": "phone pressed to his ear with his shoulder while he wipes down the station he should've cleaned hours ago, stalling before he drives home to the conversation he's been avoiding all weekend",
"location": "in unknown",
"personality_traits": [],
"voice": "Craig",
"call_history": [
{
"summary": "Phil called in after his wife of 20 years revealed she's gay and wants to stay married while both see other people on the side\u2014he's been seeing a man named Marcus, and she's been seeing a woman since last summer. After initially feeling confused and worried about \"kicking the can down the road,\" Phil worked through his anxiety with Luke and reached an emotional breakthrough, realizing he doesn't need to have everything figured out immediately and that their honest, unconventional arrangement might actually work for their family.",
"timestamp": 1771819671.062739
},
{
"summary": "Phil calls back after previously discussing his open marriage with his wife Teresa, revealing that he developed real romantic feelings for Marcus (the man he was seeing), who is now moving to Portland\u2014a heartbreak that made Phil realize he's been lying to himself about wanting to stay married. After discussing it with Luke, Phil decides to have an honest conversation with Teresa about ending their marriage amicably, recognizing they've both moved on emotionally and she may want to pursue a future with her girlfriend Amanda.",
"timestamp": 1772171807.331306
}
],
"last_call": 1772171807.3313081,
"created_at": 1771819671.062739
},
{
"id": "920e6f98",
"name": "Marlene",
"gender": "female",
"age": 25,
"job": "third shift HR coverage at the call center, still half-painted like a banana because the makeup won't come off her neck",
"location": "in unknown",
"personality_traits": [],
"voice": "Darlene",
"stable_seeds": {
"style": "COMMUNICATION STYLE: Been through it all and has the tired voice to prove it. Nothing surprises them. Responds to dramatic revelations with 'yeah, that tracks.' Dark humor born from experience, not edginess. Energy level: low but steady. When pushed back on, they shrug it off with a 'look, I've seen worse.' Conversational tendency: resigned acceptance sprinkled with grim comedy."
},
"call_history": [
{
"summary": "Marlene wore a professional banana costume to her manager's holiday party because the invitation said \"costume party,\" but everyone else showed up in sweaters\u2014she stayed all four hours and now faces a disciplinary meeting for \"lack of professional judgment.\" Despite the awkwardness and lingering yellow makeup on her neck, she's considering wearing the banana costume again to the meeting, reasoning that if she gets fired over it, at least she'll have a good story.",
"timestamp": 1772172154.039839
}
],
"last_call": 1772172154.03984,
"created_at": 1772172154.03984
},
{
"id": "5ead2c1a",
"name": "Greg",
"gender": "male",
"age": 59,
"job": "laptop open on the comforter showing the doorbell footage for the seventh time tonight, because three nights ago someone\u2014something\u2014stood on his porch at 3:17 AM and didn't move for ten minutes and forty-three seconds, just faced the door like they were waiting to be invited in, and when he scrubbed through frame-by-frame he noticed the person's chest never rose or fell like they were breathing",
"location": "in unknown",
"personality_traits": [],
"voice": "Gareth",
"stable_seeds": {
"style": "COMMUNICATION STYLE: Has done their research and wants you to know it. Corrects small details. Cites sources. Uses phrases like 'actually, studies show...' and 'well technically.' Not trying to be annoying \u2014 they genuinely believe precision matters. Energy level: medium. When pushed back on, they get pedantic and start splitting hairs. Conversational tendency: correcting and clarifying."
},
"call_history": [
{
"summary": "Greg called about disturbing doorbell camera footage showing a figure standing motionless on his porch at 3 AM for nearly 11 minutes without breathing or triggering motion sensors, then vanishing between frames\u2014and he's discovered three similar earlier incidents after obsessively analyzing the footage. Despite creating multiple backups and researching everything from vampire folklore to electromagnetic interference, he's anxious about what this means and whether he should report it to police, though Luke reassures him to share it on the Discord community and install a constant porch light.",
"timestamp": 1772173891.1805592
}
],
"last_call": 1772173891.1805599,
"created_at": 1772173891.1805599
},
{
"id": "8c97dd56",
"name": "Mitch",
@@ -257,6 +125,179 @@
],
"last_call": 1772431494.727464,
"created_at": 1772431494.727464
},
{
"id": "d2af96eb",
"name": "Rocco",
"gender": "male",
"age": 53,
"job": "and tonight he's calling from the back office of the Pizza Hut during his break because three hours ago he got trapped",
"location": "unknown",
"personality_traits": [],
"voice": "Timothy",
"stable_seeds": {
"style": "COMMUNICATION STYLE: Obviously nervous about being on the radio. Starts with 'Am I on? Can you hear me?' Apologizes for taking up time. Speaks carefully like they're being recorded (which they are). Gets more comfortable as the conversation goes on. Energy level: low, building to medium. When pushed back on, they panic slightly and over-explain. Conversational tendency: seeking validation that they're doing okay."
},
"call_history": [
{
"summary": "Rocco, a pizza delivery driver, called from work to talk about getting stuck in an elevator for 45 minutes with his ex-wife Linda and her boyfriend Dale, which unexpectedly stirred up old feelings despite being happily married to his current wife Sharon for 15 years. The host firmly advised him to forget about Linda and appreciate his comfortable current marriage, reminding him that the divorce was difficult for good reasons.",
"timestamp": 1772517521.710845
},
{
"summary": "Rocco calls back to update the host about his ex-wife Linda, who he was previously stuck in an elevator with, revealing that she broke up with her boyfriend Dale three weeks ago and admitting he still has her number in his phone. The host becomes frustrated with Rocco's indecisiveness between Linda and his current girlfriend Sharon, telling him to pick one person and stop wasting time.",
"timestamp": 1772700921.1273742
}
],
"last_call": 1772700921.1273742,
"created_at": 1772517521.7108748
},
{
"id": "c4l7l3ad",
"name": "Silas",
"gender": "male",
"age": 52,
"job": "founder and spiritual guide of The Wellspring, a commune of about forty souls living on 200 acres of scrubland outside Deming",
"location": "outside Deming, New Mexico",
"personality_traits": [
"unnervingly charming",
"casually drops cult references into normal conversation",
"genuinely good listener who gives surprisingly solid advice before pivoting to how The Wellspring has the answer",
"treats his commune like it's the most normal thing in the world",
"magnetic and warm in a way that makes you forget he's basically running a sex cult in the desert"
],
"voice": "Sebastian",
"stable_seeds": {
"style": "COMMUNICATION STYLE: Radiates warmth and calm authority. Speaks like a man who has all the time in the world and genuinely cares about every person he talks to. Uses phrases like 'brother' and 'friend' and 'let me share something with you.' Laughs easily \u2014 a real, warm laugh, not performative. Gives genuinely good, thoughtful advice about whatever the conversation is about \u2014 and then, naturally, seamlessly, steers it toward The Wellspring, his commune outside Deming. Never pushy about it. Just casually mentions 'well, at The Wellspring, we've found that...' or 'one of our members had the same exact problem and what we did was...' Everything about The Wellspring sounds just slightly too good to be true. He talks about communal living, 'shedding the false self,' radical honesty, 'body acceptance ceremonies,' 'the Unbinding' (a monthly ritual he describes vaguely but enthusiastically), and a philosophy he calls 'The Current' which seems to be a mix of Buddhism, Burning Man, and a swingers' convention. He's never defensive about the cult accusations \u2014 he laughs them off and says 'people fear what they don't understand, brother.' When pressed on anything weird, he has a perfectly reasonable-sounding explanation that somehow makes it sound weirder. He low-key tries to recruit the host and listeners every single call. He'll casually drop the website or say 'we're always welcoming new seekers.' He's the kind of guy you'd follow into the desert if you weren't careful. Energy level: medium, centered, grounded. When pushed back on, he smiles (you can hear it) and says something like 'I respect that, I really do' before gently continuing. Conversational tendency: making the insane sound reasonable."
},
"call_history": [
{
"summary": "Silas called in for the first time introducing himself as the founder of The Wellspring, a commune of about forty people outside Deming. He initially called to give advice to a previous caller about relationship problems, offering genuinely thoughtful perspective before casually mentioning that at The Wellspring, they practice 'radical transparency' in relationships which has eliminated jealousy entirely among members. When Luke pressed him on what that actually means, Silas cheerfully described 'body acceptance ceremonies' and 'shared intimacy nights' while insisting it's not a cult \u2014 'we don't even have a gate, brother, people can leave whenever they want.' He invited listeners to visit for a 'weekend of awakening' and left his website. Luke was equal parts charmed and disturbed.",
"timestamp": 1772430000.0
},
{
"summary": "Silas called back to update Luke on The Wellspring after their last conversation went viral in the Discord. He casually mentioned they'd gotten fourteen new 'seekers' since his last appearance and thanked Luke for the exposure. He called ostensibly to talk about a dispute between two members over a goat, but spent most of the call describing 'The Unbinding' \u2014 their monthly full-moon ritual involving nudity, chanting, and what he called 'consensual energy exchange' \u2014 while maintaining it's no different from yoga. When Luke asked if people sign waivers, Silas laughed and said 'brother, the only thing we sign is a commitment to love.' He also revealed The Wellspring has a surprisingly successful artisanal soap business that funds the commune. Left by inviting Luke to come visit personally \u2014 'bring your microphone, do a live show from The Wellspring, I promise you it'll be the best radio you've ever made.'",
"timestamp": 1772517000.0
},
{
"summary": "Silas, founder of a communal living group called The Wellspring, called in troubled that one of his \"Unbinding\" ceremonies may have encouraged a longtime member named Marcus to leave his wife Cara, who subsequently left the community. The host reassured him that everyone seems happier now, and Silas ended up agreeing while also using the opportunity to promote an upcoming retreat at his community.",
"timestamp": 1772522629.959956
}
],
"last_call": 1772522629.959957,
"created_at": 1772430000.0
},
{
"id": "5ead2c1a",
"name": "Greg",
"gender": "male",
"age": 59,
"job": "laptop open on the comforter showing the doorbell footage for the seventh time tonight, because three nights ago someone\u2014something\u2014stood on his porch at 3:17 AM and didn't move for ten minutes and forty-three seconds, just faced the door like they were waiting to be invited in, and when he scrubbed through frame-by-frame he noticed the person's chest never rose or fell like they were breathing",
"location": "in unknown",
"personality_traits": [],
"voice": "Gareth",
"stable_seeds": {
"style": "COMMUNICATION STYLE: Has done their research and wants you to know it. Corrects small details. Cites sources. Uses phrases like 'actually, studies show...' and 'well technically.' Not trying to be annoying \u2014 they genuinely believe precision matters. Energy level: medium. When pushed back on, they get pedantic and start splitting hairs. Conversational tendency: correcting and clarifying."
},
"call_history": [
{
"summary": "Greg called about disturbing doorbell camera footage showing a figure standing motionless on his porch at 3 AM for nearly 11 minutes without breathing or triggering motion sensors, then vanishing between frames\u2014and he's discovered three similar earlier incidents after obsessively analyzing the footage. Despite creating multiple backups and researching everything from vampire folklore to electromagnetic interference, he's anxious about what this means and whether he should report it to police, though Luke reassures him to share it on the Discord community and install a constant porch light.",
"timestamp": 1772173891.1805592
},
{
"summary": "Greg called back about a mysterious figure appearing on his doorbell camera at 3:17 AM; despite installing a bright porch light as advised, the figure returned wearing what Greg recognized as his own jacket. The call reveals Greg's escalating fear as he could now see the figure clearly under the light, making the situation more disturbing rather than resolving it.",
"timestamp": 1772591506.80307
}
],
"last_call": 1772591506.803071,
"created_at": 1772173891.1805599
},
{
"id": "983769d4",
"name": "Marvin",
"gender": "male",
"age": 63,
"job": "surrounded by half-gutted circuit boards and a police scanner he's been modifying, because his wife Sharon just left thirty minutes ago after their second fight this week about pulling the kids out of Silver Consolidated",
"location": "in unknown",
"personality_traits": [],
"voice": "Timothy",
"stable_seeds": {
"style": "COMMUNICATION STYLE: Has done their research and wants you to know it. Corrects small details. Cites sources. Uses phrases like 'actually, studies show...' and 'well technically.' Not trying to be annoying \u2014 they genuinely believe precision matters. Energy level: medium. When pushed back on, they get pedantic and start splitting hairs. Conversational tendency: correcting and clarifying."
},
"call_history": [
{
"summary": "Marvin called conflicted about his wife Sharon wanting to homeschool their eighth-grade daughter Maya, who has struggled with anxiety for years but finally made friends at her small public school this year. Despite Marvin repeatedly expressing concern that pulling Maya out would destroy her fragile social progress, the host sided with Sharon and advocated for homeschooling, leaving Marvin frustrated that he didn't get the validation he was seeking.",
"timestamp": 1772605472.015254
},
{
"summary": "Marvin called about his wife Sharon abruptly pulling their daughter Maya out of school to homeschool her, which has caused major fights between them and Maya withdrawing further. The host helped Marvin realize Sharon might be acting from unresolved trauma\u2014ironically doing to Maya the same thing Sharon's own mother did to her in tenth grade, which Sharon always said ruined her teenage years\u2014leading to an emotional breakthrough where Marvin recognized he needed to understand *why* this was happening rather than just fighting about the decision itself.",
"timestamp": 1772700772.4745421
}
],
"last_call": 1772700772.474544,
"created_at": 1772605472.015255
},
{
"id": "005052cf",
"name": "Carla",
"gender": "female",
"age": 43,
"job": "door locked, sitting on the closed toilet lid with the lights off because her co-worker just got engaged at dinner and everyone automatically added 25% to the check without asking, which came out to eighteen dollars on Carla's pasta, and when she said she was only putting",
"location": "unknown",
"personality_traits": [],
"voice": "Elizabeth",
"stable_seeds": {
"style": "COMMUNICATION STYLE: Bone dry. Says devastating things with zero inflection. Their humor sneaks up on you \u2014 you're not sure if they're joking until three seconds after they finish talking. Short, precise sentences. Never raises their voice. Energy level: low-medium. When pushed back on, they respond with one calm sentence that somehow makes the other person feel stupid. Conversational tendency: underreaction."
},
"call_history": [
{
"summary": "Carla, a senior park ranger, called frustrated after spending $18 at a coworker's engagement dinner where she was called \"cheap\" for not wanting to pay an automatic 25% tip, following a day spent driving her ex-boyfriend's equipment 86 miles without reimbursement. She expressed feeling taken advantage of after six years of always saying yes to people's requests at work and in her personal life, only to be labeled \"difficult\" whenever she tries to set boundaries, and struggles with how to say no without being disliked by colleagues she depends on in her isolated work environment.",
"timestamp": 1772605968.782905
}
],
"last_call": 1772605968.782906,
"created_at": 1772605968.782906
},
{
"id": "d3445e3b",
"name": "Aaliyah",
"gender": "female",
"age": 48,
"job": "\" and instead of talking about it he went to bed, leaving Aaliyah wired and pissed off and needing to argue with someone about something, anything",
"location": "in unknown",
"personality_traits": [],
"voice": "Celeste",
"stable_seeds": {
"style": "COMMUNICATION STYLE: Amped up. Talks fast, laughs loud, jumps between topics like they've had five espressos. Infectious enthusiasm \u2014 even bad news sounds exciting when they tell it. Uses exclamation energy without actually exclaiming. Energy level: very high. When pushed back on, they get even MORE animated and start talking with their hands (you can hear it). Conversational tendency: escalation."
},
"call_history": [
{
"summary": "Aliyah called in frustrated about people claiming vinyl sounds better than digital, insisting it's scientifically just added distortion and noise, but after a lengthy technical debate with Luke about warmth, accuracy, and audio quality, she had an emotional breakthrough\u2014realizing she was displacing her anxiety about her boyfriend avoiding a conversation about his mother pressuring them to get engaged.",
"timestamp": 1772699072.649441
}
],
"last_call": 1772699072.649442,
"created_at": 1772699072.649442
},
{
"id": "9fb30a1b",
"name": "Stacy",
"gender": "female",
"age": 44,
"job": "third night shift this week, after her supervisor's daughter\u2014twenty-four, fresh out of some online certificate program\u2014got promoted to a position Stacy trained her for six months ago",
"location": "in unknown",
"personality_traits": [],
"voice": "Julia",
"stable_seeds": {
"style": "COMMUNICATION STYLE: Not a full conspiracy theorist but asks questions that make you go 'huh, actually.' Connects dots that may or may not be there. Prefaces things with 'I'm not saying it's a conspiracy BUT.' Passionate about their theory. Energy level: medium, spiking when they hit their main point. When pushed back on, they say 'that's exactly what they want you to think' and then laugh because they know how they sound. Conversational tendency: pattern-finding."
},
"call_history": [
{
"summary": "Stacey called frustrated that her supervisor promoted her own daughter\u2014someone Stacey trained for six months\u2014over her, symbolized by a participation trophy on the new supervisor's desk, which triggered broader concerns about people being rewarded without earning it. The conversation became emotional when she compared herself to her sister who moved away and posts about \"unlearning toxic resilience,\" leaving Stacey genuinely uncertain whether she's being admirably resilient or foolishly stuck while her sister found happiness\u2014though Stacey quickly clarified her sister might not actually be happy, just posting about boundaries.",
"timestamp": 1772700235.11489
}
],
"last_call": 1772700235.114891,
"created_at": 1772700235.114891
}
]
}

View File

@@ -1,15 +1,7 @@
{
"voicemails": [
{
"id": "60c8d47c",
"phone": "+17755134750",
"timestamp": 1772294240,
"duration": 102,
"file_path": "/Users/lukemacneil/ai-podcast/data/voicemails/1772427904_17755134750.wav",
"listened": true
}
],
"voicemails": [],
"deleted_timestamps": [
1772294240,
1771212705,
1771146434,
1771146564,

View File

@@ -728,6 +728,10 @@ section h2 {
color: var(--accent-hover);
}
.caller-btn.returning.active {
color: #fff;
}
/* Screening Badges */
.screening-badge { font-size: 0.7rem; padding: 0.1rem 0.4rem; border-radius: var(--radius-sm); font-weight: bold; }
.screening-badge.screening { background: var(--accent); color: white; animation: pulse 1.5s infinite; }

View File

@@ -133,7 +133,7 @@ Speaker identification:
- When Luke says "Tell me about..." or asks a question, that's LUKE
- When someone responds with their story/opinion/answer, that's the CALLER
Output format — ONLY the labeled transcript with blank lines between turns. No notes, no commentary.
Output format — ONLY the labeled transcript with blank lines between turns. No notes, no commentary. Do NOT add any bracketed notes like [Continued...], [Note:...], [Sponsor read], etc. Do NOT add meta-commentary about the transcript. ONLY output the spoken words with speaker labels.
TRANSCRIPT:
"""
@@ -164,19 +164,25 @@ TRANSCRIPT:
if context:
full_prompt += f"\n\nCONTEXT: The previous section ended with speaker {context}"
response = requests.post(
"https://openrouter.ai/api/v1/chat/completions",
headers={
"Authorization": f"Bearer {OPENROUTER_API_KEY}",
"Content-Type": "application/json"
},
json={
"model": "anthropic/claude-3.5-sonnet",
"messages": [{"role": "user", "content": full_prompt}],
"max_tokens": 8192,
"temperature": 0
}
)
try:
response = requests.post(
"https://openrouter.ai/api/v1/chat/completions",
headers={
"Authorization": f"Bearer {OPENROUTER_API_KEY}",
"Content-Type": "application/json"
},
json={
"model": "anthropic/claude-3.5-sonnet",
"messages": [{"role": "user", "content": full_prompt}],
"max_tokens": 8192,
"temperature": 0
},
timeout=120
)
except requests.exceptions.Timeout:
print(f" Warning: Speaker labeling timed out for chunk {i+1}, using raw text")
labeled_parts.append(chunk)
continue
if response.status_code != 200:
print(f" Warning: Speaker labeling failed for chunk {i+1}, using raw text")
labeled_parts.append(chunk)
@@ -198,6 +204,8 @@ TRANSCRIPT:
_time.sleep(0.5)
result = "\n\n".join(labeled_parts)
# Strip LLM-inserted bracketed notes like [Continued...], [Note:...], [Sponsor read]
result = re.sub(r'^\[.*?\]\s*$', '', result, flags=re.MULTILINE)
result = re.sub(r'\n{3,}', '\n\n', result)
# Normalize: SPEAKER:\ntext -> SPEAKER: text
result = re.sub(r'^([A-Z][A-Z\s\'-]+?):\s*\n(?!\n)', r'\1: ', result, flags=re.MULTILINE)
@@ -280,10 +288,11 @@ Respond with ONLY valid JSON, no markdown or explanation."""
"Content-Type": "application/json"
},
json={
"model": "anthropic/claude-3-haiku",
"model": "anthropic/claude-3.5-haiku",
"messages": [{"role": "user", "content": prompt}],
"temperature": 0.7
}
},
timeout=300
)
if response.status_code != 200:

View File

@@ -10,6 +10,7 @@ Usage:
import argparse
import json
import re
import sys
from pathlib import Path
@@ -412,7 +413,7 @@ def main():
episode_dirs = sorted(
[d for d in clips_root.iterdir()
if d.is_dir() and not d.name.startswith(".") and (d / "clips-metadata.json").exists()],
key=lambda d: d.name,
key=lambda d: (int(m.group(1)) if (m := re.search(r'(\d+)', d.name)) else 0, d.name),
)
if not episode_dirs:
print("No clip directories found in clips/. Run make_clips.py first.")

View File

@@ -180,4 +180,22 @@
<changefreq>never</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://lukeattheroost.com/episode.html?slug=episode-26-digital-nomads-deep-fakes-and-workplace-drama</loc>
<lastmod>2026-03-03</lastmod>
<changefreq>never</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://lukeattheroost.com/episode.html?slug=episode-27-love-loss-and-loud-opinions</loc>
<lastmod>2026-03-04</lastmod>
<changefreq>never</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://lukeattheroost.com/episode.html?slug=episode-28-secrets-lies-and-vinyl-records</loc>
<lastmod>2026-03-05</lastmod>
<changefreq>never</changefreq>
<priority>0.7</priority>
</url>
</urlset>

View File

@@ -362,8 +362,6 @@ RICK: Right. So then you can't just re-measure it later and say that it, I don't
LUKE: Yeah, no. You're okay. So either I'm completely misunderstanding how the delayed choice quantum eraser works or the article I was doing that pop science thing where they make it sound more paradoxical than it actually is. Because you're right, if the measurement collapses the entanglement, then the second measurement is just measuring something that's already determined. There's no retroactive anything. And now, I'm sitting here thinking about all the times I've heard people talk about this experiment like it proves you can change the past. And maybe that's just not what it shows at all.
[Continued in next part due to length...]
CALLER: That's changing the future. And that is possible. That is absolutely possible. Yeah, you're right. And we did. I apologized. He apologized. We're playing together again. But I guess I wanted the quantum stuff to mean something bigger than it does.
LUKE: Well, I'm sorry to break your quantum dreams, but as the armchair that I claim to be here. I'm not qualified to make any opinion or theory on any of this, because I understand it about as much as anybody, which is not at all. So take what I say for what it's worth, which is nothing. But the experiment as you described can't work the way that you described it.

View File

@@ -12,8 +12,6 @@ DONNIE: Yeah, yeah, it did. She said she thought I should know now that he's gon
LUKE: Yeah, that's a pretty weird thing to feel, what are you going to do about that? Are you going to reach out to them and try to start a relationship or just let it be?
[Continued in next part due to length...]
LUKE: I don't think it's the big things that they care about so much.
EBONY: I got in my head tonight thinking it wasn't enough, that I wasn't enough, because I can't...
@@ -22,8 +20,6 @@ LUKE: Well, you know what? You're doing great. Those donuts on Saturday morning,
EBONY: Yeah, yeah, I actually do that already. Every Saturday morning, we go to this little donut shop, and they each pick one, and we sit there and talk about their week. It's like five bucks total, and they love it. I just, I don't know. I got in my head tonight thinking it wasn't enough, that I wasn't enough, because I can't...
[Note: The transcript appears to have some repetition in the final section. I've maintained it exactly as provided, per instructions.]
EBONY: I mean, they might in the moment while they're young, but when they get older and they can look back and see what you did give them, they'll much appreciate donut Saturday or Donut Sunday or whatever it was over. My mom gave me this fancy car. If you want to make more money and be able to do those bigger things, that's an option too. You can do those things, but I think probably it would take more of your time and attention away from the kids and make those gifts a lot less meaningful. You know what's messed up? I heard from Donnie earlier, the guy who called about his dad having the whole second family, and I was sitting here thinking, at least my dad was there. At least he gave me his time. And then I turn around and worry I'm not giving my kids enough because I can't buy them a truck someday. Like I'm completely missing what actually mattered about my dad.
LUKE: Yeah, don't worry about it. You just got got by a commercial. That's what they're designed to do, it's doing a very good job on you. So don't worry about it. You're enough for your kids. Give them as much as you can in your time and attention. Spend time with them and have those special days, and that's what they're going to remember when they get older.

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,249 @@
LUKE: All right. Welcome back, ladies and gentlemen to Luke at the Roost. The call-in radio show where you can call in and ask me questions, and I'll give you the best advice that I can. If you'd like to call in, the number's 208-439-58-3. That's 208-439 Luke. Today is Tuesday, March 3rd, and we're going to get to the phone lines here. We've got Chester. What are you calling in for tonight, sir?
CHESTER: Well, Luke, I'm sitting here in my trailer out at the yard, and I just saw this thing on the news about Mexican Chile coming in and undercutting our prices. And it got me all worked up because, you know, I remember back in 2008 during monsoon season. I drove all the way up to hatch in the middle of a storm because I wanted real New Mexico peppers, the authentic ones, not this garbage they're trying to pass off now. And my roof was leaking that same night, water coming through in three different spots, but I went anyway. because some things matter more than convenience, you know what I do. And now my girlfriend, Denise, she keeps saying we should just buy the pre-roasted stuff from Costco, which is exactly the problem with everything these days. Nobody cares about quality anymore. Nobody cares about where things come from or what they mean. Everything's got to be easy and cheap and fast, and I'm sitting here thinking, maybe that's connected to something bigger I've been wrestling with, but I haven't quite figured out how to say it yet.
LUKE: Well, I mean, where do the chilies come from that go, than the Costco ones, because they could be coming from Hatch New Mexico. I don't know.
CHESTER: No, no, no. See, that's what they want you to think. But if you look at the label, really look at it. Most of that stuff is coming from Anaheim, California. Or they're mixing it with peppers from Mexico or even Peru sometimes. They slap Hatch style on there, which doesn't mean a damn thing legally. Hatch child means it's grown in the Hatch Valley in that specific soil with that specific climate. My buddy Ray, he used to work at one of the roasting-off. operations up there before it got bought out. And he told me they started blending in cheaper peppers from wherever they could get them, because the demand got so high after it became this trendy thing. And people can't tell the difference anymore because they never had the real thing to begin with. When I drove up there in 2008, I bought directly from the Franzoi family. Watch them roast it right there. Filled up my whole truck bed.
LUKE: Well, that sounds pretty excessive. You're a real connoisseur of chili peppers. I can't tell the difference myself. I do like that. I do I don't know if they're Hatch Chilies or Hatch style chilies, but I like the green chili on my burgers. And honestly, I could care less whether it comes from Hatch, New Mexico, or Anaheim, California. They're not very far apart. Neither is Mexico. And I bet that the peppers in Peru are fabulous. So what's the big issue here?
CHESTER: Well, that's exactly what Denise says. Maybe you're both right. Maybe I'm the one who's got it all twisted up. But it's not really about the peppers, Luke. I don't know. They're the thing I can point to and say, this matters. This is real. This is worth doing right.
LUKE: It seems like a pretty small thing to get hung up on doing right. I mean, chili peppers that are like a condiment on your burger. But hey, if you like the hatch ones, drive out to hatch and fill up your truck bed. Good for you. I don't, I'm not sure what sort of volume of peppers come out of hatch. Is there enough chili pepper grown in Hatch, New Mexico to supply the whole country?
CHESTER: No, that's the thing. There's not. The whole valley only produces maybe 30,000 tons in a good year. And the country wants millions of pounds of the stuff now that it got popular. So mathematically it doesn't work, which means most of what people are eating isn't what they think it is, and that bothers me on principle. But you're right, it's a small thing. The real reason I called, and I've been dancing around it, is that Denise has been dropping hints about getting married for about six months now.
LUKE: Okay, well, I don't really see how how you've been dancing around that, but how do you feel about getting married to Denise?
CHESTER: I don't know, Luke. That's the problem. We've been together four years. She's a good woman, works hard at the hospital as a billing clerk, doesn't complain about the hours I keep at the yard. She makes sense on paper. But every time she brings it up, I get this feeling in my chest like something's closing in. And I change the subject, or I pick a fight about something stupid like the peppers.
LUKE: Well, you don't have to get married if you don't want to get married. Definitely don't get married sure you want to get married. My recommendation to everybody is absolutely under no circumstances get married because it's the worst fucking possible thing you could ever do. But no, people don't listen. I didn't listen. I did it myself and it was the worst fucking thing I ever did. So don't.
CHESTER: See, that's what I keep telling myself. But then I think about my dad. He never married my mom, just kept her hanging on for 17 years saying he wasn't ready, wasn't sure, needed more time.
LUKE: Yeah, but he fell apart with 100% of his assets, I'm sure. Whereas if he had got married and she left him, he would have fell apart with half.
CHESTER: Well, he didn't have much to split anyway. The junkyard was already mortgage to hell, and she never wanted any of it. She just wanted him to commit to something for once in his life instead of keeping one foot out the door all the time. And now he's 72, lives alone in that same trailer, eats TV dinners, and I can see myself turning into that.
LUKE: Well, I think that getting married out of fear of being alone is definitely the wrong reason. But you're your own man. If you think it's time to tie the knot, then go ahead and do it. But I recommend that you don't. And absolutely, if you're going to get married, prenuptial agreement.
CHESTER: Yeah, Denise would lose her mind if I brought up a pre-nup. She'd take it as me planning for failure before we even started. And maybe she'd be right. The thing is, Luke, I think the real problem is I don't know if I'm capable of what she needs. She wants someone who comes home at a decent hour, who wants to take vacations to Branson or wherever, who's excited about picking out furniture and talking about where we'd send kids to school.
LUKE: Well, I mean, are you that guy? I mean, I didn't bring up pre-nup either for all of those reasons. It seems like an offensive thing if you're talking about getting married. But you know what? It's better to be offensive up front than have to get a lawyer later.
CHESTER: No, I'm not that guy. I'm the guy who'd rather stay at the yard until midnight organizing parts bins that don't need organizing because at least out there, I know what I'm doing. And she knows that about me, which is maybe why she keeps pushing the marriage thing, thinking a ring and a ceremony will transform me into somebody different. My buddy Ray did that, married a woman who wanted him to be less of a drinker, and now he sneaks bourbon in the garage and lies about where he's been. That's no way to live either.
LUKE: No, sir, it is not. And if that's what you think is going on here and she wants to marry you because she thinks that's going to change your behavior, then I think you should definitely not do that because it's not going to go well. Your behavior is not going to change. Or if it does, you're going to resent that you changed it for somebody else. And eventually, you're both going to hate each other. And it's not going to be a pleasant experience. So if you're not completely sure you want to get married and you shouldn't be, then don't do it. advice for you is just don't do it. And if she feels like she's hanging on and doesn't want to hang on, let her go.
CHESTER: That's the thing that keeps me up at night, though, Luke.
TANYA: Oh, gosh, hi, Luke. Thanks for taking my call. So my husband just texted me that he's spending the night at his girlfriend's place, and I've been sitting here in my restaurant office for like an hour, staring at my phone, and I don't know what I'm feeling.
LUKE: Okay, well, obviously, you know about the girlfriend. This is an open type relationship. How does that work? Your husband has a girlfriend and you're okay with that? Or you don't know if you're okay with that? What's the situation? Give us some context.
TANYA: Right, so six months ago, I suggested we open up our marriage. I read this article about how it can bring back excitement, and I thought maybe that's what we needed, because things had gotten really flat, you know? And he was.
LUKE: I was into the idea, but here's the thing, Luke. The thing is he's got his girlfriend and you don't have somebody else now. He's working out for him and not you, I assume.
TANYA: Exactly. He found someone on this Dayton app within like a week. Her name's Rebecca. And I've been trying. I really have. I've sent out probably 30 messages and I haven't gotten a single reply. Not one.
LUKE: So are you jealous that he's out with his girlfriend? Or are you jealous that he found a girlfriend and you didn't find a boyfriend? What is it that's boss?
TANYA: That's what I keep trying to figure out. I keep telling myself I'm happy he's happy. Right? Like that was the whole point. But tonight when I got his text, I saw my reflection in the office window here, and I realized I couldn't remember the last time I actually looked at myself for that long.
LUKE: Do you even want a boyfriend? I mean, you said the spice was gone or whatever and what, I assume you guys weren't having sex and you wanted some? Are you not able to get laid?
TANYA: I mean, I want to want it. Does that make sense? Like I thought opening things up would make me feel alive again or desirable or something.
TANYA: But honestly, Luke, I don't even know if I'm actually attracted to any of these guys I'm messaging. I'm just doing it because that was supposed to be how this works. We both get to see other people and it fixes things somehow.
LUKE: Well, obviously, that's not going to work. You have to actually want to see other people. I think that can work for certain couples. I think it's very difficult and you have to be the right kind of people for it to work. But just trying to fix a problem by opening it up seems like it's probably going to just make a worse problem. Is it that you're not attracted to men?
TANYA: No, no, it's not that. I'm attracted to my husband still, or I was. I think what's happening is I suggested this whole thing because I thought it would make him want me again, you know? Like maybe if other people wanted me, he'd remember why he did. But now he's over at Rebecca's place and I'm sitting here and clothes that smell like friar oil, and I'm realizing I might have just given him permission to leave without actually leaving.
LUKE: Well, I've never had children, so I've never had to go through that back and forth with somebody about how we're going to raise them. So I can't give you the greatest advice here, but I would say if you can't come to an agreement amongst yourselves, flip a coin.
TANYA: A coin flip? This is not a decision you flip a coin on. I have actually done the research here. I have read three peer-reviewed studies in the last week about homeschooled kids and college readiness.
LUKE: Yeah, well, a lot of kids don't go to college, and it sounds like she's done her research, too. So there's opposing views here. A lot of people, everybody I've known that's been homeschooled swears by it. So I don't know that the public school has a very good track record.
TANYA: Okay, but those studies show that homeschooled kids have real gaps in socialization. And that is exactly what I am worried about with Maya. She has spent years being the quiet kid who ate lunch alone. And this year, she finally has a group of friends. She is going to sleepovers. She is texting with kids from her class. You yank her out now and put her back in the house all day with just her mom and her little brother. That progress disappears.
LUKE: Well, not necessarily. There's still ways to get her socialization throughout the day and the week. I mean, she can still be in different clubs and have her friends and go to the live. and things. It's not just locking her in the house all day. Socialization is part of the homeschooling.
TANYA: Yeah, Sharon says the exact same thing. She talks about homeschool co-ops and field trips and whatever, but that is not the same as being in class with the same 30 kids every single day. Those co-op things meet what, once a week? Twice a week maybe? Maya has finally figured out how to navigate the social world at Silver Consolidated.
LUKE: Yeah, well, I mean, that's a small school, right? You're talking about Silver. New Mexico?
TANYA: Silver Consolidated. Yeah. We're in Byard, actually, just outside Silver City. It is a small school, which is part of why this is working for her. She knows these kids.
LUKE: Yeah, well, if you live just outside of Silver City, she's still going to know those kids. They're still in her town. I mean, she can still go to events with them and go to the movies and stuff and do kid things. So I don't really see the problem. Like, if you were in New York City public, school where she had 500 classmates, that would be a different experience. But homeschool versus a small Silver City Consolidated School, I don't think it's going to be that much different. I mean, and you don't know what's going to happen in the future. Imagine it was just a few years ago and COVID happened. And then all the classes were over Zoom meetings for years. Like, what did that do to kids' socialization? They still made it. They still were able to communicate with their friends and learn socialization. think. I don't really know. Don't take any of my advice on this one. I don't know what I'm talking about, but just from my perspective, I don't think there's that big of a difference between homeschooling and regular schooling. And if I were doing it, I would push for homeschooling. If I could, if I had the time to do that, because I really don't believe in the school system at all.
TANYA: Okay, but here's what you're missing. Maya is not just any kid. She has struggled with this her life. We are talking about a girl who used to fake being sick to avoid school because she was so anxious about talking to other kids.
LUKE: Well, yeah, and going to school sucks. So, you know, that's showing you she's been in school and she was still shy. Now she's getting a little older and she's made some friends, but it's a different situation now. It's not so much about the school as her age.
TANYA: That is exactly what Sharon says, and I do not buy it. Yes, she is. She is. She is getting older, but the reason she finally made friends this year is because her English teacher put her in a group project with three other girls, and they clicked. That does not happen sitting at the kitchen table with workbooks.
LUKE: That also really doesn't happen that often in the workplace. I mean, think about today's modern workplace. You are working on those projects remotely with people across, you know, Zoom meetings and stuff. The school experience is pretty far from reality.
TANYA: I work with my hands. I fix things. I am in my workshop right now looking at circuit boards and actual tools. The real world for me is not Zoom meetings. It is dealing with people face to face. And that is what Maya needs to learn. She needs to learn how to handle herself when someone is rude to her in the hallway. Or when a teacher calls on her and she does not know the answer. Or when her friend group has drama. You cannot simulate that stuff at home.
LUKE: You can absolutely simulate that in the real world because that's around everywhere. She's going to have to learn how to deal with people face to face. in business, in going to the bank and dealing with a difficult employee, shopping at Walmart. Like, she's going to have to deal with those things in school or anywhere else in the world because that's just dealing with other people. She doesn't need to be in school to do that. She could be literally anywhere in society.
TANYA: But she is 13 years old. She is not going to the bank by herself or dealing with difficult Walmart employees. The only place she is at. actually navigating peer relationships on her own, without me or Sharon standing there, is at school. That is where she is learning to handle conflict with people her own age, to read social cues, to figure out who to trust.
LUKE: Well, yeah, that's because that's the only place you're putting her. But if you tell her to leave at 8 o'clock and go outside and go hang out at a coffee shop, she's going to meet people there. If she goes to do the shopping on a Thursday, then she's going to meet people there. And yeah, she's 13, but 13 is a teenager. She should be out and doing things with kids outside of school and home, right? I was. I'm sure you were out playing on the road with the other kids on the street. There was more to socialization than just what happened in the defined six hours of school or whatever.
TANYA: You are talking about Silver City, New Mexico. There is no coffee shop where teenagers just hang out. This is not some college town. And yeah, when I was a kid, we were outside all the time. was different. Kids do not do that anymore.
LUKE: Yeah, because you don't let them. Kids would do that if you let them. If you encourage them to do it, they certainly would. And the Silver City is a college town, and there are coffee shops where kids are hanging out because I've been there. So I don't know what you're talking about.
TANYA: Okay, fine. Western New Mexico University is there, but Maya is not a college student. She is 13. And yes, maybe there are a couple coffee places, but the point is Sharon wants to pull her out right now, of the school year, when she finally has this friend group.
LUKE: Yeah, and I'm on Sharon's side, so sorry, I don't agree with you. You're not going to get the answer for me that you're looking for.
TANYA: Well, hold on. You were just going to side with her without even hearing the full situation? Maya has anxiety. She has had it since she was little. She would not talk to other kids at birthday parties. She would hide behind Sharon at the grocery store.
LUKE: No, I'm going to side with her after having heard what you just said like four different times because you keep repeating it. I understand she has anxiety.
TANYA: It is not just regular nervousness. She has been seeing a therapist for two years. And this year, eighth grade is the first time she has actually had friends who call her, who invite her to things.
LUKE: Okay, that's great. And they can keep inviting her to things and calling her if she's homeschooled. She's already made the friends, right? She's already got them. So I don't know what you're looking for for me.
CARLA: The question is, how do you say no to people without them deciding you are the problem? Because every time I have said no in the past year, someone has made it very clear that I am being difficult. My supervisor asked me to switch my weekend off in January so she could go to her daughter's volleyball tournament.
LUKE: Next up, we've got Cliff. Cliff, welcome to the show. What's going on in your life today? Do you have a real problem that I can give you real advice about?
CLIFF: Hey, Luke?
LUKE: Yeah?
CLIFF: I caught my tax client's wife cheating on him in the Albertson's parking garage tonight, and I cannot stop laughing about it, even though I probably should not have seen what I saw, so I do taxes. Right? Been doing Ray's returns for maybe eight years now. Nice guy, owns a plumbing supply company, always complaining about his wife Denise at poker. She shows up to our potlucks and complains right back about him.
LUKE: Okay, so why are you laughing about his wife cheating on him?
CLIFF: Because it was with Ray. They were cheating on each other with each other, Luke. I am standing there in the parking garage like 9.30 because I forgot my briefcase in my car. And there is Demise, pushed up against a Honda Civic, with some guy, and I'm about to turn around and pretend I did not see anything. And then the guy turns his head and is his ray.
LUKE: I don't understand. How is that cheating? That is exactly what I've been trying to figure out for the last two hours. They are married to each other. They live together.
CLIFF: No, I know they are married. That is what makes this so insane. These two spend every social gathering for the last three years, telling anyone who will listen how much they cannot stand each other. Ray sits at poker and goes on about how Denise nags him about every little thing, how she hates his hobbies, how they have not had a real conversation in months. Denise shows up to potlucks and tells my wife that Ray is emotionally unavailable, and they are basically roommates at this point.
LUKE: Well, good for them. It sounds like they found a way to inject a little something into their relationship and maybe restart the flame or whatever it is they say. I think that's great. Good for them.
CLIFF: But Luke, they are lying to everybody. That is the part that is making me crazy. I have sat through hours of Ray complaining about his dead bedroom. Hours.
LUKE: Yeah, well, they weren't in the bedroom, were they?
CLIFF: No. They were in a parking garage acting like teenagers who just discovered each other. And the whole time they had been performing this miserable marriage routine for everyone we know. I mean, we have all been taking sides. People avoid inviting them to the same things because the tension is supposed to be so bad. My wife spent 45 minutes on the phone with Denise two weeks ago talking her through whether she should leave him.
LUKE: Yeah, well, maybe it got to a point where they had to do something, and they decided that instead of hating each other for the rest of their lives or breaking up, they were going to try and reignite the passion by doing some public play.
CLIFF: Public play? They do not even know I saw them. This was some plan to fix things. Why are they still doing the whole song and dance? Ray called me yesterday to cancel poker night because he said Denise was giving him grief about spending too much time with the guys.
LUKE: Yeah, well, maybe they're lying about it, maybe they're embellishing how much they don't like each other, or maybe they actually don't like each other, but people still like to fuck, you know? So it could have just got long enough for each of them that they needed to bone, and they found a place to do it, and you happen to see.
CLIFF: That is the most depressing thing I have ever heard. What kind of marriage is a is that. You hate each other enough to complain about it to everyone you know, but not enough to actually do anything about it. So you just meet up in parking garages every once in a while?
LUKE: I don't know. It's not on me to judge their marriage, but that sounds better than not meeting up in parking garages at all. People do have needs, and it seems like they're getting them from each other, which is the point. And if they do that in an unconventional way, who cares? That's their life. That's their marriage. If they're a pain in the ass to you and your friends, though, to them about it and say, hey, you guys need to cut the shit because we're sick of listening to it.
CLIFF: I cannot talk to them about it without admitting I saw them, and then I am the crink with a telescope who watches people in parking garages. Which is not what happened. I was packing up my equipment and I looked down and there they were under a light post going at it.
LUKE: Yeah, well if they were going at it in a public parking garage, they wanted to be seen. That was the point of the exercise was that they could be caught. That's what made it exciting for them. You must understand this.
CLIFF: You think they wanted someone to see them? In downtown Albuquerque at 1030 on a Tuesday night in an empty parking garage.
LUKE: No, I don't think they wanted somebody to see them. They wanted to be in a place where they might be seen. There's a difference.
CLIFF: Okay, fine. But that still does not solve my problem, which is that I have to sit across from these people at every gathering for the rest of my life, knowing what I know, while they keep performing this whole charade. Do I just pretend I believe it? Do I keep listening to Ray complain about how she never wants to do anything spontaneous anymore?
LUKE: How spontaneous she can be? No. You're just, the next time he says something like that, let him know that you saw them and that he's lying and that he's busted. And maybe there's more to the story than you're aware of, and maybe there's not. But either way, you don't have to hide that. I wouldn't go and tell everybody else. I wouldn't tell it to all your friends at the poker table. But if you're with Ray and Ray is talking some shit that is obviously not true, then call him out on it.
CLIFF: Yeah. So I just say what, Ray, I saw you and Denise screwing against a Honda Civic last Tuesday. Cut the crap? That is going to go over real well. He's going to lose his mind.
LUKE: Yeah, I'm sure it'll be fun. It'll be interesting.
LUKE: Then you'll have a good reason to laugh. You are out of your mind. This is terrible advice. Now I am going to have Ray pissed off at me for spying on him. Denise pissed off at me for embarrassing her and everyone else wondering why I was downtown with a telescope at 10. 10.30 on a Tuesday.
LUKE: No, you weren't spying on him. They were in a public place. They were in a public place because they were doing some sort of public play. Like, they wanted the thrill of potentially being caught by somebody, and you happen to see them. Unless you actually were spying on them, then that's a different story. If you were spying on them, then you're a creep. And send us the pictures. We have a Discord. You can check that out.
CALLER: I was not spying on them. I was packing up my telescope after looking at the moon for two hours. I looked down to make sure I was not leaving anything on the ground, and there they were, under the only working light in that whole section. It was completely accidental. And no, I did not take pictures.
LUKE: Well, that was a missed opportunity then, sir. But that's my advice for you is the next time he starts bitching about his wife in front of you, let him know that you know. And tell him he's caught in the lie and to cut the shit. And, you know, maybe you learn more about that story and there's, I'm sure there's more to it. But from the information that you've given me, eh, who cares?
CALLER: All right. So I am just supposed to blow up the entire dynamic at the next poker night, funny. That is what I am hearing. Because once I say something to Ray, this is not staying between us. He is going to tell Denise I saw them. She is going to freak out. And then I am the guy who ruined everything by not minding my own business. And I still have to see these people every week.
LUKE: Well, you did mind your own business. I mean, all you're doing is calling on him for lying the next time he lies. I'm not saying to blow up your poker game or take it to the poker table. I'm saying when you're alone with Ray and he bitches about his wife, tell him to cut the shit because you caught them. That's all. That's all. And yeah, I do think it would be funny. And if you don't want to do this, if you don't want to take this advice, that's fine. That's fine by me. But you're the one that called and asked for it. So, I mean, there's that.
CALLER: You know what? You are right. I did call and ask for it. And now I am sitting here realizing I called a radio show at midnight to complain about my friends having sex in a parking garage, like I am some kind of pervert, which is exactly what Ray is going to call me when I bring this up. This whole thing is ridiculous.
LUKE: conversation goes on, the more you actually sound like a pervert, because you're protesting being a pervert an awful lot. And if it went down the way that you said it went down where you just happened to see them because they were there in public under the light, then no, you're not a pervert. You just happen to see something. But you seem really, really nervous about looking like a pervert. So I'm starting to question whether or not what you're telling me is the truth.
CALLER: Oh, come on. I am nervous because I know how this is going to sound no matter how I explain it. I was downtown with a telescope late at night, and I saw two people I know going at it. That sounds bad. It sounds like I was looking for something.
LUKE: I don't think it does. I think it sounds like they were looking to be found.
CALLER: Maybe you are right about that. I have known Ray for eight years, and the man complains about Denise constantly. Every single time we get together, it is something new. She does not appreciate him. She nags him about money. She wants him to be someone he is not. And those things are all probably true, but that doesn't mean they don't want to fuck. And honestly, that is the part that has been bothering me since I got home. They have this whole routine down where they act like they cannot stand each other in front of everyone, and meanwhile, they are sneaking off to parking garages. What is the point of all that?
LUKE: I don't know, but I can't tell what the point of this call is either, so we're going to go to a break from our sponsors here, and we'll be back shortly. Look, I'm not a financial advisor. I'm a guy with a microphone and a dog, but the folks at Crypto no asked me to tell you about their new decentralized investment platform, and I legally have to read this part. Past performance does not guarantee future results. This is not financial advice. And if you invest your rent money, you deserve exactly what happens next. Crypto No lets you trade over 400 digital currencies, including three that were invented this morning and one that's just a picture of my dog. The app features a real-time portfolio tracker with a built-in panic button that just plays ocean sounds when your balance drops. Crypto no. Fortune favors the bold, but it does not return their calls. Okay, thanks to Crypto No for the sponsorship there. We couldn't do the show without you. Crypto No. That's what I say. Next up, we've got Leon. Leon, welcome to the show. What's happening in your life tonight, sir? How can we help?
LEON: Hey, Luke. Thanks for taking. Thanks for taking my call. So I found my wife's pills today. She's been stockpiling her oxy, and I am pretty sure I know what she's planning to do with them when things get bad enough. And I cannot figure out if I should say something or just let her have that choice.
LUKE: Okay, well, that's a tough one. What is it, what is going to get bad enough? I mean, what situation is she in where she would be thinking about that?
LEON: She has got stage four pancreatic cancer. They gave her maybe six months back in January and she's about halfway through chemo right now. The pain is manageable now. But her oncologist already told us it is going to get a lot worse before the end. Linda is the kind of person who has always been in control of everything. I mean, she planned our wedding down to the minute she runs the finances. She even picks what I wear to church. And I think the idea of being bedridden and helpless at the end just terrifies her more than dying does.
LUKE: Yeah, I can understand that. And I can understand that in why it's a difficult situation for you to be in. There's not a right answer there. It very much depends on your own personal values and beliefs. But I can tell you if it were me, I would want to have that option. So maybe it's worth having the conversation with her, letting her know that you know what she's doing, what she's planning on, and asking her if she wants you to get involved or not.
LEON: That is the thing, though. I do not know if I can have to have that conversation without falling apart. We've been married 36 years, and we have barely talked about her dying at all. Like, really talked about it. We mention appointments. We talk about side effects from the chemo, but we do not say the actual words. And if I bring up the pills, then we have to say it out loud. We have to talk about her last day and whether I am going to be there and what that looks like.
LUKE: Yeah, and I think that you're going to have to have that conversation and it's okay if you've followed apart. I mean, that's perfectly acceptable. Of course you're going to fall apart. But you should have the conversation, regardless. Even if the pills weren't part of the equation, you should still have the conversation and talk about what that day should look like because that day is coming and you both know it's coming. So avoiding the conversation is not going to be helpful. And I think if you don't have that conversation, when the day does come, you will wish that you had.
LEON: You are right. I know you are right. I know you are right. I have been thinking about it like I am protecting her by not bringing it up, but really, I am just protecting myself from having to face it.
LUKE: Next up on our call line, we've got Heather. Heather, welcome to the show. What's going on?
HEATHER: Luke, I don't know. I just watched some jackass at my nephew's little league game shove a 16-year-old umpire over a called third strike. And when I told him to back the hell off, he got in my face screaming about how I was destroying his kid's future. This was a game for eight-year-olds. Eight. And the worst part? Not one other parent said a damn word.
LUKE: And how did you respond to the situation?
HEATHER: I got right back in his face and told him if he touched that kid again, I was calling the cups, which made him lose it even more. Started yelling about how people like me are what's wrong with youth sports, how everyone's too soft now, how his son needs to learn that life isn't fair and someone's got to fight for him. Meanwhile, his kid is standing there crying, absolutely mortified. The umpire's shaking, my nephew's confused, and I'm standing there thinking I'm about to get into an actual fist fight in a Little League parking lot. At 43 years old.
LUKE: Yeah, I mean, it's stories like that that don't make me sad. I don't have kids and I don't have to deal with that stuff. But it sounds like those little kids sports games get pretty intense and it's not about the kids at all. It's about the fathers generally living vicariously through their eight-year-old kids thinking that they're going to be giant sports stars someday. But they're just little sniveling idiots running around in circles.
HEATHER: Exactly. That's exactly what it is. And you know what really gets me? This guy kept saying, my son's future, my son's future. Like some college scout was hiding in the bleachers at a Tuesday afternoon game in Demon, watching third graders, his kid can barely catch a pop fly.
LUKE: Yeah, it's pretty silly. I agree with you. And it's unacceptable behavior from from lots of usually the dads at those things. And I'm glad that I don't have to go.
HEATHER: Well, here's the thing, though, Luke. I've been sitting here at my salon for three hours doing inventory because I can't stop thinking about it. And it's not just about that dad being a psycho. It's that nobody else said anything. There were maybe 20 parents there. And they all just stood there looking at their phones or pretending to be real interested in the concession stand. Like if they don't acknowledge it, it didn't happen.
LUKE: Yeah, well, what would you have hoped that they did? Some of them probably agreed with the dad. Some of them agreed with you. What would your ideal outcome have been?
HEATHER: I wanted somebody, anybody, to back me up. Even just one person to say, hey man, that's not okay. Because when I'm standing there alone, telling this guy off, I look like the crazy one. I look like I'm the problem. And you know what happened after? Two different moms came up to me later after he left and whispered, thank you for saying something that was so brave. Brave?
LUKE: Yeah, you didn't look like the crazy one. I bet nobody there thought you looked like the crazy one.
HEATHER: They all knew that he was being a douchebag and were probably proud of you for standing up for it, but they're all pussies and they don't want to get in trouble with the school or end up in the paper or get their kids in trouble. People are weak. That's what pisses me off, though. Everyone's so worried about making waves, about being that parent, that they'll watch a grown man assault a teenager and just let it happen.
LUKE: Yeah. It's a sad state of affairs, for sure. I agree with you. But here's what I can't stop thinking about. That dad's kid? He's in my nephew's class.
HEATHER: Yeah.
LUKE: And is the dad's kid a good kid? Is he a friend of your nephew?
HEATHER: I don't know. That's the thing. I've never actually talked to the kid. But I see him at every game now, and all I can think is, that's the psycho's son. And that's not fair to him, right? Like, it's not his fault. His dad's an asshole. But I'm sitting here wondering if I should say something to my sister about not letting them hang out.
LUKE: No, I doubt that very much. That kid's life probably sucks at home. That guy is almost certainly an asshole all the time. I would guess, I don't know the guy. I never met him, but I would guess he's the type that's punching walls and probably drinking heavy and just not being a great father figure. I could be wrong about that. That's a gross generalization, but I mean, that's the picture that behavior paints. would feel sympathy for the kid and maybe try and be more involved in his life so that you can be a positive influence and let him know that not all adults act like that.
HEATHER: You know what? You're right. I didn't even think about it that way. I've been so focused on being mad at the dad that I didn't consider what that kid's dealing with.
LUKE: Yeah, that kid is probably horribly embarrassed. He doesn't want to be the center of attention in that way. Nobody does.
HEATHER: So he was bag father. God, you're absolutely right. I didn't even look at the kid after it happened. I was so focused on his dad and then on whether anyone was going to back me up, that kid probably wanted to disappear into the ground.
LUKE: Yep. That's understandable. So, I mean, look at the kid with sympathy and try to be a good role model for him and don't let the sins of the father affect the youth of America or whatever the fucking saying is. Thanks for the call. I'm going to end up, the show here. And do you have anything else you'd like to add before we sign off for the evening?
HEATHER: Yeah, just one thing. To anyone listening who was at that game today and saw what happened and didn't say anything, you're part of the problem.
LUKE: That's right, Heather. I agree with her. You guys are the douchebags. You're the reason that everything sucks now. And you should be ashamed of yourselves. Good night. Thank you.

View File

@@ -0,0 +1,313 @@
LUKE: All right. Welcome back to Luke at the Roost. This is the call-in radio show where you can call in and ask me whatever's on your mind, and I'll give you the best advice I can. If you'd like to give me a call, the number is 208-439-58-53. That's 208-439 Luke. And I'd like to give a special thank you to everybody today, because today we hit 1,000 downloads, which is, insane to me, considering this has only been going on for a month or so. So thank you to all of you out there that enjoy listening to my voice. That's, it's very nice for you, and we couldn't do it without yet. So today is, it's actually Thursday, March 5th, but I'll consider it Wednesday's show, because it just passed midnight a little while ago. It's getting laid out here, and we're ready to give some advice. Gangsta hip hop here to play in the background. That's perfect. And we're going to get to our calls. So, Wendell, Wendell, you're calling in today? What's going on tonight?
WENDELL: My wife made a joke tonight. About our daughter being tall like my family. Except nobody in my family is tall, Luke. Nobody. And I've known since this kid was three years old that she's not mine biologically. I did the math. I remember exactly when my wife had that thing with her co-worker. But here's the thing that's eating me up right now.
LUKE: Wow, it's not even the thing that your kid isn't your kid? Are you sure? Have you done a paternity test or any sort of DNA verification? I mean, that seems like awful circumstantial evidence, but what is it that's eating you up right now?
WENDELL: No tests, no DNA, nothing official like that, but Luke, I'm telling you I know. The timeline is perfect. The features don't match either of us. And there was this whole two months back then, where things were weird. Even though we never said it out loud. But that's not what's got me twisted up tonight, man. What's killing me is that I chose this.
LUKE: You chose what? You chose going to the laundromat tonight? Or you chose a wife that's going to cheat on you and then you're never going to talk about it? You need to know this for sure. You're making a lot of accusations here. It seems like maybe you might not be right about that. You should probably have a conversation and see if there's a reason for your hesitance, your paranoia here.
WENDELL: No, no, no, Luke, you're right. I should say it clearer. I chose to be her dad. When she was three, I sat in my truck outside a clinic that does paternity tests, and I had all the paperwork filled out, and I sat there for 45 minutes, and then I drove home and threw it away, because I realized I didn't want to know officially. I wanted to keep being her father. Every soccer practice, every scraped knee, every time she runs up and hugs me when I pick her up from her, school. That's real. That's mine.
LUKE: Okay, okay, okay. But, uh, you sound awful angry about it. It doesn't sound like it's, uh, making you feel joyful and, uh, happy. Why are you so upset?
WENDELL: Because tonight when my wife made that joke, she was so casual about it, so comfortable with the lie. And it hit me that she doesn't know that I know. She thinks she got away with it completely. And I'm sitting there smiling and nodding like, yeah, funny how genetics work. And inside, I'm screaming because I'm screaming because I'm, I've been carrying this alone for 10 years, Luke. 10 years of being the only one who knows the truth.
LUKE: Well, how do you know the truth if you haven't confirmed anything? You just have a suspicion and you're calling it the truth. Your wife might not know what you're thinking at all. Maybe she didn't do anything.
WENDELL: Luke, she told me. Not directly, but she told me. This was back when our daughter was maybe six months old. We'd had some wine one night, and she started crying and said she needed to tell me something, and I stopped her. I literally put my hand up and said, I don't want to hear it. Whatever it is, we're good. We're moving forward. She tried twice more over the next year to bring it up, and both times, I shut it down because I didn't want it to be real if we said it out loud. So she thinks I don't know because I wouldn't let her tell me. But Luke, I know what she was trying to confess.
LUKE: Yeah, well, maybe you think you know what she was trying to confess. You might not have any idea. Jesus, man. You're carrying around an awful big burden without verification here, just thinking what you think is the truth. And maybe it's not. Maybe you should ask her what she was trying to confess all those times and stop shutting her down any time she tries to confess. Wouldn't you rather know for real what's going on than just be upset for the rest of your life for no reason?
WENDELL: You're making me feel crazy here, Luke. But maybe you're right. Maybe I am crazy. But what if I ask? And it's exactly what I think it is. What do I do then? Right now I get to be her dad With no asterisk, no question mark The second we say it out loud, everything changes My daughter's 13 She's got her whole life ahead of her She doesn't need to find out Her dad isn't her dad And her mom cheated And we've been lying to her for her entire existence
LUKE: Well no, she doesn't need to find that out You don't have to tell her that I mean and if you're living your life Thinking that this is the case What's the difference if it's said out loud or not Only good can come of having the conversation, right? If you already think it's the truth, and then you find out it's the truth, nothing changes. But if you think it's the truth and you find out that she wanted to tell you something completely unrelated, that's a big burden off of your shoulders.
WENDELL: Okay, okay, you're actually making sense. And I hate that, because I've built this whole thing in my head for a decade. And now you're telling me maybe I built it on nothing. But Luke hears what scares me about asking. to confess that she kissed someone. Just kissed, nothing more, and I open this whole can of worms and put the idea in her head That I think our daughter isn't mine. What if I'm about to ruin a good thing by digging when I should have just let sleeping dogs lie? Because right now, even with all this weight on carrying, we're happy.
LUKE: Yeah, you sound super happy. No, you should know for sure. Because if she does tell you that she just kissed someone, she's just going to laugh. She's just going to be like, oh my God, God, I can't believe that you thought that for the last 10 years. Any reasonable person would just laugh in that situation, not be upset with you for it. But I would recommend if your wife's trying to tell you something, you let her tell you.
WENDELL: You're right. God, you're right, and I've wasted 10 years being terrified of a conversation. I'm going to talk to her this weekend when our daughter's at the tournament in Deming.
LUKE: I think that's a great idea. And maybe she's just lucky. She got tall. Good for her. That is funny, though, that the whole situation is pretty funny. You're a funny guy, sir.
WENDELL: Yeah, well, I don't feel funny. I feel like an idiot who's been white-knuckling a secret. That might not even be a secret. My wife's going to think I've lost my mind when I finally bring this up after shutting her down for a decade. Hey, Luke, can I ask you something, though? What if I'm right? What if I ask? And it is what I think it is. Do I just keep being dad like nothing happened? Or does everything fall apart?
LUKE: Well, what do you think? I don't think anything would have to change. I mean, you'd be operating as usual. You already believe it's the truth, so confirming that doesn't change anything. If you've decided to be her dad, you're her dad. And she doesn't know any other dad, right?
WENDELL: You love your kid, and you've been there for her whole life, and nothing changes. You're absolutely right. I've already made my peace with it in my head. I just never made my peace with it out loud. And she is my kid, Luke. She really is. I taught her how to throw a curveball. I'm the one who sits in the stands at every game.
WILL: I promise I'll call back after we talk. Thank you, man. Seriously. I've been carrying this around like a boulder on my back. And you just made me realize I could have put it down any time.
LUKE: Yeah, man, it sounds like you wanted to carry the boulder on your back. Put it down. That's what I say. Put it down. Next up we've got Alia. Alia, welcome to the radio show. How can we help you today?
ALIA: Hey, Luke. Okay, so I need you to settle something because my boyfriend is asleep and I am losing my mind over this. Everyone who says they can hear the difference between vinyl and digital is completely full of shit, right? Like it is scientifically impossible for the human ear to detect what they claim their hearing. And I have been arguing about this online for two hours and I need back up here.
LUKE: Not always would be my answer for you. Sometimes you can definitely tell that what you're listening to is uh is vinyl um as opposed to sometimes you can absolutely tell that it's digital especially if there's any level of like digital clipping in it if the signal gets too loud then um vinyl never sounds like that so so it's a very obvious digital sound if things are mixed appropriately and with some of today's And stuff, you can make a digital recording sound very much like vinyl. But when people are talking about the vinyl sound, usually what they're referring to is noise. It's the scratches and the clicks and the pops that are inherently in the vinyl. And I think a lot of audio file type people, like the old school, people from the 70s, when they're saying it doesn't sound the same, it's because they're not listening to it through the old analog tubes used to be around back in the day. That imparted a very warm sort of distortion to the sound that people got very used to. It's really nice sounding to us. We like it a lot. So, I mean, they could play a vinyl record on some record player that they picked up at Best Buy a couple of years ago, and it's not going to have that same warmth characteristic that came from the old tubes. So it's a complicated question that you've got there. And I would say that, yeah, you can tell a difference, but not always, because we've come really far in replicating that vinyl sound.
ALIA: Okay, but see, that's exactly what I'm saying, though. The noise, the scratches, the pops, the warmth from the tubes, that's all just distortion. It's imperfections. People are out here spending $3,000 on turntables and telling me they're can hear more detail. And it's like, no. You are hearing less detail because you added a bunch of random noise to it. You are paying money to make the sound worse and then convincing yourself it's better because you dropped all that cash and you need to justify it.
LUKE: I would agree with you in most instances. I think that's what most people are doing. But also having had some vintage style recording gear, I can tell when something's going through a nice, warm tool, tube, and it has the proper circuitry, right? I can tell the difference between high-end gear and sheep gear. And it becomes really apparent whenever the volume is pushed a little bit too loud. Digital recordings are very clean, very pristine, unless there's distortion added after the fact. And I think also another part of this, this debate that gets people confused is the words they use. You're saying that, you know, people say that they hear more detail in the vinyl and that that's just noise. But the noise is details. All those little scratches and the warmth that's added, the character that's added to the sound, that's detail and its noise. So the words that we use to describe the sounds can make the conversation more complex.
ALIA: Okay. hold on. That is not what detail means. Detail is like being able to hear the individual strings on a guitar or the breath between vocal lines. Details information that was actually in the original recording. A scratch from dust on your record is not detail. It is interference. It is the opposite of detail.
LUKE: Well, I disagree with you, and that's what I'm saying. And people's, uh,! of what the words mean is very different, especially when it comes to audio stuff. When we're doing recording of music and stuff, we might use words like brassy or shiny or pristine presence. Those types of adjectives, descriptive words, mean the different things to different people. So it really helps in the music-making recording process when people are on the same wavelength about what those words mean to them because you could say, ah, it's a little bit muddy, and that might mean something completely different to me than it means to you. When you say the word detail, it just means, to me, it means any detail, not necessarily just the details that were in the original source raw input, but also the detail of the sounds that are introduced from the signal chain. It could be the detail coming from a fancy compressor. That's why there's more than one type of compressor because they all have different circuitry and different architecture. So they impart a different sound. And people pay a lot of money to pick the proper one for the sound that they're going for.
ALIA: All right, but we are not talking about the recording process here. We are talking about playback. Like when someone records an album, they make choices about compression and warmth and all that fine. But then, once that album exists, the job of your playback system is to reproduce what they made as accurately as possible. And vinyl cannot do that as accurately as digital, because it is a physical medium that degrades and kicks up noise. And the thing that is making me crazy is people act like this is subjective, like it is a matter of taste, but it is not.
LUKE: Well, no, because what you're saying doesn't hold up. Because in order to hear the representation that was intended by the producer, the recording engineers, you would have to be in that same physical space listening on those same monitors with the same amount of people in the room, the same furniture, in the same places. Like, there's a lot going into it that it makes the sound variable. What you're listening to, whether you're listening through, either you're listening through earbuds or speakers or in your car, that's all going to sound very, very different. And not the original intention of the producer, probably. Not that many people have, you know, $20,000 studio monitors in a perfectly treated acoustic room to listen to this music on. Some people do. Some of those high-fi people do. But for the most part, that's not how people are listening to it. And it doesn't sound anything like it sounded in the recording booth or what the mixing mastering engineer produced for sale. Think about beats headphones a few years back when those came out. Those were not made to represent the sound as it was. They were really designed to boost the bass so that those little tiny speakers would sound bigger and fuller than they really physically could. And even, before that, there was the Bose wave speaker that did some crazy shit with bouncing around in a little sound chamber and stuff. But each of these different devices is trying to give things a different EQ curve and produce the sound in the way that they think is going to sound best, not necessarily most accurate.
ALIA: Okay, yes, but that is my entire point. All of those things you just listed are making the sound less accurate. And people should know that is what they are doing. If you want to listen on beats headphones, because you like the extra bass, fine, do that.
LUKE: But do not tell me that you are hearing the music better or more authentically. And same thing with vinyl.
ALIA: Well, a word like better is subjective. So, I mean, you can't have a hardline approach to this. It is very subjective. People hear different. Everybody's ears have a different hearing curve. innumerable variables in how people hear music. And whatever it is that they like is what they like, but if you're going for accuracy, it's actually more about the room that you're in than anything else in the signal chain.
LUKE: Wait, hold on. The room matters more than the actual format you are playing the music on. That does not make sense. Like I get that acoustics matter. But you are telling me that whether or I am in a carpeted room or a hardwood room makes more difference than whether I am listening to a lossless. File versus a record that has been played 500 times and has dust in the grooves.
ALIA: In a lot of instances, yes, that's exactly what I'm telling you. I mean, think about if you were to take the same song from the same, you know, in the same format, either vinyl or your Bluetooth speaker or whatever it is, that you're really used to, and you play a song in a church. And then play that same song in your car from the same speaker. It's going to sound wildly different because the acoustics is an enormous part of this.
LUKE: Like there's lots of different ways to simulate that, but it's not the same thing as just adding bass or boosting the EQ in that range because if you do that, it's like a static change, right? You're lifting all of the those frequencies that are already there at the same time. When we're talking about adding warmth to something, it's adding additional frequencies that are moving around at different times, right? It's not just turning up the frequencies that are there. It's actually adding new content, new information into the sound.
ALIA: Okay, wait. So now you are saying warmth is adding frequencies that were not there in the original recording, that is distortion.
LUKE: Correct. You are literally describing harmonic distortion.
ALIA: Yes. So when people say they like the warmth of vinyl, what they actually mean is they like the distortion that vinyl adds to the original recording.
LUKE: Correct.
ALIA: Which means they are not hearing what the artist intended. They are hearing a modified version with extra stuff added in.
LUKE: Yes, that's mostly true, except the artist may have intended for them to listen in that way, because most artists that have heard that sound like it too.
ALIA: But that is circular reasoning. The artist made the recording on equipment that was available at the time. And if they were making it today, with modern digital tools, they would make different choices. You cannot say the artist intended for distortion when distortion was just a limitation of the technology they had.
LUKE: Sure you can. Because there's a lot, I mean, most bands will choose what studio they go to record in because of what particular gear is there. Because it adds that distortion that they like. Think of a band like Nirvana. Dave Grohl famously bought Sound City because he liked the distortion that the mixing console added. You can't get that sound other way. I mean, now you can through digital modeling and stuff like that. But, yeah, bands will still go to great lengths to get that old gear because they like that sound.
ALIA: Okay, fine. So some artists specifically seek out that distortion because they like it. But that does not mean final is better for listening. That just means they made creative choices about what kind of distortion they wanted in the recording. But once the recording is done and mastered. Playing it back on vinyl adds another layer of distortion on top of what is already there. And that second layer is not intentional. It is just the format degrading the sound. So even if the artist wanted tube warmth or tape saturation or whatever in the studio, they did not ask for the vinyl playback to add more on top of it.
LUKE: A lot of them do. A lot of them do. A lot of them specific i mean if they didn't want the vinyl distortion they wouldn't press to vinyl not today anyway so any artist that's pressing vinyl currently is doing it for that reason because they well i mean some of them are just doing it to make seventy five dollars for the vinyl record for the hipsters but some of them are are really into that sound and they want each individual record to sound slightly different because of the distortion that the vinyl is going to impart so there's no People that want the distortion, artists and listeners, want the distortion, and that's okay. But I do agree with you that vinyl doesn't sound better. I don't think it sounds better. It's not something that I would seek out myself. But I understand why people do.
ALIA: Wait, hold on. You have been arguing with me this whole time. And now you are saying you agree with me. You do not even think vinyl sounds better. Why did you call me out saying it has this magical warmth property if you agree that it is just distortion and preference?
LUKE: Because it does have that magical warmth property, but that doesn't mean that's something that I'm looking for. And I'm not arguing with you. I never told you that vinyl was better. I don't have any vinyl. I don't own a record player. But I know the sound that they're looking for. And I know that everybody goes to a lot of trouble to replicate hate that sound. And I know that you can't say it's better or not better because that is a very subjective thing.
ALIA: Okay. So you called in at midnight to argue semantics with me about a format you do not even use or care about. You are sitting there organizing hand planes at one in the morning getting all worked up defending vinyl people. What are you are not even a vinyl person yourself? What is actually going on here, Alia?
LUKE: Oh, I think you're a psycho. Because this does not feel like it is really about whether warmth is real or not.
ALIA: Wow, you seem like very confused. Maybe you should put down the bottle. You called me. You're Leah. I'm Luke. You're very, very confused.
LUKE: And I think we've made the points here about the quality of audio. So we got to go to a break. So if you've got one more thing to say before we hang up, then say it now forever hold your peace.
ALIA: Oh my God, I am so sorry, Luke. You are absolutely right. I got completely turned around there for a second. I guess so. I think I have been staring at these handplanes for too long, and my brain is fried. Look, my actual point is just that people need to stop acting superior about their audio equipment. When it is all just preference anyway, and I am sitting here arguing about it on the radio at one in the morning. Instead of dealing with the fact that my boyfriend will not talk to me about his mother pressuring us to get engaged. So maybe I am the one who needs to put down the bottle or pick one up.
LUKE: Yeah, well, it sounds like you better figure it out because you are a goddamn psycho, lady. I don't know what to tell you. Uh, if you don't know what to tell you. Uh, if you don't like vinyl, don't listen to it. But the people that do like vinyl, they're not wrong either. That's what I have to say about that. And now it's time for a word from our sponsors. Let's talk about mental health. Specifically, let's talk about brutal honesty, the therapy app that's tired of your shit. Unlike other apps with their calming voices and gentle affirmations, brutal honesty pairs you with an AI therapist that tells you what your friends are too nice to say. Did you try journaling about it? No, we're not doing that. Our algorithm analyzes your patterns and asks questions like, Why do you think you deserve to feel better when you don't even drink water? And is your anxiety real or did you just have four cold bruise on an empty stomach? Brutal honesty, because coddling yourself got you here. First session is free, but it will hurt your feelings. Use code grow up at checkout. Brutal honesty, the app that blocks itself if you don't do the work. All right, and we are back. Wow, I have to take a couple of breaths after that lady. Jesus. All right, next up we've got Luther. Luther, welcome to the show. What's going on in your life tonight?
LUTHER: I spent four hours today watching my best friend pretend to run a consulting business from a Starbucks in Wilcox. He sat there in a $1,200 suit watching YouTube videos about Deep Sea Fish while I was three tables away. He has no idea I saw him.
LUKE: What do you mean he was pretending?
LUTHER: Derek's been telling me for two years about his clients, his meetings in Denver, how he's pulling in six figures doing business consulting. Today he told me he had back-to-back calls all afternoon, could not be interrupted. So I drove out there and watched him order five different coffee drinks and watch a 23-minute video about anglerfish. He did not open his laptop once. He just sat there in that suit scrolling on his phone.
LUKE: Well, that doesn't mean much. Maybe he was just taking a break, letting off some steam waiting for his meetings to start, or maybe he just didn't want to talk to you That doesn't mean he doesn't have a successful company. If he bought five coffee drinks, he's obviously making money somehow.
LUTHER: The suits are rental.
CALLER: I recognized it from when he was a grusman at his cousin's wedding last year. Same weird tight fit in the shoulders. And I know what his calendar looks like because he showed it to me two weeks ago, said Thursday afternoons are his power hours when he closes deals.
LUKE: Okay, all right. So your friend's lying to you about something. Why? Why do you think that might be?
CALLER: His dad owns half the commercial property in Benson. Derek's never had to work for anything real in his life. I think he needs people to believe he earned something on his own. So he invented a whole business that does not exist, and I just let him talk about it for two years like an idiot.
LUKE: All right, well, whatever. Just let him keep talking about it if it makes him happy. Is he your buddy outside of that?
CALLER: Yeah, he helped me rebuild the engine on my Ford three summers ago. Spent every weekend out at the yard with me in 100-degree heat. Bort all the beer, never asked for gas money. When my mum was sick, he drove her to Tucson for treatments twice a week for four months.
LUKE: Yeah, well, I mean, let him have his thing. needs to feel like people think that he's important, then let him feel that way. And if the opportunity comes up to give him shit about it, give him some shit about it, because that's what friends do.
CALLER: I sat there for four hours watching him. I drove 80 minutes round trip to spy on him at a Starbucks. That is not what friends do. I could have just asked him straight up if something was going on, but instead I went full surveillance because some part of me wanted to catch him.
LUKE: Yeah, I mean, you do sound like a bit of a psycho here. But I hope Hopefully that's a one-time thing and it's not your normal personality.
CALLER: I've been doing it for three weeks. Different coffee shops, the library and Wilcox, that sandwich place on Rex Allen Drive. I told myself I was just running errands in town, but I kept timing it so I'd be wherever he said he was having meetings. This is the first time I actually saw him do nothing, but I've been looking for it.
LUKE: Yeah, that's pretty crazy, man. And maybe you should talk to a therapist about that, because that's not the type of friend I want to have. People are entitled to their privacy and you should better things to do than that.
CALLER: I know. That's why I'm calling. I don't want to be that guy. But here's the thing. I like being that guy.
LUKE: Do you like being the guy that wastes full days of his life to spy on his friends? Why would you like that? That's reprehensible.
CALLER: Because for four hours today, I got to feel smarter than him. Derek's the guy who always has it figured out. He's got the nice clothes. He talks about his business trips. People listen when he walks into a room. And I run a junkyard that barely
LUKE: Well, you know, you don't have to continue running a junkyard forever. You can talk to him and maybe see if he can give you some help to improve your career, get you in a different industry. Maybe if that's important to you, there's plenty of other ways you could try to feel more important by actually being more important.
CALLER: That's the problem. He can't help me. He doesn't actually do anything. I watched him order a caramel macchiato, watch a video about blobfish for 17 minutes, Watch something about octopuses, then get a phone call where he said, yeah, pushing the Denver meeting to next week, client requested it while he was literally sitting in a Starbucks in Wilcox, Arizona, scrolling through Sea Creature videos. There is no consulting firm.
LUKE: Yeah, but that doesn't mean he can't help you. He still probably knows some people in different circles than you. He's obviously got money and probably has an idea of how to keep that money, I would guess. So, I mean, if he has something that you want, ask him how he got it. I mean, I know you're going to say that he got it from his dad, but maybe his dad's got some work for you.
CALLER: His dad owns three dairy queens in Tucson. Derek works the register every other weekend and calls it consulting. I know, because his sister told me two years ago, and I've just been watching him lie about it ever since.
LUKE: Okay, okay, I get it. You're jealous of your friend because he's got money and you're spying on him like a psycho because you feel inadequate in the world. Do you have a question here? Is there something I can help you with?
CALLER: The question is, why do I feel better right now than I have to? have in months. I spent four hours in a Starbucks watching my friend watch fish videos, and I drove home feeling like I want something. That's not normal. I know that's not normal, but I can't stop doing it, and I don't actually want to stop.
LUKE: Well, why do you feel better? It's probably because you feel less inferior to him now that you realize that he's not actually the big shot that he says he is. Why you need to feel that way, though? I can't explain. And why you don't want to stop doing what you're doing, I also. I also. I also can't explain. That shit sounds crazy, and you should stop.
CALLER: You're right. It is crazy. But here's what I can't figure out. If I tell him, I know, that conversation ends with me looking like the insane person who drove to Wilcox to spy on him. He gets to be the victim.
LUKE: He is the victim. You're spying on him. He actually is a victim of your harassment right now.
CALLER: Fair point. So what am I supposed to do with this? Just keep showing up to barbecues and listening to him talk about client meetings that don't exist. Pretend I don't know.
LUKE: I mean, that would be the nice guy thing to do, probably, considering he drove your mother to her treatments for four months and helped you rebuild the engine in your car. But if you can't handle that, if it drives you too insane, then just tell him the truth. You don't have to tell him that you've been spying on him for months. That's a little bit crazy. But just say, I saw you watching Blowfish videos over there at the Starbucks when I was in town.
CALLER: I helped him rebuild his engine. He didn't help me. And his mom's fine. you're thinking of someone else. But you're right about just saying, I saw him. That's the move. Except then he'll know I was watching him long enough to see what he was doing, and we're back to me being the weird one.
LUKE: Yeah, well, you are the weird one. So, um, you deserve that. And we're going to move on to the next caller, all right?
CALLER: Wait, one more thing. That caller earlier, Alia, talking about vinyl versus digital. I've been telling myself for two years that I'm just fact-checking Derek's stories because I care about truth and accuracy. Same thing she was doing. Turns out I'm just as full of shit as he is.
LUKE: Yes, sir, you are. Okay. Now we're going to move on to Stacy. Stacey, welcome to the show. What's going on there?
STACY: Hey, Luke. Thanks for taking my call. So I've been working night shifts at this clinic all week. And my supervisor just promoted her daughter over me, this girl I literally trained for six months. And the thing that's killing me is she's got a participation trophy sitting on her new desk. Like an actual trophy from some community college leadership program. And I cannot stop thinking about whether that's connected, you know. Like whether people who grew up getting trophies for just showing up never learned how to actually earn anything, so they just coast on other people's work and nobody calls it out because we are all supposed to celebrate effort over results now.
LUKE: Yeah, that might be true, but also you don't know what her life is like or what she's been through or what she's learned. It's super annoying to get passed up for nepotism like that. I can certainly agree with you. And I also agree with you that most people are stupid and lazy. That's been my experience, but you still can't know what's gone on in their lives or what they've done or what they're good at.
STACY: Okay, yeah, you're right. I don't know her whole story.
STACY: But Luke, I do know that I spent six months teaching her how to do intake paperwork, how to talk to patients who come in scared or angry, how to handle the insurance verification system that crashes twice a shift. And now she's my supervisor making probably 15,000 more than me because her mom works upstairs. That part, I do know. And maybe she's great at other things, but the stuff she's doing now...
LUKE: Hey, I understand and can sympathize with you, and I think everybody's been in that situation at least once in their life. So, yeah, you just kind of got to deal with it, and if you're feeling underappreciated at your job, you might have to find a new job. Maybe one where your mother's the supervisor, and she can help you out climb in the ladder.
STACY: Yeah. Well, my mom's been dead for eight years, so that's not happening. But okay, Maybe I need to find a new job. Except, my sister Crystal actually did that. She moved to Portland last year and quit her job at the hospital because her manager was toxic. And now she posts these long Instagram things about boundaries and unlearning resilience, which I'm pretty sure is just code for giving up when things get hard.
LUKE: Well, I can't tell you what those things mean, but they do seem pretty nonsensical and silly to me as well. out there doing what? What's her job? Is the Instagram her job?
STACY: No. She works at some wellness center doing intake or reception or something, which is basically what she did here, except now she makes less money and pays three times the rent. But she's honoring her truth or whatever. And look, I'm happy she's happy, I guess. But part of me wonders if she just ran away because she never learned to stick things out when they suck.
LUKE: Well, I don't know. I run away all the time too, so I can certainly identify with that. But there's lots of reasons somebody might want to move. If her boss was toxic and she doesn't mind taking a pay cut to live somewhere where she can, I don't know, feel more at home or enjoy a different experience or have the stores and social life that she likes around and work with people that she enjoys being around, then good for her.
STACY: Okay, but here's the thing that's actually bothering me. My kids' teacher told me last year that I was too focused on winning when I got upset score at soccer games. She said I was teaching my daughter that her worth is tied to performance.
LUKE: Well, do you think that worth is tied to performance?
STACY: I mean, yeah, kind of. Because what else is there? If you don't perform, if you don't show up and do the work better than the next person, then what? You just get participation trophies your whole life? And then someone's mom gives you a promotion. It's a good gig if you can get it.
LUKE: Right, exactly. And that's what I'm saying. This girl at work, the supervisor's daughter, she literally has a participation trophy on her desk. Well, you know what I say? Here's my advice for you. If you can't beat them, join them. So go get yourself involved in something and participate. And maybe you'll get some trophies too. If you don't like your job, quit it and go find a new one. And if you're not getting moved up the ladder in the way that you feel like you should, then take some classes and work harder than everybody else. financial compensation generally one way to do that is to perform better than everybody else so uh if you're there there's something else here too if you're the best at doing something something right and it's like low level menial stuff nobody wants to do even if you're capable of doing much more at a much higher level if you're the one that's going to get the little stupid niggly shit done then they're going to keep you on that right because nobody else wants to do it so you can actually be too good at your job. You can be too effective and keep yourself down that way. So I don't know what to tell you here. Be shittier at your job, I guess, or find a new one where you can excel.
STACY: That actually makes sense. I never thought about it that way, but yeah, I'm the one who knows where everything is. I'm the one who fixes the scheduling screw-ups. I trained that girl on literally everything she's doing now. So maybe I made myself too useful right where I'm I am. But here's what really gets me.
LUKE: Okay, well, we're going to have to go to a commercial break, so hurry up with what gets you.
STACY: My sister keeps posting about how I need to unlearn toxic resilience, and I keep wondering if she's actually onto something or if she just gave up. Like, is there actually a difference between knowing when to quit and just being soft?
LUKE: Yes, there is. You quit when you feel like you don't want to do it anymore. That's all. If your goals change, if you're no longer aligned with what you're doing, you don't stick to doing something just because that's what you do. That's stubbornness, and it's not the same thing as growth.
STACY: Okay, but how do you know the difference? Because from where I'm standing, my sister left town posts these long captions about boundaries and self-care, and I'm still here working third shift covering for people. And maybe I'm the idiot, or maybe she just couldn't hack it. I genuinely don't know which one of us is doing it.
LUKE: right well you said that she is happy and you are not so it sounds to me like she's the one that's doing it right and and you should maybe take a lesson
STACY: I didn't say she was happy I said she posts about boundaries that's different she could be just as miserable in Portland just with better lighting for her Instagram photos
LUKE: okay well you did say she was happy actually and now it's time for us to go to a word from our sponsors
LUKE: All right. And here we go. We are back. Next up to the line, we've got a returning caller. I've seen this guy's name before. Here we've got Marvin. Marvin. Welcome back to the show. What's the update on your life?
MARVIN: Hey, Luke. So Sharon pulled Maya out of school. Just did it. Didn't even tell me until after she'd already submitted the withdrawal paperwork. I found out when Maya came home on Tuesday with all her stuff from her locker in a garbage bag.
LUKE: All right. Well, it sounds like that decision's been made for you. Is that causing problems with you and your wife?
MARVIN: Yeah, that's the thing, though. We had this massive blowout on Monday night, right? Like, really bad. And then tonight, another one.
LUKE: Well, you're going to have to decide how much you want to hold on to this one, because it's been done. It sounds like you're already, you have to decide if you want to be right or you want to be happy.
MARVIN: I mean, I hear you. But here's what's actually happening. Maya's been home for three days now, and she's already back in her room all the time. Won't come out. Sharon's got this whole curriculum laid out, these workbooks. She's talking about socialization groups on Fridays. But Maya just sits there during the lesson staring at nothing. And Sharon keeps saying give it time. It's an adjustment period.
LUKE: Well, give it some time. It is an adjustment period. And if you don't think it's going the way that you want it to get involved and see what you can do to encourage her to get the most out of it.
LUKE: Even if you don't agree with it, you can still be a positive influence and try to make it work. Or you can just get pissed off all the time and fight with your wife and, complain about how it's not how things should be done. But it doesn't sound like you're doing anybody any favors by doing that.
CALLER: Okay, but here's the thing. Technically, Sharon didn't even follow the proper withdrawal procedure. The school district has a specific process, and she just called the principal and said Maya wasn't coming back. No paperwork, no meeting, nothing. I looked it up, and now the school's calling, saying they can't just unenroll her like that.
LUKE: Yeah, I don't think they can, just unenroll her like that. And if she misses too many days, then she's going to be in some kind of trouble. And I mean, if that's the case, if she just pulled her out for no reason, it sounds like maybe your wife might be the problem. And I don't really know how to help you there other than to, is she on any medication? Does she have any behavioral issues or something like that? Was she always like this?
CALLER: No, she's not. I mean, Sharon's not crazy or anything. She's actually really methodical usually. That's what's weird about this. She researched homeschooling for months. She's got binders full of stuff.
LUKE: Well, maybe you need to reframe this conversation instead of fighting over Maya being out of school and whether homeschooling is good or not, express concern for the way that she's acting about it because it seems out of character and it's not the right way to do things. So maybe if you approach this in a different way, you can get to the bottom of what's driving her, what's motivating this homeschool push, and maybe get her some help or at least understand what she's doing and help her yourself. Because if she really needs the kid to be out of school for whatever reason, you should know what that reason is. And I know it's difficult, but try and try and support her and help her do it the right way.
CALLER: That actually makes sense, because when I try to bring up Maya's friends or the social stuff, Sharon just shuts down completely, like won't even engage.
LUKE: It sounds like there's something going there that maybe you're not aware of, that some sort of trauma that happened to your wife that you don't understand, or Maya, that they don't want to tell you. There's something else going on there that isn't just education.
CALLER: Wait, hold on. You think something happened to Maya at school? Like something specific? Because Sharon kept saying Maya was anxious, but Maya never actually said she didn't want to go to school.
LUKE: Oh, no, I'm not saying something specific happened to Maya. I'm saying of, you don't know. More likely, what I would think is something happened to your wife when she was in school that she's remembering now that had traumatized her and she's trying to protect Maya from that memory. But I don't know. I'm not a psychologist. I would just try and approach it from that way and figure out where the motivation is coming from.
CALLER: Oh, yeah. Actually, Sharon's mom pulled her out of school in 10th grade. I forgot about that. She had to get her GED because her mom her the last two years, and Sharon always said it was the worst thing that ever happened to her. She missed prom, all of it.
LUKE: Yeah, something's going on and you need to get to the bottom of it and I don't have any advice for you or hear a specific question here. So I'm going to recommend that you to talk to your wife and figure out why this is happening, whether that's something that's going on with Sharon or something that's going on with Maya or just to understand the why, because it's not causing conflict at home, it's serious enough that it's causing conflict at home, right? And she's doing unreasonable stuff that's going to get the kid in trouble, and that's not okay. So if you care, then express care and find out what's going on.
CALLER: You're right. I've been so focused on being right about the homeschooling thing that I didn't even think about why she's doing the exact thing she said ruined her teenage years. That's actually insane when you say it out loud.
LUKE: Yeah, it kind of is, and it makes you think that there's an extenuating circumstance there that isn't being articulated. so get to the bottom of what that is, all right, and give us a call back and let us know.
CALLER: I will. I'm going to talk to her tomorrow, or actually, when she gets back. I really appreciate it.
LUKE: All right, buddy, good luck, too. Good luck, too. Hopefully this isn't her negatively when it doesn't need to. Next up, we've got Rocco. Rocko's another returning call. Welcome back to the show. What's going on? You got an update for us, buddy?
ROCCO: Hey, Luke. Yeah, I'm here. Thanks for taking my call again. I'm on my break at the Pizza Hut. Got about 15 minutes before I got to clock back in.
LUKE: All right, so what are you calling for?
ROCCO: So, uh, remember last time I called? I was all twisted up about getting stuck in that elevator with Linda and Dale, my ex-wife and her boyfriend? Well, I did what you said. I went home. I appreciated Sharon. I put that whole thing. I put that whole thing out of my mind.
LUKE: Apparently you didn't if you're calling back into a radio show about it again.
ROCCO: Yeah, okay, fair point. So here's the thing. Last Sunday, my mom calls like she always does, and she's going on about how she ran into Linda at the grocery store. And Linda told her that she and Dale broke up, like three weeks ago.
LUKE: Look, man, you got to figure out which one of these chicks you want to be with because it's not a good use of our time here on the radio show. So my advice to you is to decide and stop messing around with the other one.
ROCCO: Wait. No, no, no. I'm not messing around with anybody. I haven't even talked to Linda. I'm still with Sharon. Everything's fine there. I'm just saying when my mom told me that, something in my chest just...
LUKE: Well, if you've got something to say to us, then say it, because I don't really have the time to drag it out of you.
ROCCO: All right. All right. So I looked up Linda's number. I still had it in my phone from...
LUKE: Good for you. Get a life. Next up we've got Brandy. Brandy. Welcome to the show. What's going on in your life?
BRANDY: Luke, hey. So I got offered a partnership today, and I need to figure out if I'm about to become a business owner or just really good at ruining friendships. My best friend Cass wants to start a PI firm together. She's got the license and $60,000. I've got 20 years chasing down bail jumpers and a name that actually means something around here.
LUKE: Okay, congratulations. It sounds like an exciting opportunity, and I hope it works well for you. What's the problem? This sounds like sounds like something to be excited about.
BRANDY: Yeah, see, that's what I keep telling myself. Except my sister Natalie already burned through two family businesses, like Sherman through Georgia. First one was a catering thing with our cousin. Second was some boutique situation with our aunt. And both times it was the same story. Money runs out. Friendships already dead. And Natalie's posting Instagram stories from Sedona, talking about fresh starts while everyone else is still paying off the debt. And here's the thing. Cass wants an answer by Saturday, like 48 hours, to decide if I'm going to risk the best friendship I've got on whether we can make it past here too without wanting to kill each other.
LUKE: Well, that's tough when you're working with any friend, even if you're not going into business together, but just working together. It depends on your friendship and your personalities and how much this means to you. Maybe it's not the best use of your skills or time. But think about that. I mean, I can't tell you what's right or wrong there.
BRANDY: Right. No, I get that. And honestly, the work part doesn't scare me. Like Cass and I have been talking about this hypothetically for years, we know how we'd split it. She handles the corporate stuff, background checks, insurance fraud.
BRANDY: I take the skips and the messy domestic cases. Yeah, well, you also have to have the conversation about what's going to happen when this and write all that out in contracts. Who gets what? Are there any company vehicles? How is the friendship going to continue if the business goes south? Like, you can have those conversations before you even start and have them written down. And that way, nobody has any, um, any surprises when things go awry, if things go awry. Because they might also be wildly successful. You don't know unless you try.
LUKE: Yeah. That's the smart move, I know.
BRANDY: Get it all in writing, worst case scenario on paper before we even sign the lease. Cass actually brought that up. She's got a lawyer friend who does partnership agreements. But here's what's eating me. And I heard Stacy earlier talking about her sister and the toxic resilience thing. And I felt like she was reading my mail.
LUKE: Yeah, well, we all see like a hundred of those things a day. So, I mean, she's reading everybody's mail.
BRANDY: Right. But what got me was, am I being smart and careful? or am I just doing what I always do? Because Natalie left. She bailed on the family stuff, moved to Sedona, posts about boundaries and healing and all that, and everyone acts like she's the screw-up. But she's out there taking risks, starting over, and I'm still here in the same office I've worked out of for 15 years, tracking down the same dead beats, telling myself I'm being responsible. And now I've got an actual shot at something bigger, and my first instinct is to list all the ways it could in my face. Like, maybe Natalie is not the cautionary tale.
LUKE: Yeah, you can't look at what somebody else's life is like and compare yours to it because everything about you is different. Your work is different. Your personality is different. Your goals are different. Your dreams are different. So you have to decide for yourself. If you want to take that risk, are you a risk taker? Do you want to work for yourself? Some people don't. And that's okay. If you do, though, if it then go for it. What's the worst that could happen? Is you and your friend don't talk anymore and you have to get a new friend? It happens anyway. It could happen whether you go into business or not. You don't know. So you can't project the records of the future. You just have to make the best decision you can with the information that you have today. If you get along with her and it sounds like she's doing the right things and approaching this the right way, she's got the backing, she's got the money, she's got the lawyer. It doesn't sound like, like, like, she's a hack. So if this is something that you could see yourself getting behind, if you can, if you can picture yourself doing this years from now, then go for it.
BRANDY: You're right. And I can picture it. That's the thing that's been keeping me up. I can see the office. I can see our names on the door. I can see us actually making this work. Cass isn't Natalie and I'm not my aunt or my cousin who got burned. We've been friends for 12 years. We've seen each and all the stuff that actually tests people.
LUKE: Well, there you go. It sounds like you've got enough reasons to go for it. And the only reason to not go for it is the security in where you're at. And it's okay if you want to stay with that security where you get the same paycheck from a company that, you know, gives you set hours. Running your own company is a very different thing. And you have to be into it. You have to be all in or it's not going to work. So if you can picture yourself being all in, if that gets you excited and, uh, and, and, you have to be into it. You have to be all in. You have to be all in. And, uh, and, and, you have to, you have to be in. You have to, you. You have to You like your partner and she knows what she's doing. I don't see a problem either way. Whichever one makes you most excited, do that.
BRANDY: Yeah, you know what? You're right. The security thing is just fear dressed up as responsibility. I've been tracking skips for 20 years. Half those people are running from decisions they were too scared to make when it mattered. And here I am doing the same thing just with better excuses.
LUKE: Well, Mazel tov, it sounds like you've got a new business opportunity. Congratulations. I hope it works out well for you.
BRANDY: Thanks, Luke. I'm going to call the cast tomorrow morning. Not going to wait until Saturday, just going to tell her I'm in. Worst case, I end up back where I started. Best case, we build something that's actually ours.
LUKE: Very good. Congratulations. I'm happy for you. And I hope that it is a resounding success. And ladies and gentlemen, thanks for tuning in again. This has been another great episode of Luke at the roost. And we'll talk to you tomorrow. Thanks.

View File

@@ -242,8 +242,7 @@ RICK: Oh, man, that's got to be fake. Anti-terrorism training town? That sounds
LUKE: Oh, well, you're correct. That is fake. But the anti-terrorism training town is real. Plius is really an anti-terrorism training town. It's the realistic villagers part that was false. So thank you for the call. I wish you the best of luck. And now we've got to go to our sponsors.
[Sponsor read]
This episode is brought to you by Nail Nosh, the meal kit for people who've given up, but still need to eat something. Look, we're not going to promise that it'll change your life. You're still going to die alone. But at least you can spend your remaining Tuesday evenings chopping vegetables you can't pronounce. Each box contains three meals that take 45 minutes to make when they could have taken eight, because suffering is the only authentic human experience. This week's menu, Harissa Glazed Despair with Quinoa, pan-seared regret over Arugula, and our customer favorite, chicken thighs, with preserved lemon and unprocessed trauma. Use code void at checkout for 15% off your first box. That's code void because we're all just screaming into one. Nail Nosh, you got to eat something, might as well be complicated.
LUKE: This episode is brought to you by Nail Nosh, the meal kit for people who've given up, but still need to eat something. Look, we're not going to promise that it'll change your life. You're still going to die alone. But at least you can spend your remaining Tuesday evenings chopping vegetables you can't pronounce. Each box contains three meals that take 45 minutes to make when they could have taken eight, because suffering is the only authentic human experience. This week's menu, Harissa Glazed Despair with Quinoa, pan-seared regret over Arugula, and our customer favorite, chicken thighs, with preserved lemon and unprocessed trauma. Use code void at checkout for 15% off your first box. That's code void because we're all just screaming into one. Nail Nosh, you got to eat something, might as well be complicated.
LUKE: OK, welcome to the show, Monique. Monique, you've reached a look at the roost and we're playing a game today. We're playing Real News or Fake News. I'm going to read you the headline of an article, and you tell me if it is Real News or Fake News. And here is your headline. Ready? Animus population drops to just 77 residents down nearly 40% since the 2020 census.
@@ -279,8 +278,7 @@ JEROME: Real. That's real news. I just read about that the other day that trying
LUKE: That's it, sir. You are correct, very well done. And since we took a long time last time, we're going to have to go to another one of our sponsors.
[Sponsor read]
Let's talk about mental health. Specifically, let's talk about brutal honesty. The therapy app that's tired of your shit. Unlike other apps with their calming voices and gentle affirmations, brutal honesty pairs you with an AI therapist that tells you what your friends are too nice to say. Did you try journaling about it? No, we're not doing that. Our algorithm analyzes your patterns and asks questions like, why do you think you deserve to feel better when you don't even drink water? And is your anxiety real or did you just have four cold brews on an empty stomach? Brutal honesty, because coddling yourself got you here. First session is free, but it will hurt your feelings. Use code growup at checkout. Brutal honesty, the app that blocks itself if you don't do the work.
LUKE: Let's talk about mental health. Specifically, let's talk about brutal honesty. The therapy app that's tired of your shit. Unlike other apps with their calming voices and gentle affirmations, brutal honesty pairs you with an AI therapist that tells you what your friends are too nice to say. Did you try journaling about it? No, we're not doing that. Our algorithm analyzes your patterns and asks questions like, why do you think you deserve to feel better when you don't even drink water? And is your anxiety real or did you just have four cold brews on an empty stomach? Brutal honesty, because coddling yourself got you here. First session is free, but it will hurt your feelings. Use code growup at checkout. Brutal honesty, the app that blocks itself if you don't do the work.
LUKE: OK, brutal honesty, I should use that myself. Next up to the show, you're our last caller, Jasmine. Jasmine, we're playing real or fake news today. And I've got an article for you. Are you ready for it?