KR102094707B1 - audio data processing apparatus by use of virtual channels and virtual drivers - Google Patents

audio data processing apparatus by use of virtual channels and virtual drivers Download PDF

Info

Publication number
KR102094707B1
KR102094707B1 KR1020180120141A KR20180120141A KR102094707B1 KR 102094707 B1 KR102094707 B1 KR 102094707B1 KR 1020180120141 A KR1020180120141 A KR 1020180120141A KR 20180120141 A KR20180120141 A KR 20180120141A KR 102094707 B1 KR102094707 B1 KR 102094707B1
Authority
KR
South Korea
Prior art keywords
audio
audio data
driver
virtual
programs
Prior art date
Application number
KR1020180120141A
Other languages
Korean (ko)
Inventor
임창수
Original Assignee
임창수
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 임창수 filed Critical 임창수
Priority to KR1020180120141A priority Critical patent/KR102094707B1/en
Application granted granted Critical
Publication of KR102094707B1 publication Critical patent/KR102094707B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/162Interface to dedicated audio devices, e.g. audio drivers, interface to CODECs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Stereophonic System (AREA)

Abstract

The present invention relates to a technology for processing audio data based on a software in a computer device (e.g. personal computer and digital music equipment), and more particularly, to a technology for enabling a computer device to handle high-quality audio content by directly transmitting an audio data output of a specific driver to an audio data input of another driver in a digital manner via a direct buffer in the computer device. Audio data input/output setting between drivers can be performed by direct buffer control in accordance with software setting without passing through an external cable. In particular, an audio data processing form of an audio application program can be flexibly set without limitation of a hardware specification by augmenting a virtual channel and a virtual driver related to an audio driver. Accordingly, a plurality of audio application programs are executed in a general computer device to be freely combined so as to process audio data, thereby generating high-quality audio content at low costs.

Description

가상채널과 가상드라이버를 이용한 오디오데이터 처리 장치 {audio data processing apparatus by use of virtual channels and virtual drivers}Audio data processing apparatus using virtual channels and virtual drivers {audio data processing apparatus by use of virtual channels and virtual drivers}

본 발명은 컴퓨터 장치(예: 개인용컴퓨터, 디지털 음악장비)에서 오디오데이터를 소프트웨어 기반으로 처리하는 기술에 관한 것이다.The present invention relates to a technology for processing audio data based on software in a computer device (eg, personal computer, digital music equipment).

더욱 상세하게는, 본 발명은 컴퓨터 장치 내부의 다이렉트 버퍼를 매개로 특정 드라이버의 오디오 데이터 출력을 다른 드라이버의 오디오 데이터 입력으로 디지털 방식으로 직접 전달할 수 있도록 함으로써 컴퓨터 장치에서 고품질 오디오 컨텐츠를 다룰 수 있도록 하는 기술에 관한 것이다. 이와 같은 드라이버 간의 오디오 데이터 입출력 설정은 외부의 케이블을 통하지 않고 소프트웨어 설정에 따른 다이렉트 버퍼 제어를 통해 이루어진다.More specifically, the present invention allows the computer device to handle high-quality audio content by digitally directing the audio data output of a specific driver to the audio data input of another driver via a direct buffer inside the computer device. It's about technology. The audio data input / output setting between the drivers is made through direct buffer control according to software settings without going through an external cable.

특히, 본 발명은 오디오 드라이버와 관련하여 가상 채널과 가상 드라이버를 오그먼트(augment)함으로써 오디오 응용 프로그램의 오디오 데이터 처리 형태를 하드웨어 사양에 제한받지 않고 유연하게 설정하는 것을 가능하게 하였다. 이를 통해, 통상의 컴퓨터 장치에서 다수의 오디오 응용 프로그램을 실행시키고 이들을 자유롭게 조합하여 오디오 데이터를 처리하는 것이 가능해져 저렴한 가격으로 고품질 오디오 컨텐츠를 생성할 수 있다.In particular, the present invention makes it possible to flexibly set an audio data processing form of an audio application without being limited by hardware specifications by augmenting a virtual channel and a virtual driver in relation to the audio driver. Through this, it is possible to execute a plurality of audio applications in a typical computer device and freely combine them to process audio data, thereby generating high-quality audio content at a low price.

종래에는 미디(MIDI, musical instrument digital interface) 규약을 준수하는 전자악기와 미디 인터페이스를 갖는 컴퓨터 간에 물리적인 케이블을 연결하여 이들이 서로 데이터를 주고받을 수 있도록 하였고 이를 통해 컴퓨터 소프트웨어가 전자악기를 제어할 수 있었다. 또한, 신디사이저와 미디 인터페이스가 연결된 후의 컴퓨터는 단순히 미디 신호를 저장하고 재생하는 단순 기능을 넘어, 오디오 컨텐츠를 편집할 수 있게 되었고 음반 작곡이나 프로듀싱에 컴퓨터는 꼭 필요한 구성요소로 자리잡게 되었다.Conventionally, a physical cable is connected between an electronic musical instrument that complies with MIDI (musical instrument digital interface) and a computer having a MIDI interface so that they can exchange data with each other, and through this, computer software can control the electronic musical instrument. there was. In addition, after the synthesizer and the MIDI interface were connected, the computer was able to edit the audio contents beyond the simple function of storing and playing the MIDI signal, and the computer became a necessary component for recording or producing music.

그러나 개인용 컴퓨터(PC)의 운영체제(OS)에는 여러 오디오 입출력을 복합적으로 제어하는 효율적인 방법은 지원하지 않았고 단순히 스테레오 입력(예: 마이크)과 스테레오 출력(예: 스피커, 헤드폰)에만 그치고 있었고 게다가 오디오 장비와 관련된 새로운 기능 확장도 곤란하였다. 예를 들어 어떠한 하드웨어 개발회사가 뛰어난 기능을 가진 오디오 하드웨어를 개발하였다고 하더라도 컴퓨터에서는 그 오디오 하드웨어의 기능을 제대로 활용하지 못하는 문제점이 있었다. PC에 탑재되어 있는 운영체제에는 그 새로 개발된 오디오 하드웨어를 제대로 활용하기 위한 소프트웨어 모듈이 탑재되어 있지 않기 때문이다.However, the personal computer (PC) 's operating system (OS) did not support an efficient way to control multiple audio inputs and outputs. It was also difficult to expand related new functions. For example, even if any hardware development company has developed audio hardware with excellent functions, there is a problem in that a computer cannot properly utilize the functions of the audio hardware. This is because the operating system installed in the PC does not have a software module to properly utilize the newly developed audio hardware.

이러한 문제점을 해결하기 위해서 하드웨어 업체는 자신들의 뛰어난 기능을 지원할 드라이버를 독자적인 방식으로 개발하였다. 소프트웨어 밴더와 하드웨어 밴더들은 각자 독자적인 표준을 구축하게 되었다.To solve these problems, hardware companies developed their own driver to support their excellent features. Software vendors and hardware vendors have established their own standards.

결국 각각의 소프트웨어 밴더들이 서로 다른 표준 규격만을 지원하기 때문에 하드웨어 밴더들은 소프트웨어가 동작할 수 있도록 하기 위해서 여러개의 드라이버를 각각 만들어서 지원해야만 한다. 또한, 오디오 응용 프로그램 간에 오디오 데이터를 교환하는 것은 원칙적으로 불가능하며, 이를 위해서는 복수의 오디오 응용 프로그램을 지원하는 장비를 컴퓨터 외부에서 연결케이블을 통해서 연결해주어야 하였는데, 이는 장비의 규모 및 투자비용을 상승시켰고 매우 번거로운 작업을 수행할 수 밖에 없는 문제점이 있었다.In the end, since each software vendor supports only different standard specifications, hardware vendors must create and support multiple drivers to make the software work. In addition, it is impossible in principle to exchange audio data between audio applications, and for this, equipment supporting multiple audio applications had to be connected through a connection cable outside the computer, which increased the size and investment cost of the equipment. There was a problem inevitably to perform a very cumbersome operation.

[도 1]은 종래기술에 따른 오디오데이터 처리 장치의 내부 기능적 구성을 도시한 블록도이다.1 is a block diagram showing the internal functional configuration of an audio data processing apparatus according to the prior art.

[도 1]을 참조하면, 종래기술에 따른 오디오데이터 처리 장치는, 통상적으로 사용되는 각종 오디오 응용 프로그램(110)과, 오디오 응용 프로그램(110)에서 출력되는 오디오데이터를 입력받아 사용자에 따라 다양한 오디오데이터를 녹음 또는 재생하는 프로그램인 유저레벨 드라이버부(120)과, 컴퓨터 장치의 CPU를 거치지 않고 직접 오디오데이터를 처리하는 커널레벨 드라이버부(130)와, 아날로그 데이터를 디지털 데이터로 변환하거나 또는 이와 반대로 동작하는 사운드카드(140)와, 각종 아날로그 신호를 입력받아 사운드카드(140)로 제공하는 아날로그 입력채널(151)과, 사운드카드(140)에서 출력되는 아날로그 데이터를 출력하는 아날로그 출력채널(152)로 구성되어 있었다.Referring to FIG. 1, the audio data processing apparatus according to the prior art receives various audio application programs 110 and audio data output from the audio application program 110, and various audio according to a user. User-level driver unit 120, which is a program for recording or reproducing data, kernel-level driver unit 130 that directly processes audio data without going through a CPU of a computer device, and analog data to digital data or vice versa. Sound card 140 in operation, an analog input channel 151 for receiving various analog signals and providing them to the sound card 140, and an analog output channel 152 for outputting analog data output from the sound card 140 It consisted of.

그러나 이러한 종래의 구성은 오디오데이터 교환을 위해서는 고가의 비용을 들여 오디오 처리 시스템을 추가로 구비하거나 아니면 외부 케이블을 별도로 연결해야 하는 불편한 문제점이 있었다. 게다가 이러한 방식에서는 드라이버에서 출력되는 오디오 데이터가 사운드카드(140)를 통해서 디지털-아날로그 변환 및 아날로그-디지털 변환 과정을 거치게 되며, 이 과정에서 오디오데이터의 손실이나 변경이 발생하여 음질 저하가 발생하는 문제점이 있었다.However, such a conventional configuration has an inconvenient problem in that an audio processing system is additionally provided at a high cost to exchange audio data or an external cable is separately connected. In addition, in this method, audio data output from the driver undergoes digital-to-analog conversion and analog-to-digital conversion through the sound card 140. In this process, loss or change of audio data occurs, resulting in sound quality degradation. There was.

또한, 종래의 구성에서는 오디오 데이터의 처리 형태가 사운드카드(140) 및 아날로그 입출력 채널(151, 152)의 하드웨어 사양에 제한받는 한계가 있었다. 컴퓨터 장치에 여러가지 종류의 오디오 응용 프로그램(13 ~ 19)을 실행시키더라도 이들 간에 이루어지는 오디오 데이터의 연결 처리(예: 믹싱)는 컴퓨터 장치의 하드웨어 사양이 허락하는 형태로만 가능하였고, 그 외의 형태를 구현하려면 오디오 처리 장비를 추가로 구매하여 외부에 연결해야만 하였다. 이는 상당한 불편함 뿐만 아니라 엄청난 비용 투자는 요구하는 문제가 있었다.In addition, in the conventional configuration, the processing form of audio data is limited by the hardware specifications of the sound card 140 and the analog input / output channels 151 and 152. Even if various types of audio applications (13 to 19) are executed on the computer device, the audio data connection processing (eg, mixing) between them is possible only in the form permitted by the hardware specifications of the computer device, and other types are implemented. To do this, you had to purchase additional audio processing equipment and connect it externally. This was a problem that required not only considerable inconvenience but also enormous cost investment.

본 발명의 목적은 컴퓨터 장치에서 오디오데이터를 소프트웨어 기반으로 처리하는 기술을 제공하는 것이다.An object of the present invention is to provide a technology for processing audio data in a computer device based on software.

특히, 본 발명의 목적은 컴퓨터 장치 내부의 다이렉트 버퍼를 매개로 특정 드라이버의 오디오 데이터 출력을 다른 드라이버의 오디오 데이터 입력으로 디지털 방식으로 직접 전달할 수 있도록 함으로써 컴퓨터 장치에서 고품질 오디오 컨텐츠를 다룰 수 있도록 하는 기술을 제공하는 것이다. 이와 같은 드라이버 간의 오디오 데이터 입출력 설정은 외부의 케이블을 통하지 않고 소프트웨어 설정에 따른 다이렉트 버퍼 제어를 통해 이루어진다.Particularly, an object of the present invention is a technology that enables a computer device to handle high-quality audio content by digitally transmitting audio data output of a specific driver as an audio data input of another driver via a direct buffer inside the computer device. Is to provide The audio data input / output setting between the drivers is made through direct buffer control according to software settings without going through an external cable.

특히, 본 발명의 목적은 오디오 드라이버와 관련하여 가상 채널과 가상 드라이버를 오그먼트함으로써 오디오 응용 프로그램의 오디오 데이터 처리 형태를 하드웨어 사양에 제한받지 않고 유연하게 설정하는 것을 가능하게 하는 기술을 제공하는 것이다. 이를 통해, 통상의 컴퓨터 장치에서 다수의 오디오 응용 프로그램을 실행시키고 이들을 자유롭게 조합하여 오디오 데이터를 처리하는 것이 가능해져 저렴한 가격으로 고품질 오디오 컨텐츠를 생성할 수 있다.In particular, it is an object of the present invention to provide a technology that enables flexible setting of an audio application processing form of an audio application without being limited by hardware specifications by augmenting a virtual channel and a virtual driver in connection with the audio driver. Through this, it is possible to execute a plurality of audio applications in a typical computer device and freely combine them to process audio data, thereby generating high-quality audio content at a low price.

상기의 목적을 달성하기 위하여 본 발명은 복수의 오디오 응용 프로그램(110)과, 오디오 데이터에 대한 하나이상의 A/D 컨버터(141) 및 D/A 컨버터(142)를 구비하는 사운드카드(140)와, 외부로부터 아날로그 신호를 입력받아 사운드카드(140)로 제공하는 아날로그 입력채널(151)과, 사운드카드(140)에서 출력되는 아날로그 데이터를 출력하는 아날로그 출력채널(152)과 연동하여 오디오데이터를 처리하는 장치로서, 복수의 오디오 응용 프로그램(110)에서 각각 출력되는 오디오데이터를 제공받아 개별적으로 녹음 또는 재생하는 복수의 드라이버 프로그램를 구비하는 유저레벨 드라이버부(120)로서, 복수의 드라이버 프로그램은 오디오데이터를 윈도우 오디오 엔진(124)을 경유하여 처리하는 복수의 제 1 드라이버(121, 122, 123) 및 오디오데이터를 윈도우 오디오 엔진(124)과는 별도 채널로 처리하는 복수의 ASIO 프로그램(125)을 포함하여 구성되고, 복수의 ASIO 프로그램(125)은 오디오 응용 프로그램(110)의 기능을 지원하기 위해 소프트웨어로 오그먼트(augment)되어 가상 채널을 구성하는 하나이상의 ASIO 프로그램(125)을 포함하고, 복수의 드라이버 프로그램은 복수의 오디오 응용 프로그램(110)에서 출력되는 오디오데이터를 연결 처리하기 위해 제 1 드라이버(121, 122, 123)과 ASIO 프로그램(125)의 패키지를 다층으로 오그먼트하여 가상 드라이버를 구성하는 유저레벨 드라이버부(120); 복수의 제 1 드라이버(121, 122, 123) 및 복수의 ASIO 프로그램(125)에 각각 대응하는 복수의 다이렉트 버퍼(210)를 구비하여 복수의 제 1 드라이버(121, 122, 123) 및 ASIO 프로그램(125)으로부터 개별적으로 오디오데이터를 입력받아 복수의 다이렉트 버퍼(210) 간의 데이터 복사를 통해 오디오데이터의 출력과 입력 경로 흐름을 처리하는 다이렉트 제어부(200)로서, 소프트웨어 메뉴를 통한 사용자 선택 입력에 따라 복수의 다이렉트 버퍼(210) 간의 데이터 복사 경로를 스위칭 설정하고, 다층의 가상 드라이버에 구현된 복수의 드라이버 프로그램을 통합하여 단일 층으로 처리하도록 구성된 다이렉트 제어부(200); 복수의 DMA 채널(131)을 구비하여 다이렉트 제어부(200)의 제어에 따라 하나이상의 다이렉트 버퍼(210)로부터 오디오데이터를 제공받아 컴퓨터 장치의 CPU를 거치지 않고 직접 처리하는 커널레벨 드라이버부(130);를 포함하여 구성된다.In order to achieve the above object, the present invention is a sound card 140 having a plurality of audio application programs 110 and one or more A / D converters 141 and D / A converters 142 for audio data. , Processes audio data in conjunction with an analog input channel 151 that receives an analog signal from the outside and provides it to the sound card 140 and an analog output channel 152 that outputs analog data output from the sound card 140. The user-level driver unit 120 includes a plurality of driver programs that individually receive or record audio data output from the plurality of audio application programs 110, and the plurality of driver programs receive audio data. A plurality of first drivers (121, 122, 123) and audio data processed through the Windows audio engine (124) and the Windows audio engine (124) Is composed of a plurality of ASIO programs 125 that are processed as separate channels, and the plurality of ASIO programs 125 are augmented with software to support the functions of the audio application 110, and the virtual channels are configured. It includes one or more ASIO programs 125 to configure, and a plurality of driver programs includes first drivers 121, 122, 123 and ASIO programs (121) to process audio data output from the plurality of audio application programs 110. A user-level driver unit 120 configured to augment the package of 125) in a multilayer to configure a virtual driver; A plurality of first drivers 121, 122, 123 and a plurality of direct buffers 210 respectively corresponding to the plurality of ASIO programs 125 are provided, and the plurality of first drivers 121, 122, 123 and ASIO programs ( 125) as a direct control unit 200 that receives audio data individually and processes output and input path flow of audio data by copying data between a plurality of direct buffers 210, in accordance with a user-selected input through a software menu A direct control unit 200 configured to switch the data copy path between the direct buffers 210 and to process a single layer by integrating a plurality of driver programs implemented in a multilayer virtual driver; A kernel-level driver unit 130 having a plurality of DMA channels 131 and receiving audio data from one or more direct buffers 210 under the control of the direct control unit 200 to directly process the CPU without going through the CPU of the computer device; It is configured to include.

이때, 커널레벨 드라이버부(130)는 유저레벨 드라이버부(120)의 가상 채널에 대응하여 DMA 채널을 가상으로 오그먼트 설정하도록 구성될 수 있다.In this case, the kernel-level driver unit 130 may be configured to virtually augment the DMA channel corresponding to the virtual channel of the user-level driver unit 120.

또한, 다이렉트 제어부(200)는 복수의 ASIO 프로그램(125)에 대응하는 복수의 다이렉트 버퍼(210)에 대하여 버퍼 데이터 값을 모니터링하여 가상 채널에 대한 모니터링 데이터를 생성하여 디스플레이 출력하도록 구성될 수 있다.In addition, the direct control unit 200 may be configured to monitor buffer data values of a plurality of direct buffers 210 corresponding to a plurality of ASIO programs 125 to generate monitoring data for a virtual channel and display the output data.

또한, 제 1 드라이버(121, 122, 123)는 MME 프로그램(121), WDM 프로그램(122), DirectSound 프로그램(123) 중 하나이상을 포함하여 구성될 수 있다.Also, the first drivers 121, 122, and 123 may include one or more of the MME program 121, the WDM program 122, and the DirectSound program 123.

본 발명에 의하면 외부 케이블을 통해 아날로그 입출력 포트를 연결할 필요 없이 소프트웨어 설정에 따른 다이렉트 버퍼 제어를 통해 디지털 오디오 데이터를 드라이버 간에 직접 연결할 수 있어 음질과 데이터의 손실없이 각 응용 프로그램의 데이터를 손쉽게 교환할 수 있고 이를 통해 컴퓨터 장치에서 고품질 오디오 컨텐츠를 생성할 수 있는 장점이 있다.According to the present invention, digital audio data can be directly connected between drivers through direct buffer control according to software settings without the need to connect an analog input / output port through an external cable, so data of each application can be easily exchanged without losing sound quality and data. There is an advantage in that high-quality audio content can be generated in a computer device.

특히, 본 발명에 따르면 오디오 드라이버와 관련하여 가상 채널과 가상 드라이버를 오그먼트함으로써 오디오 데이터 처리 형태를 하드웨어 사양에 제한받지 않고 유연하게 설정하는 것이 가능하고, 이를 통해 여러 오디오 처리 시스템을 장만할 필요없이 컴퓨터 장치 한대에서 여러 오디오 응용 프로그램을 실행하고 다이렉트 버퍼 제어함으로써 사용자가 소망하는 임의의 형태로 유연하게 고품질 오디오 컨텐츠를 생성할 수 있는 장점이 있다. In particular, according to the present invention, it is possible to flexibly set the audio data processing form without being limited by hardware specifications by augmenting a virtual channel and a virtual driver in connection with the audio driver, thereby eliminating the need to purchase multiple audio processing systems. There is an advantage in that high-quality audio content can be flexibly generated in any shape desired by a user by executing multiple audio applications on one computer device and controlling direct buffer.

이는 고품질 오디오 컨텐츠 제작에 필요한 비용 부담을 감소시켜 많은 사람들, 예컨대 1인 방송 크리에이터가 콘텐츠 제작에 소요되는 비용 부담을 걱정하지 않고 자신의 창조성을 마음껏 발휘할 수 있는 기반을 마련해주며, 이를 통해 컨텐츠 산업 발전에 기여할 수 있는 장점이 있다.This reduces the cost burden for producing high-quality audio content, providing a foundation for many people, such as single broadcast creators, to show their creativity to the fullest without worrying about the cost of content creation. There is an advantage that can contribute to.

[도 1]은 종래기술에 따른 오디오데이터 처리 장치의 내부 기능적 구성을 도시한 블록도.
[도 2]는 본 발명에 따른 오디오데이터 처리 장치의 내부 기능적 구성을 도시한 블록도.
[도 3]은 본 발명에서 오디오데이터 처리 장치의 동작 환경을 설정하기 위한 소프트웨어 메뉴 화면의 일 예를 나타내는 도면.
[도 4]는 본 발명에서 오디오데이터 처리 장치의 내부 연결을 설정하기 위한 소프트웨어 메뉴 화면의 일 예를 나타내는 도면.
1 is a block diagram showing the internal functional configuration of an audio data processing apparatus according to the prior art.
2 is a block diagram showing the internal functional configuration of an audio data processing apparatus according to the present invention.
3 is a diagram showing an example of a software menu screen for setting an operating environment of an audio data processing apparatus in the present invention.
4 is a diagram showing an example of a software menu screen for setting an internal connection of an audio data processing apparatus in the present invention.

이하에서는 도면을 참조하여 본 발명을 상세하게 설명한다.Hereinafter, the present invention will be described in detail with reference to the drawings.

[도 2]는 본 발명에 따른 오디오데이터 처리 장치의 내부 기능적 구성을 도시한 블록도이다. 2 is a block diagram showing an internal functional configuration of an audio data processing apparatus according to the present invention.

[도 2]를 참조하면, 본 발명의 오디오데이터 처리 장치는 복수의 오디오 응용 프로그램(110)과, 오디오 데이터에 대한 하나이상의 A/D 컨버터(141) 및 D/A 컨버터(142)를 구비하는 사운드카드(140)와, 외부로부터 아날로그 신호를 입력받아 사운드카드(140)로 제공하는 아날로그 입력채널(151)과, 사운드카드(140)에서 출력되는 아날로그 데이터를 출력하는 아날로그 출력채널(152)과 연동하여 오디오데이터를 처리하는 장치로서, 유저레벨 드라이버부(120)와 다이렉트 제어부(200)와 커널레벨 드라이버부(130)를 포함하여 구성된다.Referring to FIG. 2, the audio data processing apparatus of the present invention includes a plurality of audio application programs 110 and one or more A / D converters 141 and D / A converters 142 for audio data. Sound card 140, an analog input channel 151 that receives an analog signal from the outside and provides it to the sound card 140, and an analog output channel 152 that outputs analog data output from the sound card 140. As an apparatus for processing audio data in cooperation, it includes a user level driver unit 120, a direct control unit 200, and a kernel level driver unit 130.

먼저, 유저레벨 드라이버부(120)는 복수의 오디오 응용 프로그램(110)에서 각각 출력되는 오디오데이터를 제공받아 개별적으로 녹음 또는 재생하는 복수의 드라이버 프로그램를 구비하여 구성된다.First, the user-level driver unit 120 is configured to include a plurality of driver programs that individually receive or record audio data output from the plurality of audio application programs 110 to record or reproduce.

이와 같은 복수의 드라이버 프로그램은 오디오데이터를 윈도우 오디오 엔진(124)을 경유하여 처리하는 복수의 제 1 드라이버(121, 122, 123) 및 오디오데이터를 윈도우 오디오 엔진(124)과는 별도 채널로 처리하는 복수의 ASIO 프로그램(125)을 포함하여 구성된다. 이와 같은 제 1 드라이버(121, 122, 123)로는 MME 프로그램(121), WDM 프로그램(122), DirectSound 프로그램(123)를 들 수 있으며, 그 외에도 다양한 프로그램이 가능하다.Such a plurality of driver programs process a plurality of first drivers 121, 122, and 123 that process audio data through the Windows audio engine 124 and audio data through a separate channel from the Windows audio engine 124. It comprises a plurality of ASIO program 125. Examples of the first drivers 121, 122, and 123 include the MME program 121, the WDM program 122, and the DirectSound program 123, and various other programs are possible.

이때, ASIO 프로그램(125)은 오디오 응용 프로그램(110)의 기능을 지원하기 위해 소프트웨어로 오그먼트되어 가상 채널(virtual channels)을 구성하는 하나이상의 ASIO 프로그램(125)을 포함한다. 이러한 가상 채널을 통해, 본 발명에 따른 오디오데이터 처리 장치가 지원하는 채널 갯수가 하드웨어 사양에 제한받지 않고 임의로 설정될 수 있다. 한편, 본 명세서에서 오그먼트(augment)는 소프트웨어 처리를 통하여 쌓아올려졌다는 의미로 사용되었다.At this time, the ASIO program 125 includes one or more ASIO programs 125 that are configured with software and constitute virtual channels to support the functions of the audio application program 110. Through this virtual channel, the number of channels supported by the audio data processing apparatus according to the present invention can be arbitrarily set without being limited by hardware specifications. On the other hand, in this specification, the augment (augment) was used to mean that it was built up through software processing.

또한, 제 1 드라이버(121, 122, 123)와 ASIO 프로그램(125)의 패키지는 개념적으로 하나의 층(layer)으로 모델링할 수 있는데, 본 발명에서는 이들 패키지를 다층으로 오그먼트하여 가상 드라이버를 구성할 수 있다. ASIO 프로그램(125)을 사용하는 오디오 응용 프로그램(110) 중에서는 오디오 드라이버의 ASIO 프로그램(125) 전체를 점유하는 것들이 존재한다. 따라서, 이러한 특성을 갖는 오디오 응용 프로그램(110)이 존재하더라도 아무런 문제없이 복수의 오디오 응용 프로그램(110)에서 출력되는 오디오데이터를 연결 처리하기 위해 제 1 드라이버(121, 122, 123)과 ASIO 프로그램(125)의 패키지를 다층(multi-layer)으로 오그먼트하여 가상 드라이버를 구성하는 것이다. 한개 층의 ASIO 프로그램(125) 전체를 점유하는 오디오 응용 프로그램(110)이 존재하면 다른 응용 프로그램(110)은 다른 층에서 ASIO 프로그램(예: 126)을 활용하면 된다. 기술내용의 파악을 편리하게 하기 위하여 다른 층에 속하는 ASIO 프로그램에 대해서는 다른 넘버링을 붙였다. 그리고, 최상층이 아닌 아래 층에 속하는 ASIO 프로그램(126 ~ 128)을 사용하는 데이터 경로에 대해서는 점선을 사용하였다.In addition, the packages of the first drivers 121, 122, and 123 and the ASIO program 125 may be conceptually modeled as one layer. In the present invention, the virtual drivers are configured by augmenting these packages in multiple layers. can do. Among the audio application programs 110 using the ASIO program 125, there are those that occupy the entire ASIO program 125 of the audio driver. Therefore, even if there is an audio application program 110 having such characteristics, the first drivers 121, 122, 123 and the ASIO program (in order to process the audio data output from the plurality of audio application programs 110 without any problems) The virtual driver is configured by augmenting the package of 125) into a multi-layer. If there is an audio application program 110 that occupies the entirety of the ASIO program 125 in one layer, the other application program 110 may utilize an ASIO program (eg, 126) in another layer. In order to make it easier to grasp the technical content, different numbering was assigned to ASIO programs belonging to different layers. In addition, dotted lines are used for data paths using ASIO programs (126 to 128) belonging to the lower layer rather than the uppermost layer.

한편, [도 2]에서는 개념상 구분을 위하여, 제 1 드라이버(121, 122, 123)를 활용하는 오디오 응용 프로그램(110)을 제 1 오디오 어플 그룹(111)이라고 표시하고, ASIO 프로그램(125)을 활용하는 오디오 응용 프로그램(110)을 제 2 오디오 어플 그룹(112)이라고 표시하였다.On the other hand, in FIG. 2, for conceptual separation, an audio application program 110 using the first drivers 121, 122, and 123 is displayed as a first audio application group 111, and the ASIO program 125 The audio application program 110 that utilizes is marked as the second audio application group 112.

다이렉트 제어부(200)는 복수의 제 1 드라이버(121, 122, 123) 및 복수의 ASIO 프로그램(125)에 각각 대응하는 복수의 다이렉트 버퍼(210)를 구비한다. 이들 복수의 다이렉트 버퍼(210)는 복수의 제 1 드라이버(121, 122, 123) 및 ASIO 프로그램(125)으로부터 개별적으로 오디오데이터를 입력받아 임시 저장하며, 다이렉트 버퍼들(210) 간의 데이터 복사를 통해 오디오데이터의 출력과 입력 경로 흐름을 내부적으로 처리한다. 이때, 다이렉트 버퍼(210) 간의 데이터 복사 경로는 소프트웨어 메뉴를 통한 사용자 선택 입력에 따라 스위칭 설정하므로 유연한 오디오 데이터 처리가 가능하다. The direct control unit 200 includes a plurality of first drivers 121, 122, and 123, and a plurality of direct buffers 210 respectively corresponding to the plurality of ASIO programs 125. The plurality of direct buffers 210 individually receive audio data from a plurality of first drivers 121, 122, and 123 and the ASIO program 125 and temporarily store them. Through data copying between the direct buffers 210, The audio data output and input path flow are processed internally. At this time, since the data copy path between the direct buffers 210 is switched according to a user selection input through a software menu, flexible audio data processing is possible.

이때, [도 3]은 본 발명에서 오디오데이터 처리 장치의 동작 환경을 설정하기 위한 소프트웨어 메뉴 화면의 일 예를 나타내는 도면이고, [도 4]는 본 발명에서 오디오데이터 처리 장치의 내부 연결을 설정하기 위한 소프트웨어 메뉴 화면의 일 예를 나타내는 도면이다. [도 3]과 [도 4]에서 물리적 채널은 입력 2채널과 출력 2채널로 이루어져 있으며, 가상 채널은 6개 채널로 이루어져있다. 이와 같은 사용자 메뉴 상에서 사용자는 예컨대 마우스 조작을 통하여 복수의 오디오 응용 프로그램(110) 간의 오디오 데이터 연결 관계(associations)을 정의할 수 있으며, 그에 대응하는 오디오데이터의 출력과 입력 경로 흐름을 구현하도록 다이렉트 버퍼들(210) 간의 데이터 복사가 이루어진다.At this time, [Figure 3] is a diagram showing an example of a software menu screen for setting the operating environment of the audio data processing apparatus in the present invention, [Figure 4] is setting the internal connection of the audio data processing apparatus in the present invention This is a diagram showing an example of a software menu screen. In [FIG. 3] and [FIG. 4], the physical channel consists of 2 input channels and 2 output channels, and the virtual channel consists of 6 channels. On such a user menu, a user can define audio data associations between a plurality of audio applications 110 through, for example, a mouse operation, and direct buffers to implement output and input path flows of corresponding audio data. Data is copied between the fields 210.

[도 3]을 참조하면, 6개 가상 채널의 입력 및 출력에 대하여 오디오 신호 모니터링 디스플레이가 제공된다. 이를 위해 다이렉트 제어부(200)는 복수의 ASIO 프로그램(125)에 대응하는 복수의 다이렉트 버퍼(210)에 대하여 버퍼 데이터 값을 모니터링하여 각각의 가상 채널에 입력 및 출력되는 오디오 데이터에 대한 모니터링 데이터를 생성한다.Referring to FIG. 3, an audio signal monitoring display is provided for inputs and outputs of six virtual channels. To this end, the direct control unit 200 monitors buffer data values of a plurality of direct buffers 210 corresponding to a plurality of ASIO programs 125 to generate monitoring data for audio data input and output to each virtual channel. do.

또한, 다이렉트 제어부(200)는 다층의 가상 드라이버에 구현된 복수의 드라이버 프로그램을 통합하여 단일 층으로 처리한다. 다이렉트 버퍼들(210) 간의 데이터 복사를 수행하므로 단일 층으로 처리하는 것이 버퍼 관리 측면에서 더 바람직하다. 유저레벨 드라이버부(120)와의 일대일 매칭을 위하여 동일한 다층 구성으로 모델링하는 것을 배제하는 것은 아니지만, 이 경우에도 실질적으로는 단일 층으로 처리하는 것과 실질적으로는 차이가 나지 않는다.In addition, the direct control unit 200 processes a single layer by integrating a plurality of driver programs implemented in a multilayer virtual driver. Since data is copied between the direct buffers 210, it is more preferable in terms of buffer management to process it as a single layer. Modeling in the same multi-layer configuration for one-to-one matching with the user-level driver unit 120 is not excluded, but even in this case, there is practically no difference from processing as a single layer.

커널레벨 드라이버부(130)는 복수의 DMA 채널(131)을 구비하여 다이렉트 제어부(200)의 제어에 따라 하나이상의 다이렉트 버퍼(210)로부터 오디오데이터를 제공받아 컴퓨터 장치의 CPU를 거치지 않고 직접 처리하는 구성요소이다. 이때, 커널레벨 드라이버부(130)는 유저레벨 드라이버부(120)의 가상 채널에 대응하여 DMA 채널을 가상으로 오그먼트 설정한 것이 바람직하다.The kernel-level driver unit 130 is provided with a plurality of DMA channels 131 to receive audio data from one or more direct buffers 210 under the control of the direct control unit 200 to directly process it without going through the CPU of the computer device. It is a component. At this time, it is preferable that the kernel level driver unit 130 virtually sets the DMA channel corresponding to the virtual channel of the user level driver unit 120.

한편, 본 명세서에서 사용된 몇가지 용어에 대해 설명한다.Meanwhile, some terms used in the present specification will be described.

MME(Multimedia Extensions, Multimedia Engine, 121)은 오디오와 비디오를 동시에 녹음 및 재생 가능하게 해주는 프로그램이다.MME (Multimedia Extensions, Multimedia Engine, 121) is a program that enables simultaneous recording and playback of audio and video.

WDM(Windows Driver Model, 122)은 마이크로소프트의 윈도우즈 환경에서 사용가능하도록 하자는 취지로 만든 드라이버 규격으로 윈도우즈 환경에서 디바이스 드라이버를 작성하는 방법을 획일화하였다. [도 1]과 [도 2]에서 WDM(122)은 이러한 규격에 따라 작성된 드라이버 프로그램이다.WDM (Windows Driver Model, 122) is a driver specification made with the intention of being usable in Microsoft's Windows environment, and has unified the method of writing device drivers in the Windows environment. 1 and 2, WDM 122 is a driver program written according to these standards.

ASIO(Audio Stream Input/Output, 125 ~ 128)는 독일의 스타인버그사에 의해 구체화 된 소프트웨어와 사운드 카드간 낮은 레이턴시와 높은 해상도의 인터페이스를 제공하는 디지털 오디오를 위한 컴퓨터 사운드카드 드라이버 프로토콜이다. 마이크로소프트의 다이렉트사운드는 일반적으로 일반 사용자들의 스테레오 입출력에 사용되는 반면, ASIO는 음악가들과 사운드 엔지니어들을 외장 하드웨어 대신 윈도 컴퓨터 소프트웨어를 통해 오디오 처리를 가능하게 한다.ASIO (Audio Stream Input / Output, 125 to 128) is a computer sound card driver protocol for digital audio that provides a low-latency and high-resolution interface between software and sound cards embodied by Steinberg, Germany. Microsoft's DirectSound is generally used for stereo input and output for the average user, while ASIO enables musicians and sound engineers to process audio through Windows computer software instead of external hardware.

본 발명에서 하나의 오디오 드라이버 안에 오디오 채널을 가상으로 늘렸을 때의 장점을 설명한다.The advantages of virtually extending the audio channel in one audio driver in the present invention will be described.

종래기술에 대한 오디오 데이터 처리 솔루션은 일반적으로 오디오 드라이버와 DirectWiRE Router & Mixer 상의 오디오 채널의 수와 오디오 하드웨어 입출력 갯수가 적거나 같았다. 오디오 하드웨어의 물리적 입출력 갯수와 상관 없이 가상채널을 생성하면 오디오 데이터의 처리 채널이 가상으로 증가하는 결과가 이루어지며, 이를 통해 오디오 드라이버 상의 기본 입출력 채널과 상관없이 가상 채널로 오디오 어플리케이션 오디오 신호를 또다른 오디오 어플리케이션에 대한 입출력으로 라우팅하는 것이 가능하다. 이를 통해, 오디오 데이터를 처리하는 복수의 어플리케이션들의 장점을 동시에 최대한 활용할 수 있다.The audio data processing solutions of the prior art generally have the same or fewer audio channels and audio hardware inputs and outputs on the audio driver and DirectWiRE Router & Mixer. Creating a virtual channel regardless of the number of physical inputs and outputs of the audio hardware results in a virtual increase in the processing channel of the audio data, and through this, the audio application audio signal is sent to another virtual channel regardless of the basic input / output channel on the audio driver. It is possible to route to input and output for audio applications. Through this, it is possible to simultaneously utilize the advantages of a plurality of applications that process audio data.

다음으로, 본 발명에서 하나의 오디오 하드웨어에 오디오 드라이버를 가상으로 늘렸을 때의 장점을 설명한다.Next, the advantage of virtually extending the audio driver to one audio hardware in the present invention will be described.

WDM 드라이버(122)는 멀티클라이언트 기능을 제공해서 여러 애플리케이션이 하나의 WDM 드라이버를 동시에 점유할 수 있으므로 전술하였던 가상채널을 활용하는 것만으로도 폭넓고 다양한 실시간 오디오 작업을 할 수 있다. 그러나, WDM 드라이버(122)는 데이터 처리 성능이 떨어지기 때문에 실제 현업에서 오디오 전문가들은 WDM 드라이버를 사용하지 않는다. 오디오 전문가들이 사용하는 음악작업용 어플리케이션(ASIO Host or DAW)은 대부분 ASIO 프로그램(125) 기반으로 동작하는데, 이는 ASIO 프로그램(125)이 실시간 오디오 전송 및 오디오 데이터 처리 성능이 다른 드라이버 프로그램에 비해 탁월하기 때문이다. Since the WDM driver 122 provides a multi-client function, multiple applications can simultaneously occupy a single WDM driver, so that a wide variety of real-time audio operations can be performed by simply using the aforementioned virtual channel. However, since the data processing performance of the WDM driver 122 is poor, in the actual field, audio experts do not use the WDM driver. Most music applications (ASIO Host or DAW) used by audio experts operate based on the ASIO program 125, because the ASIO program 125 has superior real-time audio transmission and audio data processing performance compared to other driver programs. to be.

그러나 ASIO 프로그램(125)은 일반적으로 멀티클라이언트를 지원하지 않으며 일부 멀티클라이언트를 지원하는 경우에도 만일 멀티클라이언트로 동작하면 드라이버 동작 성능이 대폭 저하된다. 그에 따라, 오디오 처리 분야에서 하나의 ASIO 프로그램(125)는 복수의 애플리케이션을 설정하지 않는 것이 상식으로 되어 있으며, 그에 따라 ASIO 프로그램(125)을 전용하는 오디오 응용 프로그램(110)도 다수 존재한다. However, the ASIO program 125 generally does not support multi-clients, and even if some multi-clients are supported, if the multi-client operates, the driver performance is greatly reduced. Accordingly, it is common knowledge that one ASIO program 125 does not set a plurality of applications in the audio processing field, and accordingly, there are many audio application programs 110 dedicated to the ASIO program 125.

이에, 본 발명에서는 하나의 오디오 하드웨어에 ASIO 오디오 드라이버를 가상으로 늘려 설정하도록 구성한다. 이를 통해, 여러 전문가용 오디오 어플리케이션(110)을 동시에 실행하고 이들 간에 오디오 데이터를 연결(association) 처리함으로써 전문가들의 오디오 음악 작업을 완전히 바꾸려고 한다. 즉, 각 프로용 오디오 어플리케이션의 장점을 동시에 활용할 수 있게 되어 오디오 컨텐츠의 창작 환경이 현저히 업그레이드 된다.Accordingly, in the present invention, the ASIO audio driver is virtually stretched and set in one audio hardware. Through this, several professional audio applications 110 are executed at the same time, and audio data is connected between them, thereby attempting to completely change the audio music work of experts. In other words, it is possible to utilize the advantages of each professional audio application at the same time, thereby significantly upgrading the creative environment of audio content.

첫번째 예를 들면, 가상 채널로 개인방송시, 백그라운드 음악, 개인 멘트, 오디오에코 등의 오디오 이펙트들을 각기 다른 채널에 지정 후 다이렉트와이어로 실시간 처리하여 믹싱 후 송출하고, 다이렉트와이어에 있는 레벨미터링 기능으로 각 채널별 오디오 레벨을 개별적으로 모니터링할 수 있다.For the first example, when broadcasting personally as a virtual channel, audio effects such as background music, personal comments, and audio are assigned to different channels, processed in real-time by direct wires, mixed and transmitted, and with the level metering function in direct wires. The audio level of each channel can be monitored individually.

두버째 예를 들면, 가상 드라이버로 두개의 전문가용 DAW(Digital Audio Workstation) 어플리케이션 및 VST Host 어플리케이션을 활용할 수 있다. 예컨대 StudioOne Prime이라는 유명한 무료 DAW 어플리케이션은 무한대의 오디오 트랙을 제공하나 VST 라는 가상이펙트나 가상악기들을 지원하는 VST Host 기능을 제공하지 못한다. Tracktion이라는 유명한 무료 DAW 어플리케이션은 무한대의 오디오 트랙을 제공하고 VST 라는 가상이펙트나 가상악기도 지원하나 오디오믹서 환경이 부실해서 사용자가 사용을 포기할 정도이다. Live Professor라는 무료 어플리케이션은 제대로된 VST Host 기능과 믹서 기능을 제공하는데, 이런 VST Host들은 오디오 녹음재생 기능이 없다는 단점이 있다. 본 발명에 따르면 두개의 가상 ASIO 프로그램로 각 DAW 어플 및 VST Host 어플리케이션을 설정해서 양쪽 어플의 오디오 신호가 실시간으로 입출력되게 구성할 수 있다.As a second example, two professional digital audio workstation (DAW) applications and VST host applications can be used as virtual drivers. For example, the famous free DAW application called StudioOne Prime provides infinite audio tracks, but it does not provide VST Host function that supports virtual effects or virtual instruments called VST. The famous free DAW application called Tracktion provides infinite audio tracks and supports virtual effects or virtual instruments called VST, but the audio mixer environment is inadequate, so users give up using it. A free application called Live Professor provides the proper VST Host function and mixer function, but these VST Hosts have the disadvantage of not having an audio recording and playback function. According to the present invention, by setting each DAW application and VST Host application with two virtual ASIO programs, audio signals of both applications can be configured to be input and output in real time.

한편, 본 발명은 컴퓨터가 읽을 수 있는 비휘발성 기록매체에 컴퓨터가 읽을 수 있는 코드의 형태로 구현되는 것이 가능하다. 이러한 비휘발성 기록매체로는 다양한 형태의 스토리지 장치가 존재하는데 예컨대 하드디스크, SSD, CD-ROM, NAS, 자기테이프, 웹디스크, 클라우드 디스크 등이 있고 네트워크로 연결된 다수의 스토리지 장치에 코드가 분산 저장되고 실행되는 형태도 구현될 수 있다. 또한, 본 발명은 하드웨어와 결합되어 특정의 절차를 실행시키기 위하여 매체에 저장된 컴퓨터프로그램의 형태로 구현될 수도 있다.On the other hand, the present invention can be implemented in the form of computer-readable code on a computer-readable non-volatile recording medium. There are various types of storage devices such as hard disks, SSDs, CD-ROMs, NAS, magnetic tapes, web disks, cloud disks, etc., and codes are distributed and stored in multiple networked storage devices. It can also be implemented as a form of execution. In addition, the present invention may be implemented in the form of a computer program stored in a medium in order to execute a specific procedure in combination with hardware.

100 : 오디오데이터 처리 장치
110, 111, 112 : 오디오 응용 프로그램
120 : 유저레벨 드라이버부
121 : MME 프로그램
122 : WDM 프로그램
123 : DirectSound 프로그램
124 : 윈도우즈 오디오 엔진
125 : ASIO 프로그램
129 : GSIF 프로그램
130 : 커널레벨 드라이버부
131 : DMA 채널
140 : 사운드카드
141 : A/D 컨버터(ADC)
142 : D/A 컨버터(DAC)
151 : 아날로그 입력채널
152 : 아날로그 출력채널
200 : 다이렉트 제어부
210 : 다이렉트 버퍼(DBF)
100: audio data processing device
110, 111, 112: audio application
120: user level driver unit
121: MME program
122: WDM program
123: DirectSound program
124: Windows audio engine
125: ASIO program
129: GSIF program
130: kernel level driver unit
131: DMA channel
140: sound card
141: A / D converter (ADC)
142: D / A converter (DAC)
151: analog input channel
152: analog output channel
200: direct control
210: direct buffer (DBF)

Claims (4)

복수의 오디오 응용 프로그램(110)과, 오디오 데이터에 대한 하나이상의 A/D 컨버터(141) 및 D/A 컨버터(142)를 구비하는 사운드카드(140)와, 외부로부터 아날로그 신호를 입력받아 상기 사운드카드(140)로 제공하는 아날로그 입력채널(151)과, 상기 사운드카드(140)에서 출력되는 아날로그 데이터를 출력하는 아날로그 출력채널(152)과 연동하여 오디오데이터를 처리하는 장치로서,
상기 복수의 오디오 응용 프로그램(110)에서 각각 출력되는 오디오데이터를 제공받아 개별적으로 녹음 또는 재생하는 복수의 드라이버 프로그램를 구비하는 유저레벨 드라이버부(120)로서, 상기 복수의 드라이버 프로그램은 상기 오디오데이터를 윈도우 오디오 엔진(124)을 경유하여 처리하는 복수의 제 1 드라이버(121, 122, 123) 및 상기 오디오데이터를 윈도우 오디오 엔진(124)과는 별도 채널로 처리하는 복수의 ASIO 프로그램(125)을 포함하여 구성되고, 상기 복수의 ASIO 프로그램(125)은 상기 오디오 응용 프로그램(110)의 기능을 지원하기 위해 소프트웨어로 오그먼트(augment)되어 가상 채널을 구성하는 하나이상의 ASIO 프로그램(125)을 포함하고, 상기 복수의 드라이버 프로그램은 상기 복수의 오디오 응용 프로그램(110)에서 출력되는 오디오데이터를 연결 처리하기 위해 상기 제 1 드라이버(121, 122, 123)과 상기 ASIO 프로그램(125)의 패키지를 다층으로 오그먼트하여 가상 드라이버를 구성하는 유저레벨 드라이버부(120);
상기 복수의 제 1 드라이버(121, 122, 123) 및 상기 복수의 ASIO 프로그램(125)에 각각 대응하는 복수의 다이렉트 버퍼(210)를 구비하여 상기 복수의 제 1 드라이버(121, 122, 123) 및 상기 ASIO 프로그램(125)으로부터 개별적으로 오디오데이터를 입력받아 상기 복수의 다이렉트 버퍼(210) 간의 데이터 복사를 통해 상기 오디오데이터의 출력과 입력 경로 흐름을 처리하는 다이렉트 제어부(200)로서, 소프트웨어 메뉴를 통한 사용자 선택 입력에 따라 상기 복수의 다이렉트 버퍼(210) 간의 데이터 복사 경로를 스위칭 설정하고, 상기 다층의 가상 드라이버에 구현된 상기 복수의 드라이버 프로그램을 통합하여 단일 층으로 처리하도록 구성된 다이렉트 제어부(200);
복수의 DMA 채널(131)을 구비하여 상기 다이렉트 제어부(200)의 제어에 따라 하나이상의 다이렉트 버퍼(210)로부터 오디오데이터를 제공받아 컴퓨터 장치의 CPU를 거치지 않고 직접 처리하는 커널레벨 드라이버부(130);
를 포함하여 구성되는 가상채널과 가상드라이버를 이용한 오디오데이터 처리 장치.
Sound card 140 including a plurality of audio application programs 110, one or more A / D converters 141 and D / A converters 142 for audio data, and an analog signal input from the outside to receive the sound A device for processing audio data in conjunction with an analog input channel (151) provided as a card (140) and an analog output channel (152) outputting analog data output from the sound card (140),
A user-level driver unit 120 having a plurality of driver programs that individually receive or output audio data output from the plurality of audio application programs 110, and the plurality of driver programs window the audio data. It includes a plurality of first drivers (121, 122, 123) for processing via the audio engine 124 and a plurality of ASIO programs 125 for processing the audio data in a separate channel from the Windows audio engine (124) Configured, the plurality of ASIO programs 125 includes one or more ASIO programs 125 configured to configure a virtual channel by augmenting with software to support the functions of the audio application program 110, and The plurality of driver programs connect and process audio data output from the plurality of audio application programs 110. To the first driver (121, 122, 123) and user-level driver 120 to the augment to the package of the ASIO program 125, a multi-layered configuration a virtual driver;
The plurality of first drivers 121, 122, and 123 and a plurality of direct buffers 210 corresponding to the plurality of ASIO programs 125 are provided, respectively, and the plurality of first drivers 121, 122, 123, and As a direct control unit 200 that receives audio data individually from the ASIO program 125 and processes the output and input path flow of the audio data through data copying between the plurality of direct buffers 210, through a software menu A direct control unit 200 configured to switch a data copy path between the plurality of direct buffers 210 according to a user selection input and to process the plurality of driver programs implemented in the multi-layer virtual driver into a single layer;
Kernel-level driver unit 130 provided with a plurality of DMA channels 131 and receiving audio data from one or more direct buffers 210 under the control of the direct control unit 200 to directly process it without going through a CPU of a computer device ;
Audio data processing apparatus using a virtual channel and a virtual driver configured to include.
청구항 1에 있어서,
상기 커널레벨 드라이버부(130)는 상기 유저레벨 드라이버부(120)의 가상 채널에 대응하여 상기 DMA 채널을 가상으로 오그먼트 설정한 것을 특징으로 하는 가상채널과 가상드라이버를 이용한 오디오데이터 처리 장치.
The method according to claim 1,
The kernel-level driver unit 130 is configured to virtually augment the DMA channel corresponding to the virtual channel of the user-level driver unit 120, the audio data processing apparatus using a virtual channel and a virtual driver.
청구항 2에 있어서,
상기 다이렉트 제어부(200)는 상기 복수의 ASIO 프로그램(125)에 대응하는 상기 복수의 다이렉트 버퍼(210)에 대하여 버퍼 데이터 값을 모니터링하여 상기 가상 채널에 대한 모니터링 데이터를 생성하여 디스플레이 출력하는 것을 특징으로 하는 가상채널과 가상드라이버를 이용한 오디오데이터 처리 장치.
The method according to claim 2,
The direct control unit 200 monitors buffer data values of the plurality of direct buffers 210 corresponding to the plurality of ASIO programs 125, generates monitoring data for the virtual channel, and displays the output data. Audio data processing device using virtual channel and virtual driver.
청구항 3에 있어서,
상기 제 1 드라이버(121, 122, 123)는 MME 프로그램(121), WDM 프로그램(122), DirectSound 프로그램(123) 중 하나이상을 포함하여 구성되는 것을 특징으로 하는 가상채널과 가상드라이버를 이용한 오디오데이터 처리 장치.
The method according to claim 3,
The first driver (121, 122, 123) comprises an MME program 121, WDM program 122, DirectSound program (123) comprises one or more of the virtual channel and audio data using the virtual driver Processing unit.
KR1020180120141A 2018-10-10 2018-10-10 audio data processing apparatus by use of virtual channels and virtual drivers KR102094707B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180120141A KR102094707B1 (en) 2018-10-10 2018-10-10 audio data processing apparatus by use of virtual channels and virtual drivers

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180120141A KR102094707B1 (en) 2018-10-10 2018-10-10 audio data processing apparatus by use of virtual channels and virtual drivers

Publications (1)

Publication Number Publication Date
KR102094707B1 true KR102094707B1 (en) 2020-03-30

Family

ID=70003404

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180120141A KR102094707B1 (en) 2018-10-10 2018-10-10 audio data processing apparatus by use of virtual channels and virtual drivers

Country Status (1)

Country Link
KR (1) KR102094707B1 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040064210A1 (en) * 2002-10-01 2004-04-01 Puryear Martin G. Audio driver componentization
US7561932B1 (en) * 2003-08-19 2009-07-14 Nvidia Corporation System and method for processing multi-channel audio
US20100048133A1 (en) * 2007-02-13 2010-02-25 Ivt (Beijing) Software Technology, Inc. Audio data flow input/output method and system
KR20140015195A (en) * 2012-07-24 2014-02-06 주식회사 엘지씨엔에스 Sound control system and method as the same
JP2014027595A (en) * 2012-07-30 2014-02-06 Yamaha Corp Acoustic signal processing method and audio signal processing system
US20150281752A1 (en) * 2014-03-31 2015-10-01 Arris Enterprises, Inc. Adaptive streaming transcoder synchronization

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040064210A1 (en) * 2002-10-01 2004-04-01 Puryear Martin G. Audio driver componentization
US7561932B1 (en) * 2003-08-19 2009-07-14 Nvidia Corporation System and method for processing multi-channel audio
US20100048133A1 (en) * 2007-02-13 2010-02-25 Ivt (Beijing) Software Technology, Inc. Audio data flow input/output method and system
KR20140015195A (en) * 2012-07-24 2014-02-06 주식회사 엘지씨엔에스 Sound control system and method as the same
JP2014027595A (en) * 2012-07-30 2014-02-06 Yamaha Corp Acoustic signal processing method and audio signal processing system
US20150281752A1 (en) * 2014-03-31 2015-10-01 Arris Enterprises, Inc. Adaptive streaming transcoder synchronization

Similar Documents

Publication Publication Date Title
CN101405790B (en) Simultaneous sharing of system resources by multiple input devices
US11119724B2 (en) Standalone disk jockey console apparatus
US9922630B2 (en) System, apparatus and method for foot-operated effects
JP2516317B2 (en) Data processing system and method for loading digital signal processor.
US6665409B1 (en) Methods for surround sound simulation and circuits and systems using the same
JP2692768B2 (en) Method and apparatus for simultaneously outputting digital audio and MIDI synthetic music
US7561932B1 (en) System and method for processing multi-channel audio
JPH09502821A (en) Object-oriented audio system
US20060152398A1 (en) Digital interface for analog audio mixers
JPH09503080A (en) Multimedia data routing system
US20160125863A1 (en) Integrated high sample rate digital audio workstation with embedded converters
JPH09503081A (en) Object-oriented video system
US20140181338A1 (en) System and Method for Audio Pass-Through Between Multiple Host Computing Devices
KR102094707B1 (en) audio data processing apparatus by use of virtual channels and virtual drivers
CN101656089B (en) Apparatus and method for playing digital audio and video
US20080215763A1 (en) Graphical user interface, process, program, storage medium and computer system for arranging music
US6477177B1 (en) Multiple device access to serial data stream
WO2020075877A1 (en) Audio data processing device using virtual channel and virtual driver
Dimitrov et al. Audio Arduino-an ALSA (Advanced Linux Sound Architecture) Audio Driver for FTDI-based Arduinos.
US20060010267A1 (en) Method and apparatus for playing analog audio to multiple codec outputs
KR100521366B1 (en) apparatus for controlling audio date and method for controlling the same
US7151970B1 (en) Multiple audio DACs with PC compatibility
ES2594432T3 (en) Playback device and playback method
Baalman et al. Sharing Data in Collaborative, Interactive Performances: The SenseWorld DataNetwork.
TWI779848B (en) Switching device and switching method using the same

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant