06Aug 07
Xaudio2, ο διάδοχος του Direct Sound
Published by stelabouras in Coding, Music, Software, Tech
Εν αρχη το DirectX, το API που περιέχει τις επιμέρους βιβλιοθήκες για 3D graphics (Direct 3D), 2D (Direct Draw), ήχο (Direct Sound), είσοδο/έξοδο (Direct Input) και άλλα.
Με την κυκλοφορία του Xbox / Xbox 360 των Vista και του integration των δύο platforms που επιθυμεί η Microsoft, γεννήθηκε η ανάγκη για την ύπαρξη κοινών APIs. Έτσι μετά από απόφαση της εταιρίας, κατά το τέλος του 2007 το Direct Sound θα αντικατασταθεί πλήρως από το αντίστοιχο (διάδοχο) του Xbox sound Api “Xaudio 2” που είναι ένα low-level cross-platform sound API.
To Xaudio 2 σε σχέση με την προκάτοχό του (Xaudio) -που ήταν σχεδιασμένο μόνο για το Xbox- θα υποστηρίζει τα Windows XP, Windows Vista και Xbox 360, παρέχοντας περισσότερα και αναβαθμισμένα χαρακτηριστικά ειδικά σε ότι έχουν να κάνουν με το DSP ή αλλίως Ψηφιακή Επεξεργασία Σήματος (στην περίπτωσή μας, ήχου).
Η νέα έκδοση θα παρέχει καλύτερη υποστήριξη αναπαραγωγής ήχου μέσω της βιβλιοθήκης XACT και δυνατότητες 3D ήχου με την βιβλιοθήκη X3DAudio.
Μερικά από τα αρκετά “ζουμερά” χαρακτηριστικά του Xaudio 2 είναι τα παρακάτω:
- Διαχωρισμός ήχου και φωνής
- Submixing
- Multi-rate processing
- Per-voice filtering
- Programmable voices
- Effects processing και (SRC)
- Software DSP
- Enhanced surround sound (multichannel) and explicit multichannel panning/mapping
- Native compressed data support
- 3D audio handled as a separate replaceable library
Μπορείτε να δοκιμάσετε από πρώτο χέρι την Xaudio 2 αυτόν τον μήνα, καθώς η Microsoft στην νέα tech-demo έκδοση του Direct X 10.1 SDK θα συμπεριλάβει και αυτή την βιβλιοθήκη (μαζί με το Shader Model 4.1).
Comments (9)
Με λίγο ψάξιμο είδα ότι δεν υπάρχουν πολλές πληροφορίες για το xaudio…
Επίσης από τα λίγα που βρήκα μου φαίνεται ότι γίνεται software rendering του ήχου, αλλά ακόμα και αν υποστήριζε hardware abstraction layer δε ξέρω αν θα έβγαινε συμβατό hardware.
Προσωπικά, πιστεύω ότι η MS το έχει χάσει το παιχνίδι στα audio APIs της για games, λόγω της αφαίρεσης hardware acceleration από DirectSound στα Vista και επειδή οι περισσότερες μηχανές χρησιμοποιούν το πολύ καλό OpenAL.
Σύμφωνα με την Wikipedia για την XACT engine ειδικότερα:
“The XACT engine is a high-level audio programming library that is written to use Xaudio on the Xbox, DirectSound on Windows XP, and the new audio stack on Windows Vista” που φαίνεται ότι τα features αυτά είναι σε software επίπεδο. Όντως αρκετοί χρησιμοποιούν το καλό OpenAl, παρόλα αυτά τα DSP feats του Xaudio 2 φαίνεται πως μπορεί να προσελκύσει αρκετούς developers, όχι αναγκαία game (αν και θα ήταν πιθανό) αλλά περισσότερο στον τομέα των audio apps. Περισσότερες πληροφορίες για το Xaudio 2 υπάρχουν στο faq της MS και φυσικά στο SDK (εκεί να δεις πράμα!)
Audio Αpps δε νομίζω… Ίσως οι multimedia players. Όμως, όπου ο ήχος αποκτάει σημασία, έρχεται το asio…
Η φράση που έβαλες από wikipedia δε σημαίνει απαραίτητα ότι δεν μπορεί να υπάρξει HAL, αλλά μάλλον έτσι θα είναι γιατί στο FAQ λέει: “XAudio 2 is fully a software audio rendering layer”
Ίσως οι multimedia players να είναι κάπως limited για να αξιοποιήσουν πλήρως τις δυνατότητες του DSP, anyhoo θα παρακολουθώ από κοντά την εξέλιξη του API.
P.S. Η αναφορά στην Wikipedia έγινε κατά βάση για τα Vista στα οποία χρησιμοποιείται “πάνω” από το audio stack which means no HAL
Ως developer πάντως είναι αρκετά ελκυστικό το cross platforming και οι όλες βιβλιοθήκες που ενσωματώνει το Xaudio 2 ακόμη και χωρίς HAL, αν αργότερα η Microsoft αποφασίσει να συνδέσει κατά κάποιο τρόπο το Xaudio με ακόμη πιο low level καταστάσεις (hardware acceleration) this will be cool.
Αν και δεν μου αρέσει η ιδέα του fully a software audio rendering layer δίνει το πλεονέκτημα μεγαλύτερης συμβατότητας σε ένα laptop με Duo Core 2 CPU και μια απλή κάρτα ήχου να παίξει προχωρημένα πράγματα.
Έχοντας ψάξει κάμποσο στο MSDN, έχω μείνει με την αίσθηση οτι το xAudio υφίσταται του DSound. Απο .net δεν το αντιλαμβάνομαι πουθενά (και όταν πρόκειτα να γίνει αλλαγή το ξέρουμε 2 χρόνια πριν) άρα πρόκειται καθαρά για υλικό υποδομής. Επίσης απο ό,τι βλέπω και στα docs του για XAudio 2 του DX SDK Αυγούστου (για το οποίο μόνο τα docs υπάρχουν ακόμα) όπως και στο 1 δεν υπάρχει εγγύηση real time όπως με ASIO.
Μην ξεγελιόμαστε όμως η Microsoft όπως πάντα ορίζει τις απαιτήσεις και γράφει το λογισμικό, δε βλέπω λόγο να εμφανιστούν HW υλοποιήσεις με επιτάχυνση αν δεν είχαν εμφανιστεί πριν, ίσως απο την Creative ή MAudio που είναι οι μόνοι gold partners που φτιάχνουν audio HW.
Σε αυτό που λέει ο Τιτάνας έχει δίκιο, η Microsoft πάντα ήθελε να πετάξει τον ήχο κλπ σε έναν επεξεργαστή. Για την ομάδα DX όμως αυτός είναι η GPU.
@Kcorax τι εννοείς “Για την ομάδα DX όμως αυτός είναι η GPU.” ??
Λες ότι κάποια DSP του xaudio ίσως να τρέχουν στη gpu? Πάντως περισσότερες πληροφορίες θα έχουμε 13-14 Αυγούστου με το http://www.xnagamefest.com/
@Petrakeas Όχι υποτάσεται στο ‘αν περνούσε απο το χέρι τους’ και στον τρόπο που αντιμετωπίζουν τα πάντα στο σχετικό γκρούπ. Δεν γνωρίζω λεπτομέρειες και δεν θέλω να πω κάτι λάθος, αλλά θα είχε ενδιαφέρον αν ξέραμε αν το xbox 360 έχει αφοσιωμένο κύκλωμα για ήχο και κατα πόσον αυτό είναι συμπαγές.
Στα docs παρατήρησα οτι ισχυρίζονται οτι το xaudio2 θα τρέχει τόσο σε dx10.1 (αν και το component καθαυτό δεν απαιτεί vista) όσο και σε xna . Βέβαια τα docs είναι και αυτά beta…
Η creative ,όπως και αναμενόταν, αποδοκιμάζει το Xaudio2 και λέει ότι το OpenAL είναι το μέλλον.
http://www.custompc.co.uk/news/601200/creative-disses-microsoft-xaudio2.html
Βασικά νομίζω πως έχει δίκιο. Ακόμα και το sample rate conversion σε software θα είναι με xaudio. Έλεος!!!