Skip to content
DevMeme
5563 of 7435
The Folly of Creating a New Linux Audio Subsystem
OperatingSystems Post #6105, on Jul 12, 2024 in TG

The Folly of Creating a New Linux Audio Subsystem

Why is this OperatingSystems meme funny?

Level 1: The Sound of Silence

Imagine you have a bunch of toys that all do almost the same thing. Let’s say you already have five different toy cars. You get a super creative idea that you’ll build a sixth toy car by hand, thinking everyone will be amazed because it’s your special new car. You run to show your friends your newly made toy car, grinning ear to ear, expecting them to clap and say “Wow, awesome!” But instead, everybody just stands there quietly, not saying anything. They’re looking at you kind of like, “Uh, we already have plenty of toy cars…” That awkward quiet feeling — no cheers, no excitement, just silence — is exactly what’s happening in this meme. The guy built something new that he was proud of, but it turns out it was something people already had lots of. It’s like bringing a sixth dessert to a party that already has five desserts; everyone’s too full and just gives a polite smile. In simple terms, he tried to fix a problem that wasn’t really a problem (or one that had been “fixed” too many times before), so nobody reacts. He goes from happy and energetic to confused and then to sad, all because he expected a big applause and instead got nothing but quiet. The humor comes from that relatable moment: when you do something you think is great, but the world responds with a shrug. It’s funny and a little bit sad at the same time — you can almost hear the crickets chirping in the silence.

Level 2: Linux Sound Systems 101

Let’s break down what’s happening in this comic for those not deeply familiar with the Linux audio world. The joke centers on the Linux audio stack – basically, all the software layers that let programs play sound on a Linux operating system. Over the years, Linux has had several different audio subsystems (components that handle sound). The character in the comic proudly declares, “I made a new Linux audio subsystem!” He’s basically saying, “I wrote a new program to handle audio on Linux.” The reason the others react with skepticism (and eventually silence) is that there have been many such systems already, and people are a bit tired of new ones. To understand the humor, you should know the main players in Linux audio and why having “yet another” is funny. Here’s a quick primer on the key Linux sound systems that exist:

Audio System What it is Role & History
OSS (Open Sound System) The original sound drivers for Linux (1990s). Lived in the kernel (core of the OS). Only one app at a time could use the sound device. Eventually considered outdated.
ALSA (Advanced Linux Sound Architecture) The next-gen sound subsystem (early 2000s). Replaced OSS in the Linux kernel. Allowed multiple sound streams and better hardware support. Still the under-the-hood standard for drivers today. Apps use it via an API.
JACK (Jack Audio Connection Kit) A specialized sound server for low-latency pro audio. Runs in user space (not in kernel). Great for music production where timing is crucial. Lets apps like synthesizers and recorders connect their audio in “real time” with minimal delay. Not typically used for everyday desktop sounds (it’s a separate niche).
PulseAudio A general-purpose sound server daemon for desktops. Introduced mid-2000s to sit on top of ALSA. Mixes audio from multiple apps, lets you adjust volume per application, and even send sound over network or Bluetooth. Became the standard on most Linux desktops. Early on it had bugs and people complained, but it improved over time.
PipeWire A newer unified media server (audio and video). Released around 2018-2021 (recent). Aims to replace PulseAudio and JACK by handling both regular sound and pro-audio use cases, plus video (for things like screen sharing). It’s designed to be modern and handle low latency. Many current Linux distributions are adopting PipeWire as the default.

Now, the comic panels make a lot more sense with that context. The excited engineer essentially says, “I know we already have things like ALSA, PulseAudio, etc., but I went and created another system from scratch!” This scenario is poking fun at a habit some developers have: instead of working with existing solutions, they sometimes prefer to build a brand new one. There’s even a term for it: “reinventing the wheel.” That means coming up with a new solution for a problem that’s already been solved (like reinventing a wheel when wheels already exist everywhere). Often, people do this because they think they can do a better job or make something cleaner than the old solution. In open source culture, nobody is really forbidding you from doing this – if you have a cool idea, you can code it up and publish it. That’s why we see multiple projects that serve similar purposes. It’s a double-edged sword: it’s great for innovation, but it can lead to fragmentation (too many choices that do the same basic thing).

In the Linux audio context, each system (OSS, ALSA, JACK, PulseAudio, PipeWire) was created to address certain issues with the previous ones. For example, ALSA was made to replace OSS and allow more flexibility. PulseAudio was made to make life easier for desktop users who want all their apps’ sounds to play at once and be easily managed (something ALSA alone could be tricky to configure for; ALSA is powerful but not very user-friendly by itself for mixing). JACK was made by and for audio professionals who needed very low delay (latency) – think of a music producer using Linux to record and layer instruments; they can’t have a noticeable lag. However, JACK isn’t aimed at normal desktop tasks (like playing a YouTube video sound) – it’s more for connecting pro audio apps in a studio-like setup. So, for a long time on Linux, you had this situation: ALSA in the kernel for basic sound, PulseAudio on top for desktop mixing, and maybe JACK running separately when doing music work. They didn’t always play nicely together without some tweaks. PipeWire came along to try to unify these needs so you wouldn’t have to switch systems – it’s like “one server to rule them all” for modern Linux audio.

Now imagine you’re an experienced Linux user or developer. You’ve lived through all these changes – perhaps you remember when you had to configure ALSA by hand, then PulseAudio came and you had to troubleshoot that, and just as that became stable, along comes PipeWire to learn. It’s a lot. So if someone comes and says, “Hey everyone, I’ve made another new audio subsystem, it’s going to be great!” – you might react like the skeptical colleagues in the comic. Kind of a “Really? Another one? Do we truly need that?” reaction. That’s exactly what those older engineers in their lab coats are expressing with their body language. One has arms crossed, the other is just staring at the shelf where that blue circle sound-wave icon (representing an existing sound server like PulseAudio or PipeWire) sits. Their faces say, “We already have something for that… and the last one took years to get right.” There’s even a hint that the new project might end up just sitting on the shelf, like another science experiment that never gets widely used.

The empty speech bubble in the middle row of the comic is a key comedic element. An empty speech bubble means nobody had anything to say. It’s a visual way to show silence. In a comic about an audio system, using silence as a punchline is pretty clever. It emphasizes that his big announcement was met with no enthusiasm – literally no words, just quiet. In conversation, when someone says something and the room goes silent, it often means it landed poorly or people are unconvinced. We sometimes joke by saying “crickets” to describe that awkward silence, implying you could just hear cricket noises because no human is saying anything. That’s the vibe here. The enthusiastic guy is smiling, expecting maybe an excited “Awesome!” from his colleagues, and he gets nothing but blank looks. Ouch.

As the last three panels show, the once-happy inventor’s expression changes once he realizes no one is cheering. First, he looks confused (why the silence?), then you see him think for a moment (perhaps it dawns on him: “Have I done something redundant?”), and finally, he looks down, totally deflated. This progression is the reality check hitting him. The title given – “meets the cold, silent reality check” – really sums it up: his idea met a cold reception (no warmth or excitement, just icy stares) and a silent one at that. It’s not that his project is necessarily bad engineering; it’s that the community didn’t show demand for yet another solution. In open source, getting people to adopt your new tool is often harder than building it. People invest time and effort into what they already use, and a new thing has to prove it’s worth the switch. Often, the reaction to “I made a new X” is “Why? What was wrong with the existing X? How are you handling all the hard problems that the old X had to solve?”

Now, a few terms that popped up: Open Source means the code is publicly available and anyone can contribute or fork it. All these Linux audio projects are open source. Open source culture encourages experimentation – if you think you can improve something, you’re free to try. But it also means there can be multiple programs doing the same job, since there’s no single company forcing everyone to use one solution. Operating Systems are the base software (like Linux, Windows, macOS) that talk to the hardware; an audio subsystem is part of the OS (or tightly integrated with it) that specifically deals with sound hardware. Systems programming refers to programming at a low level – interacting closely with the OS and hardware. Writing an audio subsystem is very much systems programming: you deal with drivers, memory buffers, multi-threading, and performance tuning. The comic highlights a bit of over-engineering in a humorous way. Over-engineering is when someone designs a solution more complicated or fancy than necessary. Here, building a whole new audio layer could be seen as over-engineering if the problem could have been solved by improving the existing ones.

So, putting it all together: The meme is funny to developers because it captures that moment when a well-intentioned coder proudly presents “Version N+1” of something, expecting everyone to celebrate, but instead faces a wall of apathy because people are tired of so many versions. Specifically in Linux audio, each “reinvention” is greeted with increasing skepticism. The lab setting and the visual silence exaggerate this for comic effect. If you’re newer to these concepts, just know there’s a long, sometimes messy history of Linux trying to get sound “just right,” and it became a running joke that the solution always seems to be to add yet another layer. The poor guy in the strip learned the hard way that sometimes, instead of saying “Yay, a new one!”, the audience will say nothing at all – which speaks louder than any criticism.

Level 3: Now We Have Two Sound Servers

Ah, the classic tale of “yet another framework” in the open source world. This comic strip nails an inside joke about Linux: every few years someone gets fed up with the current audio subsystem and decides to create a brand new one from scratch. The engineer in the first panel, lab coat flapping with excitement, announces, “I’ve MADE a new Linux audio subsystem!” – brimming with the optimism of someone who hasn’t yet been scarred by a decade of audio driver bugs and impossible dependency graphs. His bald colleague standing by looks less enthused, arms crossed as if thinking, “Seriously, another one?” This is a well-known pattern in tech humor: reinventing the wheel. In Linux especially, the phrase “Yet Another (insert thing here)” is practically a meme template on its own – it even appears jokingly in project names like YAML (“YAML Ain’t Markup Language”) or YACC (“Yet Another Compiler Compiler”). It’s a tongue-in-cheek acknowledgment that we’ve been down this road before. The humor here comes from the collective fatigue around the Linux audio subsystem saga. We’ve had OSS, then ALSA, then JACK, then PulseAudio, and now PipeWire – each intended to fix the shortcomings of its predecessor or serve a slightly different niche. The overlapping history is so notorious that when PipeWire was introduced, many developers half-joked, “Oh great, now we’ll have two sound servers running.” It’s the classic scenario described in that famous XKCD comic about standards: there are 14 competing standards, so someone says “Let’s make 1 unified standard to replace them all,” and then there are 15 standards. In other words, adding another solution often just adds to the problem. Here, the new audio subsystem isn’t greeted with applause; it’s met with deafening silence – literally depicted by an empty speech bubble in the second row. That blank bubble is a brilliant visual gag: the sound of no one caring. It’s an awkward silence that speaks volumes. You can almost hear the metaphorical crickets chirping in the lab.

The setting amplifies the joke: all the characters are in white lab coats in a lab-like environment with a shelf of beakers, as if this is some grand scientific breakthrough. One of the beakers has a blue concentric-circles icon – a sly reference to an existing Linux audio daemon (it resembles the PulseAudio or PipeWire logo). The older engineers eye that icon on the shelf skeptically, conveying “We already have one of those concoctions, see? It’s sitting over there.” This mirrors real life: there’s often an existing solution simmering in the lab that the newcomer is implicitly trying to replace. In panel three, the enthusiastic inventor looks at another colleague for validation, but the colleague just stares back blankly; the speech bubble above them is literally empty. That moment perfectly captures the reality check: he expected at least a “Wow, tell me more!” but got stone-cold silence. It’s cold, silent reality indeed – hence the post’s title. As the last row of panels progresses, our protagonist’s facial expression sinks from puzzled (“Huh, why is nobody excited?”) to pensive (“Are they… not saying anything because this has been done before?”) to downright dejected (“Oh… nobody needed this after all.”). This is basically every developer who’s ever proudly announced their “groundbreaking” project on a mailing list only to get responses like, “Cool, but how’s it different from XYZ?” or “We already have an XYZ, why not improve that?” The meme shines a light on Not Invented Here (NIH) syndrome: the tendency of developers (especially in open source) to build a new tool rather than collaborate on existing ones. It’s not malicious – often it comes from genuinely wanting to make things better – but the end result is a proliferation of tools that do almost the same thing. The Linux audio stack is kind of the poster child for this phenomenon.

From a senior developer’s perspective, this comic is painfully on point. We’ve all seen the cycle: someone on a forum or at a conference talk stands up and proclaims, “Linux audio is broken, so I wrote a new system from scratch that will fix it!” Initially there’s a ripple of interest – after all, who wouldn’t want a magic fix for a notoriously finicky subsystem? But then veteran devs start asking questions: “How does it handle legacy ALSA apps? Does it integrate with PulseAudio clients? What about JACK’s real-time requirements?” Often the new project either hasn’t considered all the hard-won lessons (because, well, those lessons are buried in the ugly hacks of the existing systems), or it does address them but at the cost of even more complexity. It’s like trying to simplify a tangled knot by tying another knot around it. The result? The community’s response is muted or skeptical. As depicted, they just cross their arms and let the proposal fall flat with no cheer. It’s not that Linux users or devs hate improvement – it’s that they’ve been burned by promises before. PulseAudio, for instance, was supposed to make audio just work – and eventually it did – but early on it caused enough problems that “It’s probably PulseAudio’s fault” became a shrugging refrain whenever sound acted up. JACK was fantastic for pro users, but if you weren’t an audio engineer, setting it up felt like rocket science. Then along comes PipeWire to unify JACK and Pulse…and here we are joking about the next “new Linux audio subsystem.” The comic exaggerates only slightly: the creator expected a eureka moment, but the community felt more like, “Here we go again.”

The phrase “Yet another Linux audio subsystem” itself carries irony. In tech, “yet another” is said with an eye-roll. The picture could easily be swapped with other domains too: yet another JavaScript framework, yet another package manager, yet another CSS-in-JS library – developers make this joke across the stack. But audio on Linux is especially infamous because it’s systems programming (hard to get right) and it’s been redone so many times over the decades. This creates a rich soil for humor. Every experienced Linux user has at least one war story of sound not working: maybe you had to edit an /etc/asound.conf for ALSA, or kill and restart pulseaudio when audio died, or wrestle with JACK’s patchbay, or recently, figure out why a PipeWire service failed. So when someone claims they’ve finally “solved” Linux audio with a new subsystem, the knee-jerk reaction is a mix of skepticism and dark comedy. It’s like hearing someone say, “I’ve reinvented the car, it has five steering wheels to solve all our problems!” – You don’t know whether to laugh or cry. No wonder the other engineers in the comic just stare. As a seasoned dev, you chuckle because you’ve seen this movie before, multiple times, and it always ends with the hero realizing the villain was the fundamental complexity of the problem all along.

That empty speech bubble in the middle is honestly the MVP of the comic. It conveys silence – the one thing an audio developer doesn’t want to hear after unveiling their creation. The satire cuts deep: for an audio system meant to produce sound, there’s nothing but silence as its reception. Talk about ironic! It’s a silent treatment from the audience. You can almost sense the poor inventor’s internal monologue in that moment: “Any second now, they’ll clap, right? … Guys?” This resonates with any dev who’s ever open-sourced a project expecting popularity, only to hear crickets. In open source culture, people often scratch their own itch – which is great – but not every invention will gain traction. The comic uses that scenario to elicit a laugh of recognition. The final panels with the engineer slumping is basically the “acceptance” phase of realizing your grand idea isn’t going to change the world overnight. He’s learned the hard way that usability, adoption, and timing are as important as raw technical brilliance. Maybe his new sound server is technically amazing, but if nobody needs it or is willing to switch, it ends up as just another jar on the shelf (right next to that PulseAudio/PipeWire beaker collecting dust).

In summary, this meme hits on multiple levels of developer humor: it pokes fun at open source over-engineering, highlights the Linux audio stack as a running joke (because of its long, convoluted history), and uses the comic strip format (with lab-coated geeks and speech bubbles) to set up a visual punchline of awkward silence. Seasoned developers laugh (perhaps with a groan) because it’s true – we have a tendency to code first and ask “does anyone actually want this?” later. It’s a gentle reminder that sometimes the bold new solution isn’t greeted as a hero, but as just one more thing that nobody asked for.

Level 4: Buffer Underrun Blues

At the heart of Linux’s audio saga is a classic operating system design challenge: how to deliver sound from many applications to one physical speaker in real-time without glitches. Audio data is a continuous stream of samples that must be processed under strict timing constraints. If the system can’t fill the sound card’s buffer in time, you get a dreaded buffer underrun – those crackles or drop-outs (hence the blues every audiophile Linux user has sung at some point). Early Linux audio used a kernel driver called OSS (Open Sound System) that directly interfaced with sound hardware. OSS followed a simple model – one process could open /dev/dsp (the sound device) at a time and write raw samples. This simplicity came with a brutal limitation: only one application could output sound at once. Want to play an MP3 and get a notification “ding” simultaneously? Sorry, the device was busy. The hardware mixing on consumer sound cards was limited, so if OSS couldn’t mix in software, you literally had silence from the second app.

Enter ALSA (Advanced Linux Sound Architecture) as a deeper kernel-level overhaul. ALSA introduced a more flexible driver model and could allow multiple streams – but to do so, it often relied on software mixing in user space (via plug-ins like dmix). ALSA provided a richer API, but every program had to know how to use it or fall back to OSS compatibility. The key architectural decision was to keep mixing and policy management out of the kernel for flexibility. This meant user-space duties: a separate layer would manage combining audio streams. Handling these streams in user space, however, raises systems programming challenges. You need to shuffle bytes of audio from many sources to one output with minimal overhead. Threads or interrupts must wake up at just the right intervals to pump the next 256 frames of audio. Too slow, and you get silence gaps; too fast with busy-waiting, and you waste CPU or risk jitter. Getting this timing right on a general-purpose OS (with other tasks running) is tricky – Linux isn’t a real-time OS by default, so scheduling latencies can undermine smooth audio. The holy grail is low latency (no lag between an app playing a sound and you hearing it) and reliability (no underruns causing pops). But the CAP theorem of audio... okay, not exactly CAP, but there’s a fundamental trade-off: you can prioritize low latency or higher fault-tolerance to timing slips, but doing both is hard. Professional audio folks (musicians, sound engineers) demand ultra-low latency (say under 10ms) so that recording and live mixing have no audible delay. That’s where JACK (Jack Audio Connection Kit) emerged – essentially a specialized sound server that coordinates audio apps with a precise timing loop. JACK runs with real-time scheduling, directly feeds each app a time slice to process audio, and uses lock-free ring buffers to pass audio between apps and the sound card. It’s like an orchestra conductor ensuring each musician (app) comes in on cue, every interrupt cycle, without fail. Miss a cue, and you’ll hear the equivalent of a musician’s hiccup – a glitch.

While JACK excelled at one thing (pro-audio), typical desktop users just wanted all their bleep-bloops to play nicely together without manual setup. Enter PulseAudio – a general-purpose sound server daemon, running in userland on top of ALSA, mixing streams from all your apps (music player, browser, system sounds) and adding neat features like per-application volume control, network audio streaming, and Bluetooth sound support. PulseAudio’s design is an example of adding an abstraction layer to manage complexity: it sits between apps and the kernel drivers (ALSA) to provide a standardized, feature-rich audio interface. Technically, it’s a user-space daemon that applications talk to (usually via an libpulse API or through ALSA’s Pulse plugin pretending to be an ALSA device). PulseAudio mixes multiple audio streams in software, does sample rate conversion as needed, and uses larger buffers to ensure glitch-free playback under normal loads. Those larger buffers and user-space context-switching, however, introduce more latency (often ~100ms by default). That’s fine for a notification sound, but not for a guitarist using Linux for real-time effects. Moreover, early PulseAudio had a rough start – back in 2007–2008, it was infamous for causing playback issues because not all drivers were happy being abstracted, and some users saw it as over-engineering. Over time it improved and became the default on most Linux distros, but the pattern was set: each new solution addresses some pain points but inevitably adds its own quirks.

Fast-forward to recent years, and we witness PipeWire, the latest contender aiming to unify it all – pro audio, desktop audio, and even video streams – into one media server. PipeWire’s architecture builds on lessons from PulseAudio and JACK, essentially reinventing the wheel but this time trying to make it round for everyone. It uses graph-based processing (treating audio/video streams as nodes in a pipeline) and can operate with low latency similar to JACK’s needs, while also serving casual desktop uses. Under the hood, PipeWire employs Linux’s modern features (like memfd zero-copy buffers, realtime scheduling with SCHED_FIFO, and Linux capabilities for security) to reduce overhead and latency. Conceptually, it’s an evolutionary step: recognizing that the fundamental constraint – juggling multiple audio clients with limited hardware resources – needs a smarter central scheduler. But notice the trend: OSS -> ALSA -> JACK -> PulseAudio -> PipeWire, each new subsystem layered either alongside or on top of the previous. For a while, you even had PulseAudio and JACK running simultaneously (to satisfy different apps) and they’d fight over the sound card, requiring loopback bridges to coexist. For example, musicians ran JACK for their DAWs but then had to pipe that into PulseAudio so the rest of the system could also play sound, a hacky two-daemon dance. New systems like PipeWire try to avoid such dueling banjos by replacing both at once – but to do that, they literally implement compatibility shims (PipeWire can pretend to be a PulseAudio server and a JACK server to client apps). In other words, the new “solution” has to impersonate the old solutions until the world fully switches over. From a pure engineering standpoint, the proliferation of Linux audio layers is both a blessing and a curse: a blessing because it allowed specialized optimization for different needs, a curse because it fragmented the ecosystem and complicated the stack with multiple abstraction layers. Each layer introduces potential latency, synchronization complexity, and new failure modes (e.g., a PulseAudio daemon crash would mute all sound until restarted, something that didn’t happen with purely in-kernel ALSA). The meme’s core absurdity is rooted in this very real technical saga: no matter how elegant your new audio subsystem is, it still must reconcile with physics (timing deadlines, CPU scheduling limits) and the legacy of previous systems. The cold, silent reality is that an audio system can only be so “new” – it ultimately has to push those same 44.1 kHz samples out to your speakers on time, and there’s no silver bullet algorithm that magically simplifies that challenge away. So when yet another enthusiastic engineer proclaims “Eureka! I’ve built a new sound server that will solve everything,” the seasoned folks know that under the hood, he’s likely just playing a complex remix of a very familiar song.

Description

A six-panel comic strip meme that humorously depicts the painful history of Linux audio systems. In the first panel, a young, enthusiastic developer proudly exclaims, 'I've MADE A new linux audio subsystem!' to an older, skeptical colleague. The second panel shows them observing the new system, a simple black box with a speaker icon. In the third panel, the older developer asks a question, but his speech bubble is deliberately left empty, implying a simple yet devastating query. The final three panels show the young developer's expression shifting from confident pride to dawning horror and finally deep, troubled contemplation. This meme is a classic joke for experienced Linux users who understand the notorious complexity and fragmentation of its audio architecture (OSS, ALSA, PulseAudio, JACK, etc.). The punchline is the unspoken but crushing weight of a simple question that exposes the developer's naivety to the immense challenge he has unknowingly taken on

Comments

10
Anonymous ★ Top Pick The senior dev didn't even say anything. He just thought 'PipeWire' loudly and the resulting existential dread was enough to break the new subsystem's event loop
  1. Anonymous ★ Top Pick

    The senior dev didn't even say anything. He just thought 'PipeWire' loudly and the resulting existential dread was enough to break the new subsystem's event loop

  2. Anonymous

    The quickest way to break audio on every distro at once: ship a ‘simpler’ replacement for the thing that was supposed to simplify the last replacement

  3. Anonymous

    Ah yes, the 15th competing standard for Linux audio - because what we really needed wasn't fixing ALSA, PulseAudio, JACK, or PipeWire, but another abstraction layer that will definitely solve all our problems this time... until someone writes the 16th one next month to unify them all

  4. Anonymous

    Ah yes, another Linux audio subsystem - because what the ecosystem really needed was a 15th standard to unify the other 14. Nothing says 'I understand the problem space' quite like confidently announcing you've solved Linux audio to a room full of people who've watched PulseAudio, JACK, and ALSA wage a decade-long cold war. The facial progression in the final panels perfectly captures that moment when a senior engineer realizes they've just volunteered to maintain the next OSS/Free vs. ALSA vs. PulseAudio vs. JACK vs. PipeWire battlefield, and their stakeholders' crossed arms suggest the post-mortem is already being scheduled

  5. Anonymous

    Kernel devs' eureka: 'New subsystem? Neat - did you update MAINTAINERS and Kconfig?'

  6. Anonymous

    Every “new Linux audio subsystem” promises to unify ALSA/JACK/PulseAudio; what it actually unifies is my rollback plan, my dotfile diffs, and acceptance that latency is now a product requirement

  7. Anonymous

    Linux audio roadmaps are just “add another indirection” until JACK, ALSA, PulseAudio, and PipeWire all agree to disagree - congrats on shipping an adapter for the adapters

  8. @Hollow_Arigo 1y

    for why?

  9. @GLXBX 1y

    Bro, I just sat down to write some code Df should I do?

  10. @Diotost 1y

    On third panel he says something but nothing comes out of his mouth. Audio subsystem doesn't work.

Use J and K for navigation