# &arts-builder;

## Aperçu

Tout d'abord, avant de lancer &arts-builder;, vous devez aussi lancer le serveur de son (&artsd;). Habituellement, lorsque vous utilisez &kde; 2.1, &artsd; devrait déjà être en fonctionnement. Si ce n'est pas le cas, vous pouvez configurer le lancement automatique du serveur de son dans le &centreConfiguration;, rubrique SonServeur de son .

Lorsque vous exécutez &arts;, il lance toujours de petits modules. &arts-builder; est un outil pour créer de nouvelles structures composées de petits modules interconnectés. Vous placez simplement sur les modules dans la grille. Pour ce faire, choisissez-les dans le menu Modules, et cliquez quelque part dans la zone gris-vert.

Les modules ont généralement des ports (dans lesquels les flux audio transitent). Pour connecter deux ports, cliquez sur le premier, ce qui le rend orange, puis cliquez sur le second. Vous ne pouvez que connecter un port d'entrée (en haut du module) avec un port de sortie (en bas du module). Si vous voulez assigner une valeur constante à un port (ou le déconnecter), double-cliquez sur le port.

## Tutoriel

### Étape 1

Démarrez &arts-builder;.

Vous avez besoin d'un module Synth&lowbar;AMAN&lowbar;PLAY pour entendre ce que vous créez. Créez alors un module Synth&lowbar;AMAN&lowbar;PLAY en sélectionnant Modules Synthèse Entrée/Sortie son Synth&lowbar;AMAN&lowbar;PLAY et cliquez sur l'espace libre réservé aux modules. Placez-le sous la cinquième ligne ou plus parce que nous ajouterons des choses au-dessus.

Le module aura un paramètre `title` (le port le plus à gauche), et `autoRestoreID` (à côté du port le plus à gauche) afin de le trouver. Pour remplir ces sorties, double-cliquez sur ces ports, sélectionnez valeur constante et saisissez `tutorial` dans la boîte d'édition. Cliquez sur OK pour appliquer vos changements.

Sélectionnez Fichier Exécuter la structure Vous n'entendrez absolument rien. Le module de lecture a besoin de quelque chose en entrée... Écoutez le silence pendant un moment, cliquez sur OK et passez à l'étape 2

### Étape 2

Créez un module Synth&lowbar;WAVE&lowbar;SIN (depuis Modules Synthèse Formes d'ondes ) et placez-le au-dessus du module Synth&lowbar;AMAN&lowbar;PLAY (laissez une ligne vide entre).

Comme vous pouvez le voir, il produit quelque chose en sortie, mais nécessite un paramètre pos (position) en entrée. Tout d'abord, relions la sortie aux haut-parleurs. Cliquez sur le port out (sortie) du module Synth&lowbar;WAVE&lowbar;SIN et ensuite sur le port left (gauche) du module Synth&lowbar;AMAN&lowbar;PLAY. Voilà, vous avez connecté deux modules.

Dans &arts;, les oscillateurs ne nécessitent pas une fréquence en entrée, mais une position dans l'échantillon. Cette position doit être comprise entre 0 et 1, ce qui correspond pour un objet Synth&lowbar;WAVE&lowbar;SIN standard à la plage 0..2*pi. Pour générer des valeurs d'oscillation à partir d'une fréquence, un module Synth&lowbar;FREQUENCY est utilisé.

Créez un module Synth&lowbar;FREQUENCY (depuis Modules Synthèse Oscillateurs et modulation ) et connectez sa sortie pos à l'entrée pos de votre module Synth&lowbar;WAVE&lowbar;SIN. Spécifiez une valeur constante de 440 au port fréquence du générateur FREQUENCY.

Cliquez sur Fichier Exécuter la structure. Vous entendrez une onde sinusoïdale à 440 Hz sur l'un de vos haut-parleurs. Lorsque vous l'aurez écouté pendant un moment, cliquez sur OK et passez à l'étape 3.

### Étape 3

OK, ce serait mieux si vous pouviez entendre une onde sinusoïdale sur les deux haut-parleurs. Connectez le port droit du module Synth&lowbar;PLAY au port "outvalue" (valeur de sortie) du module Synth&lowbar;WAVE&lowbar;SIN.

Créez un objet Synth&lowbar;SEQUENCE (depuis Modules Synthèse Midi + séquenceur ) Il devrait se trouver en haut de l'écran. Si vous avez besoin de plus de place, vous pouvez déplacer les autres modules en les sélectionnant (pour en sélectionner plusieurs, appuyez sur MAJ) et déplacez-les.

Maintenant, connectez la sortie "frequ" (fréquence) du module Synth&lowbar;SEQUENCE à l'entrée "frequ" du module Synth&lowbar;FREQUENCY. Spécifiez alors la valeur constante 0,13 pour la vitesse de la séquence (la vitesse est le port le plus à gauche).

Puis allez au port le plus à droite (sequence) du Synth&lowbar;SEQUENCE et saisissez comme valeur constante `A-3;C-4;E-4;C-4;` ceci spécifie une séquence. Vous trouverez plus d'informations dans le manuel de référence des modules.

Remarque : Synth&lowbar;SEQUENCE a vraiment besoin d'une séquence et d'une vitesse. Sans ces données, vous aurez certainement des fichiers core générés.

Sélectionnez Fichier Exécuter la structure... Vous entendrez jouer une séquence sympathique. Si vous avez aimé, cliquez sur OK et passez à l'étape 4.

### Étape 4

Créez un module Synth&lowbar;PSCALE (depuis Modules Synthèse Enveloppes ). Déconnectez la sortie de l'onde sinusoïdale en double cliquant dessus et en choisissant not connected (non connecté). Connectez

1. La sortie du SIN à l'entrée de PSCALE

2. La sortie de PSCALE au AMAN_PLAY gauche

3. La sortie de PSCALE au AMAN_PLAY droit

4. Le pos de SEQUENCE au pos de PSCALE

Finalement, placez le port top de PSCALE à une certaine valeur, par exemple 0.1.

Voyons maintenant comment cela fonctionne : le module Synth&lowbar;SEQUENCE donne une information supplémentaire sur la position de la note qu'il est en train de jouer, 0 signifie juste commencé et 1 signifie finie. Le module Synth&lowbar;PSCALE va modifier l'amplitude du flux audio qui le traverse d'un volume 0 (silence) à un volume 1 (volume d'origine) puis de nouveau 0 (silence), d'après la position. La position où le pic doit apparaître peut être donné sur le port "pos". 0,1 signifie que lorsque 10&percnt; de la note ont été joués, le volume a atteint son maximum, et diminue ensuite.

Sélectionnez Fichier Exécuter la structure... Vous entendrez jouer une séquence sympathique. Si vous avez aimé, cliquez sur OK et passez à l'étape 5.

### Étape 5 : début d'échange de données

Démarrez un autre &arts-builder;.

Placez un module Synth&lowbar;AMAN&lowbar;PLAY dedans, et donnez-lui un nom raisonnable. Insérez un module Synth&lowbar;BUS&lowbar;DOWNLINK et :

1. placez l'entrée bus de ce module à audio (c'est juste un nom, appelez-le Fred si ça vous fait plaisir).

2. connectez la sortie left du module Synth&lowbar;BUS&lowbar;DOWNLINK à l'entrée left du module Synth&lowbar;AMAN&lowbar;PLAY

3. connectez la sortie right du module Synth&lowbar;BUS&lowbar;DOWNLINK à l'entrée right du module Synth&lowbar;AMAN&lowbar;PLAY

Exécutez la structure. Comme on pouvait s'y attendre, on n'entend rien... pas encore.

Revenez à la structure avec le module Synth&lowbar;WAVE&lowbar;SIN et remplacez le module Synth&lowbar;AMAN&lowbar;PLAY par un module Synth&lowbar;BUS&lowbar;UPLINK, et configurez le nom à audio (ou à Fred si vous voulez). Pour effacer les modules, sélectionnez-les et cliquez sur Édition Supprimer dans le menu (ou appuyez sur la touche Suppr)

Cliquez sur File Execute structure. Vous entendrez la séquence avec les notes dont le volume est modifié, transportées par le bus.

Si vous voulez vous rendre compte de l'intérêt réel d'une telle chose, cliquez sur OK (dans le &arts-builder; qui exécute le module Synth&lowbar;SEQUENCE, vous pouvez laisser tourner l'autre) et passez à l'étape 6.

### Étape 6 : échange de données pour les utilisateurs avancés.

Sélectionnez Fichier Renommer la structure dans le menu de artsbuilder qui contient le module Synth&lowbar;SEQUENCE, et appelez-le tutoriel. Cliquez sur OK.

Choisissez Fichier Enregistrer...

Démarrez encore un autre &arts-builder; et choisissez Fichier Ouvrir... , et rechargez le tutoriel.

Maintenant vous pouvez cliquer sur Fichier Exécuter la structure dans les deux &arts-builder; qui contiennent cette structure. Vous entendrez maintenant deux fois la même chose. Suivant l'instant auquel vous les avez démarrés, le son sera plus ou moins bon.

Une autre chose sympathique à faire à ce point est de démarrer &noatun;, et lire un `mp3`. Démarrez &artscontrol;. Allez dans Affichage voir le Gestionnaire audio. Vous verrez alors &noatun; et votre structure tutoriel jouant quelque chose. Double-cliquez sur &noatun;. Vous aurez alors une liste des bus disponibles. Vous pouvez dire à &noatun; d'envoyer sa sortie via le bus audio fourni par votre structure tutoriel.

### Étape 7 : Synthèse contrôlée par midi

Enfin, vous êtes maintenant en mesure de transformer votre onde sinusoïdale en instrument proprement dit. Ceci ne prend son sens que si vous avez quelque chose de bricolé qui puisse envoyer des événements &MIDI; vers &arts;. Je vais décrire maintenant comment vous pouvez utiliser des claviers externes, mais un séquenceur compatible avec les bus midi comme &brahms; fonctionnera aussi.

Tout d'abord, nettoyez votre bureau pour n'obtenir qu'un &arts-builder; contenant une structure d'onde sinusoïdale (pas en cours d'exécution). Ensuite, allez trois fois dans Ports Créer un signal d'entrée audio (IN) et trois fois dans Ports Créer un signal de sortie audio (OUT). Placez les ports quelque part.

Finalement, allez dans Ports modifier les positions/noms et nommez les ports frequency (fréquence), velocity (vélocité ou force de frappe), pressed (enfoncé), left (gauche), right (droite), et done (terminé).

Enfin, vous pouvez supprimer le module Synth&lowbar;SEQUENCE, et connecter plutôt le port d'entrée frequency au port frequency du module Synth&lowbar;FREQUENCY. Hmm, et que faire de pos ?

Nous n'en avons pas car il n'existe aucun algorithme au monde capable de prédire quand l'utilisateur va relâcher la note qu'il vient juste d'enfoncer sur le clavier midi. Donc à la place, il y a un paramètre pressed (pressé) qui indique juste si l'utilisateur maintient la touche enfoncée (pressed = 1 : touche maintenue enfoncée, pressed = 0 : touche relâchée).

Ceci signifie que l'objet Synth&lowbar;PSCALE doit être remplacé maintenant. Connectez un module Synth&lowbar;ENVELOPE&lowbar;ADSR à la place (depuis Modules Synthèse Enveloppes ). Connectez :

1. L'entrée pressed de la structure au port active de l'ADSR

2. La sortie du SIN à l'entrée invalue de l'ADSR

3. Le port outvalue à la sortie left de la structure

4. Le port outvalue de l'ADSR à la sortie right de la structure

Réglez les paramètres attack à 0.1, decay à 0.2 et release à 0.1.

Une autre chose à laquelle nous devons penser est que la structure de l'instrument, d'une manière ou d'une autre, doit maintenant savoir quand elle est prête à jouer, et alors elle doit se fermer, car sinon, ça ne s'arrêtera jamais, même si la note a été relâchée. Heureusement, l'enveloppe ADSR sait lorsqu'il n'y aura plus rien à entendre puisque de toutes façons, elle fixe le signal à zéro un certain temps après que la touche a été enfoncée.

Ceci est indiqué en passant la sortie done à 1. Connectez-le à la sortie done de la structure. Cela va fermer la structure dès que la sortie done passe à 1.

Renommez votre structure en instrument_tutorial (depuis Fichier Renommer la structure. Ensuite, enregistrez-la en utilisant enregistrer sous (le nom par défaut devrait être instrument_tutorial maintenant).

Démarrez artscontrol, et allez dans Affichage Voir le Gestionnaire Midi , et choisissez Ajouter Sortie Midi du synthétiseur aRts. Enfin, vous devriez pouvoir sélectionner votre instrument (tutoriel) ici.

Ouvrez un terminal et saisissez ``midisend``. Vous verrez que `midisend` et l'instrument sont maintenant listés dans le gestionnaire &MIDI; de &arts;. Après avoir sélectionné les deux et avoir cliqué sur Connecter, nous avons enfin terminé. Prenez votre clavier et commencez à jouer (bien sûr, il doit être connecté à votre ordinateur).

### Suggestions

Vous êtes maintenant capable de vous servir de &arts;. Voici quelques astuces que vous pouvez tester pour améliorer vos structures :

- Essayez d'utiliser d'autres choses que des ondes sinusoïdales. Si vous connectez une onde triangulaire, vous penserez probablement que le son n'est pas terrible. Mais essayez d'associer un filtre SHELVE&lowbar;CUTOFF avec une onde triangulaire pour couper les fréquences supérieures à une certaine limite (essayez quelque chose comme 1000 Hz, ou encore mieux deux fois la fréquence d'entrée, ou la fréquence d'entrée + 200 Hz ou quelque chose comme ça).

- Essayez d'utiliser plusieurs oscillateurs. Le module Synth&lowbar;XFADE peut être utilisé pour mixer les deux signaux, et Synth&lowbar;ADD pour les additionner.

- Essayez de ne pas donner exactement les mêmes fréquences à tous les oscillateurs, ça donne des oscillations sympathiques (NdT effet de chorus).

- Essayez d'utiliser plusieurs enveloppes.

- Essayez de synthétiser des instruments avec des sorties différentes à gauche et à droite.

- Essayez un post-traitement du signal en sortie du downlink. Vous pouvez par exemple mixer une version retardée du signal avec l'original pour obtenir un effet d'écho.

- Essayez d'utiliser le réglage de la vélocité (c'est la force avec laquelle la touche a été frappée, vous pouvez aussi dire volume). L'effet est toujours intéressant lorsque la vélocité n'influe pas uniquement sur le volume du signal résultant, mais aussi sur le son de l'instrument (par exemple la fréquence de coupure).

- ...

Si vous avez créé quelque chose de bien, envoyez-le pour notre site web, ou pour l'inclure dans la prochaine version de &arts;.

## Exemples

&arts-builder; est livré avec plusieurs exemples, qui peuvent être ouverts depuis Fichier Ouvrir un exemple.... Certains sont dans le dossier alors ouvert, d'autres (qui pour diverses raisons ne fonctionnent pas avec la version actuelle) sont placés dans le dossier todo.

Les exemples sont regroupés en plusieurs catégories :

- Des exemples autonomes illustrant comment utiliser les modules internes à arts (nommés `examples_*.arts`). Ces exemples envoient tous un signal vers la carte son.

- Des instruments construits à partir des modules de bas niveau de arts (nommés `instruments_*.arts`). Ils respectent une convention pour les ports d'entrée et de sortie de façon à pouvoir les utiliser par le gestionnaire &MIDI; de &artscontrol;.

- Des modèles pour créer de nouveaux modules (nommés `template_*.arts`).

- Des effets, qui peuvent être réutilisés commues nouveaux blocs (nommés `effect_*.arts`) [ tous dans todo ]

- Des éléments de mixage utilisés pour créer des tables de mixage, incluant des contrôleurs graphiques (nommés `mixer_element_*.arts`). [ tous dans todo ]

- Des modules divers qui n'entrent pas dans l'une des catégories précédentes.

### Description détaillée de chaque module :

`example_stereo_beep.arts`

  Génère une onde sinusoïdale à 440 Hz sur le canal gauche et une onde sinusoïdale à 880 Hz sur le canal droit, et les envoie vers la sortie de la carte son. Ceci est référencé dans la documentation de &arts;.

`example_sine.arts`

  Génère une onde sinusoïdale à 440 Hz.

`example_pulse.arts`

  Génère une onde de type impulsion à 440 Hz avec un rapport cyclique de 20%.

`example_softsaw.arts`

  Génère une onde en dent de scie à 440 Hz.

`example_square.arts`

  Génère une onde carrée à 440 Hz.

`example_tri.arts`

  Génère une onde triangulaire à 440 Hz.

`example_noise.arts`

  Génère un bruit blanc.

`example_dtmf1.arts`

  Génère une double tonalité en produisant deux ondes sinusoïdales à 697 et 1209 Hz, en les multipliant chacune par 0.5, et en les ajoutant. Il s'agit de la tonalité DMTF du nombre 1 sur un clavier de téléphone.

`example_atan_saturate.arts`

  Génère une onde triangulaire modifiée par un filtre de type atan saturate.

`example_autopanner.arts`

  Utilise une panoramique automatique pour balancer une onde sinusoïdale à 440 Hz entre les haut-parleurs droit et gauche à une fréquence de 2 Hz.

`example_brickwall.arts`

  Atténue une onde sinusoïdale d'un facteur 5 et la dirige à travers un limiteur de type brickwall.

`example_bus.arts`

  Downlink depuis un bus nommé Bus et uplink vers le bus out_soundcard avec inversion des canaux droit et gauche.

`example_cdelay.arts`

  Downlink depuis un bus nommé Delay, uplinks le canal droit à travers un cdelay réglé sur 0.5 seconde, laissant inchangé le canal gauche. Vous pouvez utiliser &artscontrol; pour connecter l'effet à un lecteur audio et observer les résultats.

`example_delay.arts`

  Il s'agit du même exemple que `example_cdelay` mais utilise l'effet delay.

`example_capture_wav.arts`

  Ceci utilise un module Synth_CAPTURE_WAV pour enregistrer une onde sinusoïdale à 440 Hz dans un fichier wav. Exécutez le module pendant quelques secondes, puis examinez le fichier créé dans `/tmp`. Vous pouvez le lire avec un lecteur comme kaiman.

`example_data.arts`

  Ceci utilise un module Data pour générer un flux constant de la valeur 3 et l'envoie vers un module Debug pour l'afficher périodiquement. Il contient aussi un module Nil, illustrant comment il peut être utilisé pour ne rien faire.

`example_adsr.arts`

  Montre comment créer un simple son d'instrument utilisant un module d'enveloppe Adsr, déclenché de manière répétitive par une onde carrée.

`example_fm.arts`

  Ceci utilise un module de Source FM pour générer une onde sinusoïdale dont la fréquence est modulée à 5 Hz.

`example_freeverb.arts`

  L'effet Freeverb est connecté d'un bus downlink vers un bus outlink. Vous pouvez utiliser artscontrol pour connecter l'effet à un lecteur audio et observer le résultat.

`example_flanger.arts`

  Ceci implante un simple effet de flanger (apparemment, il ne fonctionne pas encore).

`example_moog.arts`

  Cette structure combine les deux canaux depuis un bus en un seul canal, qui passe ensuite dans un filtre Moog VCF, et est dirigé vers le bus out_soundcard.

`example_pitch_shift.arts`

  Cette structure envoie le canal gauche des données d'une carte son vers un effet de Pitch shift (décalage de la hauteur du son). Ajustez le paramètre de vitesse pour modifier l'effet.

`example_rc.arts`

  Cette structure dirige le bruit blanc généré vers un filtre RC puis vers la sortie de la carte son. En affichant la FFT (transformée de Fourier) dans artscontrol, vous pouvez comparer avec le spectre d'une source de bruit non filtrée.

`example_sequence.arts`

  Ceci met en évidence le module Sequence en jouant une séquence de notes.

`example_shelve_cutoff.arts`

  Cette structure envoie un bruit blanc vers un filtre de type Shelve Cutoff puis vers la sortie de la carte son. En affichant la FFT (transformée de Fourier) dans artscontrol, vous pouvez comparer avec le spectre d'une source de bruit non filtrée.

`example_equalizer.arts`

  Ceci met en évidence le module Std_Equalizer. Il amplifie les basses et hautes fréquences de 6 dB.

`example_tremolo.arts`

  Ceci met en évidence l'effet de trémolo. Les canaux gauche et droite sont modulés en utilisant un trémolo à 10 Hz.

`example_xfade.arts`

  Dans cet exemple, deux ondes sinusoïdales à 440 et 880 Hz sont mélangées en utilisant un cross fader. Ajustez la valeur du pourcentage d'entrée du crossfader entre *1 et 1 pour contrôler le mélange des deux signaux.

`example_pscale.arts`

  Ceci illustre le module Pscale (je ne sais pas si c'est un exemple significatif).

`example_play_wav.arts`

  Ceci illustre le module Play Wave. Vous devez saisir le chemin complet vers un fichier `.wav` comme paramètre de nom de fichier.

example_multi_add.arts

  Ceci montre le module Multi Add qui accepte un nombre indéterminé d'entrées. Il additionne trois modules Data qui produisent les valeurs 1, 2 et 3 puis affiche le résultat 6.