&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.