beaTunes News

Monday, April 30, 2018

Update: beaTunes 5.1.5

Sorry for the repeated updates... Unfortunately, an idiotic little error made it into in 5.1.4, which caused some dreaded NullPointerExceptions under Windows, when using the dark UI theme. The problem is fixed in today's 5.1.5. Additionally, it contains some updates to the audio metadata library JAudioTagger, as well as some further under-the-hood improvements for Bandcamp support.

As always, you can download the new version from the download section of the website.

Changes in 5.1.5

  • Fixed possible NPE during icon rendering (dark theme).
  • Updated JAudioTagger library.

Labels: ,

Monday, April 23, 2018

New Plugin: Import Artist Tags from Bandcamp

Do you like independent artists? A lot? Perhaps you're using Bandcamp. If that's the case, you're in luck! beaTunes 5.1.4 introduces limited support in the form of an Open in... context menu item and artist-level tag import. The latter is implemented via a new plugin (sources), which is available via the Preferences -> Plugins -> Available pane. Once installed, you need to restart beaTunes. In the next analysis run you'll see an additional task.

Note that the correct association between a track and Bandcamp relies on the original comment contained in your files.

As always, you can download the new version from the download section of the website.

Changes in 5.1.4

  • Increased granularity of locking during inspection.
  • Added transparent persistency to tags collection.
  • Added limited support for bandcamp tags.

Labels: , ,

Sunday, April 22, 2018

Launching BeatGauge from iTunes

As you might know, beaTunes has a little brother called BeatGauge. BeatGauge is a so called One-Trick-Pony—all it can do is compute BPM values for songs in iTunes (Mac-only). It does this super-fast and quite well with a couple of limitations (it cannot break DRM or analyze any files from iCloud or Apple Music).

While it is already very simple to analyze your files with BeatGauge (just drag from iTunes), it can be simplified even more by installing the following AppleScript in ~/Library/iTunes/Scripts

Once installed in the correct location, an additional Script menu will appear in iTunes with an item called BeatGauge. It lets you launch BeatGauge for the currently selected songs.

You can download the script here. For installation tips, please see Doug's page (finding the right folder can be tricky). Last but not least, if you want to create a keyboard shortcut for the script to make BPM analysis even more comfortable, see here.

Labels: , , ,

Wednesday, April 18, 2018

Show Key As If... Harmonic Mixing Without Time-Scale Modification

One of the unique features of beaTunes 5 is the ability to show song keys as if the song was played at a different tempo. “World Sick” by Broken Social Scene is usually in C Major (1d) with a tempo of 118 BPM. If we played the song a bit faster using a DJ software like Traktor, say at 125 BPM, what key would it be in? The answer is D♭ Major (8d). beaTunes can show you this.

But why would you want to know this? How is this useful? If you're DJing using Harmonic Mixing, you need to know what key songs are in to create smooth transitions. Obviously the transition becomes even smoother, if the tempo also matches. There are three ways to achieve this:

  1. You only use songs that are in the desired key and have a matching tempo.
  2. You pick some song you really like and adjust pitch (key) and tempo using your DJ software.
  3. You pick a song that is in the target key when played with the matching tempo.
Using option 1) you will soon realize that it is pretty hard to find just the right song. Option 2) works well digitally, but is problematic when you DJ with vinyl. Also, even though time-scaling algorithms are really good these days, they sometimes introduce a slightly metallic sound. Especially transients aren't easy to slow down (see for example here). Lastly, option 3) avoids some of the disadvantages of time-scaling algorithms, but poses a new challenge: how can you find songs that are in a certain key when played at a given tempo? And that's exactly the problem that beaTunes 5 solves.

To unlock this feature you obviously first need to analyze your music, so that both tempo and key are known. Then simply click on the little Kebab menu at the right edge of the main table's header.

Clicking on the Kebab menu opens the table's View Options dialog. At its bottom you can turn on SYNC, the feature that cause beaTunes to show song keys, as if they were played with a different tempo.

Once SYNC is on, beaTunes displays the shifted key, i.e. the key a song would be in when played at a certain target tempo.

Being able to see the key in this modified way is a great tool for DJs who don't like to use the time-scale modification of their DJ software, but still want to mix harmonically. To make this even easier, the SYNC functionality is also built into beaTunes' Matching Songs pane. Once SYNC is enabled in the main pane, the similar BPM rule matches songs that have the target tempo.

Additionally, you can also configure the matching songs table to display keys as if played at the tempo of the song in the main table. To do so, just click on its SYNC button. Isn't this super cool?! I believe this feature is indispensable when mixing harmonically without time-scale modification.


PS: To avoid confusion and disappointment, beaTunes cannot play a song at any other tempo than the original tempo. Time-scaling or pitch-shifting are not supported. You will need a proper DJ playback software for that.

Labels: , , ,

Tuesday, April 10, 2018

Update: beaTunes 5.1.3

Version 5.1.3 contains a couple of fixes that accumulated over the past weeks. Most notably, FFSampledSP has been updated to fix a dithering bug that occurred when converting 24bit/sample WAV files to a 16bit/sample signal.

As always, you can download the new version from the download section of the website.

Changes in 5.1.3

  • Improved safeguards against unusual iTunes Library.xml.
  • Moved to FFSampledSP 0.9.25 (fix for 24bit WAV issues).
  • Fixed possible NPE during synchronization.

Labels: ,