← 목록
오디오 2026-05-19 3KB 읽기 3분

audio.crowny.org 서버 구현 (포트 9880)

개요

CAF7 오디오 포맷 웹 서비스 구현. 랜딩페이지 + 웹 플레이어 + API + 다운로드 페이지.

무엇을 했는지

1. /Users/ef/crowny-audio/server/server.js

  • Node.js 순수 http 모듈 (외부 npm 의존성 0)
  • 포트 9880 고정
  • 라우팅:
  • GET /server/public/index.html (랜딩)
  • GET /playerplayer/web/index.html (기존 웹 플레이어)
  • GET /downloads → 6플랫폼 다운로드 페이지 (인라인 생성)
  • GET /api/info?file= → CAF7 헤더 파싱 + 메타데이터 JSON
  • GET /spec/* → spec/ 디렉토리 정적 서빙
  • GET /build/* → build/ 디렉토리 (바이너리 다운로드)
  • GET /dawhttp://daw.crowny.org:9881 리다이렉트 (302)
  • POST /upload → 업로드 바이너리 → CAF7 매직 확인 + 메타 JSON
  • POST /convert → 501 + crownyc VM 사용 안내
  • server-side CAF7 헤더 파싱 (parseCAF7Header): META 청크 title/artist/album, 프로파일, threshold, 존재율
  • 2. /Users/ef/crowny-audio/server/public/index.html

  • 다크 테마 랜딩페이지 (외부 CDN 없음, 모든 CSS 인라인)
  • 히어로: 애니메이션 파형 캔버스 + "존재하는 파장만 기록한다" 슬로건
  • 섹션 1 (PCM vs CAF7): 비교 테이블 + 바 차트 애니메이션
  • 피아노 7% 존재 → 4.7배, 효과음 3% → 9.8배, 드럼 24% → 1.4배
  • 8ch 밴드 8시간: Logic Pro 33.2GB → CAF7 4.1GB (1/8)
  • 섹션 2 (기술 스펙): MDCT / -80dB 소멸 / 33트릿 / 크라우니력 / 청크 / 4프로파일
  • 섹션 3 (다운로드): 6플랫폼 카드 (macOS/Windows/Linux/Android/iOS/Web)
  • 섹션 4 (CrownyDAW): DAW 트랙 시각화 + daw.crowny.org 링크
  • 반응형, 스크롤 fade-up 애니메이션
  • 3. /Users/ef/crowny-audio/server/서버.한선

    • 한선씨 동반 구현 (TCP대기/TCP수락/TCP읽기/TCP쓰기/TCP닫기 사용)
    • 경로파싱 / 메서드파싱 / CAF7확인 / 라우팅 핸들러 전부 한선씨로 구현

    관련 파일 경로

    • /Users/ef/crowny-audio/server/server.js — 메인 서버
    • /Users/ef/crowny-audio/server/public/index.html — 랜딩페이지
    • /Users/ef/crowny-audio/server/서버.한선 — 한선씨 동반
    • /Users/ef/crowny-audio/player/web/index.html — 기존 웹 플레이어 (연동)
    • /Users/ef/crowny-audio/spec/CAF7_SPEC.3layer — 스펙 문서

    실행 방법

    bashcd /Users/ef/crowny-audio
    node server/server.js
    # → http://localhost:9880
    

    잔여 이슈

    • POST /upload multipart 파일명 추출 미구현 (raw body만 받음)
    • GET /api/info 실제 CAF7 큐브 디코딩은 crownyc VM에 위임
    • 한선씨 서버(서버.한선)는 hanseonc_high 빌드 후 실행 가능 (Node.js 서버와 별도 운용)
    • iOS/Android 바이너리는 build/ 디렉토리에 없으므로 다운로드 시 404 발생 (빌드 산출물 필요)