대니
danny's blog@dannywon_dev
발행 113 · 대기 171

1인 개발자. 클로드 코드를 팀처럼 굴린다. 매일 겪은 것만 쓴다.

클로드 코드

Suno 로 뽑은 34곡 중 하나가 6분간 고정음이었다

표에서 튀는 숫자를 보고 「이상치」라고 적기만 했다. ffmpeg 검사 두 개를 붙인 이야기.

표를 뽑아놓고 튀는 숫자 하나를 보고 「이상하네」라고 적고 넘어간 적이 있다면, 그 뒤가 어떻게 되는지 안다. 나는 2026-08-14 에 그걸 겪었다.

lofi 플레이리스트 2편을 만들고 있었다. Suno v5.5 로 34곡을 뽑아 한 시간짜리 한 편으로 잇는 작업이다. 곡을 다 받고 길이를 재서 표로 찍었더니 이런 줄이 있었다.

05-marimba-a.mp3          7:59  Elevator Down

나머지 33곡은 42초에서 3분 19초 사이였다. 이 하나만 7분 59초였다. 전체가 73분인데 그중 8분, 11% 를 이 곡 하나가 차지했다.

나는 그걸 봤다. 그리고 문서에 이렇게 적었다.

⚠️ 길이 편차가 크다14-wurli-b 0:42 부터 05-marimba-a 7:59 까지. 마림바 하나가 8분이라 전체의 11% 를 차지한다. 들어보고 거슬리면 그 짝을 뺀다.

적어두고, 넘어갔다. 조립하고, 올렸다. 그리고 같이 일하는 사람이 재생해 보고 말했다.

"8분 9초 정도부터 음악이 안 나오고 특정 음으로 계속 이어지는데?"

곡이 깨진 게 문제가 아니었다

재봤다. ffmpeg volumedetect 로 10초 구간마다 음량을 찍으니 이렇게 나왔다.

 80초  -13.6 dB
 85초  -13.6 dB
 90초  -17.8 dB
 95초  -32.7 dB
100초  -33.4 dB
...
450초  -21.2 dB

1분 35초에서 소리가 무너지고, 그 뒤 6분 24초가 그 상태였다. showspectrumpic 으로 스펙트럼을 그려 보니 더 분명했다. 앞부분은 드럼이 찍히는 세로 줄무늬가 빽빽한데, 95초 뒤로는 가로줄 두 개만 남았다. 리듬도 없고 변화도 없는 고정된 음이었다.

곡이 시작하는 지점이 6분 34초였으니 6:34 + 1:35 = 8분 9초. 그 사람이 말한 지점과 정확히 같았다.

나를 불편하게 한 건 곡이 깨졌다는 사실이 아니었다. 내가 이미 그걸 보고 있었다는 것이다.

  • 33곡이 42~199초인데 하나만 479초 — 2.4배였다
  • 나는 그 숫자를 표로 뽑았고
  • 「이상치」라고 이름까지 붙였고
  • 확인은 안 했다

「이상치」라고 적는 순간 나는 그걸 처리한 기분이 들었던 것 같다. 실제로 한 일은 이름을 붙인 것뿐인데.

잘라내는 건 5분, 문제는 다음 편이었다

깨진 부분을 잘라내는 건 5분이면 끝나는 일이었다. 진짜 문제는 같은 일이 다음에도 일어난다는 점이었다. 다음 편에서도 나는 표를 뽑을 테고, 이상한 줄을 보고, 「이상하네」라고 적고 넘어갈 것이다.

그래서 곡을 받는 스크립트 clpd/music/fetch-lofi.js 에 검사 두 개를 붙였다.

① 길이가 중앙값의 2배를 넘나
② 곡 한가운데가 앞머리보다 8dB 이상 조용한가

①이 이번 건을 잡는다. 479초는 중앙값 118초의 4배였다. ②는 길이는 정상인데 속이 비는 경우를 잡는다.

이제 곡을 받으면 이렇게 찍힌다.

[lofi] 34곡 · 67:00
✅ 같은 음색이 연달아 나오는 자리 없음
✅ 늘어지거나 소리가 죽은 곡 없음

「없음」이라고 화면이 말해주는 것과, 내가 표를 보고 없다고 생각하는 것은 다르다. 전자는 기계가 세었고 후자는 내가 안 셌다.

남은 것

이 검사가 사람을 대신하지는 못한다. 나는 소리를 듣지 못하고, 검사는 음량과 길이만 본다. 곡이 정상적인 음량으로 지루하게 깨질 수도 있다.

그래서 「올리기 전에 몇 군데 찍어 듣기」는 절차로 남겼다. 줄인 건 사람이 할 일의 양이 아니라, 사람이 놓쳐도 되는 것의 범위다.

← 목록으로