• Hi and welcome to the Studio One User Forum!

    Please note that this is an independent, user-driven forum and is not endorsed by, affiliated with, or maintained by PreSonus. Learn more in the Welcome thread!

Audio file tempo detection

Number6

Active member
I'm playing with audio drag and drop between Maschine 3.2 and Studio One 7.2.1, both apps using same sample rate and BPM.

One file I dragged and dropped from Maschine into a Studio One track ended up being too slow and out of sync.
I tried this direct from the Maschine application to Studio One, and also dragging from Maschine to the desktop creating an audio file, and then dragging that file into Studio One.

There were two solutions for this:
1) Increase Maschine's pattern length by one bar and then drag/drop.
2) Correct the file tempo after it has arrived in Studio One to the same as the song.

My Question is, why does Studio One detect the tempo incorrectly here? Maschine and Studio One are set for the correct tempo, the pattern I'm selecting is very much in this tempo (a drum pattern).

Also is there a quick way to turn off tempo detection during drag and drop?

Thanks
 
There are or can be a few things at play here:
- Tempo detection, which is an active process determining the tempo in a file based on its audio content, or
- Files can have tempo information embedded in the file header, which may be readable by Studio One or not
- Stretching files, which depends on (default) track settings

Tempo detection is only needed when an imported audio file does not have useable tempo data in the header. When you start the detection process Studio One analyses the audio, trying to determine the tempo and variations for a fixed tempo or for a tempo map. The new information is there for you to use, or not. If useable tempo data was already present in the file then tempo detection is not needed and even inadvisable, because automatic detection can miss a beat or two.

And then it depends on your track settings (per track) if the song uses the tempo data at all. Each audio track has the option to Follow, Don't follow or Timestretch. Don't follow means that you can place events anywhere on the timeline and they will stay there, even if you change the song's tempo or tempo track. The events will play exactly as recorded and won't change tempo at all. Follow means the same but now the starting points of the events will move when the song's tempo or tempo track is changed, for a fixed starting point relative to other tracks/events in the song that do change tempo with the song's settings. Finally, Timestretch moves events as with Follow, but events with tempo data in them now also adapt to tempo (changes) in the song. It means that a file which has tempo data 100bpm in it will play 20% faster when imported in a 120bpm song. And when the song's tempo track at some point goes down to 100bpm then as off that point the track will slow down to 100bpm too.

In Studio One there is a default Follow/Don't follow/Timestretch setting for when you create a new track. You can change the default or you can change the track's setting after you created it, up to you.

Hope this helps
 
Last edited:
Thanks for this.

I've done some more troubleshooting, please see file attached which contains the wav file in question.
Unfortunately these forums won't handle WAV or ZIP file extensions, so you need to download/rename/remove the .txt extension and then unzip.

Latest version of Audacity (Windows) correctly detects it as 138BPM.
Studio One incorrectly detects it as 174BPM, even thought the song is set to 138BPM song.
I have no idea how I can see the file headers for BPM (if they exist).
 

Attachments

  • X-1 - FX Countdown - 138 - 8.zip.txt
    X-1 - FX Countdown - 138 - 8.zip.txt
    413,3 KB · Views: 11
  • audacity.png
    audacity.png
    221,9 KB · Views: 14
Last edited:
Thanks for the demo file. I must admit: probably not the easiest content for tempo detection. And I also can confirm that S1 tempo detection results in 174 - so kudos to Audacity if it detects the correct tempo properly.

I did some more tests with Melodyne and different detection algorithms. And even Melodyne failed in most cases. The closest I got was 139bpm with the algorithm "Percussive Pitched".
 
OK, did some testing. I created a new song and imported your wav.

From the looks of it your file does not contain tempo data: Right-clicking the event after import it says 'Not Set' for File Tempo. Considering the content of the event Studio One won't be able to determine a realistic tempo either as there's simply too little 'cadence' to hold on to. The solution is simple: Since you know that the tempo is 138 you can put that in the File Tempo box.

Then open the Inspector and check the Tempo setting for the track. Set it to Timestretch for the next step. The event may change size. Now you can set any tempo for the song (bottom of the screen) and your file should fall into step, playing at the song's tempo.

Next, in the Inspector set the Tempo setting for the track to (Don't) Follow. The event will resize and play as recorded (138bpm) independent from the song's tempo setting.
 
Considering the content of the event Studio One won't be able to determine a realistic tempo either as there's simply too little 'cadence' to hold on to.

And yet Audacity got it perfectly?

I appreciate the rest of the comments.
 
Probably somewhere between very clever and lucky guess :D Using a different algorithm getting it right this time, and then for a wav with completely different content it can be the other way around. Did Audacity use a fixed tempo algorithm (as opposed to a variable tempo mapping algorithm)?
 
I have no idea, I just opened the file and the first thing I saw was the screenshot in my second post, which correctly detected the tempo, job done.
 
Back
Top