Does Takes work with streaming music?

Takes supports Apple Music, Spotify, and YouTube in a slightly creative way. To work around streaming limitations, when you give it Apple Music and Spotify URLs it automatically sources a version from YouTube.

How much does Takes cost?

Takes is free and open source. You can download it, use it, and inspect the code on GitHub.

Why did you build Takes?

I built Takes to scratch my own itch. I've always wanted a tool like Kaleidoscope but for audio files. I love hearing the differences between original releases and remasters, and I wanted an app to let me listen and toggle between them.

I built a quick prototype for myself, then decided to turn it into a full polished app because I love Mac apps that sweat the details. I'm sharing it in case others find it useful too.

Do you offer support?

You better believe I don't! But check the help section below. It's pretty decent.

Getting audio into Takes

  • Drag files and folders onto the app, use Quick Open to grab your current selection from Finder or Apple Music, or use the Open dialog box like a normie.
  • You can also open streaming music. Give it a URL from Spotify, Apple Music, or YouTube and you're good to go.
  • Takes supports loading up to 32 audio files at once and plays a wide range of audio formats.

Auto-align

Different copies of a track don't always line up perfectly. An extra bit of silence at the start of one can make toggling back and forth jarring, as each switch jumps the music backwards and forwards.

Auto-align analyzes the audio to find matching sections, and adjusts offsets so tracks line up perfectly.

  • If tracks fall out of sync over time due to a difference in recordings, you can auto-align again at any time. It syncs offsets based on the current playhead position.
  • Auto-align only accepts confident matches and is tuned to avoid false positives, so it won't set crazy offsets if file matching is ambiguous.
  • For tracks with larger tempo differences, auto-align offers a deeper analysis option that searches tempo deviations, up to about 6 percent, to find alignment.
  • If auto-align can't sync up your tracks, Takes is specifically designed to make manual alignment as fast as possible. Use Command+J/K to nudge the active track backwards or forwards, hit X to toggle tracks while playing, and repeat as necessary.

Selection looping

Use selection looping to focus on a specific passage. Drag or Shift+Click in the timeline area to create a loop.

  • "Switch & Repeat" mode is automatically enabled when looping. This changes tracks each time playback loops so you can compare the same passage across tracks.
  • You can also repeat one, to keep looping the same track.
  • Clearing a loop automatically switches off repeat mode.

Blind listening mode

Decide which take sounds best without bias. Blind listening mode hides names and metadata, anonymizes the waveforms, and shuffles the track order. It even hides the track name from the Now Playing widget in Control Center. No cheating! 😜

  • Turn off blind listening mode to reveal the name of your favorite version. (Track order only shuffles when turning it on; it remains unchanged when turning it off.)

Tips & tricks

Hidden keyboard shortcuts

Jump directly to tracks 1 through 9
19
Jump to the last track
0
Nudge offset by a little
When input field is active:
Nudge offset by a lot
When input field is active: Shift+
Reset offset to 0
Double-click on ms label
Control playback system-wide
Media keys:

Other details

Takes has full drag & drop support. Drag to rearrange the order of tracks, or drag one out of its window to copy it elsewhere.

API

Takes has two automation interfaces:

  1. Open a file or URL with a takes:// URL:
open 'takes://open-url?url=<streaming-URL>'
open 'takes://open-file?url=<file1.mp4>&url=<file2.mp4>'

File paths must be URL encoded.

  1. Open the app with files through the CLI:
open -a "Takes.app" "$FILE_1" "$FILE_2"

There are also launch-time options for temporary startup state:

open -a "Takes.app" --args --default-window-layout --appearance-theme [light/dark/system]
open -a "Takes.app" --args --default-window-layout

Use these options to temporarily launch Takes with its default window size and/or a specific theme.