I’m Alex from the Creatune team. Here is a reproducible check of an actual browser audio cut, performed on October 13, 2026. The input is an original synthetic test signal, not AI-generated music. The lesson applies when delivering a chorus excerpt or a short reference clip: inspect the exported file before calling it finished.
Define the interval before opening the tool
My input was a 12-second, 48,000 Hz, mono, 16-bit PCM WAV: 576,000 frames and 1,152,044 bytes. The first and last half-seconds were silent; the middle contained sections of 440, 660, and 880 Hz tones. The selected interval was 3.25 to 8.75 seconds.
To create the same input without needing a song or a licensed sample:
import math
import struct
import wave
rate = 48000
samples = []
for i in range(rate * 12):
t = i / rate
hz = 440 if t < 4 else 660 if t < 8 else 880
amplitude = 0.15 if 0.5 <= t < 11.5 else 0
samples.append(round(32767 * amplitude * math.sin(2 * math.pi * hz * t)))
with wave.open("cutter-input-12s.wav", "wb") as out:
out.setparams((1, 2, rate, 0, "NONE", "not compressed"))
out.writeframes(struct.pack("<" + "h" * len(samples), *samples))
The duration target is simple:
expected_seconds = 8.75 - 3.25 # 5.5
At 48 kHz, that would be 264,000 frames. That frame count is only valid if the output rate is also 48 kHz.
Make the cut in the public interface
I opened Creatune Audio Cutter while signed out, selected the WAV from my device, filled “Start (s)” with 3.25 and “End (s)” with 8.75, selected WAV, and downloaded the result. The page stated that local audio stays on the device. Its visible limits were 50 MB per file and five minutes, or 2.5 minutes on small screens.
The time controls and output selection let you record a precise request. Clicking outside a numeric field before scrolling also avoids accidentally changing a focused value with the mouse wheel; check the fields again before download.
Read the downloaded file, without trusting its label
Python’s standard library can inspect this PCM WAV:
import wave
with wave.open("cut-3.25-8.75.wav", "rb") as audio:
rate = audio.getframerate()
frames = audio.getnframes()
print("rate:", rate)
print("channels:", audio.getnchannels())
print("sample bytes:", audio.getsampwidth())
print("frames:", frames)
print("seconds:", frames / rate)
assert abs(frames / rate - 5.5) <= 1 / rate
The actual output was:
rate: 44100
channels: 2
sample bytes: 2
frames: 242550
seconds: 5.5
The duration matches the request. The sample rate and channel count differ from the input. In this run, the correct expected count is 5.5 * 44100 = 242550, not 264,000. A frame contains one sample for each channel; adding a channel does not double the duration or frame count.
The file size was 970,244 bytes. For this particular simple WAV, 242,550 frames × 2 channels × 2 bytes accounts for 970,200 bytes of audio, with a 44-byte header. Do not assume every WAV has that header size: extra metadata chunks are allowed. Frame count and sample rate are the direct duration check.
Keep timing, format, and listening checks separate
This run verifies file duration and observed output parameters. It does not establish bit-perfect preservation, musical quality, or identical behavior across browsers. A recipient requiring 48 kHz mono still needs a file meeting that requirement, even if its duration is right.
For a real song excerpt, reopen the output in an audio editor and listen to the first and last moments. The arithmetic cannot tell you whether you cut off a consonant, an attack, or a reverb tail. Record those observations next to the technical check:
Requested interval:
Observed frames / sample rate / channels:
Observed duration:
Beginning and ending listening notes:
Recipient's required format:
Ready to deliver / changes needed:
Use a decoder or an appropriate audio probe for compressed formats; wave is not an MP3 inspector. A descriptive filename helps you find the clip. Reading its contents tells you what you actually exported.


Top comments (0)