소리꽃 KeyBloom 12
소리꽃 KeyBloom
바로가기 ↗
이 글은 소리꽃 KeyBloom 시리즈의 18번째 기록입니다. (총 21개)
오늘 한 일
- 무료 네이티브 데스크톱 앱 착수 — 웹이 원천적으로 못 하는 저지연 라이브 연주를 위해 Tauri로 데스크톱 앱화
- 이유: 브라우저는 오디오 출력 지연 바닥이 ~48ms라 빠른 패시지를 제대로 못 친다. 화면(파티클·건반·큐)은 웹 그대로 재사용하고 소리만 네이티브로 바꾸면 지연을 넘길 수 있음
- 유료가 아니라 무료 버전 — 라이브가 목적이지 페이월이 목적이 아님
- 저지연부터 검증 — 큰 작업 전에 Rust로 피아노 소리 하나 내보고 지연을 실측. 22ms(웹 58ms의 절반 이하) 확인 후 진행
- 라이브 소리를 네이티브로 완성 — 서스테인 페달, 누르면 계속 울리고 떼면 멎기, 세게/약하게, 스타카토. 웹에선 지연·페달·강약이 다 안 됐던 것들
- ASIO 붙여 12ms 달성 — 오디오 인터페이스(UR22C) 전용 드라이버로 직접 출력. 실제로 BPM140 16분음표를 칠 만한 수준
- 라이브 녹화 방식 교체 — 실시간 화면 캡처(기기가 버벅이면 그대로 박힘) 대신, 연주를 이벤트로 기록했다가 정지 후 완벽한 프레임으로 렌더. 샘플 피아노 소리도 함께 담김
- 라이브 UI 정리 — 모드 토글(파일 재생/실시간 연주)을 프로젝트 탭 안으로, 재생 자리에 메트로놈(소리+비주얼, 볼륨 조절), 스크롤바를 다크 톤으로
- 저장 흐름 명확화 — 웹은 조용히 다운로드 폴더로 가던 걸, 네이티브는 “다른 이름으로 저장” 대화상자로. 나아가 저장 폴더를 미리 정해두면 대화상자 없이 그 폴더로 바로
- 편의 기능 — 피아노 볼륨 슬라이더, 연주를 MIDI 파일로도 추출(페달·강약까지)
- 광고는 웹 전용으로 — 네이티브 앱에선 안 뜨는 광고 자리를 빼고 그 공간을 미리보기·시퀀서에 돌려줌
- 시작 로딩바 — 피아노 음원(120개)을 다 불러올 때까지 진행률을 보여주고, 끝나면 사라져 쓸 수 있게. 준비 전에 눌러 소리가 안 나던 걸 없앰
막힌 부분
- 네이티브에서 소리가 노트북 스피커로 나거나 아예 안 났다
- 원인: 오디오 인터페이스 전용 드라이버(ASIO)가 목록에서 빠져 범용 드라이버가 엉뚱한 곳으로 보냈다. 오디오 라이브러리가 드라이버를 한 번에 하나만 열 수 있어서, 목록을 한꺼번에 쥐면 두 번째(인터페이스) 드라이버가 조용히 탈락하던 것
- 해결: 이름만 먼저 훑고(드라이버를 바로 놓아줌) 고른 하나만 다시 여는 방식으로. 그제야 인터페이스 드라이버가 잡힘
- 소리가 작아서 forte를 내려면 건반을 부술 듯이 쳐야 했다
- 해결: 세기 곡선이 중간을 너무 눌러 그랬음. 곡선을 덜 누르게 바꾸고 전체 볼륨을 올린 뒤, 사용자가 직접 조절하는 볼륨 슬라이더를 달았다
- 오디오 지연 표시가 사라졌다
- 원인: 샘플 로딩이 오래 걸려서 지연값을 읽는 창이 먼저 끝나버림
- 해결: 값이 들어올 때까지 계속 확인하게
다음에 할 일
- 인터페이스 버퍼를 낮춰 지연 더 줄이기
- 유료화(결제·라이선스) — 네이티브의 수익 모델
- 알파를 편집툴이 읽는 형식으로 — 네이티브 앱에서 ProRes 4444
- 4K 구매 유도 — 결제 붙인 뒤
Series: 소리꽃 KeyBloom
1
|
소리꽃 KeyBloom
2
|
Rescene(리센느) ― Pretty Girl
3
|
히사이시 조 ― Spring
4
|
히사이시 조 ― 인생의 회전목마
5
|
LiSA ― 홍련화(귀멸의 칼날)
6
|
히사이시 조 ― Summer
7
|
소리꽃 KeyBloom 1
8
|
소리꽃 KeyBloom 2
9
|
소리꽃 KeyBloom 3
10
|
소리꽃 KeyBloom 4
11
|
소리꽃 KeyBloom 5
12
|
소리꽃 KeyBloom 6
13
|
소리꽃 KeyBloom 7
14
|
소리꽃 KeyBloom 8
15
|
소리꽃 KeyBloom 9
16
|
소리꽃 KeyBloom 10
17
|
소리꽃 KeyBloom 11
18
|
소리꽃 KeyBloom 12
읽는 중
19
|
소리꽃 KeyBloom 13
20
|
소리꽃 KeyBloom 14
21
|
소리꽃 KeyBloom 15