Кіріспе
Windows операциялық жүйесі үшін бағдарламалық кітапхана. DirectSound – Microsoft DirectX кітапханасының Windows операциялық жүйесі үшін ескірген бағдарламалық компоненті, оның орнын XAudio2 басты. Ол Windows 95-тен Windows XP-ге дейінгі нұсқаларға арналған дыбыс картасы драйверлеріне төмен кешігу интерфейсін ұсынады және бірнеше аудио ағынын араластыру мен жазуды басқара алады. DirectSound бастапқыда Microsoft үшін Джон Майлз жасаған. Дыбыс картасына аудио деректерін жіберудің негізгі қызметін атқарудан басқа, DirectSound дыбысты жазу және араластыру, дыбысқа әртүрлі эффектілер қосу (мысалы, реверберация, эхо немесе фленжер), Windows 95-тен XP-ге дейін аппараттық үдетілген буферлерді пайдалану (егер дыбыс картасы аппараттық аудио үдетуді қолдаса) және дыбыстарды 3D кеңістікте орналастыру сияқты маңызды мүмкіндіктерді де ұсынады. DirectSound микрофон немесе басқа да кіріс құрылғысынан дыбысты жазуға және аудио жазу кезінде эффектілерді басқаруға да мүмкіндік береді. Ұзақ жылдар бойы дамытылғаннан кейін, қазіргі таңда DirectSound – толыққанды API және көптеген қосымша пайдалы мүмкіндіктерді ұсынады, мысалы, жоғары сапада көп арналы дыбыстарды ойнату мүмкіндігі. DirectSound бастапқыда ойындар үшін жасалған болса, бүгінде ол көптеген аудио қолданбаларда дыбысты ойнату үшін қолданылады. DirectShow дыбыс картасының аппараттық аудио үдету мүмкіндіктері болған жағдайда және олар дыбыс драйвері арқылы қолжетімді болса, DirectSound-тың аппараттық дыбыс үдету мүмкіндіктерін пайдаланады.
DirectSound is a deprecated software component of the Microsoft DirectX library for the Windows operating system, superseded by XAudio2. It provides a low latency interface to sound card drivers written for Windows 95 through Windows XP and can handle the mixing and recording of multiple audio streams. DirectSound was originally written for Microsoft by John Miles. Besides providing the essential service of passing audio data to the sound card, DirectSound provides other essential capabilities such as recording and mixing sound, adding effects to sound (e. g., reverb, echo, or flange), using hardware accelerated buffers (if the sound card supports hardware audio acceleration) in Windows 95 through XP, and positioning sounds in 3D space. DirectSound also provides a means to capture sounds from a microphone or other input and controlling capture effects during audio capture. After many years of development, today DirectSound is a mature API, and supplies many other useful capabilities, such as the ability to play multichannel sounds at high resolution. While DirectSound was designed to be used by games, today it is used to play audio in many audio applications. DirectShow uses DirectSound's hardware audio acceleration capabilities if the sound card's hardware audio acceleration capabilities exist and are exposed by the audio driver.
Ерекшеліктері
DirectSound — қолданбалар мен дыбыс картасы драйвері арасында интерфейс қамтамасыз ететін пайдаланушы режиміндегі API, бұл қолданбаларға дыбыс шығаруға және музыка ойнатуға мүмкіндік береді. DirectSound 1995 жылы енгізілген кезде революциялық болып саналды, себебі ол бірнеше бір уақыттағы аудио ағындарын қолдады және бірнеше қолданбаның дыбыс картасына бір мезгілде қол жеткізуіне мүмкіндік берді. Осыған дейін ойын жасаушылар өздерінің аудио рендеринг қозғалтқышын бағдарламалық жасақтамада жүзеге асыруға міндетті болды. DirectSound үлгілік жиілікті түрлендіруді және дыбысты араластыруды (көлем мен панораманы) шексіз аудио көздері үшін қамтамасыз етеді; алайда, нақты шектеулер аппараттық аудио көздерінің саны және бағдарламалық араластырушылардың өнімділігі болып табылады. DirectSound архитектурасы циклде үздіксіз ойнатылатын «сақиналық буфер» тұжырымын қамтиды. Бағдарламашы дыбыс буферін жасайды, содан кейін «оқу курсоры» арқылы оның күйін үнемі сұрап, «жазу курсоры» арқылы жаңартады. Буферлердің екі түрі бар: үздіксіз дыбыстарды, мысалы, фоновая музыканы сақтайтын «ағынды» буфер және қысқа дыбыстарды сақтайтын «статикалық» буфер. Қолдау көрсетілетін дыбыс карталарында DirectSound «аппараттық үдетілген» буферлерді пайдалануға тырысады, яғни дыбыс картасының жергілікті жадына орналастырылатын немесе дыбыс картасының жүйелік жадынан қол жеткізе алатын буферлерді. Егер аппараттық үдету қол жетімді болмаса, DirectSound жүйелік жадыда дыбыс буферлерін жасайды және тек бағдарламалық араластыруды қолданады. Кейбір DOS дәуірінің соңғы «толқынды» дыбыс карталары, мысалы Sound Blaster AWE32 және Gravis Ultrasound, сандық музыкалық аспаптардан алынған арнайы DSP-ге ие болды. Бұл карталарда жергілікті жад бар, оны бірнеше аудио ағынын буферлеуге және оларды тікелей картада араластыруға болады, осылайша процессордың жүктемесін азайтып, дыбыс сапасын айтарлықтай жақсартады. Алайда, бұл DOS жүйесінде тек аппаратты тікелей бағдарламалау арқылы ғана мүмкін болды, ал екі буферлеудің күрделілігіне байланысты жергілікті жадтан толыққанды «аппараттық үдету» бұл карталарда ешқашан іске асырылмады. Sound Blaster Live!, Audigy және X-Fi сияқты кейінгі карталар жүйелік жад буферлеріне тікелей қол жеткізе алады.
DirectSound3D-нің атауы
DirectSound3D (DS3D) – 1996 жылы DirectX 3 арқылы Windows жүйесінде 3D аудионы стандарттау мақсатымен енгізілген DirectSound-тың кеңейтімі. DirectSound3D бағдарламалық жасақтаманы әзірлеушілерге әр дыбыс картасы өндірушісі үшін кодты көп рет қайта жазудың орнына, бір аудио API үшін бір рет жазу арқылы аудиодан пайдалануға мүмкіндік береді. DirectX 5, Microsoft мақұлдаған әдістер арқылы DirectSound3D-ді тиімді жылдамдату үшін үшінші тараптың 3D аудио алгоритмдерін қолданатын дыбыс карталарын қолдау мүмкіндігін алды. DirectX 8-де DirectSound және DirectSound3D (DS3D) ресми түрде біріктіріліп, DirectX Audio деп аталды, бірақ API әлі де көбінесе DirectSound деп аталады.
ЕААҚ
EAX — DirectSound және DirectSound3D-ге қосымша, аппараттық жеделдетілген буферлерде дыбыс эффектілерін өңдеуді жүзеге асыратын кеңейтім.
Windows 95 жүйесі
Windows 95, 98 және Me жүйелерінде DirectSound микшерлік компоненті мен дыбыс картасының драйверлері екеуі де VxD драйвері ретінде (Dsound. vxd) жүзеге асырылды, бұл аудио жабдық пайдаланатын негізгі буферге тікелей қол жеткізуге мүмкіндік берді және осылайша пайдаланушы режиміндегі API мен жабдық арасындағы ең төменгі жайлылықты қамтамасыз етті, бірақ кейбір жағдайларда тұрақсыздыққа және көк экран қатесіне әкелді. Windows 98 WDM Audio және Kernel Audio Mixer драйверін (KMixer) енгізді, бұл жоғары сапалы үлгілік жылдамдық түрлендіруімен бірге ядролық ағындылықпен бір мезгілде аудио ағындарын цифрлық араластыруға, бағыттауға және өңдеуге мүмкіндік берді. WDM жүйесінде DirectSound деректерді бағдарламалық қамтамасыз ету негізінде KMixer-ге жібереді. Windows 98 екінші нұсқасы DirectSound аппараттық буферлеуін, DirectSound3D аппараттық абстракциясын, KMixer үлгілік жылдамдық түрлендіруін (SRC) жазу ағындары үшін, көп арналы дыбысты қолдауды және DirectMusic енгізу арқылы WDM аудио қолдауын жақсартты. Егер дыбыс жабдығы аппараттық араластыруды қолдайтын болса (оған аппараттық буферлеу немесе DirectSound аппараттық үдеткіші де дейді), DirectSound буферлері тікелей көрсету құрылғысына жіберіледі. Егер DirectSound ағыны аппараттық араластыруды қолданса, KMixer және оның жайлылық кешіктірілімі айналып өтеді. Windows 98 және Windows Me жүйелерінде WDM аудио драйверлері басымдыққа ие болды, бірақ VxD драйвер моделімен үйлесімділік сақталды. Windows Driver Model (WDM) Windows 98-ден бастап қол жетімді болғанымен, оны аудиокарта өндірушілердің азы қолданды. Ішкі буферлеуге байланысты KMixer маңызды өңдеу жайлылығын (ол кездегі жүйелерде 30 мс) енгізді. Windows 98 сонымен қатар WDM ағынды кластық драйверін (Stream. sys) осы нақты уақыттағы мультимедиалық дерек ағынын өңдеу қажеттіліктерін қанағаттандыру үшін қосты. Егер дыбыс картасы жүйемен бірге келетін порт кластық драйвері PortCls. sys-пен пайдалану үшін арнайы драйверді немесе ағынды кластық драйвермен пайдалану үшін мини-драйверді іске асырса, қолданбалар KMixer-ді толығымен айналып өтіп, жайлылықты азайту үшін кернельді ағынды интерфейстерін пайдалана алады.
Windows 2000/XP
Windows 2000 жүйесінде Microsoft, WDM аудио драйверлерін және ядролық микшер компонентін (KMixer) енгізу арқылы Windows NT-де де сол WDM негізіндегі аудио стегін іске қосты. Windows XP-де Microsoft тағы бір жетілдірілген ядролық ағын класының драйверін, AVStream-ді ұсынды. Windows XP-ден бастап USB микрофондары үшін акустикалық эхоны жою, шуды басу және микрофондар массивін қолдау сияқты DirectSound жазу эффекттерін өңдеуге аппараттық үдету қосылды.
Windows Vista/Windows 7 жүйесі
Windows Vista Universal Audio Architecture негізінде толыққанды қайта жазылған дыбыс жиынтығын ұсынады. Жаңа дизайндағы дыбыс жиынтығының архитектуралық өзгерістеріне байланысты DirectSound-тан дыбыс драйверлеріне тікелей қол жеткізу жоқ. DirectSound, DirectMusic және MME сияқты басқа API-лер WASAPI сессиясы арқылы эмуляцияланады. DirectSound Microsoft бағдарламалық микшерде эмуляциялық режимде жұмыс істейді. Эмуляторда аппараттық абстракция болмайды, сондықтан аппараттық DirectSound үдеуі жоқ, яғни DirectSound үдеуіне сүйенетін аппараттық және бағдарламалық құралдардың өнімділігі төмендеуі мүмкін. Бірақ, қолданба мен жүйедегі аппараттық құралдарға байланысты, өнімділіктегі төмендеу байқалмауы да мүмкін. DirectSound3D арқылы ойнатылатын аппараттық 3D дыбыс эффектілері ойнатылмайды, бұл EAX кеңейтімдерімен де үйлесімсіздік тудырады. ASIO және OpenAL сияқты үшінші тарап API-лері Windows Vista-дағы бұл архитектуралық өзгерістерге ұшырамайды, себебі олар дыбыс драйверімен тікелей байланыс үшін IOCtl қолданады. Аппараттық үдеулі, жоғары сапалы 3D кеңістіктік дыбыстан пайдалануды қалайтын қолданбалар үшін OpenAL пайдалану – шешім. Дегенмен, бұл тек өндіруші өз аппараттық құралы үшін OpenAL драйверін ұсынса ғана мүмкін болады.
Windows 8 жүйесі
Windows 8-дегі WASAPI аудио стегі, Vista-да пайда болған бағдарламалық өңдеуге қоса, дыбыс картасына бірнеше аудио ағынын араластыру және эффектілерді өңдеу үшін "аппараттық жеңілдетуді" қолдайды. Алайда, бұл мүмкіндік тек Windows Runtime қолданбалары үшін ғана қолжетімді. DirectSound және DirectMusic-тің дыбыс картасы драйверлеріне арналған аппараттық интерфейстері іске асырылмаған.
Windows CE-нің атауы
DirectSound қолдауы Windows CE-нің 4.2 нұсқасына дейін болғанмен, 5.0 нұсқасынан бастап жойылды. Windows CE 6.0 да DirectSound-ты қолдамайды, оның орнына қолданбаларды Waveform Audio API-ді пайдалану үшін қайта жазу ұсынылады.
Ауыстыру орындалуы
Windows Vista-да DirectSound жойылғаннан кейін, бірнеше ауыстырушы шешімдер пайда болды. Sound Blaster-дың Creative ALchemy (2007) DirectSound3D және EAX сияқты аудио эффектілерін аппараттық үдетуді қамтамасыз етеді. Creative ALchemy DirectSound3D шақыруларын ұстап, оларды Sound Blaster X Fi және Sound Blaster Audigy сияқты қолдау көрсетілетін жабдықтармен өңделетін OpenAL шақыруларына түрлендіреді. Бағдарламалық қамтамасыз ету негізіндегі Creative аудио шешімдері үшін ALchemy өзінің 3D аудио қозғалтқышын OpenAL-ді пайдаланбастан қолданады. Realtek, интеграцияланған HD аудио кодектерін өндіруші, ALchemy-ге ұқсас 3D SoundBack деп аталатын өнімге ие. C Media, компьютерлік дыбыс картасы чипсеттерін өндіруші, Xear3D EX деп аталатын шешімге ие, бірақ ол пайдаланушының араласуынсыз, фондық режимде DirectSound3D шақыруларын ашық түрде ұстап алады. IndirectSound – XAudio2 арқылы DirectSound 3D-ні эмуляциялайтын, аппараттық үдетуді пайдаланбайтын тегін кітапхана. DSOAL – OpenAL-ді пайдалана отырып DirectSound 3D және EAX-ті эмуляциялайтын ашық кодты кітапхана. Аппараттық үдетілген OpenAL жүзеге асырылуы немесе OpenAL Soft (HRTF қамтамасыз етеді) қолданылуы мүмкін.