Προς το περιεχόμενο

Επιλογή γλώσσας για Interface με Digital Signal Processing


Sadako

Προτεινόμενες αναρτήσεις

Δημοσ.

Εδώ

http://java.sun.com/products/java-media/sound/techReference/tiger.html

λέει ότι

> Optimized direct audio access is implemented on all platforms (RFEs 4908240 and 4908879). It is enabled by default on systems which offer native mixing (i.e. Linux ALSA with hardware mixing, Solaris Mixer enabled, Windows DirectSound);

 

Δεν έχω χρησιμοποιήσει ποτέ το Java Sound API, δεν ξέρω τι latency έχει και τι εγγυήσεις για low latency. Πιθανώς αν χρησιμοποιεί DirectSound να τα καταφέρνει ΟΚ (με ένα γρήγορο google είδα κάτι για 11 msec, που είναι μια χαρά - αλλά από την 1.5 έκδοση και μετά). Κάνε ένα googlάρισμα να δεις αν αυτά που προσφέρει σε καλύπτουν... Θα σου είναι και πιο εύκολο αφού ξέρεις ήδη τη γλώσσα και έχεις περιορισμένο χρόνο.

  • 4 εβδομάδες αργότερα...
Δημοσ.

Πρέπει κάπως να σετάρω το πρόγραμμα μου για να χρησιμοποιεί το DirectSound? Ή το χρησιμοποιεί αυτόματα??

 

Έχω κολλήσει άσχημα χρησιμοποιώντας το java sound api, γιατί ό,τι tutorial βρίσκω ασχολείται ξεχωριστά με recording και ξεχωριστά με playback. Δηλαδή κάνοντας capture είτε σε buffer στη μνήμη είτε σε εξωτερικό αρχείο, σταμάτημα του capture και μετά playback. Ενώ εγώ θέλω να γίνονται ταυτόχρονα.

 

Το latency δε με πειράζει αρκεί να είναι μικρό. Εξάλλου, ΘΕΛΩ να υποβάλω κάποιο delay στο playback, μίνιμουμ 50msec..

Δημοσ.

Παρότι δεν μπορώ να σε βοηθήσω με το sound api της java, πιστεύω ότι μπορείς να κάνεις ότι θα έκανε κανείς με το directsound ή το api των windows. Δηλαδή να χρησιμοποιήσεις έναν αριθμό μπάφερ στην εγγραφή και αντίστοιχα στην αναπαραγωγή και να συγχρονίσεις τον τρόπο που γίνεται η αντιγραφή των μπαφερς από την είσοδο στην έξοδο με ότι σου παρέχει γιαυτό το σκοπό το κάθε api (πχ στο directsound γίνεται με events που σηματοδοτούνται όταν ο κέρσορας εγγραφής φτάσει σε σημεία που έχουμε ορίσει στον κυκλικό μπάφερ, στα windows με callback ρουτίνες). Αυτή η διαδικασία πρέπει να γίνεται σε ένα βρόγχο που είναι συνήθως ο βρόγχος μηνυμάτων της εφαρμογής ή καλύτερα σε ξεχωριστό thread.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...