Construire Csound

Csound est devenu un projet complexe et peut impliquer plusieurs dépendances. A moins d'être un développeur de Csound ou d'avoir besoin d'écrire des greffons pour Csound, il vaut mieux utiliser une des distibutions pré-compilées de http://www.sourceforge.net/projects/csound. Cependant, la construction à partir des sources est sans doute la meilleure option sous GNU/Linux.

Cette section met l'accent sur le système principal de construction de Csound 5, qui utilise SCons, un programme Python qui remplace make pour la configuration et la construction multi plates-formes.

Lorsque l'on construit Csound à partir des sources plutôt que d'utiliser un paquetage précompilé, il faut d'abord télécharger les sources d'une publication de Csound à partir de http://www.sourceforge.net/projects/csound. Les paquetages source ont une extension zip ou tar.gz.

Le code source de Csound le plus récent (potentiellement instable) est également disponible par GIT. La page d'acceuil GIT de Csound se trouve ici : http://csound.git.sourceforge.net/git/gitweb-index.cgi. L'utilisation de git pour télécharger et compiler Csound est assez facile. Installer GIT pour votre plate-forme et utiliser la commande suivante pour cloner l'entrepôt git de Csound :

git clone git://git.code.sf.net/p/csound/csound5-git

Cela téléchargera une version à lecture seule de l'entrepôt de Csound5 (cela signifie que l'on ne peut pas mettre à jour l'entrepôt central à partir de celui-ci). Pour une mise à jour de l'entrepôt téléchargé à partir de l'entrepôt central, utiliser :

git pull

On utilise le même procédé pour le manuel de Csound. Pour le cloner, utiliser cette commande :

git clone git://git.code.sf.net/p/csound/manual-git

Conditions nécessaires pour construire Csound 5 sur toutes les plates-formes

Ce sont les conditions minimales pour une construction, mais csound a beaucoup de composants optionnels qui améliorent ses fonctionnalités et qui ajoutent des opcodes pouvant avoir besoin de bibliothèques supplémentaires.

Configurations optionnelles (TOUTES les plates-formes)

Dans la plupart des cas, il vaut mieux installer les versions stables les plus récentes des bibliothèques optionnelles.

Windows

On a besoin des éléments suivants pour la construction sous Windows (on peut trouver des instructions plus complètes pour la construction sous Windows dans le document csound-build.tex (csound-build.pdf)) :

Les configurations optionnelles pour Windows comprennent :

Linux

Les configurations optionnelles pour Linux comprennent :

Mac OS X

Les configurations optionnelles pour Mac OS X comprennent :

Construire Csound 5 avec SCons

Lorsque vous avez tous les paquetages requis et leur sources (ou les paquetages -dev) pour besoins particuliers sur votre plate-forme, exécutez "scons -h" pour découvrir les options de configuration.

La construction est considérablement facilitée si les bibliothèques et les en-têtes téléchargés sont installés dans leurs répertoires par défaut. Si l'on veut modifier la construction par défaut, en particulier pour prendre en compte les options non-standard des dépendances de tierces parties pour lesquelles il faut trouver les en-têtes et les bibliothèques :

Evitez de modifier le fichier SConstruct.

Exécutez scons avec les variables pour les options que vous désirez. Par exemple :

scons buildOSC=1 buildCsound5GUI=1 buildPythonOpcodes=1 useOSC=1 buildBeats=1
[Note] Note

Il est important de positionner la variable d'environnement OPCODEDIR sur le répertoire dans lequel les bibliothèques de greffon se trouvent ; dans le cas d'une construction en double précision, il faut plutôt positionner OPCODEDIR64. Les installeurs s'occupent habituellement de ceci, mais Csound doit pouvoir trouver ses bilbliothèques de greffon lorsqu'on le construit à partir des sources.

Options de construction

Tableau 4. Options de construction de SCons

Variable d'ajustement Effet si positionnée à 1
buildCsoundVST Construire CsoundVST. Nécessite CsoundAC, FLTK, boost, Python, SWIG.
buildCsoundAC Construire CsoundAC. Nécessite FLTK, boost, Python, SWIG.
buildCsound5GUI Construire le frontal graphique FLTK. Nécessite FLTK 1.1.7 ou ultérieur.
buildCSEditor Construire l'éditeur de texte avec coloration syntaxique de Csound. Nécessite les en-têtes et les bibliothèques de FLTK.
buildDSSI Construire les opcodes de l'hôte DSSI/LADSPA.
buildImageOpcodes Construire les opcodes d'image. 1 par défaut. Mettre à 0 pour désactiver.
buildInterfaces Construire la bibliothèque d'interface pour Python, JAVA, Lua, C++ et d'autres langages.
buildJavaWrapper Construire la sur-couche Java pour la bibliothèque d'interface.
buildNewParser Activer le nouveau parser. Nécessite Flex/Bison.
buildOSXGUI Construire le frontal graphique de base. Seulement sous OSX.
buildPDClass Construire la classe PD csoundapi~. Nécessite m_pd.h à l'endroit standard.
buildPythonOpcodes Construire les opcodes Python
buildRelease Construire en mode release. Positionne noDebug.
buildSDFT Construire le code SDFT. 1 par défaut. Mettre à 0 pour désactiver.
buildStkOpcodes build Stk Opcodes. Requires STK source code.
buildTclcsound Construire le frontal Tclcsound (cstclsh, cswish et le module dynamique tclcsound). Nécessite les en-têtes et les bibliothèques Tcl/Tk.
buildUtilities Construire des exécutables autonomes pour les utilitaires que l'on peut aussi appeler avec -U.
buildVirtual Construire le clavier virtuel MIDI. Nécessite les en-têtes et les bibliothèques de FLTK 1.1.7 ou ultérieur.
buildvst4cs Construire les greffons vst4cs. Nécessite les en-têtes VST de Steinberg.
buildWinsound Construire le frontal Winsound. Nécessite les en-têtes et les bibliothèques FLTK.
buildBeats Construire le processeur de partition csbeats.
dynamicCsoundLibrary Construire une bibliothèque Csound dynamique au lieu de libcsound.a.
gcc3opt Autoriser les optimisations de gcc 3.3.x ou ultérieur pour l'architecture CPU spécifiée (par exemple pentium3) ; positionne noDebug.
gcc4opt Autoriser les optimisations de gcc 4.0 ou ultérieur pour l'architecture CPU spécifiée (par exemple pentium3) ; positionne noDebug.
generateTags Générer des TAGS.
generatePdf Générer la documentation PDF.
install Autoriser les cibles d'installation.
Lib64 Construire pour lib64 plutôt que pour lib.
noDebug Construire sans information de débogage.
noFLTKThreads Ne pas utiliser de thread séparé pour les contrôles graphiques de FLTK.
useAltivec Sous OSX, utiliser les options d'optimisation du gcc AltiVec.
useALSA ALSA pour les entrées et les sorties audio en temps réel et MIDI.
useCoreAudio Utiliser CoreAudio pour les entrées et les sorties audio en temps réel.
useDouble Utiliser des nombres réels en double précision pour les échantillons audio.
useFLTK Utiliser FLTK pour les graphiques et les opcodes de contrôle graphique.
useGettext Utiliser le schéma de localisation de GNU
useIpMIDI Construire pour une utilisation comme synthétiseur en réseau.
useGprof Construire avec des informations de profilage (-pg).
usePortAudio utiliser PortAudio pour les entrées et les sorties audio en temps réel.
usePortMIDI Construire le greffon PortMidi pour les entrées et les sorties MIDI en temps réel.
useJack A utiliser si vous avez compilé PortAudio pour utiliser Jack ; construit également le greffon Jack.
useLrint Utiliser lrint() and lrintf() pour la conversion des nombres réels en entiers.
useOSC Pour le support d'OSC.
useUDP Pour le support d'UDP. 1 par défaut. Mettre à 0 pour désactiver.
withICL Construire avec le compilateur C++ d'Intel (nécessite également Microsoft Visual C++). Fixer à 0 pour MinGW. Seulement sous Windows.
withMSVC Construire avec Microsoft Visual C++, ou fixer à 0 pour construire avec MinGW. Seulement sous Windows.
Word64 Construire pour des machines 64 bit.
pythonVersion Fixer à la version de Python que l'on veut utiliser.