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?
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.
If the clips are the same tempo and looping, can you simply play them both on Awake and then lerp between volume levels?