modules sound out of sync

Started by aRealHamster, March 25, 2023, 20:17:25

Previous topic - Next topic

aRealHamster

Hi, i'm new to OpenMPT and trackers as a whole, and i'd like to figure out why anything i try to make sounds wrong. I understand it's something to do with the BPM of the module as opposed to the sample, but i don't really get how all of that works. If anyone could point me in the direction of any resources on this topic, that would be great. Thanks!

Saga Musix

Unfortunately the question doesn't really contain a lot of information so it's hard to answer. Like, what are you trying to sync up to each other? Do you want to match the tempo of your song to a drum loop sample, for example?
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

aRealHamster

Yeah, I want to be able to bridge two samples together through a portion of a drum break consistently so that it sounds like someone is actually playing it.

Saga Musix

In general - completely independent of OpenMPT, trackers, or even software in general - you have two possibilities: Match the song tempo to the samples, or match the sample pitch to the song tempo.

Matching the song tempo:
- If there are audible gaps between the samples, increase the song tempo
- If the samples appear to play short (incomplete), decrease the song tempo

Matching the sample pitch:
- If there are audible gaps between the samples, decrease the middle-C frequency (sample rate) of the samples
- If the samples appear to play short, increase the middle-C frequency of the samples

Matching the sample pitch is usually more flexible (as only the MPTM format supports fractional tempos in OpenMPT), but of course it is not always desirable to change the timbre of the sample that way.

It can be helpful to select the sample-data (double-click to select all), in which case you see the sample duration at middle-C in the status bar expressed as beats. So if one of your samples is expected to be exactly one beat long, fiddle around with the song tempo or middle-C frequency until the value in the status bar is approximately 1.0 beats.
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

aRealHamster

Wow, thanks for all the info! Really appreciate it.
Is there any way that i can figure out the tempo of a sample?

Saga Musix

I think after some time you simply develop some experience with guessing tempos. Guess the general range the tempo might be in and the refine using the methods mentioned above until you get it right. The tempo tap feature found in the General Tab can also be useful for drum loops (keep playing the loop in one tab, open a second window via Window -> New and then click the Tap button on each beat until you get a good estimate).
For a machine it's not so simple to figure this out automatically, hence there is no way to do this with a single click in OpenMPT:
- You cannot just take the whole sample length and deduce the tempo from that, because the loop may end with a trailing reverb etc.
- You can do some sort of beat analysis but this depends on the time signature of the beat being known, otherwise it would not be known if e.g. three drum hits in a row are supposed to be triplets or 8ths (which would result in a completely different tempo estimate). This context is not available to the machine.
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

peterpiper0815

Another thing that might help you is a 'metronome'-channel.
When I start with a new song I load my template-song with an extra channel which contains a simple click sample.

Saga Musix

Agreed, that can be very helpful.

By the way, I had a look yesterday into the BPM detection functionality of the SoundTouch library, which we already ship with OpenMPT for time stretching. I applied it to a large number of drum loops - it rarely delivered even remotely accurate results. It wouldn't make any sense to add this as a feature in OpenMPT, the amount of wrong guesses you'd get would be more frustrating than just doing the job yourself from the beginning.
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.