BPM TAP - Feature Request

This is a request for the Win & Mac version.

In the tag window on the left there could be a Tap button so when you preview the track you can click the tap button and it will calculate the bpm value.

mp3tag isn't dealing with audio content, just metadata and filename, so i would guess no chance

There is no audio to process. You would just tap the down beats on the button after it launched in the external media player.

Then is would just calculate the bpm based on the taps using a known formula.

Click the save button to write the bpm to the id3 tag.

On a side note: AFAIK there is a Foobar component, that deals with BPM - automatically or by tapping.
The advantage would be that Foobar is also a player and while playing for the tapping does not block the file (internally).
This would very likely be the case if 2 applications access the same file at the same time.

As a workaround for tapping and until your feature request may be implemented, you could try to calculate and import BPM values for your tracks like this:

  1. Download and install the completely free tool "BPM Counter"
    You will get it in a GUI and Command line version.
    We only need the Command line consolebpm.exe (and the depending 2 libraries)

  2. Create a Windows Batch file with this two lines of content

    SET BPM="%localappdata%\Programs\Abyssmedia\BPM Counter\consolebpm.exe"
    %BPM% %1 > "%~n1.txt"
    

    You can name it _CalculateBPM_WriteTXT.cmd for example.
    Save it in the same directory as you installed your "BPM Counter" tool.
    The first line contains the full path to your installed "BPM Counter" tool. Please adjust it, if you don't use the default install path.

  3. Create a new Mp3tag Tools entry with File -> Options -> Tools -> New Tool
    image
    You can Name it "Calculate BPM for this file" for example.
    Browse to the same directory where you have saved your Batch file in step 2) and select the Batch file _CalculateBPM_WriteTXT.cmd
    As Parameter write "%_path%"
    Don't forget to activate the checkbox in front of "for all selected files"


    Save it with OK

  4. Create a new Mp3tag Action with Actions -> Actions -> New Action
    image
    You can Name the Action-Group Import BPM from Textfile for example.
    Inside the new Action-Group create a new Action by clicking on the "New" Icon.
    Action-Type: Import text file
    Field: BPM
    Filename: %_filename%.txt
    It should look like this:


    Save it with OK

With these 4 steps above you are now able to
a) Select one or multiple mp3 tracks

b) Right click on your selection and choose Tools -> "Calculate BPM for this file"
You will see Command line windows for a few seconds opening and closing.
You will get a TXT file with the same filename as your tracks, containing the calculated BPM value.

c) For the still selected tracks, you can choose Actions -> "Import BPM from Textfile"
For every track where Mp3tag can find a TXT file with the same name, it will import the value into the tag BPM.
You can check the newly created BPM tag by pressing Alt+T

Hint:
As Mp3tag can not delete files automatically AFAIK, you would have to delete the no more needed TXT files after importing the BPM value. You can open the folder with your tracks where you have created the TXT files with step b), sort by column "type" and search for *.txt, select them and delete it manually.

Since I am not a musician, I can't say anything about the accuracy of the calculated BPM.

Hey LyricsLover,

Thank you for that explanation and solution. I will review this.

This feature request comes of out of the need to calculate bpm in mp3tag directly at times.

However, this solution would be for Windows only and I'm using it on MacOS also. I would have to investigate if this was possible on MacOS as well.

One recommendation I can make because of how I'm using it on my Studio PC is running your tracks through Serato DJ for bpm calculation. It can analyze files and determine bpm and key.

This is the process I've been using since my tracks need to be analyzed before I can run them through Mixed in Key to generate cue points. Then I run them through the Music Library Tool to populate the genre tags automatically.

This is all possible via drag and drop over the network with the main collection residing on my Macbook.

However, I can't do it on my Mac this way because the main collection resides there. If I drag them into Serato DJ it would make mess of my library and make the process cumbersome due to constant clean up.

But am I right that you have to play the file while tapping?
And playing would need an external player as MP3tag does not have that built in.
AFAIK files are locked by the player while being played - or do you have other experiences?
Have you tried to write a test value with MP3tag to the file while it is bein played? Did you succeed?

When it comes to tapping out the bpm you don't have to be playing the track to save the bpm.

You only have to play it to tap out the value then you can stop playback.

However I have noticed I can write data to tracks while it's playing in media player on Windows.

It could be because I skip through through the tracks quickly and don't play them for long durations.

Sure, there are many more "professional" tools that calculates BPM, Keys and so.
The caveat: Most of them are not free.

Seems to depend on special local circumstances, just tried it a number of times with MP3tag and the WMP playing different files and MP3tag could write to none of the currently played ones, even the previous one was locked.

Keep in mind, I'm working with files over the network not local to the system itself.

This is true, however Serato DJ is free to process tracks. You can download it and use it without a license for this purpose.

Thanks. There are several threads here in this forum, why I would never ever use a tool like "Serato DJ" or "Traktor" to touch my metadata. :wink: I am very petty about this.

That's fair, it depends on your use case.

I started off with Final Scratch in late 2002 which has an awesome track management tool made by the community which I used for long time.

Then switch over to the Traktor camp when NI took over the software and was using tools like Dr. Tag. I switched to the Serato platform in 2011 and have on it since.

Dr. Tag I used for like 20+ yrs until last year when I jumped into mp3tag and learning it to see if it could replace Dr. Tag.

There are 3rd party track management tools like and Lexicon and Mixo but I can't use them in the way I would like because of my setup.

Also, there isn't any tools out there that can generate the Serato overviews, etc outside of the application itself.

It's also very fast at bpm and key generation, but once again this my use case and not for everyone.

Wow, LyricsLover put a lot of work into that work around :clap: I just use a program called Mixed in Key which will add those tags for me and they are readable in MP3Tag. I also use Foobar, as ohrenkino suggested, for customized BPM found by tapping. I believe the field populated by foobar can also be read by MP3Tag (what am I saying, MP3Tag reads everything!).

Thanks for your "Wow" :wink: @esumsea

The main advantage of my workaround is this:
No external software will write anything in the metadata of my tracks. Only Mp3tag is reading the TXT file containing the BPM value and import it into the BPM tag.
That's the only way I can be sure that no third party software (paid or for free) manipulate my tags in a unwanted way. No ID3-Version change, no additional tags. Just the BPM value in a BPM tag.

I used Mixed in Key in my track process method but for a different reason.

Mixed in Key can generate Serato DJ cue points automatically, it doesn't always get it 'right' but it helps greatly.

You have to analyze the tracks in Serato DJ first to have MIK generate cue points during the analysis part.

However, bpm analysis is not 100% correct all the time either in any tool I found.

That's where the manual tap comes in handy.

You mean is NOT 100%? I would strongly agree with that, which is my I use foobar. It also is incorrect with the key a lot of the time and its energy ratings are grossly inaccurate. Anyhow, I was just giving my .02

Correct, I made a typo there. I'm running on low sleep right now.