[HN Gopher] BlackHole: macOS Audio Loopback Driver
       ___________________________________________________________________
        
       BlackHole: macOS Audio Loopback Driver
        
       Author : ckcheng
       Score  : 279 points
       Date   : 2024-05-06 01:16 UTC (21 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | RCitronsBroker wrote:
       | you're awesome!! I'll test if i can ditch loopback by rogue
       | amoeba for your piece of software :)
        
         | ckcheng wrote:
         | Not mine! Just sharing what I found. I was looking for an
         | alternative to rogue amoeba's loopback too
        
         | naikrovek wrote:
         | Why would you want to ditch Loopback?
        
           | deeblering4 wrote:
           | Because of price gouging. $100 for basic audio routing is
           | absurd, and they'll hit you up again eventually for upgrades.
        
             | naikrovek wrote:
             | That's fair. It isn't cheap, but they're the only ones I
             | know of who can route things around and mix them together
             | without a DAW or some other utility running.
             | 
             | MacOS doesn't even have per application volume control,
             | which is a crazy thing to say for the OS aimed at audio
             | professionals (at least as far as I know.)
        
               | crazygringo wrote:
               | The lack of per-application volume is annoying I agree,
               | as a consumer.
               | 
               | But I don't think that's a feature requested by audio
               | professionals. They're working within applications, not
               | playing audio from multiple apps at the same time. And it
               | would be _extremely_ annoying to discover that your DAW
               | output volume had accidentally somehow been set to 90%
               | and you hadn 't realized it. I mean, mixing is done with
               | visual decibel meters, but a lot still depends on little
               | details that are above or below the threshold of hearing,
               | which an application-level volume control would mess
               | with.
        
               | naikrovek wrote:
               | I'm pretty sure MacOS could easily have a built-in master
               | audio mixer _and_ a setting on that mixer labeled
               | "bypass", which gives the current MacOS behavior of "no
               | master audio mixer."
               | 
               | I can't believe that only a few people have ever asked
               | for a way to mute an app entirely.
               | 
               | I grow weary of excuses around the lack of a built-in
               | feature for this. "Apple doesn't want to do it" is the
               | only reason.
        
             | barbariangrunge wrote:
             | If you use it and need it, you'll get a lot more than $100
             | worth of value from it. It's not price gouging, it's just a
             | small company making enough money to stay in business. They
             | arent sustaining themselves off advertising and your data
             | like big tech
        
             | cpuguy83 wrote:
             | The whole thing is, it's not basic. Loopback does things
             | that Blackhole cannot, granted it requires a kernel
             | extension.
             | 
             | But if Blackhole does what you need, that's awesome!
        
       | infotainment wrote:
       | I'm glad to see this! So many posts online still cheerfully
       | suggest using SoundFlower for this purpose, which doesn't work
       | with M1 Macs.
        
       | wdb wrote:
       | Is this a free alternative for Audio Hijack / Loopback?
        
         | tomduncalf wrote:
         | Yes, depending on what you need it for. It does require a bit
         | more setup though.
        
         | ravenstine wrote:
         | For Loopback, partially. Not so much for Audio Hijack.
         | 
         | I still use Loopback because I like the interface it gives you.
         | If I remember correctly, BlackHole doesn't provide a GUI.
        
           | deeblering4 wrote:
           | Why not? You can create multi-output audio devices in macos,
           | say blackhole and your speakers and use that multi-output
           | device as the input in the recorder.
        
             | cpuguy83 wrote:
             | I don't recall exactly my issues, but definitely found some
             | things that didn't work this way.
             | 
             | It's also a pain to set things up this way (compared to
             | loopback or hijack).
        
             | ravenstine wrote:
             | Not throwing shade on Blackhole. You can accomplish a lot
             | with it. And yes, technically, it can do most if not all of
             | what Loopback does. I just like the experience of using
             | Loopback more than having to use the built-in MIDI setup in
             | macOS, which I always find a bit confusing.
             | 
             | Oh, actually, now I remember why I bought Loopback in the
             | first place. I couldn't figure out how to map a single
             | stereo input channel to both left and right channels with
             | Blackhole, but Loopback makes that very easy. Maybe it's
             | possible to do with Blackhole, but I'll happily pay to not
             | feel like a confused old man when all I want to do is
             | record audio the way I expect.
             | 
             | In the case of Audio Hijack, one might as well save the
             | money and go with Blackhole instead of Loopback.
             | 
             | And in any case, as much as I normally embrace FOSS, Rogue
             | Amoeba makes high quality software that's worth paying for,
             | so I'm not champing at the bit to replace them.
        
               | RulerOf wrote:
               | > And in any case, as much as I normally embrace FOSS,
               | Rogue Amoeba makes high quality software that's worth
               | paying for, so I'm not champing at the bit to replace
               | them.
               | 
               | I tried really hard to get my desired audio setup to work
               | with stock Mac OS features, but it was just... not good.
               | 
               | I have two Apple Monitors flanking both sides of a larger
               | display with terrible speakers. I wanted to split
               | left/right between the two Apple monitors. With Audio
               | Midi Setup, I got it to work, but then I couldn't adjust
               | the volume with the soft keys.
               | 
               | I installed Loopback and Soundsource. Everything just
               | worked, and it was very easy to configure. The price was
               | a little high, but I'm not really the target customer.
               | Was worth it to not have to put bulky speakers on my
               | desk.
        
       | vmfunction wrote:
       | Hmm on first look, it looks like Audio MIDI Setup App [1].
       | 
       | Then again it looks like patch bay. Then isn't there already:
       | QjackCtl, and that works with mac/win/linux?
       | 
       | links:
       | 
       | 1: https://www.macobserver.com/tmo/article/audio-midi-setup-
       | you...
        
         | danek_szy wrote:
         | The screenshot you've looked at _is_ the Audio MIDI Setup
         | App... It just shows that there 's Blackhole as an output ;)
        
         | thedanbob wrote:
         | Technically JACK runs on macOS but last time I checked (a year
         | ago) it doesn't really work and other software doesn't support
         | it anyway.
        
       | p0w3n3d wrote:
       | Offtopic: I love Audio MIDI Setup for the Multi-Output Device and
       | the possibility of connecting two Bluetooth headphones to one
       | laptop. Is there a similar thing for Windows or Linux?
        
         | andrelaszlo wrote:
         | Yeah, in Linux with Pulse
         | https://unix.stackexchange.com/a/443064
         | 
         | There might be other ways to do it depending on your
         | distribution, for example https://askubuntu.com/q/78174
        
         | jchw wrote:
         | Many Linux distributions have moved to Pipewire as the default
         | audio daemon in recent years. With Pipewire, you can use
         | Qjackctl or Qpwgraph to edit how devices route to eachother
         | using a visual graph. Pipewire has the distinct advantage that
         | it works with tools for both the PulseAudio daemon and the JACK
         | daemon simultaneously, so you can typically combine things you
         | might do with either.
         | 
         | Unfortunately, I don't think there's a good UI that exposes
         | both a graph view _and_ a way to create virtual devices for
         | more advanced routing, however there is very rich support for
         | advanced routing:
         | 
         | https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Vir...
         | 
         | So there's probably no direct analogue, as at best you'll
         | probably need to run some commands to get a device to combine
         | streams for you, and _then_ you can hook it in using Qpwgraph.
         | 
         | Pipewire also handles video devices and graphs too.
         | 
         | If you ever want to try this with a proper audio interface,
         | you'll also want to switch the audio interface into Pro Audio
         | mode most likely. It's a profile that can be selected
         | (typically in whatever handles your volume settings, e.g.
         | pavucontrol)
        
       | swah wrote:
       | Do you look at the code / line count when you open a project like
       | this?
       | 
       | I have this "hard time" imagining what the X thousands lines of
       | code do. Even more when the piece of software claims to be
       | simple. I would have to devote months to really understand it, I
       | guess, and "cure" this "superficialitis" (tendency to think
       | everything is 50 lines of code)
       | 
       | I guess compilers are the only "kind" of project I can imagine a
       | few complex parts.
        
         | ehutch79 wrote:
         | I just looked at the code. It's mostly just handling events and
         | conditions a driver would need to handle just to be a
         | functional driver.
         | 
         | I don't think you could write any driver in 50 lines of code?
        
         | cqqxo4zV46cp wrote:
         | This has "I could build Slack in a weekend" energy.
        
           | swah wrote:
           | Yes, this is what I mean, how to get better at this etc.
        
             | exe34 wrote:
             | The best way to cure this is to write something in 50 lines
             | to show the world how it's done, and wager a large donation
             | to e.g. the trump election campaign if you leave a public
             | ticket unfixed for more than a week. As soon as you try to
             | interface with other people's workflows and needs, the 50
             | lines turn into thousands very quickly.
        
               | naikrovek wrote:
               | "The devil is in the details", as they say.
        
         | Aurornis wrote:
         | > I would have to devote months to really understand it, I
         | guess, and "cure" this "superficialitis" (tendency to think
         | everything is 50 lines of code)
         | 
         | You wouldn't have to spend months understanding it, but you
         | also wouldn't be able to glance at the code for 5 minutes and
         | understand everything that needs to happen.
         | 
         | Anything that handles driver or system level operations and
         | deals with audio will get complex quickly. What happens when
         | the input device gets unplugged? The output device disconnects?
         | User changes from speakers to AirPods?
         | 
         | How do you handle situations where the input and output sample
         | rate are different? What about when something backs up and a
         | buffer overflows? Or underflows? What mechanism do you use for
         | handling user setting changes?
         | 
         | The list of situations you have to handle goes on and on. The
         | core concept is simple, but there are so many things to do that
         | the code base will naturally become bigger than the 50 lines of
         | code you're imagining.
        
         | duped wrote:
         | > I guess compilers are the only "kind" of project I can
         | imagine a few complex parts.
         | 
         | What's so hard about a compiler? You read some files, split
         | into tokens, sort into a tree, and then walk the tree and write
         | some instructions to disk at each node. Can be done in a couple
         | hundred lines of code. (\s: the point is that all software gets
         | complicated, and a few thousand lines is not a lot of code)
        
         | 1123581321 wrote:
         | Skimming or folding to only show the names of the functions
         | might make it easier to grok. For example, there are about 75
         | OSStatus messages this driver supports.
         | 
         | There are a ton of case statements; each one represents a
         | situation that must be supported.
         | 
         | 3500 lines goes quickly when you divide it by a few hundred
         | situations/statuses.
         | 
         | As comments in another discussion tree have said, it's a shame
         | that macOS doesn't provide some of this natively. If it did
         | then this would probably be higher level code and shorter.
         | Knowing where the boundary lies between the system and the
         | application is part of having an understanding of why all this
         | was written.
         | 
         | I wouldn't feel bad about this; it's just a domain knowledge
         | thing. Be excited by the opportunity to learn with a toy
         | project or a deep code review!
        
         | meindnoch wrote:
         | A large amount of the code is the C boilerplate for
         | implementing the object graph needed by audio system. You'll
         | see that basically every function is a huge switch-case.
        
       | kristiandupont wrote:
       | I've been using this for years to route audio between DAW's. Once
       | it's set up, it runs flawlessly.
        
         | deeblering4 wrote:
         | How is the latency for you? I know blackhole is advertised as
         | 0ms itself, but I always found that crossing virtual devices
         | incurred the input/output latency of the daw itself.
        
           | kristiandupont wrote:
           | Yeah, I always adjust for that. I don't remember how much
           | exactly but definitely noticeable.
        
           | jcelerier wrote:
           | not if you use JACK (available on macOS) or PipeWire (not)
        
       | vouaobrasil wrote:
       | That is very nice. I've been looking for something like this.
       | It's useful in the case where you want to do a tutorial with an
       | application that produces sound, but you want to talk at the same
       | time. The best solution before would be to plug a 3.5mm cable
       | into an audio interface that accepts this sort of input, and then
       | record at the same time. The problem is that then you cannot do
       | small cuts in real-time as easily as if you are recording
       | directly into a DAW with audacity, and plus it gives you the
       | possibility of using real-time effects with your DAW.
       | 
       | Good for streaming also, without needing to use OBS, which is hit
       | and miss when it comes to some things.
        
         | cpuguy83 wrote:
         | Rogue Amoeba provides some really great software if BlackHole
         | isn't enough for you. Loopback and Audio Hijack in particular.
        
           | naikrovek wrote:
           | I feel like Loopback would be enough for anyone. You can do
           | everything I've ever needed to do, and I had some hare-
           | brained ideas during the pandemic.
        
             | dmix wrote:
             | Audio Hijack is good if you want to add some VST plugin
             | processing.
             | 
             | A good usecase is having a nice mic for your Zoom calls or
             | Youtube videos and doing basic noise filtering, compression
             | and limiting on it w/o having to run a full DAW in the
             | background.
             | 
             | Otherwise Loopback does everything else like piping
             | specific sound sources from one app to another, without the
             | rest of system audio.
        
               | quitit wrote:
               | Some Audio Hijack features seem unusually well suited to
               | stealing music from Spotify.
               | 
               | For example one can have a free spotify account, then
               | Audio Hijack is a few clicks from saving the music with
               | automatic file splitting between tracks.
        
           | computerdork wrote:
           | I use Amoeba too, really nice piece of software:)
        
           | quitit wrote:
           | I'm pretty sure Rogue Amoeba are the reason why Apple doesn't
           | ship with one by default.
        
       | imvetri wrote:
       | Idea: feed the meeting audio using this to a black mass. A
       | singularity program that converts words into action.
        
       | imvetri wrote:
       | Idea: feed this to a recurrent neural network
        
       | lucascacho wrote:
       | I've personally been using a nifty piece of software called VB-
       | Cable, which basically does the same thing. Creates a software
       | audio output as well as an audio input, which you can then use
       | across different applications.
       | 
       | I personally use it to route my studio mic input through OBS,
       | where I apply some filtering, to then be able to use it with
       | different VoIP software.
       | 
       | https://vb-audio.com/Cable/
        
         | unshavedyak wrote:
         | I always want this but for Midi, and cross platform. Working on
         | multiple platforms with audio equipment is so annoying to a
         | casual user hah.
        
         | jonhohle wrote:
         | Do you need additional software for this? Can't you use OBS as
         | a webcam[0] and take its audio source? (I haven't tried, but
         | that's how I'd approach it if I was going to).
         | 
         | 0 - https://obsproject.com/kb/virtual-camera-guide
        
       | grishka wrote:
       | This is what I've been using since upgrading to M1 because
       | SoundFlower I used on my previous Mac is a kernel extension and
       | installing those on Apple Silicon is a mess.
        
         | eigenvalue wrote:
         | SoundFlower is a total nightmare to install and remove, causes
         | huge problems and then requires hours of work to remove
         | completely.
        
           | grishka wrote:
           | As is pretty much anything that comes in a .pkg, to be
           | honest. It's kinda bonkers that you need third-party apps to
           | (attempt to) cleanly uninstall things.
        
       | AndrewStephens wrote:
       | Does anything similar exist for video? There have been meetings
       | I've wished I could route a loop of my face looking alert and
       | interested to Zoom instead of a live camera feed Mission-
       | Impossible-style.
        
         | jonhohle wrote:
         | The issue is there is no standard for video out from a single
         | application (except that apps window buffer).
         | 
         | That said, OBS has a "camera" mode where it will present itself
         | as a camera. Anything you can do in OBS (including playing a
         | video) can be sent to anything that takes camera input.
        
           | corytheboyd wrote:
           | +1 for OBS virtual camera, works like a charm. Haven't tried
           | the fake meeting presence idea yet though :p
        
         | evilduck wrote:
         | What's your plan for getting called on by others to speak?
        
           | dylan604 wrote:
           | Just start speaking. The surrealism would be amazing. Just
           | tell them there's clearly something wrong with Zoom. Everyone
           | will buy it.
           | 
           | Also, it's just yet another reason that I'm so happy my Zoom
           | meetings do not require a camera feed. There's just something
           | Orwellian to me about having to have a camera on me. Having a
           | camera on _me_ is my absolute nightmare regardless of the
           | purpose of the camera.
        
       | ndiddy wrote:
       | I think it's unacceptable that a third-party driver is necessary
       | to record system audio on Mac. Both Windows and Linux have been
       | able to natively record system audio for at least 20 years now. I
       | consider it a basic required feature for something like
       | screencasting.
        
         | duped wrote:
         | > I consider it a basic required feature for something like
         | screencasting.
         | 
         | That's why MacOS provides this in ScreenCaptureKit
        
           | jahnu wrote:
           | Can that record the system audio too? I mean not just the
           | microphone like in Quicktime.
        
             | duped wrote:
             | Yes, microphone access is through CoreAudio.
             | ScreenCaptureKit is for capturing system video and audio.
             | 
             | I haven't used it personally but that's my understanding of
             | why it exists. Otherwise there's no point to sending audio
             | through it.
        
         | plorkyeran wrote:
         | It was vastly overdue, but macOS shipped a native solution for
         | screen recording with audio in macOS 12 and you no longer need
         | BlackHole for that. BH is still useful for more advanced uses,
         | but they're mostly the sort of thing where it's not jarringly
         | weird that they require some third-party software.
        
           | salzig wrote:
           | Last time I checked QuickTime was still not able to. Did I
           | miss something?
        
             | dmix wrote:
             | I checked and seems to be just Microphone (or other audio)
             | input w/ QuickTime when recording sceengrab videos or
             | recording just audio.
        
               | redundantly wrote:
               | This is correct. And if you use a headset it won't pick
               | up the general system sounds. Used it for an IEP call
               | last week and found out afterwards the only audio it
               | picked up was my own. Pretty frustrating.
        
               | jxramos wrote:
               | yah, I just recently made the purchase for BlackHole
               | because I couldn't get the system sounds otherwise. Great
               | little project!
        
           | cududa wrote:
           | I really could have sworn that around 2017 there was a way to
           | do this built in, but it went away pretty quickly. Or I just
           | imagined that
        
         | KingOfCoders wrote:
         | But then again Windows has no native web cam multiplexing. One
         | app has the camera, and no one else can use it. That app
         | crashes and you need to reboot Windows.
         | 
         | One would think in the edge of remote work, an operating system
         | would bring a virtual web cam driver.
         | 
         | I used ManyCam but they cheated me out of a lifetime license.
        
           | causi wrote:
           | Is there any major company that's respected a "lifetime
           | license" for more than five or ten years? Every one I've
           | bought was eventually reneged on.
        
         | meindnoch wrote:
         | >I think it's unacceptable that a third-party driver is
         | necessary to record system audio on Mac.
         | 
         | Good news: it's not. At least not from macOS Ventura onwards.
        
         | m463 wrote:
         | Wonder if it's like taking a screenshot of video on mac.
         | 
         | They don't want you to be able to do that.
         | 
         | (you get a blank area where the video is)
        
           | adamomada wrote:
           | You sure it isn't DRMed video? It's the same on all platforms
           | 
           | I'm not at my computer to check, but if this really is true,
           | use VLC to get screen grabs from videos
        
       | 12bits wrote:
       | Something like this should be default in MacOS. I use blackhole
       | daily in my audio production and sound design practices. If you
       | use a modern audio interface you might have a loopback available
       | there.
        
         | directmusic wrote:
         | macOS 14.2 implemented something like this in Core Audio, but
         | it is not user facing (and also documented extremely poorly).
         | You can create a "Tap" that can capture audio from a particular
         | application, or subset of applications, or an output device.
         | This can then be added to a private or public Aggregate Device
         | (depending on the Tap being private or public).
         | 
         | https://developer.apple.com/documentation/coreaudio/4160724-...
        
       | spencersolberg wrote:
       | I think the Windows equivalent of this software is Synchronous
       | Audio Router: https://github.com/eiz/SynchronousAudioRouter
       | 
       | I also find it interesting that all of the examples are for
       | routing DAWs to video call apps. Don't these apps have screen
       | sharing and wouldn't that be higher quality than using the
       | microphone input?
        
         | TylerE wrote:
         | Usually the idea is to record DAW audio seperately, so when you
         | go back and actually edit the video you're not limited to
         | whatever horrible 64Kbps compression algo the video call uses.
         | 
         | Plus you'll often want to be using some sort of mixer to mix in
         | a vocal/talk mic also.
        
       | roody15 wrote:
       | This is an awesome program highly recommend. Used to be called
       | Soundflower back in the day but BlackHole works better and works
       | with new M series Mac's. Awesome!
        
       | jahnu wrote:
       | And you can pair this with Element [1] to do nice routings.
       | 
       | For example, in my live sets I send 8 separate audio channels
       | from Ableton Live via a miniDSP optical interface [2] to my music
       | partner's audio interface who does fx and live mixing.
       | 
       | When I'm working on the sets without him I don't have the midiDSP
       | audio device plugged in and Ableton get's annoying. So I set up a
       | routing in Element from BlackHole 8 track to mix down to stereo
       | and my usual stereo output without having to remap my channels in
       | Ableton. Just switch output devices.
       | 
       | [1] https://kushview.net/element/
       | 
       | [2] https://www.minidsp.com/products/usb-audio-interface
        
         | dmix wrote:
         | is Element like Apples MainStage?
         | https://www.apple.com/mainstage/
        
       | m_a_g wrote:
       | Recently, I had to record a video call (both audio and my screen)
       | while wearing headphones. Using OBS and BlackHole together was
       | the only option I could find at the time.
        
       | djtriptych wrote:
       | Essential part of my home studio audio stack (Serato / Ableton /
       | OBS / BlackHole / Aggregate/Multi-output devices in Audio MIDI
       | setup).
       | 
       | Agree with others in this post that it's WAY too hard to get a
       | stable stack on OSX and that a tool like BlackHole should be
       | standard in the OS.
        
         | TylerE wrote:
         | If you think the situation is bad on Mac, you e never had to
         | fight with ASIO on Windows.
         | 
         | On Mac stuff basically just works.
         | 
         | On Windows ASIO works with only ASIO, and doesn't allow the OS
         | to use the card for "regular" sound unless the device-specific
         | driver allows for it.
         | 
         | Edit: Or in most cases for two ASIO applications to use the
         | same soundcard at the same time. So you end up needing to
         | install a virtual loopback anyway, losing out on the
         | (theoretical) latency benefits of ASIO.
        
           | com2kid wrote:
           | It is unfortunate, the old windows media stack had a nice
           | drag and drop UI that let you connect different inputs and
           | sinks together in all sorts of weird and cool ways. Back when
           | I used Windows 2000 I was able plug a game console into a
           | capture card and split the audio and video inputs so they
           | both went out over streaming video and were visible/audible
           | on my local machine.
           | 
           | Not that anyone cared about watching live streamed video game
           | footage back in 2001 or so.
        
             | TylerE wrote:
             | The problem with the old apis (and this includes
             | directsound) is that they are incapable of stabling running
             | at low latency, which is crucial for recording.
        
         | duped wrote:
         | > WAY too hard to get a stable stack on OSX
         | 
         | compared to what?
        
           | jxramos wrote:
           | for me Windows is the king in backwards compatibility. I get
           | the sense they expend significant resources doing testing in
           | this space and scrutinizing ABIs and APIs and all that. They
           | don't want to disturb the developer ecosystems with bedrock
           | changes.
        
             | philistine wrote:
             | Well, I'm sorry to report we've had the first breach in
             | that policy in ... well forever!
             | 
             | https://www.theverge.com/24148033/satya-nadella-microsoft-
             | se...
        
               | jxramos wrote:
               | ah what a conundrum, pitting legacy over security that's
               | a big tradeoff decision. Those mostly seems like
               | independent topics but I wonder if the deeper you go in
               | maximizing legacy support the more vulnerable you make
               | your systems in falling for security lapses of some kind.
               | I wonder if these two things tangle in unforeseen ways
               | deep beneath the surface.
        
             | duped wrote:
             | Not for audio. Do you use DirectSound, ASIO, WASAPI?
             | 
             | On MacOS there is CoreAudio, and it's been there for two
             | decades.
        
               | atoav wrote:
               | Yeah, but with each MacOS Update your expensive hardware
               | might become as useful as a brick.
               | 
               | I have a audiointerface from 2002 that I can plug into my
               | windows machine and it runs. The same interface worked on
               | Mac, once.
        
           | djtriptych wrote:
           | compared to how easy I think it should be =)
           | 
           | - Seriously though trying to understand audio midi setup from
           | docs was pretty awful. - I've had a bunch of (mostly DJ)
           | equipment refuse to connect with newer macs as they keep
           | changing their security model. - Managing/fighting latency
           | took a lot of experimentation (for me anyway). - The
           | soundflower / blackhole stuff can be a pain until you've
           | stitched everything together once or twice.
        
         | ErneX wrote:
         | Nitpick: it's macOS since 2016 :)
        
       | wakeleaver wrote:
       | Using BlackHole also fixes any awful audio popping in
       | Rosetta/legacy apps, since Apple can't seem to figure that out.
        
       | xyst wrote:
       | This is how I record all of my work meetings, especially when I
       | need to CYA
        
       ___________________________________________________________________
       (page generated 2024-05-06 23:01 UTC)