You soften the end of the first clip, export a join, and expect the second clip to start earlier. It may not. A fade changes amplitude over time; a crossfade also overlaps neighboring clips. Those are separate decisions when the output must stay aligned with a video cue.
I'm Alex from the Creatune team. I tested this distinction in our public Audio Joiner with two synthetic WAV files on November 1, 2026. This is a file-duration experiment, not a listening test or a claim about which transition sounds better.
Make two clips whose lengths are unambiguous
Use Python's standard library to create two two-second, mono, 16-bit WAV files at 44.1 kHz. Different tones make the sources distinguishable if you later inspect the transition, but the test below measures duration only.
import math, struct, wave
rate = 44100
for hz in (440, 880):
samples = [round(0.25 * 32767 * math.sin(2 * math.pi * hz * n / rate))
for n in range(rate * 2)]
with wave.open(f"tone{hz}.wav", "wb") as w:
w.setparams((1, 2, rate, 0, "NONE", "not compressed"))
w.writeframes(struct.pack("<" + "h" * len(samples), *samples))
Keep both source intervals at Start 0 and End 2. Leave Trim silence at joins unchecked so silence removal cannot become a second cause of a duration change. Use WAV output to make the sample-frame check straightforward.
Test A: fade out only
Open Creatune Audio Joiner, choose the two files, and confirm the order: 440 Hz first, 880 Hz second. The public page says local audio stays on the device.
Enable Fade out on the first clip and set its duration to 1 second. Leave the second clip's Fade in off. In this test the join label remained Direct join, and the total remained 0:04.0.
Download the WAV and save it as fade-out-only.wav. A fading tail does not by itself move the next clip to an earlier time in this configuration.
Test B: enable the matching fade-in
Keep every other setting unchanged. Enable Fade in on the second clip and set it to 1 second. The join now displayed Crossfade ยท 1.0 s, and the total became 0:03.0.
Download again, this time as crossfade-both.wav. For this equal-duration case:
output duration = first clip + second clip - overlap
= 2 + 2 - 1
= 3 seconds
There is one overlap region, so subtract it once. Do not subtract one second twice merely because two fade controls are enabled. This experiment does not establish how unequal fade lengths are resolved; read the actual join label and measure a fresh export for that case.
Verify the files, not just the rounded UI
import wave
for name in ("fade-out-only.wav", "crossfade-both.wav"):
with wave.open(name, "rb") as w:
frames, rate = w.getnframes(), w.getframerate()
print(name, "frames=", frames, "rate=", rate,
"channels=", w.getnchannels(), "seconds=", frames / rate)
The downloaded files measured:
| Configuration | Sample frames | Rate | Channels | Duration |
|---|---|---|---|---|
| First clip fade-out only | 176400 | 44100 | 2 | 4.0 s |
| First fade-out + second fade-in | 132300 | 44100 | 2 | 3.0 s |
Use frames / sample rate, not the total number of interleaved channel samples. The output happened to be stereo even though the inputs were mono; multiplying by channel count would incorrectly double the duration.
Turn the distinction into a delivery check
If a second spoken cue must start at exactly two seconds, a one-second overlap changes that schedule. If the intention is a musical handover, that overlap may be useful. Choose the timing requirement first, then the fade settings.
Before delivery, record the source intervals, each enabled fade, the displayed overlap, and the measured export duration. Then listen for lost consonants, a masked attack, or an unwanted dip at the boundary. Duration alone cannot establish smoothness, and tones are not a substitute for checking speech or music in context.
For a repeatable handoff, our earlier guide shows how to write a clip manifest you can rebuild. If the timing is right but the boundary still sounds rough, the sample-boundary check for an exact audio cut explains a different failure mode. Both are team-authored follow-up tutorials, not independent product reviews.


Top comments (0)