Question

J'ai réalisé que c'était peut-être une niche, mais c'est peut-être pourquoi il est bon de demander quand même. Je suis en train de regarder une console d’enregistrement matérielle à entrées multiples (telle que la Alesis IO 26) pour intégrer une entrée 8 canaux Adat lightpipe afin de traiter le signal. Comme je n'ai pas encore acquis le périphérique et que je dois déterminer si cela est réalisable (problèmes budgétaires), je voudrais demander si quelqu'un a déjà utilisé ces 8 entrées pour obtenir des données en Java? J'ai vu des tonnes d'exemples d'enregistrements sonores à l'aide des bibliothèques Javax.sound.sampled mais je n'ai trouvé aucune information sur plus de 2 canaux multicanaux. Ce qui m'intéresse, c'est d'échantillonner les 8 canaux individuels en tant que source mono. effectuer quelques simples DSP sur eux. Le périphérique matériel sera-t-il traité comme un mélangeur? Et les 8 canaux seront représentés comme 8 lignes? J'espère avoir bien compris ma terminologie.

J'apprécierais que quelqu'un puisse m'indiquer toute information pertinente. Merci!

Était-ce utile?

La solution

L'audio multicanal est censé être possible en Java en fonction de la version de Java que vous exécutez, de la plate-forme sur laquelle vous exécutez l'application et du type de carte son que vous utilisez. Consultez l'excellent la FAQ audio Java pour plus de détails. Je n'ai jamais été capable de l'utiliser de manière fiable sur toutes les plateformes.

Si vous êtes intéressé par un son multicanal robuste, je vous recommanderais d'utiliser une API C, telle que PortAudio , Juce , ou PulseAudio .

J'ai eu une excellente chance avec PortAudio et Juce à la fois.

Pour les utiliser en Java, vous devez créer une interface JNI avec les API C. .

C’est évidemment plus de travail que d’utiliser simplement javax.sound, mais cela vous donne beaucoup plus de contrôle sur le matériel audio que vous utilisez. Dans mon expérience avec les périphériques audio, être trop éloigné du matériel (c'est-à-dire 4 couches d'abstraction au lieu de 2) vous empêche souvent de faire de l'audio multicanal, à la profondeur de bits élevée et à la fréquence d'échantillonnage élevée.

Autres conseils

J'ai implémenté quelque chose de similaire avec les cartes Terratec cascadées à 32 entrées, la seule bibliothèque à l'époque était Jsyn.

C’est une très bonne bibliothèque une fois que vous apprenez à la connaître.

http://www.softsynth.com/jsyn

Je ne suis pas sûr qu'il y ait autre chose qui puisse aider.

Je viens d’ajouter un wrapper JNI Java pour PortAudio. Le plan est de maintenir cela avec la source PortAudio. PortAudio prend en charge l'audio multicanal où N> 2.

Aujourd'hui, le 9/3/12, JPortAudio est toujours en mode alpha. Au moment où vous lisez ceci, il peut être stable.

http://www.portaudio.com/docs/v19-doxydocs/ java_binding.html

Je ne peux pas vous dire directement si l'API javax.sound fonctionne avec plusieurs canaux (mais, selon la documentation de l'API, cela devrait être le cas).

Cependant, j’ai opté pour le traitement audio multicanal avec Java, qui fonctionne peut-être également pour vous. J'ai utilisé Jack (Kit de connexion audio Jack) pour canaliser les signaux de et vers le périphérique audio, puis la bibliothèque JJack pour effectuer le traitement du signal. Vous n'avez pas mentionné votre système d'exploitation cible. J'ai utilisé cette approche avec succès sous Linux. AFAIR il y avait un port Windows pour Jack sur le chemin.

ciao, orme

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top