&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 ¢reConfiguration;, 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_AMAN_PLAY pour entendre ce que vous créez. Créez alors un module Synth_AMAN_PLAY en sélectionnant Modules Synthèse Entrée/Sortie son Synth_AMAN_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 FichierExé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_WAVE_SIN (depuis Modules Synthèse Formes d'ondes ) et placez-le au-dessus du module Synth_AMAN_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_WAVE_SIN et ensuite sur le port left (gauche) du module Synth_AMAN_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_WAVE_SIN standard à la plage 0..2*pi. Pour générer des valeurs d'oscillation à partir d'une fréquence, un module Synth_FREQUENCY est utilisé. Créez un module Synth_FREQUENCY (depuis Modules Synthèse Oscillateurs et modulation ) et connectez sa sortie pos à l'entrée pos de votre module Synth_WAVE_SIN. Spécifiez une valeur constante de 440 au port fréquence du générateur FREQUENCY. Cliquez sur FichierExé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_PLAY au port "outvalue" (valeur de sortie) du module Synth_WAVE_SIN. Créez un objet Synth_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_SEQUENCE à l'entrée "frequ" du module Synth_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_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_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 FichierExé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_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 La sortie du SIN à l'entrée de PSCALE La sortie de PSCALE au AMAN_PLAY gauche La sortie de PSCALE au AMAN_PLAY droit 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_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_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% de la note ont été joués, le volume a atteint son maximum, et diminue ensuite. Sélectionnez FichierExé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_AMAN_PLAY dedans, et donnez-lui un nom raisonnable. Insérez un module Synth_BUS_DOWNLINK et : placez l'entrée bus de ce module à audio (c'est juste un nom, appelez-le Fred si ça vous fait plaisir). connectez la sortie left du module Synth_BUS_DOWNLINK à l'entrée left du module Synth_AMAN_PLAY connectez la sortie right du module Synth_BUS_DOWNLINK à l'entrée right du module Synth_AMAN_PLAY Exécutez la structure. Comme on pouvait s'y attendre, on n'entend rien... pas encore. Revenez à la structure avec le module Synth_WAVE_SIN et remplacez le module Synth_AMAN_PLAY par un module Synth_BUS_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 FileExecute 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_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 FichierRenommer la structure dans le menu de artsbuilder qui contient le module Synth_SEQUENCE, et appelez-le tutoriel. Cliquez sur OK. Choisissez Fichier Enregistrer... Démarrez encore un autre &arts-builder; et choisissez FichierOuvrir... , et rechargez le tutoriel. Maintenant vous pouvez cliquer sur FichierExé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 Affichagevoir 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 PortsCréer un signal d'entrée audio (IN) et trois fois dans PortsCré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_SEQUENCE, et connecter plutôt le port d'entrée frequency au port frequency du module Synth_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_PSCALE doit être remplacé maintenant. Connectez un module Synth_ENVELOPE_ADSR à la place (depuis Modules Synthèse Enveloppes ). Connectez : L'entrée pressed de la structure au port active de l'ADSR La sortie du SIN à l'entrée invalue de l'ADSR Le port outvalue à la sortie left de la structure 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 AffichageVoir le Gestionnaire Midi , et choisissez AjouterSortie 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_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_XFADE peut être utilisé pour mixer les deux signaux, et Synth_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 FichierOuvrir 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.