로컬 음악 생성

ACE-Step 곡을 DAW에서 만들고 수정하기: VST3 로컬 가이드

DAW에서 편집하기 전에 생성 서버와 VST3 플러그인의 역할을 구분합니다.

ACE-Step의 기존 Python 생성 환경을 DAW에 연결하고 싶다면 acestep.vst3는 C++17/GGML 독립 백엔드와 JUCE 8 플러그인을 함께 제공하는 선택지입니다. macOS Apple Silicon에서는 Metal1, Linux에서는 CPU2·CUDA3 등의 빌드 경로를 README에서 안내합니다. Q8_0 Turbo 모델 4개(약 7.7GB)를 준비하고, 먼저 로컬 HTTP 서버에서 짧은 음원을 출력한 다음 DAW 플러그인을 연결합니다. M2 Pro에서 공개된 18.3초는 86.8초 오디오의 VAE4 디코딩만 측정한 값이며 곡 전체 생성 시간이 아닙니다.

실행 조건과 핵심 내용
  • 이 저장소는 C++17/GGML 독립 구현이며 CPU·CUDA·Metal·Vulkan 실행 경로를 안내합니다.
  • Turbo Q8_0 구성은 텍스트 인코더·LM·DiT·VAE 4개 파일이며 총 약 7.7GB입니다.
  • M2 Pro의 18.3초는 86.8초 오디오의 VAE 디코딩 수치이지, 곡 생성 전체 실측이 아닙니다.

작곡 아이디어를 DAW 트랙으로 옮기는 흐름부터 잡습니다

짧은 영상에 넣을 20초짜리 배경음의 아이디어를 ACE-Step에서 만들고, DAW에서 잘라 붙이며 다듬고 싶다고 해보겠습니다. acestep.vst3 저장소에는 로컬 모델 서버, 웹 UI, 독립 실행 도구, JUCE VST3 플러그인이 함께 들어 있습니다. 먼저 서버에서 생성이 되는지 확인하고, 그 뒤 VST3를 DAW에 넣어 MIDI·플러그인 경로를 확인하면 생성 문제와 호스트 연결 문제를 섞지 않을 수 있습니다.

이름에 ACE-Step이 들어가더라도 ACE Studio의 공식 앱으로 소개하지 않습니다. 배포 README는 이 프로젝트가 C++17/GGML 기반 독립 구현이며 ACE-Step 1.5 가중치를 사용하는 네이티브 백엔드라고 설명합니다. 코드와 모델의 라이선스 조건은 다를 수 있으므로 빌드 전 각각 확인합니다.

DAW 타임라인과 플러그인 패널, MIDI 건반, 오디오 인터페이스가 놓인 Mac 작업 공간
서버 출력이 확인된 뒤에는 DAW에서 트랙과 플러그인 연결을 점검합니다.

OS에 맞는 실행 경로를 고르고 모델 파일 4개를 준비합니다

macOS Apple Silicon에서는 README의 CMake 경로가 Metal을 자동 활성화합니다. Linux NVIDIA 예시는 `-DGGML_CUDA=ON`, Linux Vulkan 예시는 `-DGGML_VULKAN=ON`을 사용합니다. 빌드 예시의 `nproc`은 macOS 기본 셸에 없을 수 있으니, 이때는 병렬 작업 수를 적게 지정하거나 CPU 수 확인 명령으로 바꿉니다. Windows는 릴리스 파일과 지원 여부를 확인하고 macOS/Linux 명령을 그대로 붙여넣지 마세요.

저장소가 안내하는 모델 구성은 Qwen3-Embedding 0.6B Q8_0 약 748MB, ACE-Step 5Hz LM 4B Q8_0 약 4.2GB, Turbo DiT5 Q8_0 약 2.4GB, BF166 VAE 약 322MB입니다. 합계가 약 7.7GB여도 실행 중 필요한 RAM/VRAM과 임시 파일 공간까지 7.7GB면 된다는 뜻은 아닙니다. 먼저 모델 경로가 정확한지 확인하고, 첫 생성은 짧은 길이와 기본 설정으로 제한합니다.

먼저 로컬 서버에서 짧은 출력이 정상인지 확인합니다

README의 안내에 따라 저장소를 내려받고 서브모듈을 초기화한 뒤 OS에 맞는 옵션으로 빌드합니다. `models.sh`는 Q8_0 Turbo 파일을 받는 절차입니다. 서버를 시작할 때 모델 4개의 경로를 지정하고 `http://localhost:8080`을 엽니다. 페이지가 열리는 것만으로 생성 성공은 아니므로 짧은 설명과 가사를 넣고 WAV 파일이 저장되는지 확인합니다.

첫 출력에 실패하면 오류 메시지의 모델명과 경로를 `models/` 안의 실제 파일명과 대조합니다. 대소문자, Turbo/SFT, Q8_0/BF16 차이를 먼저 확인합니다. 모델을 불러온 뒤 생성 중 프로세스가 종료되면 GPU7 메모리와 시스템 메모리 부족을 구분하고, 무거운 앱을 닫은 뒤 짧은 출력으로 다시 시도합니다. 서버 로그에서 초기화, `/lm`, `/synth` 중 어느 단계가 실패했는지 확인합니다.

서버 빌드와 모델 경로 예시
git clone https://github.com/ace-step/acestep.vst3.git
cd acestep.vst3
git submodule update --init
mkdir build && cd build
cmake ..
cmake --build . --config Release -j4
cd ..
pip install hf
./models.sh
./build/ace-server \
  --lm models/acestep-5Hz-lm-4B-Q8_0.gguf \
  --embedding models/Qwen3-Embedding-0.6B-Q8_0.gguf \
  --dit models/acestep-v15-turbo-Q8_0.gguf \
  --vae models/vae-BF16.gguf \
  --port 8080
기존 DAW 트랙 옆에 짧은 생성 클립과 파형 카드가 놓인 편집 장면
생성된 WAV를 기존 트랙과 나란히 놓고 시작과 끝을 들어 봅니다.

서버 출력 뒤 VST3를 DAW에 연결합니다

서버에서 WAV가 생성되면 플러그인 빌드로 넘어갑니다. 저장소 지침대로 `plugins/acestep_vst3`에서 CMake 빌드를 만들고, 생성된 `.vst3` 번들을 DAW가 검색하는 사용자 플러그인 위치에 복사합니다. DAW를 완전히 종료한 뒤 다시 열고 플러그인 검색을 실행합니다. 시스템 전체 플러그인 폴더에 복사할 때는 권한을 확인하고, 플러그인을 찾지 못한다고 검증되지 않은 바이너리를 임의로 허용하지 마세요.

DAW에서 플러그인이 나타나면 새 오디오 트랙에 불러오고 서버 연결 상태를 확인합니다. README의 구성에서는 VST3 UI가 ace-server API8와 통신하므로 서버가 켜져 있어야 합니다. 서버 health 표시가 정상인지 확인한 다음 설명·가사·길이를 입력하고 한 번 생성합니다. 만들어진 WAV를 DAW 트랙에 끌어와 처음과 끝을 들어 보고, 다음 생성에서 프롬프트나 길이 중 하나만 바꿉니다. 이 흐름은 AI 생성과 편집을 같은 프로젝트에서 이어가기 위한 것이지, 모든 DAW에서 플러그인이 완성 오디오를 실시간 연주한다는 뜻은 아닙니다.

헤드폰과 스피커, SSD 옆의 Mac에서 여러 음악 생성 테이크를 비교하는 작업실
한 번에 한 조건씩 바꿔 생성 테이크를 비교하면 수정 이유를 파악하기 쉽습니다.

18.3초를 곡 생성 시간으로 읽지 않습니다

저장소의 M2 Pro 16GB 표는 48kHz 스테레오 86.8초 오디오를 VAE로 디코딩하는 단계만 비교합니다. 청크 1024, overlap 16, `im2col_1d` 조건에서 18.3초라는 결과가 실렸습니다. 앞 단계의 언어 모델 처리, DiT 8-step 생성, 프롬프트 보강, 서버 기동, DAW 편집은 포함된 전체 곡 생성 시간이 아닙니다. 따라서 이를 ‘M2 Pro가 20초 분량 곡을 18초에 생성’했다고 바꾸어 쓰지 않습니다.

내 장비에서 체감 시간을 알고 싶으면 모델을 처음 불러오는 시간과 두 번째 생성 시간을 나눠 기록하고, 입력 가사, 길이, 시드, 백엔드, 출력 길이를 함께 적습니다. CPU·Metal·CUDA·Vulkan 경로가 서로 다른 조건이면 숫자를 직접 비교하지 않습니다. 속도보다 먼저 필요한 것은 원하는 결과가 끝까지 저장되는지와 편집할 수 있는 WAV가 생성되는지입니다.

업데이트와 라이선스를 확인한 뒤 제작에 사용합니다

README와 릴리스 페이지는 나중에 바뀔 수 있으므로, 오래된 글의 바이너리 이름이나 화면 조작을 그대로 따르지 말고 설치 시점의 최신 릴리스 파일과 알려진 제한을 확인합니다. VST3 WebView 입력 등 DAW 호스트별 동작도 살펴보고, 먼저 복제한 프로젝트에서 시험하는 편이 안전합니다. 모델 사용 조건, 생성물의 권리, 플러그인과 의존 라이브러리의 라이선스는 각각 별도로 확인해야 합니다.

무엇보다 VAE 속도 수치 하나로 DAW와 그래픽카드 구매를 결정하지 않습니다. 짧은 서버 출력이 성공하고, 플러그인이 호스트에서 안정적으로 보이며, 내가 원하는 음악 형태를 저장·편집할 수 있을 때 현재 구성이 적합한지 평가합니다. 그 다음에야 반복 생성 횟수와 프로젝트 길이에 맞춰 더 빠른 백엔드나 다른 정밀도를 비교합니다.

실행·모델 원문 자료

설치와 모델 사용 조건은 다음 원문에서 확인할 수 있습니다.

용어 각주

  1. Metal — Apple 기기에서 그래픽과 GPU 병렬 계산을 실행하는 저수준 기술입니다. 모델을 골라 대화하는 앱 자체와는 다릅니다.

    본문으로 돌아가기
  2. CPU — 컴퓨터에서 일반적인 프로그램 명령을 실행하는 중앙 처리 장치입니다. AI 작업에서는 GPU 등 다른 프로세서와 역할을 나누기도 합니다.

    본문으로 돌아가기
  3. CUDA — NVIDIA GPU에서 범용 계산을 실행하기 위한 소프트웨어 플랫폼입니다. CUDA용으로 만든 프로그램은 다른 GPU에서 그대로 동작한다고 보장되지 않습니다.

    본문으로 돌아가기
  4. VAE — Variational Autoencoder의 약자입니다. 입력을 압축된 잠재 표현으로 바꾸거나, 그 표현에서 결과를 복원하는 데 쓰입니다.

    본문으로 돌아가기
  5. DiT — Diffusion Transformer의 약자입니다. 트랜스포머 구조를 이용해 확산 과정에서 노이즈가 있는 표현을 단계적으로 다듬는 모델 구조입니다.

    본문으로 돌아가기
  6. BF16 — 모델의 수를 저장하고 계산하는 16비트 부동소수점 형식입니다. 사용 가능 여부는 하드웨어와 실행 프로그램에 달려 있습니다.

    본문으로 돌아가기
  7. GPU — 많은 계산을 병렬로 처리하는 프로세서입니다. AI 모델 실행에서는 모델 계산을 맡습니다.

    본문으로 돌아가기
  8. API — 프로그램의 기능을 다른 코드에서 호출하기 위한 약속된 인터페이스입니다. API라는 말만으로 외부 서버 전송을 뜻하지는 않습니다.

    본문으로 돌아가기