소리꽃 KeyBloom 19
소리꽃 KeyBloom 바로가기 ↗
이 글은 소리꽃 KeyBloom 시리즈의 32번째 기록입니다. (총 46개)
오늘 한 일
- 출력 창 버튼을 누르면 관객 모니터(두 번째 모니터)에 바로 풀스크린으로 뜨게 함 — 모니터가 하나면 현재 화면에 풀스크린
- 한번 정해진 파티클 배열을 다시 굴리는 버튼([비주얼] 탭 🎲) — 결정적은 유지한 채 배열만 새로, 프로젝트에 저장
- 색 선택기에 RGB(0~255) 직접 입력칸 추가 — hex·스포이드·HSV 슬라이더와 서로 맞물려 갱신
- PRO는 광고를 아예 안 띄우고, PRO 라이브 모드에선 하단 시퀀스 영역을 크기 그대로 비움(하우스 광고까지 화면에서 사라짐)
- 도움말에 큐(파티클 전환 지점) 배치하는 방법 단계 추가
막힌 부분
출력 창을 어느 모니터에 띄울지 자동으로 고르기
버튼을 누르면 관객 화면에 풀스크린으로 떠야 하는데, 모니터가 여러 개일 때 어느 쪽에 띄울지가 문제였다. 무조건 현재 화면에 띄우면 연주자 조작 창을 덮어버린다.
Tauri에 붙은 모니터 목록(availableMonitors)과 주 모니터(primaryMonitor)를 물어, 주 모니터가 아닌 첫 화면을 골라 그 좌표에서 풀스크린으로 열게 했다. 못 찾으면(모니터 하나뿐) 그냥 현재 화면 풀스크린으로 폴백.
const { availableMonitors, primaryMonitor } = await import("@tauri-apps/api/window");
const monitors = await availableMonitors();
const primary = await primaryMonitor();
const target = monitors.find(
(m) => !primary || m.position.x !== primary.position.x || m.position.y !== primary.position.y,
);
const pos = target ? { x: target.position.x, y: target.position.y } : null;
new WW("output", { url: "output.html", fullscreen: true, ...(pos ?? {}) });
- 해결: 주 모니터가 아닌 화면을 좌표로 찾아 그 자리에 풀스크린. 단일 모니터는 현재 화면 폴백
결정적으로 만든 파티클을 배열만 새로 굴리기
파티클을 결정적으로 바꾼 뒤로(18번 글) 같은 연주는 언제나 같은 배열이 된다. 두 화면을 맞추고 프로젝트를 재현하려고 그렇게 만들었는데, 정작 “지금 배열이 마음에 안 드니 다른 걸로” 할 방법이 없어졌다.
그래서 시드에 기준값(seedBase)을 하나 더 뒀다. 노트마다 쓰는 시드를 seedBase + 순번으로 계산하고, 버튼이 seedBase를 새 난수로 바꾼다. 기준값이 바뀌면 이후 모든 파티클이 다른 배열로 뜨고, 그 값을 프로젝트에 저장하니 다시 열어도 같은 배열이 재현된다.
let seedBase = 0;
function nextSeed(): number { return (seedBase + spawnSeq++) >>> 0; }
function rerollSeed(): void {
seedBase = Math.floor(Math.random() * 0x100000000) >>> 0;
particles.clear();
if (outputWin) emitOut("kb:clear", {}); // 출력 창도 같이 비움
}
- 해결: 시드 기준값을 따로 둬 “다시 굴리기”와 “재현”을 둘 다 살림. 굴릴 때 메인·출력 창의 남은 파티클을 함께 비움
다음에 할 일
- 투명 배경 영상(알파) 내보내기 — Windows는 Ut Video·이미지 시퀀스, Mac은 ProRes
- Mac 네이티브 앱
- Tauri 자동 업데이터 붙이기(유료 배포 전, 배포하면 다시 받아야 갱신되므로)
- 첫 방문자용 샘플 데모 MIDI 자동 로드(자작곡 1곡 + 쇼팽 녹턴)
- 커스텀 파티클 모양 실루엣 재작업(투명 PNG 기준)
- 비-나선 파티클 가로 퍼짐(폭) 슬라이더 검토
- Creem 결제·라이선스 활성화 배선
- 실시간 연주 데모 영상 — 손+화면 동시로 실제 연주임을 보이기
Series: 소리꽃 KeyBloom
1 | 소리꽃 KeyBloom 2 | Rescene(리센느) ― Pretty Girl 3 | 히사이시 조 ― Spring 4 | 히사이시 조 ― 인생의 회전목마 5 | 히사이시 조 ― Summer 6 | LiSA ― 홍련화(귀멸의 칼날) 7 | DJ Okawari ― Flower Dance 8 | 안젤리크스페셜 ― The Queen 9 | 쇼팽 ― 녹턴 10 | 테일즈위버―Reminiscence 11 | D.Gray-man―14番目ノ子守歌 12 | 이루마―Kiss in the rain 13 | Bach―Invention No. 8 in F Major 14 | 소리꽃 KeyBloom 1 15 | 소리꽃 KeyBloom 2 16 | 소리꽃 KeyBloom 3 17 | 소리꽃 KeyBloom 4 18 | 소리꽃 KeyBloom 5 19 | 소리꽃 KeyBloom 6 20 | 소리꽃 KeyBloom 7 21 | 소리꽃 KeyBloom 8 22 | 소리꽃 KeyBloom 9 23 | 소리꽃 KeyBloom 10 24 | 소리꽃 KeyBloom 11 25 | 소리꽃 KeyBloom 12 26 | 소리꽃 KeyBloom 13 27 | 소리꽃 KeyBloom 14 28 | 소리꽃 KeyBloom 15 29 | 소리꽃 KeyBloom 16 30 | 소리꽃 KeyBloom 17 31 | 소리꽃 KeyBloom 18 32 | 소리꽃 KeyBloom 19 읽는 중 33 | 소리꽃 KeyBloom 20 34 | 소리꽃 KeyBloom 21 35 | 소리꽃 KeyBloom 22 36 | 소리꽃 KeyBloom 23 37 | 소리꽃 KeyBloom 24 38 | 소리꽃 KeyBloom 25 39 | 소리꽃 KeyBloom 26 40 | 소리꽃 KeyBloom 27 41 | 소리꽃 KeyBloom 28 42 | 소리꽃 KeyBloom 29 43 | 소리꽃 KeyBloom 30 44 | 소리꽃 KeyBloom 31 45 | 소리꽃 KeyBloom 32 46 | 소리꽃 KeyBloom 33