프로젝트 소개
flashback-sampler는 시스템 오디오를 연속적으로 링 버퍼에 기록하여, 사용자가 최근 과거의 슬라이스를 들어 올려 미리 보고 자른 후 저장하거나 DAW로 직접 드래그할 수 있게 하는 데스크톱 오디오 앱릿입니다. 링은 모든 작업 중에 계속 롤링됩니다.
주요 목표는 테이크를 절대 잃지 않는 것입니다: 링은 최대 192 kHz까지 과거 N분의 오디오를 보유하고, 체크아웃은 즉시 디스크에 기록되어 충돌 시에도 생존합니다. 드래그아웃은 일반 OS 파일 드롭을 사용하므로 모든 DAW 호스트가 이를 받아들일 수 있습니다. 내보낸 슬라이스는 주변에 추가 오디오(핸들)를 포함하여, 사용자가 DAW에서 클립 가장자리를 드래그하여 더 많은 오디오를 드러낼 수 있게 합니다. 슬라이스 자체는 그대로 유지되며, WAV 마커(cue, smpl, adtl 레이블)가 파일 내부에 이를 표시합니다. 선택적 환경설정으로 WAV 대신 Ableton Live 클립(.alc)을 드래그할 수 있습니다.
엔진은 core/ 디렉터리의 zero-dependency Zig 라이브러리로, 캡처, 믹싱, 재생, 링, 피크, WAV, 스크래시 캐시를 처리합니다. Python은 PySide6/Qt 셸로, 핸들을 생성하고 시작/중지하며 숫자를 읽지만 프레임을 절대 보지 않습니다. 동일한 엔진은 CLAP 플러그인, OBS 도크, 또는 전화기에도 들어갈 수 있습니다.
상태는 버전 0.4.1이며 Windows 전용입니다. 캡처, 믹싱, 재생은 Zig 코어에서 WASAPI를 통해 이루어집니다. 코어는 Linux와 macOS용으로 크로스 컴파일되지만, 해당 백엔드는 아직 존재하지 않습니다. Qt UI는 Zig 네이티브 재구성을 위해 계획되어 있습니다.
UI는 두 개의 턴테이블을 제시합니다: 왼쪽 데크는 라이브 링 버퍼이고, 오른쪽 데크는 체크아웃된 클립을 보유합니다. 사용자는 소스(기본 출력, 캡처 장치, 단일 프로세스, 또는 여러 입력 혼합)를 선택하고, 캡처를 시작/중지하며, 슬라이스 길이와 위치를 설정하고, 캡처가 계속되는 동안 디스플레이를 정지시켜 그랩을 맞춘 후, 선택을 체크아웃하고, 미리 보고 클립을 자르고, WAV(기본값 32비트 float)로 저장하거나 DAW로 드래그할 수 있습니다. 체크아웃은 캡처가 중지된 후에도 생존하며, 스크래시 폴더에 float32 WAV 형태로 존재합니다.
메모리는 슬롯을 arm할 때 선점적으로 할당됩니다: 초 × 샘플레이트 × 채널 수 × 4 바이트. 15분 스테레오 48 kHz 프리셋은 346 MB입니다. 링을 생성하기 전에 두 가지 검사가 실행됩니다: 최대 풋프린트 상한(기본값 물리 RAM의 25%)과, 링이 사용 가능한 물리 메모리를 초과할 경우 거부하는 검사입니다.
DAW 마커 동작에 대해 테스트된 것은 Ableton Live 12뿐입니다. Reaper, Logic, Cubase, Bitwig, FL Studio, Studio One, Pro Tools는 목록에 있지만 아직 테스트되지 않았습니다.
필수 조건: Python 3.10+ 및 Zig 0.16.0. MIT 라이선스이며, 번들된 Monaspace 폰트는 SIL Open Font License 1.1에 따릅니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.