I've searched the forum and found no appropriate answer for this, and since the documentation does not show any entry on what I am asking, here follows:
I have one base audioclip - a music track for a game - with, let's say, 120 BPM. On a given time I want ot synch, with BPM, another clip, again in 120 BPM and in the same musical scale as the previous one, so that they are seamlessly integrated, just as one track.
Problem: How do I synch two (or more) different audiclips using BPM as reference without using some sort of time-based hack?
Answer by StephanK
Aug 27, 2010 at 10:45 AM
BPM is time-based, so everything you do to sync will be time-based.
If your clips start without any preroll (that is sample 0 is the first downbeat of the song) you can easily calculate the exact beats and bars position from audio.time. If not you will need some meta-data about the audioclip to figure that out. (e.g. time of first downbeat) In some cases you could also find that out doing some audio analysis, but that is out of the scope of unity's audio features.
If you want to sync audioclips to a certain tempo which initially have a different tempo you could try to achieve this using pitch, but that will mess up the tuning and will only work for small differences.
How do you access meta-data on an audioclip?
Answer by Recluse
Jun 24, 2015 at 03:01 PM
If the clips are the same tempo and looping, can you simply play them both on Awake and then lerp between volume levels?
Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.
The best place to ask and answer questions about development with Unity.
To help users navigate the site we have posted a user guide.
If you are a new user, check out our FAQ for more information.
If you are a moderator, see our Moderator Guidelines page.
We are making improvements to UA, see the list of changes.
For troubleshooting common problems with Unity 5.x Editor (including Win 10).
Answers and Comments
2 People are following this question.
Making sounds wait for each other to finish
"Cannot get/set data from streamed sample" from audioclip
Is there any way for implementing auto rap type functionality in Unity3d?
PlayOneShot returns false for isPlaying