Les frontaux sont des programmes fournissant une sorte d'interface utilisateur pour Csound. Avec ces programmes, Csound est utilisé comme générateur de son, et il faut donc avoir une certaine familiarité avec le code de Csound pour les utiliser. Les frontaux apportent habituellement des facilités comme la coloration syntaxique, des widgets graphiques, ou des outils de génération algorithmique de partition, qui ne font pas partie de Csound lui-même. La plupart de ces programmes sont créés par une seul personne, ce qui fait que certains d'entre eux ne sont pas maintenus. Ci-dessous, une liste (sans doute incomplète et pas forcément à jour) des frontaux disponibles pour Csound.
La plupart du temps, on téléchargera et on installera Csound lui-même avant de télécharger et d'installer un frontal. Certains frontaux nécessitent des versions particulières de Csound. Il est donc recommandé, si l'on veut utiliser un frontal, de vérifier sa compatibilité avant d'installer Csound.
CsoundQt est un programme GUI (interface utilisateur graphique) multi plates-formes aux fonctions variées qui est fourni avec la distribution standard de Csound. Créé et maintenu par Andrés Cabrera, CsoundQt comprend un éditeur à plusieurs onglets, des widgets graphiques pour le contrôle du son en temps réel, et un système d'aide des opcodes qui pointe dans ce manuel. A l'heure actuelle (2013), CsoundQt est dans une phase active de développement, ce qui fait que la version installée sur votre système avec Csound peut ne pas être la plus récente. On peut trouver la dernière version à http://qutecsound.sourceforge.net/.
Frontal multi plates-formes orienté composition, écrit en Java par Steven Yi. L'interface utilisateur fournit une structure de ligne temporelle comme sur un multipiste numérique, mais en diffère en ce que les lignes temporelles peuvent être intégrées dans d'autres lignes temporelles (polyObjects). Cela permet une organisation compositionnelle dans le temps que beaucoup trouveront intuitive, compréhensible et flexible. Chaque instrument et chaque section de partition dans un projet blue ont leur propre fenêtre d'édition, ce qui facilite l'organisation des projets de grande taille. On peut télécharger Blue à la Blue Home Page.
Utilise Csound et comprend aussi son propre langage de génération de partition. Pas mis à jour depuis 2004, mais devrait fonctionner sur Mac OSX et Linux. Disponible sur http://www.jeanpiche.com/software.htm.
Frontal pour le Macintosh, MacCsound fournit un éditeur de texte, l'édition graphique de signaux de contrôle et d'autres éléments. Disponible sur la Page de MacCsound. MacCsound nécessite la version Universal de Csound, pas la version Intel, et avec OS 10.6, il faut aussi Rosetta, qui se trouve sur le DVD d'installation d'OSX pour 10.6, mais n'est pas installé par défaut.
Un frontal commmode pour Windows avec coloration syntaxique. On peut l'obtenir à WinXsound Front Page.
Cabel est une interface utilisateur graphique pour construire des instruments Csound en interconnectant des modules comme on le fait dans les synthétiseurs modulaires et dans les environnements de programmation graphique tels que Pd. Multi plates-formes, écrit en Python. Bien qu'il semble (en 2011) que Cabel n'ait pas été mis à jour depuis quatre ans, il fonctionne toujours avec les versions actuelles de Csound. Disponible à http://cabel.sourceforge.net/.
Csound5GUI est une interface utilisateur graphique (GUI) multi plates-formes. Après avoir fait partie de la distribution standard de Csound, il est maintenant disponible sous forme de code source et peut-être aussi téléchargeable comme un .exe pour Windows. Il implémente la plupart des options de configuration de Csound.
C'est un simple programme java pour jouer des fichiers csd. Il est inclus dans la distribution standard, et intéressera principalement les programmeurs Java.
Comme Csound5GUI, Winsound appartenait à la branche principale de Csound. Il n'est plus maintenant disponible que sous forme de code source. Winsound est un portage multi plates-formes en FLTK du frontal original de Barry Vercoe pour Csound. Certains utilisateurs mal-voyants ou aveugles ont rapporté que Winsound fonctionne bien avec des logiciels de traduction texte-parole.
CsoundEditor n'est plus maintenu, mais il est toujours disponible à Flavio Tordini's Home Page. Pour systèmes Windows, comprend la coloration syntaxique.
En plus des principaux frontaux listés ci-dessus, voici quelques autres programmes pouvant éventuellement être qualifiés de frontaux, selon vos propres critères :
GeoMaestro: | http://www.zogotounga.net/GM/eGM0.html |
Csound-x: | http://www.zogotounga.net/comp/csoundx.html |
AthenaCL: | http://www.flexatone.net/athena.html |
GRACE/Common Music: | http://commonmusic.sourceforge.net/ |
AlgoScore: | http://kymatica.com/Software/AlgoScore |
nGen: | http://mustec.bgsu.edu/~mkuehn/ngen/ |
ImproSculpt: | http://improsculpt.sourceforge.net/pmwiki/pmwiki.php |
Vous pouvez utiliser CsoundAC comme un module d'extension de Python. Vous pouvez faire cela dans un interpréteur Python standard tel que la ligne de commande Python ou le Idle Python GUI.
Pour utiliser CsoundAC dans un interpréteur Python standard, importez CsoundAC.
import CsoundAC
Le module CsoundAC crée automatiquement une instance de CppSound
nommée csound, qui fournit une interface
orientée objet à l'API de Csound. Dans un interpréteur Python standard,
vous pouvez charger un fichier Csound .csd
et
l'exécuter de cette manière :
C:\Documents and Settings\mkg>python Python 2.3.3 (#51, Dec 18 2003, 20:22:39) [MSC v.1200 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import CsoundAC >>> csound.load("c:/projects/csound5/examples/trapped.csd") 1 >>> csound.exportForPerformance() 1 >>> csound.perform() BEGAN CppSound::perform(5, 988ee0)... BEGAN CppSound::compile(5, 988ee0)... Using default language 0dBFS level = 32767.0 Csound version 5.00 beta (float samples) Jun 7 2004 libsndfile-1.0.10pre6 orchname: temp.orc scorename: temp.sco orch compiler: 398 lines read instr 1 instr 2 instr 3 instr 4 instr 5 instr 6 instr 7 instr 8 instr 9 instr 10 instr 11 instr 12 instr 13 instr 98 instr 99 sorting score ... ... done Csound version 5.00 beta (float samples) Jun 6 2004 displays suppressed 0dBFS level = 32767.0 orch now loaded audio buffered in 16384 sample-frame blocks SFDIR undefined. using current directory writing 131072-byte blks of shorts to test.wav WAV SECTION 1: ENDED CppSound::compile. ftable 1: ftable 2: ftable 3: ftable 4: ftable 5: ftable 6: ftable 7: ftable 8: ftable 9: ftable 10: ftable 11: ftable 12: ftable 13: ftable 14: ftable 15: ftable 16: ftable 17: ftable 18: ftable 19: ftable 20: ftable 21: ftable 22: new alloc for instr 1: B 0.000 .. 1.000 T 1.000 TT 1.000 M: 32.7 0.0 new alloc for instr 1: B 1.000 .. 3.600 T 3.600 TT 3.600 M: 207.6 0.1 ... B 93.940 .. 94.418 T 98.799 TT281.799 M: 477.6 85.0 B 94.418 ..100.000 T107.172 TT290.172 M: 118.9 11.5 end of section 4 sect peak amps: 25950.8 26877.4 inactive allocs returned to freespace end of score. overall amps: 32204.8 31469.6 overall samples out of range: 0 0 0 errors in performance 782 131072-byte soundblks of shorts written to test.wav WAV Elapsed time = 13.469000 seconds. ENDED CppSound::perform. 1 >>>
Le script koch.py
montre comment utiliser Python
pour faire une composition algorithmique pour Csound. Vous pouvez utiliser
des chaînes de caractères litérales à triples guillemets pour incorporer
vos fichiers Csound directement dans votre script, et les assigner
à Csound :
csound.setOrchestra('''sr = 44100 kr = 441 ksmps = 100 nchnls = 2 0dbfs = .1 instr 1,2,3,4,5 ; FluidSynth General MID I; INITIALIZATION ; Channel, bank, and program determine the preset, that is, the actual sound. ichannel = p1 iprogram = p6 ikey = p4 ivelocity = p5 + 12 ijunk6 = p6 ijunk7 = p7 ; AUDIO istatus = 144; print iprogram, istatus, ichannel, ikey, ivelocityaleft, aright fluid "c:/projects/csound5/samples/VintageDreamsWaves-v2.sf2", \\ iprogram, istatus, ichannel, ikey, ivelocity, 1 outs aleft, arightendin''') csound.setCommand("csound --opcode-lib=c:/projects/csound5/fluid.dll \\ -RWdfo ./koch.wav ./temp.orc ./temp.sco") csound.exportForPerformance() csound.perform()