Audio en temps réel

L'information suivante concerne en premier lieu l'utilisation de csound à partir de la ligne de commande. Les frontaux implémentent ces caractéristiques de différentes manières, mais leur connaissance est nécessaire dans certains d'entre eux.

Les options -i et -o peuvent être utilisées pour spécifier une sortie en temps réel à la place de l'habituelle sortie différée dans un fichier. On utilise -o dac pour la sortie en temps réel et -i adc pour l'entrée en temps réel. Naturellement, on peut utiliser l'un ou les deux selon les possibilités matérielles. On peut aussi spécifier le matériel à utiliser en ajoutant un numéro ou un nom de périphérique au drapeau (voir -i et -o).

Il peut aussi être nécessaire d'utiliser l'option -+rtaudio pour spécifier le pilote d'interface à utiliser. Csound utilise Portaudio par défaut, qui est multi plates-formes et fiable, mais, pour obtenir de meilleures performances, on peut utiliser ALSA et JACK sur linux, et CoreAudio sur Mac. On peut utiliser ASIO sur Windows si la version de Portaudio a été compilée avec le support ASIO.

On peut voir une liste des périphériques disponibles en donnant un numéro de périphérique trop grand, par example -o dac99. Si vous utilisez Portaudio, ceci indiquera également si ASIO est disponible.

Tailles de période et de tampon

Les tailles de période et de tampon varient beaucoup d'une machine à l'autre. Plus la taille du tampon est petite et plus la latence est courte, mais cela peut causer des interruptions et des clics dans le flux audio. Les options Csound qui contrôlent les tailles de période et de tampon sont respectivement -b et -B. La taille de tampon dépend du matériel, et des essais peuvent être nécessaires pour trouver l'équilibre optimal entre une faible latence et un flux audio continu. Les valeurs données à -b et -B doivent être des puissances de deux, et la valeur de -B doit surpasser celle de -b d'au moins une puissance de deux.

Actuellement, avec -B fixé à 512, la latence de la sortie audio est d'environ 12 millisecondes, suffisamment rapide pour un jeu au clavier raisonnablement réactif. On peut même obtenir des latences plus courtes sur certains systèmes.

Cadence de contrôle

De faibles valeurs de ksmps donneront en général une synthèse de meilleure qualité, mais consommeront plus de ressources système. Il n'y a pas de règle absolue pour fixer ksmps - différents orchestres nécessiteront différentes cadences de contrôle. Un instrument à guide d'onde nécessitera une valeur de ksmps de 1 (et pourra ne pas convenir au temps réel), alors qu'une simple synthèse FM pourra fonctionner avec de plus grandes valeurs de ksmps sans dégradation notable du son. Si cette synthèse FM doit jouer une ligne de basse monodique, on peut utiliser une très faible valeur de ksmps, cependant des clusters de notes plus complexes nécessiteront une valeur de ksmps plus grande. Un système linux bien réglé devrait même être capable de produire des synthèses polyphoniques complexes avec des valeurs de ksmps aussi faibles que 4 ou 8. Si l'on a besoin de capacités audio duplex complètes, -b doit être un multiple entier de ksmps. En gardant cela à l'esprit, on peut poser comme règle empirique de n'utiliser que des puissances de deux pour ksmps.

Certains réglages diffèrent selon la plate-forme. Voir la suite pour de l'informations sur chaque plate-forme.