beaTunes News

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: ,

Monday, March 26, 2018

Update: beaTunes 5.1.2

Version 5.1.2 contains updated open-source libraries that interface with native audio libraries, i.e. CoreAudio, MediaFoundation, and FFmpeg. Since bugs in these glue libraries usually lead to application crashes, beaTunes' overall stability should improve with this update.

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

Changes in 5.1.2


Tuesday, February 13, 2018

Update: beaTunes 5.1.1

Most of the changes in this update are based on user-feedback. So yes! Please let me know what bugs you. Often small changes can make a huge difference.

Version 5.1.1 introduces limited support for importing and exporting Serato crates. Limited, as the way crates are stored is actually quite unusual. Apparently a single crate can be spread over multiple volumes (devices), which is not supported (yet). Anyhow, to import a crate via File -> Import Playlist, you will have to find its crate file, which is typically located in a folder named _Serato_. To export a playlist as crate, you will need to make sure that all songs in your playlist are stored on the same device and then save the .crate file in the appropriate _Serato_ folder. To initiate the export, just use the regular playlist export functionality, i.e. right-click on a playlist and select Export Playlist..., then choose CRATE (see screenshot). Serato should pick up the new crate during the next restart.

There are a bunch of other small improvements and fixes. For details see the list below. As always, you can download the new version from the download section of the website.

Changes in 5.1.1

  • Added New Folder to context menu.
  • Added ability to import multiple playlists at once.
  • Added (limited) ability to import and export Serato crates.
  • Improved volume adjustment latency.
  • Improved sync speed for iTunes collections with many non-music items.
  • Improved UX of scan mode.
  • Updated Get Info detection algorithms.
  • Fixed premature playback end after seek.
  • Fixed playlist selection on tree drop.
  • Fixed issue in prominent scan of short tracks.
  • Moved to CASampledSP 0.9.14.
  • Moved to MFSampledSP 0.9.9.
  • Moved to FFSampledSP 0.9.23.

Labels: , ,

Sunday, February 11, 2018

From the trenches: Import play counts from Traktor

Here comes another little beaTlet that might prove handy for NI Traktor users: ImportTraktorDatesAndCounts. As might be obvious from the title, it allows you to import Traktor's play counts and last played dates into beaTunes (and thus iTunes, if you are using an iTunes-based collection). The idea is that the data may help with playlist creation. You can find some details about the beaTlet in this discussion. The latest version can be found on GitHub.

Labels: , , ,

Wednesday, January 31, 2018

beaTunes for taps: offer ends today!

Last chance! beaTunes for taps will end today!

If you're interested in a reward license, start tapping.

Labels: , ,

Saturday, January 27, 2018

From the trenches: remove leading/trailing whitespace

It's not an official inspection, but a good example for how some things can be done quick & dirty with the plugin API: a little RemoveWhitespace beaTlet. Check out this help forum post for details. The source code can also be found in the GitHub repo under groovy.

Have a great weekend!

Labels: , , ,