The real fix to hearing your mic in your headphones

If you want to skip ahead, dear reader, the answer is down there.

It is infuriating to have a technical issue that you know you’ve fixed previously, but when you search the ‘net for the solution you know exists, all you get are results for the incorrect fix. I am posting this to document the problem I had yesterday and the real fix for it, in the hope that it might save someone else in the future, or even me if it comes up again and I forget what the fix is.

This past weekend I upgraded my computer, going from an Intel Core i7-7700 to a modern AMD Ryzen 7 7800x3D because gaming. Because I was doing a CPU swap I wanted a nice fresh install of Windows 10 instead of porting over all the cruft of my previous installation. I wrote a step-by-step for the whole thing just to help my neurodivergent brain, and I will post that at some point now that it’s done.

But because it’s a fresh install, I ran in to a problem that I’ve had before. When I put my headphones on to play the game that prompted all this nerdery, Dragon Age The Veilguard, I could hear my microphone playing in my headphones. In audio terms I was monitoring my mic.

I went to Start > Settings > System > Sound, clicked on Sound Control Panel, and went to the Recording tab. I selected my microphone (Yeti Classic) and clicked Properties. And lo and behold, the “Listen to this device” box was unchecked. That means it shouldn’t be coming through my headphones. There must be some other fix.

So off I went to generically google the solution. And I found page after page after page of people saying the solution was to uncheck the “Listen to this device” box. But it’s already unchecked! I even found people, like me, asking what to do if the box is already unchecked. And the answers wandered off in the direction of reinstalling the audio drivers or using Microsoft’s useless troubleshooters. That ain’t it, chief.

The answer, dear reader, is this:

The Real Answer to Not Monitor Your Mic

You have to check the “Listen to this device” box, click Apply, then uncheck it again, and click Apply again.

Yes, you have to turn it on and off again. That did the trick. I don’t remember how I came up with this the last time it plagued me, or if there was a page that mentions this annoying bug that has fallen out of the top 20 or 30 search results (thanks, Google), but now it’s documented.

I had so much frustration with this. I want to spare you, the reader, any future frustration. Maybe this is only in Windows 10, so it will eventually stop being a thing when support ends for Win10 in a year. But at least now, I’ve done my duty and shared it. Now go share this so others can find it. Thanks for listening.

So Old It Refused To Update

I mentioned yesterday that I spent a lot of time out of my work day on just two issues. The first one was a printer issue. Printer-ish, at least. Let’s just say it was printer-adjacent.

What was the other one, you ask? I am happy to answer that for you. It was the most stubborn Chrome installation I have ever had the misfortune to experience. It was the Chrome installation that would not die.

I got the call as an escalation, actually. The user reported that they were getting a message that Chrome was not compatible with several sites they needed to use, and it required an update. The computer was a Surface tablet, which in my experience is an indication of trouble right off the bat. Surface tablets are popular with a lot of users, but not that popular with technicians. I’m not saying this problem was caused by the janky hardware, but it might have been a contributing factor.

One of my coworkers spent more than an hour over the course of several calls trying, and failing, to get that really old version of Chrome to either update to a more recent version, or completely uninstall so they could just install the newest version. My co-worker tried everything they knew, and asked me if I could take a look.

How hard could that be? If nothing else, I thought, I can just delete all the folders, delete the relevant Registry entries, and start over. A slash-and-burn strategy. But that’s not where I started. I started by trying to cover the basics. Always start out with the simplest fixes, test that it did or did not solve the issue, and move on to more and more complicated fixes. One step at a time, check your options. Troubleshoot methodically.

I started with just trying to uninstall. I tried running the uninstaller with admin rights. I made sure that there wasn’t malware that might be preventing the updater from running. None of that worked.

I double-checked that the issue wasn’t just on the user’s profile. Nope, same problem in another account on the same computer. That told me that it was a Windows-wide issue. Something was deeply broken in this computer.

I spent a lot of time backing up the user’s bookmarks by trying to copy out the folders in %appdata% which was slow going. I did that because the user was not able to log in to their Google account to sync. That is a result of the version of Chrome being so old; it was incompatible with current Google accounts. I think that’s why this was so broken; it had been frozen in time, while Windows and Google advanced, to the point where it was stuck, not functioning. It was too old to update properly, if you can imagine such a thing.

I should have just had the user bring their tablet in, wipe the thing, and reinstall Windows. That would have about the same amount time spent than what I tried next. I began my burning bridges strategy.

To my utter surprise, it even refused to let me delete the Registry keys. I hadn’t seen that before.

I was able to delete the folder in C:\Program Files(x86)\ though. And in its place I installed a portable version of Chrome, which was newer than what the user had been working with. It did let them log in, sync their bookmarks, and use the sites they needed. It still gave an error about not being able to update, though. All I’d done is kick the can down the road a bit.

For sure, the next step is to wipe it and reinstall everything. At least they’re working for now.

Brian vs. Printer

Spent a good chunk of my work day today on two issues; almost 3 hours. The first one was a printer issue and I am not sure that I’ve ever said this here but I hate printers. I hate them so much. Out of all the tech out there that I need to troubleshoot and repair, printers are at the bottom of my list. They’re fiddly, they all have their own unique interfaces and labels and functions so they’re not standarized like operating systems or computer hardware or phones, and they all have moving parts that are prone to malfunctioning and breakdown.

Oh wait I have said I hate printers, and recently. Apologies for my Swiss-cheese memory. That’s why I tried to buy the most boring and functional printer I could find.

This particular printer was in an office setting. It was an MFP which stands for Multi-Function Printer, which means it had a scanner and a fax machine built in. More fiddly parts that are prone to breakdown and malfunctioning, just what a printer needs. Bolting more abilities to something already full of potential for failure is a clear path to extra failure.

According to the customer, and I have no reason to believe otherwise, the printer was their main source for scanning documents, a key office function. It was working on Friday, and when it worked properly, it would scan a document and send the file, via email, to the selected user. The client said that they had been getting errors recently, but rebooting the printer usually cleared up the problem. Until today.

Reader I spent so much time on this. Also, and I cannot stress this enough, I was doing this all remotely. My boss believes in doing as much as possible remotely, because he charges customers extra if a tech has to come onsite. He charges for travel time and there’s a surcharge for onsite time. So I had the customer on the phone, and I was remoted in to their computer.

Let me try to shortcut what I did. I wanted to be methodical. My first task was to find out if there were any obvious errors. I was able to get into the web interface for the printer and there were no errors. The fact that I could see it over the network meant that it was, well, on the network. So that wasn’t the issue.

That all took me about 20 minutes, if my memory serves me right. It was a bit of slow going. But the next part was nearly an hour of trying different configurations of settings. Because this wasn’t strictly a printer issue. It was a network connectivity and email issue. I had to find the exact right combination of server, port, and authentication issues that would let this printer send an email. I had to dig through the printer settings (keeping in mind what I said above about how each printer manufacturer uses their own jargon for otherwise standard things), email server settings, and help documents from the printer manufactuer and the email provider, matching up things that were surprisingly differentiated.

Reader, I won. I managed to get it all sorted. And I documented it all for the next tech to come along. It just took me nearly an hour and a half.

Since I’m over my 500 word goal, I’ll save the other troubleshooting story for a separate post.

So much to learn

Had a good weekend, got a lot done. But didn’t get everything done. Such is the way of things that need to be done, I suppose.

Of the things that did get done, I got my new Brother laser printer set up and working. As I said, and as Nilay Patel from The Verge said, I just want it to work and I don’t want to think about it. I had to do a little bit of thinking about it, because Windows wanted it to be a USB printer but I wanted it to be a WiFi printer, so we had a fight about it and I won. I like winning!

I bought an Intel NUC that I plan on using to make a reverse proxy for my home network. Got it at Free Geek, which had a pop-up shop set up in their parking lot, which was awesome. I’ve missed their storefront, which closed when the pandemic hit. The sales person said this was their first weekend trying this, and it seemed popular, so they’ll probably keep doing it. Yay! I got this NUC for twenty bucks. It didn’t come with a power brick, so I got one off Amazon for another thirty bucks. Still an awesome deal.

One thing I did not do was trying some 3D printing. Did I mention my co-worker lent me his printer? I got the 3D printer in place. I chatted about 3D printing with my friends. I harassed my friends for notes on how to do a 3D print and did get those notes. Did not read those notes, though, because I’m intimidated by this whole process. The way my brain works, I prefer to know what every step of a process is before I ever start doing it. It makes doing new things difficult unless someone has laid out a step-by-step that satisfies my neurodivergent brain.

My friends gave me a list of supplies I should have before I start, including 90% alcohol, Simple Green, lots of gloves to prevent contamination from the resin, lunch trays and silcone mats for the prints because they need to dry and cure. Y’know, basic stuff. I should also probably have a respirator and eye protection, y’know, just in case. Got all that ordered from Amazon and it showed up today. In theory, I am ready to start printing.

Oh, wait, I’m missing one more thing! I don’t have any files to print. I don’t know why 3D printer files are called STL files; I haven’t googled it. Wait, here, I’ll google it. “STL is a file format native to the stereolithography CAD software created by 3D Systems. STL is also known as Standard Tessellation Language.” That’s from Abbreviations dot com. I have a few minis I designed in HeroForge; I can start there. I bought the STL files for my sorcerer elf and my human bladelock, but apparently they take “processing” and were not available immediately for download. I’m waiting for that.

I downloaded the slicer program, which is what they call the program people use to 3D print. It’s all ready to go…

It’s already after 8 PM, though, and a print takes several hours, so I’ll wait and start it tomorrow after work. There still seems like so much to learn first. How does one slice, for example? I don’t know and don’t have the executive function points right now to learn. Tune in tomorrow-ish.

The light inside it dies but slowly

I’m going to be sad when my old-ass TV dies. An LG 52″ 720p Plasma. I am surprised by its longevity! It’s been a solid performer since the day I bought it which is a date I have long lost to memory. Wwas probably early January 2012 but that’s only my guess because that’s when I bought the Onkyo surround sound system that complemented the TV. Around there, at any rate.

I’ve never had a large space for my home theater so a 52″ screen is basically cinema-sized for the two living rooms I’ve had in the ho-ho-holy shit 12 years I’ve owned it. I bought it from the Video-Only store in Janzten Beach because they had a reputation for being honest and fair. What’s the opposite of predatory? Don’t believe me?

When I walked into the store, I had only a couple of must-haves: my primary purpose for this TV was to watch movies, not play games or watch sports. So I wanted excellent color, the deepest blacks I could get for my money, and a decently large screen. I assumed that all added up to a plasma screen. Because it was 2012, I was on the fence about resolution: 720p content was becoming available but 1080p was up-and-coming.

When I explained what I was looking for to the salesperson, they showed me a few examples and I liked some of them. When the topic of resoultion came up, they offered me a demo. They had two identical plasma TVs set up, playing a movie from the same source. One was a 720p TV and the other was 1080p. They told me, “put yourself at the normal distance you’d watch from home and tell me if you see a difference.”

Reader, I could not tell the difference. That meant I would be fine with the lower-cost 720p option.

I assumed that I would upgrade this TV in a few years, when higher-resolution content was more readily available.

Reader, I did not. Within a year of that purchase I was once again unemployed, and money did not flow like wine, and so I’ve lived with this one TV all that time. I am happy with my TV’s performance.

You might remember recent complaints about shows in the streaming age that are too dark to see. Directors, cinematographers, and editors choose dark scenes. In modern living rooms, on modern monitors, everything turns into one dark smear. I have never been affected by that, even with my old-ass screen, because plasma does such a good job with blacks. It’s not HDR by any means but it’s very forgiving of modern prestige television and movies.

The colors have faded over time, it’s true. I do have to adjust it as the light inside it dims, which is a feeling we all get as we age. I don’t mind. I love my screen. I will be sad when it dies. But whatever I get after this is going to be a huge upgrade.

Re-focusing

Got a lot on my mind tonight but it’s not really gelling into one cohesive story. I’m just going to let my fingers run as fast as my brain will let them across the keyboard and see what happens. I’ve got a good feeling about this.

I had a breakthrough at work this week. I’ve been very tense and anxious about my performance with basic tech support issues. I poked around, feeling the customer’s frustration. I feel things deeply. That led to me not being able to think through the basic steps and work toward a fix. I felt their frustration and it fed into my doubt. Wasn’t good. My brain was foggy, unfocused, dull.

Late yesterday afternoon, I had two different calls scheduled for customers with various problems. One of the clients was one I had talked to, tried to fix their issue, and had to end the call saying “I will need to research this and get back to you” and they very much gave me the impression they weren’t happy with that, for whatever reason. So I was already uptight about wanting to do well and solve the issue, as well as reverse the impression of incompetence I’d given previously.

On top of that, the client had added a second, unrelated issue, one with many potential causes and solutions. Thinking about working through all the steps to troubleshoot it on top of the other issue gave me time-pressure-anxiety, which should totally be a German-style compound noun.

On top of those, Thursday’s call had been a rescheduling from the day before, adding another layer of delay to the situation. I was caught up in a much-longer-than-expected site visit and was unable to live up to my word in calling on schedule.

The second client had what could be a very tricky problem involving their network connection from home, and I had enough experience to mentally enumerate the many potential causes of that kind of issue: home network, wifi, VPN, unstructured environment compared to an office setting… also the client was an engineer, and they are notoriously picky (said the tech support person, knowing our own reputation.)

My sense of duty forced me to make the first call… and within a few minutes I had demonstrated the solution to the first question for this client, and they had accepted it without argument. I pressed on, and being more focused and methodical, found the cause of the second issue almost immediately; they had two versions of the same software installed. After showing them, gently and diplomatically, that they would lose nothing when I removed the extra program, I found I’d also fixed the issue.

I’d scheduled 30 minutes for this, and I finished in 15 minutes. Easy peasy. I got to close two tickets with one phone call. Confidence returning.

The second call? When the client demonstrated the issue to me, I recognized the problem because I had been setting up VPN connections for this specific company last week and discovered that some settings didn’t stick until you set them twice. The call started at 4:04 PM; I solved the problem by 4:08 PM.

My swiftness impressed the customer; “that would have taken me weeks to figure out!” they said. Felt good. Closed another ticket.

I am good at my job. I just needed some wins to remind myself.

Troubleshooting

Had a rough day at work yesterday. Specifically, the task I was assigned to do had many hidden pitfalls. Going in, I wanted to be prepared and made at least one choice to try to mitigate for something I thought wasn’t in place. Which lead me to spending extra time getting an extra part I thought I needed, even more time trying to make that part work, and spend time undoing the unneeded mitigation because it looked like everything we needed was in place.

Sorry, I’m trying not to give too many client secrets away so this may be extra vague. You’d think that the above covered the whole dang process, but there was a second part, where I kept trying to make the parts I knew about work, until it turned out there were even more hidden parts that were silently causing another set of problems in the background, until I found and disabled them.

Fixin’ things is better than not fixin’ things.

What could I have done better? I could have done more investigation in the beginning; some of the parts in place were available to me before I got onsite, and I could have found some of that out going in. Other parts were not known to me and had to be discovered onsite, though.

I could have gone through my troubleshooting faster, I suppose; I got mentally blocked by all the surprises and it slowed me down, and led me to asking my lead for more help. Help they’re happy to provide, and they insist they are not upset with me at all, but it weighs on my sense of duty, y’know? I’m very Capricorn Sun like that.

But troubleshooting, which is what I do for my job in my career, is often like that. You go into a new sitaution not knowing all the details, and finding out those details is the majority of the process. Only when you have the full picture can you start coming up with a solution. And it’s often the case that you try multiple solutions before you find the one that works. It’s not always obvious what solution will fix or resolve the problem, and that’s due to the fact that in a complex system you can’t know every factor that is involved.

Luckily the clients knew none of this. All they saw was a tech working away dilligently and in the end it all worked. They never said, to me at least, that I was taking too long, or that the job was easy and should have been finished faster. They just let me work and waited for it to be done. That was nice, and I appreciated that, but because I knew what was going on in my head – stress, anxiety, doubt – I still felt guilty.

But once I was able to clear all the known and unknown hurdles, the task was swiftly brought to a successful close. And that felt good, reaching the right conclusion after hours (literally hours, fuckitall) of confusion, frustration, and investigation. All’s well, that ends well.

Udio sued

As a follow-up to my post about generative AI music, Udio is being sued by the major labels, along with the similar site Suno. Because of course they are.

The issues involved are interesting. I generally think AI should not be trained on human artist’s work without the prior consent of the artists. But my understanding (and I am not a lawyer) is that if the labels win this case, it would not increase the protections for artists, it would increase profits for the labels. So the suits are not automatically a positive for me.

Reconstructing the timeline

I thought a fun follow-up to my post about running out of gas on a road trip would be documenting what I had to do to figure out what happened when.

Also: because of my digital archive and research, I updated some of the locations in the original post to reflect that. Thanks for your patience.

Swiss-cheese memories

When I wrote the first draft I just guessed the details based on my memory of events. Since they were 22 years old, those memories were not accurate. What I remembered was: taking pictures of the sunrise, then giving up driving for a nap while Caleb drove, then some time later, in the daylight, waking up to the car running at maximum speed and getting a picture.

Just at sunrise, three white guys stand in the middle of a freeway. Left, tall, dark hair, glasses, in polo shirt and jeans, is Jake. Middle, shorter, red hair, wearing a green and white sweater and jeans, is Caleb. Right, older, balding, unshaven, glasses, in black Hawaiian shirt and jeans, is Brian (the author). Behind them is a farm set at the base of tall lightly forested mountains. The picture is faded from being overexposed due to the early lack of light.
Left to right: Jake, Caleb, Brian (me, the author)

After wrapping that up, we pulled into the closest town. According to the map, the closest town to the Idaho-Montana border was Superior, and I vaguely remembered a diner there.

I do remember Jake saying we should fill up the tank as we drove into (a) town and assumed it was the same one we had breakfast in. According to my memory, the next major event was, of course, running out of gas, and Jake going off with the old couple in the RV. I had no idea where we were when that happened; we were just “somewhere in Montana”

Those were the events, in roughly the order they happened, but my first draft had them all happening before noon on 20 July 2002, in western Montana. That’s not right!

Start with what I know to be true

For a starting point, I knew that we pulled over to take pictures of the pre-dawn mountains, and a simple Google search showed that sunrise in Montana on 20 July was at 5:46 AM. Roughly that placed us on the map, give or take.

Blurry, taken before sunrise. The sky is dark blue but covered in feathery pink and cream and dark gray clouds; the middle ground is rolling hills, nearly black from being backlit by the sky's glow; the foreground is a highway curving away and to the left, very low contrast. On the highway you can just make out the red taillights of a car driving away.
Sunrise on the Idaho-Montana border.

I had pictures from that trip. Digital pictures that were saved in my Photos library and therefore available right on my iPhone. Those photos followed me, from my old iBook back in 2002 down through the years and many laptops and phones, to my current iPhone 13 Mini. Gotta admit that’s kind of cool!

The camera was an Olympus Camedia C-220, Zoom (yes that was its name). It did not have location or time data capability; consumer electronics did not have that feature back then. I added location data later, in iPhoto on my Mac when Apple added that feature, and I tagged them by date taken, but beyond that the only information was in the pictures themselves.

Searching old albums (digitally)

I quickly found the speedometer picture we took while speeding, and the gas gauge picture showing the empty tank. I had to include those in the post. But comparing the pictures to my memory showed a contradiction: did we really burn through 3/4 of a tank in just a couple of hours? Seems unlikely.

Back to my photo library, where a search for “Montana” revealed a picture of the speeding ticket! OCR on my phone is a miracle when it works. This was a huge score. So much good info preserved there, including the time the ticket was written: 10:25 AM. This told me that we had continued for at least five hours after sunrise. That means we were a minimum of 400 miles east (assuming 90-100 MPH sustained) of the Idaho-Montana border on I-90, which puts that speeding stop about 50 miles west of Billings.

Triangulating from there

View of a desolate highway surrounded by low mountains. A red Subaru sedan is parked on the shoulder, trunk and passenger door open. A white man in a black shirt and shorts is getting luggage out of the trunk. On the ground next to him is a red gas can. At the right edge of the image is a green exit sign but all that can be read is E 5.
Stranded in Montana… but where?

Next, comparing the odometer in both of the pictures referenced above, we put 295 miles on the rental between the two pictures. So, where did we run out of gas? I found another image from that day in 2002 of me, standing next to the trunk, with a gas can on the ground (Caleb or Jake had taken the picture; probably Caleb). On the right edge of the frame is an exit sign: Exit 5something.

The exits on I-90 in Montana are numbered low to high, west to east, and I knew our gas stop was closer to the eastern border than the western. Looking at a list of exits for that highway, I found only one viable candidate: Exit 544, for Wyola, MT. I looked it up in Google and used Street View and confirmed: that was absolutely the same place. I even clicked down to the bottom of the off-ramp and saw the sign I clearly remembered: No services.

No Services

Wyola is less than 100 miles by car from Billings, and the maximum range on that Subaru Legacy was more than 300. Where did we last fill up the tank? It couldn’t have been Billings. We must have stopped somewhere else west of Billings for lunch or something else. Where were we when Jake reminded us to fill up while driving in? 320 miles west of Wyola is Butte, and it’s hard to imagine three guys on a road trip not stopping in a city called Butte. Right? That’s where we had our lunch.

Finally, to satisfy my curiosity, I looked at restaurants in Butte to see if I recognized one. I found an Annie’s Cafe, which very much feels like the kind of place we would choose, but the user-submitted pictures do not ring a bell for me. Change is inevitable in two decades, yeah?

PostScript: Full Chronological Order

All events listed occurred on 20 July 2002

  • 5:30 AM – We pull over just past the Idaho-Montana border, near Sohon, MT, and take pictures of ourselves and the sky before sunrise.
  • 9:00 AM – We stop in Butte, MT (hehe, butt) for breakfast and gas.
  • 10:00 AM – Approximate time we pegged the speedometer at over 120 MPH indicated, west of Billings, MT.
  • 10:25 AM – Montana State Trooper pulls us over and cites us for “Exceed(ing) the posted speed limit by (more than) 25 MPH” @ 92.5 MPH. Fine paid: US$40.00, cash
  • 11:30 AM – Approximate time we arrived in Billings. Jake reminded us to fill up the tank. We did not.
  • 11:30 AM – 12:30 PM – lunch break in Billings. Establishment unknown.
  • 1:30 PM – Approximate time we ran out of gas, at Exit 544, near “No Services” Wyola, MT.

AI is for shitposting

I’ve discovered the best use of generative AI, and that is trolling my D&D players.

OK, well, not trolling so much as giving them lore dumps, NPC images, and in-universe books and letters that would take me far too long to write and make interesting and unique. As long as I curate the images, and only share them privately to my players with the caveat that they’re possibly plagiarized from actual art so don’t post them on the world wide web, I think I’m on ethically-safe ground.

Why is that a concern of mine? Well, Molly White has done a much better job of going over the pros and cons of Large Language Models (LLMs) and Generative Pre-trained Transformers (GPTs) recently but here’s my take: most of the companies and organizatoins that are creating these LLMs are just scraping vast amounts of data off the open internet, without regard for consent of the writers, artists, and musicians. Also without much regard for the actual truth value of the information that’s out there, which means any repsonse (I hesitate to call them “answers”, because they’re not, except in the broad sense of being an answer to input) is not vetted or measured against the question “is this information true?”

AIs like these machine-learning models are just spicy autocorrect; they don’t “know” anything about the topics they put together responses for; they’re just putting words together in common and statistically-valid ways. And the image generators are essentially forging new images from bits and pieces of actual creative artist’s work. And in both cases, they don’t reference their sources; all the ones I’ve dealt with just phrase their responses in the most chirpy, confident manner. It’s easy to fall into the habit of thinking the response is based on factual knowledge; they’re not, every answer has to be checked before anyone relies on it. Taking that extra time to vet the information renders any time-savings almost moot.

But as long as someone goes in with that awareness, and aren’t relying on ChatGPT, Copilot, or Google AI or any of them for authoritative true statements, they can be quite clever and fun. Which leads me back to my original point.

Here, I made two robots create a song that is now canonically sung by bards of the city-state of Kopno’domas, jewel of the Sunset Coast. I give you “The Ballad of the Red Elves Invasion“.

Last session, my players were trying to make sense of a jar of rust-red sand they found in a dungeon, and an NPC they showed it to mentioned remembering a song about an invasion of Red Elves from a red plane of existence. My players joked that they didn’t want me to sing, but instead I opend a tab to OpenAI’s ChatGPT, gave it a simple prompt “Can you write a song in the style of a bardic ballad about an invasion of the red elves?” and it spit out these lyrics:

In a time of peace and gentle grace,
When meadows bloomed in fair embrace,
From the north there came a chilling breeze,
Whispering tales of looming seas.

In shadows deep, ‘neath moonlit skies,
The Red Elves marched with crimson eyes.
Their armor gleamed like blood-stained gold,
With hearts as fierce as legends told.

From forests dark and mountains high,
They came with neither hue nor cry.
The silent specters of the night,
Their power known, their presence fright.

Through village lanes and cities bright,
They cast a veil of endless night.
With blades that sang of ancient strife,
They sought to drain the realm of life.

The farmers’ fields, the merchants’ wares,
Were left to ruin, in dire despair.
The children’s laughter turned to cries,
As hope was choked ‘neath reddened skies.

Yet in this darkest, dire hour,
There rose a hero with a power.
A bard whose voice could quell the storm,
With melodies that hearts transform.

He sang of courage, valor, truth,
Of ancient oaths and warriors’ youth.
His words like fire, his notes like steel,
Awoke the land, made spirits heal.

The people rallied to his song,
Their fear dispelled, their hearts grown strong.
With every verse, with every rhyme,
They turned the tide, defied the time.

The Red Elves’ might began to wane,
Their cruel command, their ruthless reign.
For music’s magic, pure and free,
Restored the light, reclaimed the sea.

And as the dawn broke clear and bright,
The Red Elves fled into the night.
Their legend told in mournful tune,
Of how they met their fate too soon.

So let this tale be known to all,
Of how the brave can never fall.
With song and heart, with courage bold,
The land was saved, the story told.

I shared it with my players and we had a laugh. This morning, I discovered Udio, another generative-AI site that uses prompts to generate music and songs, so I fed in the lyrics above, with the additional prompt of “a song about the invasion of the Red Elves from outer space set in a fantasy world, defeated by an incredible bard” in the folk style, and that’s what it came back with. It’s probably using samples I don’t recognize… and yet, it’s fun and I enjoyed making (“making”) it and enjoyed sharing it with my players.

Now, I need to write some songs for other lore dumps I can give to my players…