나무모에 미러 (일반/밝은 화면)
최근 수정 시각 : 2023-08-26 01:20:25

ASIO

음향 소프트웨어
{{{#!wiki style="margin: -0px -10px -5px; min-height: 26px"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin: -6px -1px -11px; letter-spacing: -.5px; word-break: keep-all"
<colbgcolor=#f6f6f9,#2f3241><colcolor=#000,#fff> DAW Ableton Live · Adobe Audition · Bitwig Studio · Cubase · FL StudioB · Logic ProB · 디지털 퍼포머 · Pro Tools · Reaper · Reason · Studio One$ · Nuendo · AudacityOF · LMMSOF · CakewalkF · CeVIO · GarageBandFB · Music LineM
마스터링
분석, 편집
골드웨이브 · Steinberg Wavelab · Soundforge · MasVis
녹음 곰녹음기 · 녹음기
Sylenth1 · NEXUS · Serum · Massive · Omnisphere · Vital$ · KORG Collection · Ozone · VOCALOID · 보카리나 · 보이스웨어 · 소프토크 · UTAU · Synthesizer V
시벨리우스$B · Finale · MuseScoreOF · NoteWorthy Composer · Dorico · Guitar Pro
DominoF
기타 MAX/MSP · ASIO · VST
관련 문서 소프트웨어/목록 · 음악 관련 정보 · 소프트웨어 신디사이저/목록
B
PC/모바일 공동지원
M
모바일 전용
O
오픈 소스
F
프리웨어
$
유·무료 공존
X
단종
}}}}}}}}} ||

파일:ASIO-LOGO.gif
Audio Stream Input/Output(ASIO)

1. 개요2. 상세3. Low Latency4. 버전
4.1. ASIO 2.04.2. ASIO 2.14.3. ASIO 2.24.4. ASIO 2.34.5. ASIO 2.3.14.6. ASIO 2.3.2
5. Windows의 WASAPI와 비교6. Windows 이외의 다른 운영체제와 비교7. 리듬 게임에서의 ASIO8. 관련 링크

1. 개요

야마하 산하의 회사인 스타인버그(Steinberg)에서 제정한 디지털 오디오 입출력에 대한 API 표준.

2. 상세

응용 프로그램과 오디오 드라이버 사이에 적용되어 낮은 지연(Low Latency)과 고품질 디지털 오디오 신호 인터페이스를 제공하는 것을 목적으로 하며, 지원 플랫폼은 Windows이다.

클래식 Mac OS 시절에는 맥의 Sound Manager가 레이턴시가 50ms 되는 등 별로 좋지않아 ASIO를 맥에서도 사용되었지만, Mac OS X(현재의 macOS)에서는 후술하겠지만 OS 자체 API인 Core Audio 쪽이 선호되어 더이상 지원하지 않고 있다. 윈도우 계열 역시 비스타 이후로 사용되는 WASAPI가 성능이 좋아서 ASIO의 입지가 많이 좁아진 상황이다.

DirectSound는 보통 게임을 즐기는 일반적인 사용자를 위해 사용된다면, ASIO는 주로 전문 음악인과 사운드/레코딩 엔지니어를 위해 사용된다. 다채널로, 다입력, 다출력, 여러 프로그램에서 동시에 접근 등을 염두에 두고 설계되었다.

현재 출시되는 오디오 인터페이스와 고급 사운드 카드가 이를 지원하고 있다.

오디오 인터페이스는 전문적인 오디오 녹음과 재생에 특화된 장치이며, 일반 사운드 카드보다 훨씬 고급 부품과 회로가 사용되고, 실제 스튜디오에서 사용하는 마이크, 여러 전기 신호 크기가 다른 악기, 믹서와 ADAT 등으로 프로용 광단자 입출력 디지털 오디오 장비를 연결할 수 있게 된 것들이 대다수이다. 즉, 비싸다.

하지만 이 역시 입문자를 위해서 간단하게 최소한의 ASIO 입출력만 가능하도록 제작된 오디오 인터페이스도 많이 있다. 기타나 베이스를 연결하거나 콘덴서 마이크를 연결하여 사용하여 녹음을 할 것이 아닌, 소프트웨어 신디사이저와 일반적인 오디오 신호 녹음, 재생 전용으로 10 ~ 20만 원 사이에서 싼 제품을 구입할 수 있다.

이것도 구입하기가 어렵다면, ASIO4ALL 같은 가상 ASIO 지원 드라이버를 설치하면 된다. 단, DirectSound의 100~500ms보다 지연시간이 줄기는 하지만, 연주를 해보면 느껴질 정도의 지연은 여전히 존재한다. 또 컴퓨터 사양이 낮으면 소리가 끊기거나 버벅거릴 수 있다.

그런데 몇몇 저가형 오인페들은 ASIO를 지원하지 않거나 지원해도 비트 량이 너무 적어 사실상 미지원이나 다름없는 제품들도 있으니 주의해야 한다. 베링거 사의 저가 오인페들은 ASIO를 지원하지 않아 아예 전술할 ASIO4ALL같은 가상 ASIO를 쓰라고 할 정도다.

최근 낮은 레이턴시가 중요한 리듬게임에서 자주 채용되어 세일즈 포인트 겸 업계 표준이 되어가고 있다.

2020년대 이후 출시되는 메인보드나 노트북들은 Realtek ASIO를 지원하는 경우가 많기 때문에 굳이 ASIO4ALL같은 가상 ASIO 드라이버를 설치하지 않아도 된다. 물론 고가의 사운드 카드나 오디오 인터페이스를 사용하는 것보다는 레이턴시가 높게 잡히지만 ASIO4ALL 등을 사용하는 것보다 훨씬 안정적으로 사용할 수 있다.

3. Low Latency

레이턴시는 소리가 날 때까지 걸리는 지연 시간을 뜻한다. 간단히 말해 처리 속도라고 생각해도 좋다.

실생활에서 Latency의 예는, 초등학교 교장 선생님 훈화에서 스피커마다 소리가 나오는 시간이 달라 듣는 사람이 거슬리는 경우이다. 이것이 각 스피커마다 Latency가 달라서 생기는 현상이다. Latency가 높아지는 원인은 다양하며, 일반적인 아날로그 회로에선 문제가 될 정도로 높아지지 않고, 디지털 체계에서 장치의 처리 속도에 의해 느려지는 경우가 대부분이다.

Latency가 높다면 신디사이저를 누르자마자 음이 나오지 않기 때문에 연주할 때 상당히 거슬리게 되며, 일반적으로 50 ~ 100 ms 정도[1]이면 지연을 느낄 수 없다고 알려져 있다. 이 역시 개인차가 있는 부분이라 낮을수록 좋은 법이다.

DAW소프트웨어 신디사이저 등장 초기인 1990년대 중후반부터 Microsoft Windows 환경에서 실시간 오디오 입출력을 하는 것이 이전 대비 대단히 중요해졌다. 그러나 아무리 해도 해결할 수 없는 근본적인 문제가 숨어있었다.

Windows 2000/XP에서 프로그램이 일반적인 방식으로 오디오 데이터를 출력하면 아래 그림의 오른쪽과 같은 과정을 거치게 된다.

파일:attachment/ASIO/windows_xp_audio.jpg

위 그림의 오른쪽을 보면, 잘 모르겠어도 뭔가 엄청나게 복잡해 보인다. 하드웨어를 추상화하고, 볼륨을 조절하는 믹서를 이렇게 위치시키면 운영체제를 만드는 입장에서는 좋을 것 같기도 하다. 그러나 거쳐야 하는 계층이 많다는 것은 그만큼 시간을 많이 잡아먹는다는 것을 뜻한다. 특히 이 중에 Kernel Wave Audio Mixer(이하 KMixer)가 자동으로 Sampling Rate를 변환하면서(PCM 48 kHz, 16-bit) 시간을 잡아먹는 것으로 악명이 높았다. KMixer를 거치면 Latency가 200 ~ 500 ms, DirectSound를 통해 거치지 않아도 50 ~ 100 ms 수준의 Latency가 발생했다.

그래서 위 그림의 왼쪽처럼 KMixer를 확실하게 우회하고, 중간에 있는 다른 계층을 없애버려서 응용 프로그램이 하드웨어인 사운드 카드에 디지털 오디오 신호를 이전 대비 훨씬 적은 계층을 통해서 전달할 수 있는 방법에 대한 고민이 시작되었고, 회사별로 여러 가지 방식이 쏟아져 나왔다. 이들 중 최종적으로 남은 것이 바로 Steinberg의 ASIO(Audio Streaming Input/Output)이며, 위 그림의 왼쪽과 같이 경로가 단축되면서 문제의 핵심이던 KMixer를 우회하게 되었다.

ASIO가 있는 쪽에 OpenAL이라는 다른 것을 볼 수 있는데, 이것은 ASIO가 사실상 업계 표준이지만 Steinberg에 귀속되어 있는 기술이기 때문에 오픈소스 진영에서 제정한 Open Audio Library라는 같은 역할을 하는 또다른 표준이다. 이에 대해서는 링크 참고.

당연히 ASIO는 빠르게 시장에 퍼져나가서 사실상 표준이 되었다. 이후에 DirectX에도 KMixer를 우회하여 오디오 데이터를 출력할 수 있는 API가 추가되었다. 위 그림에서 DirectSound가 KMixer를 거치지 않고 우회하는 것이 바로 이것이다.

파일:attachment/ASIO/audio_vista_whitepaper_im2.jpg

Windows Vista부터 MicrosoftWASAPI와, 이것과 같은 목적에 보다 추상화된 WaveRT API를 만들고, 디지털 오디오 출력 부분을 위와 같이 개선하였다. DirectSound나 MME를 사용하는 프로그램이라도 에뮬레이션을 통해 실제로는 WASAPI(Shared Mode)로 처리된다.

CPT는 Cross Process Transport로, 디지털 오디오 데이터를 Windows Audio Service로 전달하는 역할을 한다.
APO는 Audio Processing Object로, 디지털 오디오 데이터를 처리하기 위한 일종의 DSP 기능을 한다.
KST는 Kernel Streaming Transport로, 디지털 오디오 데이터를 현재 실행 중인 컴퓨터에 장착된 오디오 장치에게 전달하기 위해 렌더링을 한다.

동작 구조상 WASAPI 단독 모드(Exclusive Mode)를 사용하면 변환이 일어날 여지가 없다. 출처 물론 WASAPI 자체만 그렇다는 것이고, 프로그램이나 사운드 카드[2]에서 변환이 일어날 가능성은 있다.

4. 버전

4.1. ASIO 2.0

이전대비 몇 가지 차이점이 있지만, 사용자한테 가장 크게 부각되는 차이점은 오디오 입력을 컴퓨터를 거치지 않고 그대로 출력하는 모니터링 기능이 추가되었다는 점이다. 현재 판매되고 있는 ASIO를 지원하는 사운드 카드와 오디오 인터페이스는 대부분 이것을 지원한다.

4.2. ASIO 2.1

소니에서 만든 새로운 디지털 오디오 방식인 DSD(Direct Stream Digital)을 지원한다. 이것을 제외하면 ASIO 2.0 과 차이가 없다.

4.3. ASIO 2.2

Windows 64비트 지원 추가

4.4. ASIO 2.3

드라이버의 버퍼링 및 드롭아웃 감지 기능을 감지하기 위한 호스트 쿼리 추가
MMCSS에 대한 몇 가지 추가 문서 'ASIO SDK 2.3.pdf' 46페이지 참조
Mac OS 8 및 9에 대한 지원 중단

4.5. ASIO 2.3.1

라이선스 계약의 수정
Windows 10에 대한 지원 추가

4.6. ASIO 2.3.2

라이선스 텍스트 및 ASIO 로고 사용 지침 업데이트

5. Windows의 WASAPI와 비교

WASAPI 공유 모드의 믹서와 음향 효과를 통과하면 레이턴시가 발생하고 Bit Perfect가 보장되지 않는다.[3] WASAPI 단독 모드의 경우 응용 프로그램에서 바로 오디오 드라이버로 전송됨으로 ASIO와 별다른 차이가 없다.

과거에는 대부분의 DAW가 ASIO를 기본 입출력으로 사용하기 때문에 DAW를 사용한다면 ASIO 사용이 사실상 필수적이었으나, Windows 10-11이 사용되는 현재는 대부분의 DAW가 WASAPI를 지원하므로 옛말이다.

Windows의 마이크 접근 권한 설정은 WASAPI에만 적용되기 때문에 설정에서 마이크 접근 권한을 차단해도 애플리케이션이 ASIO를 사용 중이라면 마이크에 접근할 수 있다. 마이크 사용 중을 알리는 상태 표시줄 아이콘도 뜨지 않는다.

Windows 10 부터 추가된 WASAPI 동작 모드중 하나인 Low Latency 모드를 사용할 경우 WASAPI 스택 자체에 걸리는 처리 시간은 Shared 상태에서도 1.3ms에 불과하다.

6. Windows 이외의 다른 운영체제와 비교

과거 Mac OS에는 Sound Manager라는 것이 있었는데 이것 때문에 50 ms 정도의 Latency가 발생했다. 그러나 Core Audio에는 Latency가 거의 발생하지 않는다. 애초부터 노리고 Latency를 최소화하도록 설계되었기 때문이다.

Linux는 커널 모듈상에서 일반적으로 10 ms ~ 20 ms대의 레이턴시를 가졌지만, 일부 Studio 에디션 등은 커널단 스케줄러를 사용하지 않고 스트림으로 처리하는 Linux RT 커널[4]을 사용해 1 ms 이하의 레이턴시를 보이고있다. 다만 응용 프로그램이나 오디오 서버(Jack, OSS, ALSA, Pulseaudio 등)와 버퍼 샘플을 얼마나 줄지에 따라 최종 레이턴시는 달라진다. 리눅스 자체가 워낙 예전에 나온 OS이다 보니 하드웨어와 커널의 다이렉트 커넥션이 기본이라 레이턴시가 적으며, 모놀리식 커널이라 최적의 상태에서의 레이턴시는 다른 마이크로 커널이나 하이브리드 커널 운영체제보다 작다. 하지만 보통 다른 우선순위가 높은 프로세스가 동작하면 인터럽트를 먹어서 불규칙한 레이턴시가 생기기 때문에 RT 커널을 사용해주는 것이 좋다.

7. 리듬 게임에서의 ASIO

ms 단위로 판정이 달라지는 리듬 게임 특성상 Low Latency가 굉장히 중요한데, 이를 보완하기 위해 ASIO가 도입되었다.

아래는 ASIO를 지원하는 리듬 게임 목록이다.

8. 관련 링크




[1] 숙련된 연주자일수록 레이턴시에 대해 민감해진다. 50ms가 아니라 20~30ms도 느껴진다는 연주자들 또한 존재한다. 물론 허세 혹은 플라시보로만 그리 이야기하는 사람도 더러 있다.[2] 일부 사운드 카드는 44.1 kHz 샘플링 레이트를 지원하지 않는다.[3] 음원의 비트 심도와 샘플레이트를 공유 모드의 비트 심도와 샘플레이트에 맞추기 위하여 리샘플링되거나, 믹서의 볼륨을 건드리거나, 음향효과를 활성화시키거나 다른 응용 프로그램의 소리와 믹스(Mix)될때.[4] Real Time의 약자. 일반 리눅스 커널에도 빌드해서 적용할 수도 있다.[5] 코나미제 게이밍 PC인 ARESPEAR나 ASUS SONAR XE 사운드 카드가 아니면 사용 불가능하다. 클라이언트 변조 등의 꼼수를 쓰면 다른 사운드 카드에서도 사용할 수 있지만 정상적인 방법이 아니므로 계정 제재 등의 불이익을 받을 위험이 있다.[6] EZ2ON REBOOT : R과 동일하게 FMOD 엔진을 사용한다.[7] 상용 리듬 게임 중 최초로 ASIO를 지원한다.[8] BMS 구동기 중 최초로 ASIO를 지원한다.