리듬게임

Beatmania IIDX ASIO Int24LSB 변환

inseul인슬 2024. 6. 13. 03:38

Konami는 Beatmania IIDX Lighting 기체와 Sound Voltex Valkiry 기체에 ASUS Xonar AE를 공식 채택 하고 있다.

문제는 SDVX는 ASIO를 원활히 지원하는 반면 IIDX은 반드시 Int24LSB 포맷으로 출력을 지원하는 기기만 ASIO를 이용할 수 있다.

 

ASIO caps_009.1.7z
0.07MB

 

 

여기서 불만이 생긴다. ASIO를 지원하는 좋은 오디오 인터페이스를 가지고 있음에도 포맷이 달라 IIDX에서는 이용할 수 없어야 하는 건가?

그래서 여러모로 방법을 연구해보았다.

 

먼저 IIDX의 오디오 레이턴시와 샘플을 알면 좋을 것이다.

친절하게도 ASUS Xonar AE 사서 연구한 일본인의 연구자료가 있었다.

 

inf_launch_ext/asio.md at master · darekasan/inf_launch_ext · GitHub

 

inf_launch_ext/asio.md at master · darekasan/inf_launch_ext

INFINITASの起動オプションをいじる. Contribute to darekasan/inf_launch_ext development by creating an account on GitHub.

github.com

 

매우 귀중한 자료다. 여기서 asio.md를 보면

私の環境(Xonar AE)では44.1khzで24bit(ASIOSTInt24LSB)でレイテンシが8ms(352sample)でした。サンプリングレートとビット深度が合っていれば問題ないらしい(要検証)。

 

저의 환경(Xonar AE)에서는 44.1khz로 24bit(ASIOSTInt24LSB)에서 레이턴시가 8ms(352sample)였습니다. 샘플링 레이트와 비트 심도가 맞으면 문제 없는 것 같습니다(확인 필요).

 

IIDX의 오디오 환경을 알았으니 이제 변환이 필요하다. 이를 위해 FlexASIO를 이용한다.

Releases · dechamps/FlexASIO (github.com)

 

Releases · dechamps/FlexASIO

A flexible universal ASIO driver that uses the PortAudio sound I/O library. Supports WASAPI (shared and exclusive), KS, DirectSound and MME. - dechamps/FlexASIO

github.com

 

FlexASIO/CONFIGURATION.md at master · dechamps/FlexASIO · GitHub

 

FlexASIO/CONFIGURATION.md at master · dechamps/FlexASIO

A flexible universal ASIO driver that uses the PortAudio sound I/O library. Supports WASAPI (shared and exclusive), KS, DirectSound and MME. - dechamps/FlexASIO

github.com

 

공식에서 제공한 FlexASIO Configuration에 따라 FlexASIO.toml을 아래와 같이 작성한다.

FlexASIO GUI로 작성하면 한글에서 문제가 생긴다.

backend = "Windows WASAPI"
bufferSizeSamples = 352
[input]
device = ""
channels = 0
sampleType = "Int24"
wasapiExplicitSampleFormat = false
suggestedLatencySeconds = 0.0

[output]
device = "Speakers(Focusrite USB Audio)"
wasapiExclusiveMode = true
wasapiAutoConvert = false
channels = 2
sampleType = "Int24"
wasapiExplicitSampleFormat = false
suggestedLatencySeconds = 0.0

 

 

여기서 [output]의 device는 작업 표시줄의 소리 아이콘을 눌러보면 그 목록을 알 수 있다. 출력하고 싶은 device의 이름을 적는다.

 

 

또는 스피커 속성에서 이름 부분과 컨트롤러 정보를 조합하면 된다. 이 경우 스피커(Focusrite USB Audio)가 된다.

 

여기까지 마쳤으면 VBAsioTest_1012로 FlexASIO를 통해 원하는대로 출력이 되는지 테스트를 한다.

안에 32비트와 64비트 버전이 있는데 운영체제 버전에 따라 실행한다.

VBAsioTest_1012.7z
0.32MB

 

ASIO: FlexASIO를 선택한다.

 

 

삐~ 하는 소리와 함께 정상 출력 되고 있음을 확인한다.

TESTINGS: FlexASIO (44100 Hz) (buffer: 352 smp = 8.0ms), ASIOSTInt24LSB, 8.0ms 를 반드시 확인한다.

 

 

그리고 Asio Caps에서도 Int24LSB, 352 samples, 44100 Hz를 반드시 확인한다.