There have been two updates since this post, you can check them out here:
Update #1: Big Update #1 (System Audio is Working)
I originally came up with this idea many months ago. I searched the internet, but unfortunately found nothing but a few Reddit posts asking if an audio visualizer for the touch bar had been created yet. The OLED touch bar screen looks so beautiful and it’s a shame there isn’t more being done with it. I mean, there’s barely even any apps out there specifically made for the touch bar. Even 4 years since the launch of the first MacBook Pro with a touch bar, the only apps out there are fun ones such as the Nyan Cat or TouchBarKnight2000.
I have enough programming knowledge to do basic tasks such as automation with python or get some random persons code working off the internet. So that’s what I tried to do. Turns out you can create an audio visualizer in Python – if you’re interested in that, check out Scott Harden’s project.
I’m a Better Touch Tool (BTT) user, so I wanted to see if I could integrate this Python audio visualizer into BTT. I had a volume reader from Scott’s project working on my computer. Here’s the volume reader I had running in the terminal reacting to me clapping in front of my computer!
PS. If you’re not using Better Touch Tool, you should check it out. It’s a ton of fun and allows your to customize the touch bar beyond what you could even imagine (among many other things). Check it out here.
However, when I ran the code inside BTT, it failed. The reason this failed was because BTT doesn’t allow data to be streamed from Python. In order to make this work, it would have to be written in Swift or Objective-C to integrate into BTT via a custom made plugin.
Hiring a Developer
With my inability to properly code beyond this small Python program, I sought a different approach. Maybe I could hire a MacOS developer to create this app and it wouldn’t be too expensive. Unfortunately, I was wrong. Quotes I got for this app were in the $6,000-$10,000 range. This was due to a few factors I didn’t understand prior to my search. Those factors are:
Lack of MacOS Developers
Searching on many freelance websites to find a MacOS developer to team up with, I quickly found out that a MacOS dev was a bit harder to come by than I expected. Trying to find an iOS developer? No problem at all. And if they know the Swift, they should be able to transfer those skills to create a basic app for Mac. However, this idea required a much greater knowledge of coding than a Swift iOS developer had. I came to realize this after discussing with a few highly qualified MacOS devs.
Apple Has the System Audio on Lockdown
The most difficult aspect of this program is figuring out how to integrate the system audio into the visualizer. Using the Macbook’s microphone as an input is a much easier a solution, but that would be an unfortunate compromise. You wouldn’t be allowed to use the audio visualizer unless the music was being played out of the speakers. I know I would want to primarily use this app while I’m listening to music through headphones. Ideally it would seamlessly pick up the audio from wherever it is being played on the computer.
Essentially, in order to use the system audio we need to create an audio driver of our own that can create a virtual audio device. The audio device will sets itself as the system default upon opening the app. This way, the audio could be routed through the audio visualizer app as well as whichever output the user chooses (headphones, speakers, etc.). There seems to be some potential 3rd party solutions that attempt to make this doable. We will have to test and see if this is a reliable way to route the audio.
Apple Doesn’t Want People Animating the Touch Bar
Inside the Apple documentation on developing for the touch bar it states:
Avoid animation. The Touch Bar is an extension of the keyboard, and people don’t expect animation in their keyboard. In addition, excessive or gratuitous animation can distract people from their work.-Apple
Sure, an audio visualizer might be distracting if you are trying to get work done. But who (aside from music professionals) uses an audio visualizer when they are trying to do work?! You will be able to turn the visualizer on and off easily to use it when you want it and keep it stored away when you don’t. This app is meant to create a new experience for users by displaying a beautiful animation to accompany the music you love. People should be able to use their own touch bar however they want. We have a beautiful OLED display as a part of the keyboard, so let’s use it to do some awesome stuff.
The Power of the Internet
I knew I couldn’t afford the cost of developing this app and I didn’t have the ability to code it myself. All hope was lost and I was ready to give up on the idea. But I had one last shot at creating an opportunity for this app: using the power of the internet. I posted a concept animation I created on Reddit to see if it would generate any buzz. Well, 19 days later that Reddit post now sits in 3rd place for the highest ranking posts of all time for r/macbookpro.
Seeing the reaction people had to my idea gave me new life to pursue it. I knew it was a great idea, but I hadn’t done too much market research into whether it would be successful. People were commenting on this post saying they love it, and that they would be happy to pay for it. All the reactions were great, but it didn’t solve the development issue. In comes YouTube.
I run a very small YouTube channel. I make videos mostly about Apple products, such as customizing your MacBook Pro and having fun with Better Touch Tool. My audience size at the time of posting my concept video was ~400 subscribers, but they were active and seem to enjoy my small community. I posted this video explaining my idea, showing the concept animation, and asking for feedback.
I didn’t know what would come about posting this video, if anything. I had some great suggestions from people including starting a kickstarter to fund the app development.
Little did I know, one of my subscribers is a self-taught developer. We proceeded to connect, discuss the project a little bit, and we are actually on our way to development right now!
Low and behold, the power of the internet is awesome. I am now developing this app with my newly found Norwegian friend. I’m super excited to see where this project goes from here, and I will keep you guys updated every step of the way.
If you’d like to receive email updates in the future about product development and release dates, be sure to signup below.
Jake is a professional baseball player that was drafted by the Toronto Blue Jays in 2016. He played in the minor leagues for the Blue Jays for 5 years until he was drafted by the Miami Marlins in the rule 5 draft in 2020. In his spare time, he enjoys creating technology videos on YouTube and pursuing creative technologies including an audio visualizer for the touch bar on MacBook Pros.